Business rules are the part of InterSystems Ensemble production solution which allow nontechnical users to change the behavior of Ensemble business processes at specific decision points.
Any syntax help, i want to check different msg types and then reach out to the value in that particular segment. Here is example, i want to get SSNNumber from a method. Trying to use NOTIN, and Lookup
Class Training.RulesFunctionSet Extends Ens.Rule.FunctionSet
I've been trying to figure out how to use an ObjectScript class to search other classes for specific strings. To be very specific, I want to be able to search business rules to see if a particular DTL is in the rule. We have some orphaned DTL's in our Ensemble productions and I want to make sure that they're not being used.
A while back I asked the developer community for a way to loop through repeatable HL7 segments and check them against a Data Lookup table within a Business Rule.
I'm trying to create a general business rule, not an HL7 message router. (This is because i want to return values from the rules and message routing rules don't appear to be able to return values.) But, I want the business rules to be able to look at HL7 messages; I've copied a simple when condition from an HL7 message router but the error log throws up <PROPERTY DOES NOT EXIST> ...... *HL7
Can we use Functions and Methods with multiple parameters and refer objects by reference as parameters inside Routing rule ?
How do we handle DB related workflows in Business Rules ? How can we perform Response object based handling in Business Rules ? Can we try by extending methods with Ens.Util.FunctionSet and pass in the Context object from the rule as a parameter for certain functions ? Can we split the Business Operations into methods that can be used from the routing rules and create the message route request flow ?
I'm not sure what the purpose of this is, but the Management Console causes the browser to refresh periodically. If you're in a form or an editor such as the DTL or Routing Rule editors, you may lose work unless you save frequently. This did not occur in Caché 2018 and earlier releases.
I've had a couple of incidents where I've created a number of rules in the DTL editor, answered the phone or stepped away for a few minutes, then come back to find any work since the last save erased.
I've noticed this in both 2019 and 2020 releases of IRIS.
I have a requirement to periodically poll a URL to fetch some XML data based on a list of query data, lets say every hour, and map what's returned to HL7 then send downstream, I mostly have everything contained within a business process and DTL but I'm lacking a way of invoking the process every X minutes,
The client has a prefence for as much as possible to be done via out of the box components in the standard HL7 model of "Service --> Process/Rule/DTL --> Operation" within the Web UI,
how can I check repeating XML fields in a rule? I want to search a repeating sub Element fields for one or more numbers. Subelement(*) returns the counter of the elements, but I expected by a () to search all fields.
We have a customer that is not able to accept HL7 result messages that are missing OBX:3.1. I have been trying to create a function that could return a boolean value of 0 if the message didn't meet the expectations of the function.
I am still trying to track down orphaned messages and have noticed that when we have Business Rules that send to a Business Process that some times there is an orphaned message that is generated as result of that send.
We are in the process of upgrading to 2023.1 for InterSystems Health Connect, and the Business Rule Engine editor is very difficult to use compared to 2022.1. It's difficult to scan over the rules as it all looks the same style with barely any distinction between rules, constraints, conditions, whens etc. There's also tonnes of whitespace, and searching on the page is hit and miss (using Ctrl + F) . I can see the previous editor is still available when you modify the URL, but I'm wondering if we can set it to be the default editor, and if this is something supported.
I have a use case where for new born I want to send HL7 messages to different business operation. I created the business rule but in condition I am struggling to put syntax something similar to this
I need to route a message synchronously to multiple targets using a routing rule.
In IRIS I built a general routing rule set, made up of a couple of rules. For one Rule in particular, and based on a common condition, I want to send the incoming message to 2 different targets. (no transformation is used)
I can select, in the single SEND action, multiple target names, or, I can create consecutive SEND actions, one after the other, each sending to their specific target.
After all these years of doing basic Ensemble work, I am just beginning to venture into using Cache Tables instead of either Data Lookup tables, or what I know of Outside SQL tables using JDBC. I have several Cache SQL tables that I am building for a project I am working on.
We have a situation where we want to detect and ignore documents/records at the earliest possible point based on certain criteria. We have an existing "CDA Preprocessor" in the workflow which is an XSL transform. This is what our contractors are planning to utilize to "filter" these documents. This doesn't really make sense to me. I see XSLT as a way to manipulate the contents of a document and filter certain peices of data. In my brain, I would use an Ensemble business rule to detect the criteria and route the document as necessary.
I created a record map and my DTL works fine. I would like to query one of the values in my input record mapped class. How would I do that? I've tried request.Field1, document.Field1 and can't see to get my rule to work. Any help would be appreciated. Thanks.
Awhile back the Developer community helped me with a situation I was having... How to loop through a Repeating Segment and Single Filed, example OBX().5, within a Business Process Rule and compare it against a Data Lookup table.
Well now I need to take it a step further. I need a way to loop through OBR() segment, and loop through OBR().4() and the subfield 4.1 and compare it to a Data Lookup table.
So I thought I could copy my existing function code and add another level to it, but its not returning what I would expect.
I wanted to know if there was a way to dynamic set a target in the rule send command. I have a assign property that uses the lookup table that I wanted return the name of the target value and then set the target to that property . When I set the target= _@tDestination there is a parser error.
I have a routing rule that calls some utility classmethods, but for some reason the compiled version insists on linking to a utility function in a different package.
The call to 'SendToEaling(HL7)' in isn't compiling to a call to the LNWTIEPackage as expected:
I have been struggling trying to understand "Response From" and "Response Target Config Names" as I am trying to track down Orphaned messages. I have noticed that when a Business Rule, or Business Process sends to a File Based Operation, there is always a NULL value response being returned. I am thinking these NULL values are causing some of the orphaned message problems we are seeing.
Is there anyway I an do a Constraint base on the file name? I only see things like source and document name and wanted to do routing base on file name?
I have a colleague that is trying to eliminate any HL7 transactions that have admit date/time of midnight from going to an downstream system within a routing rule. I have tried several different iterations of code trying to figure this out just in the routing editor. Without having to write an object script function is this possible?