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.
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 planning on doing some maintenance in 2020, I was wondering if it is possible to run a query to get a log on when a DTL and/or Business Rules was called in HEALTHSHARE, the idea behind this is to do some cleaning and remove some clutter.
I am still pretty new to Ensemble, Cashé, or ObjectScript. My question is this how can I tell when a file was finished and read fully? Currently, I have an EnsLib.FilePassthroughService reads a file from a designated file path and moves it to an archive file path. I need to set up an alert or a notification that can tell me once the file has been read in its entirety and has been moved out of its current file path.
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'm working on some custom utility functions that I can utilize in Business Rules as well as other places. I saw this line in the docs:
For each function you wish to define, add a class method to your new function set class. There is no support for polymorphism, so to be precise, you must mark these class methods as final.
Cache for UNIX (IBM AIX for System Power System-64) 2018.1.3 (Build 414U) Mon Oct 28 2019 11:24:02 EDT [HealthShare Modules:Core:15.032.9026 + Linkage Engine:15.032.9026]
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.
I am receiving batched results in an EDIFACT file. I need to debatch and send individual HL7 out. I have built a DTL to read the first instance of a result from EDIFACT and that generates an ORU^R01 as desired, but I have no idea how to make the DTL loop and send multiple HL7 messages outbound.
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).
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]
Receiving HL7 messages from our EMR, and processing to send out to downstream system. These are SIU_S12 messages, with a custom ZOR segment added by the EMR to include order information. The purpose of including this segment is to allow us to only send messages to the vendor that contain a procedure ID that is included on the list of procedures desired by the vendor. These values are in a LUT with the procedure ID in the key field, and a value of 1.
I've been trying unsuccessfully to use a parameter function within a routing rule. I can see the function %GetParameter available in the WYSIWIG rule editor, but I cannot seem to get the inputs for it correct, e.g.
We have a customized doctype with iterated PIDgrp, so I have a rule that needs to evaluate the pv1:3.1 value to decide which operation the HL& message should go, so I debugged the value in the rule and it definitely should go to the when #2 but it just won't. so did I do anything wrong or it is just the InterSystems doesn't like the iteration value here? I only need to evaluate the first pv1:3.1
Is it possible to generate INFO level logging events from within a routing rule?
TRACE level events and debugging are easy enough, but we have a case where we have a rule where we want to log messages that are not routed for further processing in the event log as INFO events - in production tracing will be turned off, so TRACE level events won't be visible.
We are pretty new to Ensemble and we are considering on using a default setup for our production. Let me explain the situation. We have one sender that sends HL7 ADT messages to our system. We have 60+ other systems that need to recieve ADT messages. We where thinking on a few ways on how to do the setup.
How do I correctly call a EnsLib.HL7.MsgRouter.RoutingEngine class from the BPL?I can successfully call the BPL from the EnsLib.HL7.Service.TCPService, and I have the BPL created to delay then call the rule. And I set the context and the result location.
I'm trying to use the assign option within a ruleset. I can trace the value with no issues but when I try to assign the same value to a variable of Namespace I get an error. Ideally I would like to use a variable instead of repeating the Piece repeatedly throughout the rules.