I'm looking at an issue where I need to grab an ID number from an external SQL table when it doesn't exist in a HL7 message, and then add it to the HL7 message.

I have built the logic within a BPL which checks for the lack of ID, and then pulls the ID from the SQL table (and storing its value using the context functionality within the BPL) however I am at a loss as to how I then take the ID and add it to the HL7 message before passing it to a router.

0 2
0 652

Hello,

We have a BPL that returns in Response several %Strings, Dates. When we try to add Array of Objects property to the Response we verified just before the BPL terminates the response object has correct values in all properties including the array. We checked the Count(). It appears that even array of String works correctly but we prefer to pass objects rather than strings.

0 2
0 562

Hello, I want to show a fellow DC member how to convert JSON file into HL7 message. I personally do not work with HL7. I set up a production with EnsLib.File.PassthroughService. It passes Ens.StreamContainer to BPL process. I call a DTL to transform StreamContainer to HL7 message. I run into an error:

ERROR <Ens>ErrBPTerminated: Terminating BP JSON2HL7 # due to error: ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''
> ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''

The code is in this GitHub repo:

0 2
0 721
Question
· Jun 6, 2024
API Response truncating?

I have an API that does not have all the data. Like it is truncated. Magic number of characters seems to be 163,280

I do an <assign>

context.RawBundle=##class(%DynamicObject).%FromJSON(context.FHIRResponse.Body)

The error does not happen when the response is < 163,280 chars. And when < 163,280 chars, it is a complete FHIR Bundle. Have anyone experienced this? If so, what is the resolution?

0 2
0 176

I created a custom class for a process that does some basic manipulation to an HL7 message. I'd like to be able to write some debugging to the process event log. How would I do that?

I've tried ##class(Ens.Util.Trace).WriteTrace("system","HOSP.IHE.PDQProcess","MessageHeaderHandler","Discarding input message")

but I get a runtime error when I try that. I know this is pretty basic stuff, but any help would be appreciated.

0 2
0 1K

Hi all, My first post. I hope I have created it correctly.

Our team is looking to increase the number of characters in our Ensemble 'Categories' for Services, Processes and operations.

We are doing this to better identify things like Vendor, Message type and integrated application names...

One of our team members thought his might increase processing overhead and a discussion ensued that was not resolved.

my thoughts...

0 2
0 309

IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2024.1 (Build 267_2U) Tue Apr 30 2024 16:06:39 EDT [HealthConnect:7.2.0-1.r1]

I have a use case where Epic is sending an A60 Allergy transaction is set at the Patient level, but we have a system called VIBE which needs the ADT at an Encounter level instead. Currently we store ADT information in a MS SQL database for years, and we are querying it to get the latest Account Number to insert into the ADT^A60 for VIBE.

0 2
0 173

