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.
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.
When testing a new routing rule, one frequently encountered problem is that messages that seem like they should be getting routed to a target component are not getting routed. This article aims to describe how to determine why the message didn't get routed.
1. Check the Event Log for the router to make sure there wasn't an error evaluating the rule or running any transformations referenced by the rule. If there was, debug that error first.
Ran into an issue this morning, that I am having a hard time trying to track down what might have caused the issue. We have a Business Rule that sends HL7 ADT to a Business Process that inserts the data into a MS SQL Server using a Custom Business Operation (SQL Outbound Adapter).
I have a rule to throw a message when there is an error. I want to prevent send the email if the origin of the error is the API to send the email
This is my rule
Now, If there is any error in any process, it works, but if there is an error in MyProduct.BO.SendEmail it is trying to send the error again, and it is a infinite loop.
Is there any way to check what is the origin and don't process if the origin is MyProduct.BO.SendEmail?
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.
Thing is, in rule 2, the operation succeeds, the message reachs BO HL7, but in rule 1 it does not go through. In rule 1, I have two different conditions, but they are linked by an OR and one of the conditions is simply IF 1=1.
Do you guys have any clue on why rule 1 does not reach BO HL7?
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 want to check patient class in multiple rules, since the message structure is different to reach out to patient class value, i created a method to get the patient class and put it in a variable. This variable i can use in multiple rules. But somehow function is not able to read the HL7 message. Any tips.
Within a DTL is it possible to access and update the Message Header properties of an EnsLib.HL7.Message?
Currently we have multiple EMR Services for each environment sending to 1 Business Process to Normalize the data, then it is sent to another Business Process to route the data.
We are trying to filter message created using custom xml class in a business rule.
HL7 ORU Result messages are converted to custom xml messages with a list properties .Result ORU converted to OrderResultMsg , which contains property Orders as list of Order which contains ResultStatus . Please see below the class extract. We are trying to access the ResultStatus property to filter non-final results via business rule.
Is there a difference in outcome between the two screengrabs below?
In both cases, when certain conditions are met, a transformation is called and the output sent on to two targets. In the first case we surmise the transformation is called twice, and the output of the first run sent to the first target, the output of the second run to the second target. In the second case we surmise the transformation is called once, and the output duplicated and sent to the two targets.
Had an issue on Friday where a vendor added an additional field in the middle of a row of one of our record maps. This threw the mapping off when I take the record and try to map it into HL7 and caused massive amounts of errors in our EMR because the data was wrong.
Is there a way that I can add validation on the Business Service to say if the fields are off to fail, stop, and alert on the Business Service?
I know there is the ability to enable Rule Sets within a Business Rule by dates, but what about Sub-Rules or just Rules in general? We have an upcoming go-live that is at Midnight and I was wondering if there was a way I could script out enabling rules/sub-rules within a Business Rule to save my team some time and headaches. Or is the best practice is just to create another rule for the go-live, then move it over once we are live...
I am trying to transform CSV file into SDA3 format by using Studio code. I am getting "No Stream contained in StreamContainer Request" Error at the business operation after converting CSV file to SDA3 Format but not able to generate the file in business operation
https://www.youtube.com/embed/SZBRm4rtue8 [This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]
I try to realize a simple test in a BPL and i have this kind of error message. I don't understand why ! I have a simple CSV file in input with 3 columns (Nom, Prenom, Age) and a rule based on the age