Written by

Application Development Advisor – Clinical IT at Cigna
Question Cedric Daniels · Jun 3, 2019

Does Health Connect 2019.1 have a message "holding queue"?

I'm looking to see there is a way to create a holding queue in Ensemble.  I have a ORM message that is coming into the  Engine.   I want to convert that message into a ADT^A04.  Then send the ADT first and the Original ORM message behind it.  How can I hold the Original ORM before I send the ADT message before it?

Comments

Julian Matthews · Jun 3, 2019

Hi Cedric.

I think you should be able to achieve this using the routing rules by doing something like this: (Please ignore my blank condition in the example)

It should complete the first send (which is your transform to A04) and then it should send your source ORM message on the second send.

0
Cedric Daniels  Jun 3, 2019 to Julian Matthews

Thanks.  I'm going to try this and see if it works!

0
Sean Connelly  Jun 5, 2019 to Julian Matthews

It's worth mentioning that this will only work for the same target operation.

There are some downstream systems that require ADT and ORM messages to be sent on different ports. In this instance the messages end up on different queues and can be sent out of sequence.

0
Cedric Daniels  Jun 3, 2019 to Cedric Daniels

I tested this out, and it worked! This does what I need it to do. (did not know the Routing rules executed a full DTL before it goes to another operation(DTL). So by that logic, if the first transformation fails (for whatever reason) the second one will not execute?

0
Julian Matthews  Jun 4, 2019 to Cedric Daniels

I'm not too sure if that would be the case, but it's something worth trying out to see how the system reacts.

0
Alex Ostrynskyy  Jun 5, 2019 to Cedric Daniels

You're correct. If the first DTL fails, all following actions in the rule, such as your second 'send', will not be executed.

0
Rich Taylor  Jun 5, 2019 to Sean Connelly

If that is the case you can use BPL to create a business process with greater control over the orchestration.  You would set it up so that it  sends to each end point synchronously so that the first send has to happen before the second.  Of course if this were the case then the receiving side, with separate end points, would have to be sure that the messages stayed in order.  That is out of your control however.

0