I have a batch record mapper that reads a csv file and passes the message to a process that uses the EnsLib.MsgRouter.RoutingEngine and would like to pass the message to an operation that will output that as a XML file but so far been unlucky as the operation that I use , uses the EnsLib.EDI.XML.Operation.FileOperation which only works with the messages("BusinessOperation class for writing XML messages to a file.

0 2
0 1K
Question
· Apr 18
HL7 DTL formatting

I need a DTL to handle this.

Any ideas appreciated.

For all Prosthetics orders:
when ORC-1(Order Control) is "NW" (New Order), need to update OBR-18(Placer Field 1) based on PV1-2 (Patient Class) value.
assumption is that the selection logic is that all prosthetics orders with OBR-18 field is always blank.
Description :
If PV1-2 is I, insert I in OBR-18
If PV1-2 is O, insert O in OBR-18
If PV1-2 is E, insert O in OBR-18
If PV1-2 is P, insert O in OBR-18
If PV1-2 is R, insert O in OBR-18
If PV1-2 is B, insert O in OBR-18

0 2
0 85

Hello,

We would need to know the Ens.Response SourceConfigName to identify which Operation has raised an exception.

We have tried:

$$$LOGINFO("..%Process.%PrimaryResponseHeader.SourceConfigName..: "_..%Process.%PrimaryResponseHeader.SourceConfigName) //It outputs an empty string
 
$$$LOGINFO("response.SourceConfigName: "_response.SourceConfigName) //It generates an exception

We would need to get from an Ens.Response which body is null, its SourceConfigName:

0 2
0 413

I have a handful of EnsLib.HL7.MessageRouter sending an HL7 message to a single Business Process (Ens.BusinessProcess).

In the OnRequest method, I am declaring pRequest as EnsLib.HL7.Message

What I need to do is determine which HL7 Router sent any given request to my BusinessProcess.

To do this, I know that I need to fetch the SourceConfigName property from the Ens.MessageHeader of the Request, but I am not sure how (or if) I can fetch this data from within the OnRequest Method.

Does anyone have any pointers?

Bill Casey

0 2
0 446

Hi,

I've been working on a very basic Interoperability production in my computer. I followed one of the examples in the courses and created a TEST.FileRouterRoutingRule, but when trying to edit this rule, it takes me to the Rule Editor Login Page, where I can't get in (Not even with the _SYSTEM credentials) - Is this functionality unavailable in the community edition?

0 2
0 58
Question
· Oct 27, 2017
Recordmap within a BPL

I have a text file that is fixed width delimited and am using a BPL to process this file, ultimately performing a transform from the text file to an HL7 message. I created a DTL, mapping from the recordmap to the HL7. In my BPL, I am performing some loops and other logic (that all is working). My issue is what to do when I perform the Transform.

0 1
0 727
Question
· Jun 14, 2018
Single Row SQL.Snapshot

I have several stored procedures that when I execute them they will only return a single snapshot. In my BP I have been setting this to a Snapshot variable then looping using a WHILE through the snapshot variable just to get that single value.

Since it is only a single row, is there an easier way where I don't have to do a WHILE loop to pull the values out of that row? Can I call First Row or something like that to get me just the row into the Snapshot variable?

0 1
0 474

Hello,

I need to access the value of a setting I created (ex: name_BO) within the logic of my BP.

Property name_BO As %String(MAXLEN = "");

/// Additional Settings 
Parameter SETTINGS = "name_BO:Basic:selector?context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId}";

But the class is common and the production item names will change.

0 1
1 534

Hello, we have a couple of BPL processes. This works with a limited amount of messages but we run into issues when we process thousands of messages in a session. One BPL calls a Validation BPL process with async='False' and there is a response defined. The timeout is two seconds and that seems to be plenty of time for the validation process. I expected the calling process to wait for a response but that is not happening.

0 1
0 324

I have a process that I am trying to duplicate from SQL Integration Services (SSIS) into Ensemble so that the rest of my team can help support any issues that may happen.

This particular job creates multiple dictionary files, but for each one of the dictionary files it creates, it also creates a control file that tells the vendor what to process.

0 1
0 500

Hi all,

We're in the process of creating several courses for creating custom business components for productions. This includes custom business operations, BPL processes, and custom business services. Custom Business Operations and Custom Business Services are both aimed at software developers while BPL processes can be also be created by business analysts. What are some gotchas or best practices you've learned that you wish you knew when first building these components?

We'd love to include what you've learned into these courses so others can learn from them as well!

0 1
0 427

Hello,

I am trying to figure out if we can extend a business process in IRIS. My Use Case is that I am developing RESTful Interfaces and my each REST Interface needs to go through certain processes before getting to the actual action.

e.g. I have 2 REST Interfaces, GetPatient and GetEncounter. Both of these need to invoke "GetToken" Business Operation to go to the Authentication server to get an authentication token before they go ahead and hit the Business Operation to Get the data i.e. Patient or Encounter.

1 1
1 262

Hi everyone

I am new to the bpl diagram. I would like to add an if statement that checks whatever an object is null or not.

I guess that: condition='response.Content != null' would not be ok...

<if name='CheckObj' condition='response.Content != null' xpos='200' ypos='1700' xend='277' yend='2197' >

I tried to search for this information in the documentation but I didn't find any help.

Do you have any suggestions?

Thanks and best regards

Milena

0 1
0 312

In a Business Process (BPL) I noticed that if I 'm using a "scope" to handle errors then inside the "scope" when a "call" is used, the "request" and "response" action (i.e set for callrequest.prop = request.prop & response.prop = callrespones.prop does NOT work !
The result is that the values of those properties in the callrequest are nulls (I do see the properties names in the content of the callrequest message)

0 1
0 322