Alex Ostrynskyy · Sep 20, 2019 go to post

To clarify, you have one inbound message from a service going to one process/routing rule with two sends in it. You've noticed that sometimes messages get sent not in the same order as they appear in the routing rule. 

If above is correct, try checking Force Sync Send in the process settings.

Generally, you'll likely have to write a BPL and use the delay action if you want to sleep/halt between sends. 

Alex Ostrynskyy · Sep 19, 2019 go to post

Jeffrey,

That's exactly what we did to offload message archiving to our DR server.

We created another namespace (R/W, non-mirrored) and mapped the following globals from the original namespace with the mirrored R/O database: 
EnsLib.*, EnsLib, EnsHL7.Segment, EnsHL7.Schema, EnsHL7.Description, EnsEDI.*, EnsEDI.X12.Schema, EnsEDI.X12.Description, EnsEDI.Schema, EnsEDI.Description, EnsEDI.ASTM.Schema, EnsEDI.ASTM.Description, Ens.MessageHeaderI, Ens.MessageHeaderD, Ens.MessageBodyI, Ens.MessageBodyD, CacheMsgNames, CacheMsg.

Then, we run the message archiving task in the other namespace without issues.

Alex Ostrynskyy · Jun 11, 2019 go to post

@Eduard Lebedyuk, the code you provided is correct, but it does not do a 24-hour calculation from the moment the purge task is started. Instead, it does a midnight-to-midnight calculation in UTC time.

Alex Ostrynskyy · Jun 6, 2019 go to post

If you are planning to implement an interface with Kafka, I suggest reading the following:

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…
https://community.intersystems.com/post/ensemble-rabbitmq-java-client-q…

When it comes to specific pain, there are just a lot of pieces to maintain compared to common interfaces, such as HL7, etc.
Also, if you plan to send a large volume of messages, you'll have to do that asynchronously. The problem with that is you may send 100 or even 1000 messages before you realize there is a connection or other problem. You'll have to think of a way to keep track of what messages have been sent successfully and which didn't, and requeue messages that have failed. Of course, if you are not worried about "losing" messages, that's not an issue.

Alex Ostrynskyy · Jun 5, 2019 go to post

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

Alex Ostrynskyy · Jun 3, 2019 go to post

Yes, it's possible to add the send where you want it.

You'll need to change your rule to look similar to this:

The problem with having two or more when blocks back-to-back is that they are bit misleading.   
You may assume that

when "condition 1"
    send
  when "condition 2"
    send

is the same as following pseudo code

if ("condition 1")
    send
  if ("condition 2")
    send 

when, in fact, it works at the following pseudo code

if ("condition 1")
    send
  else if ("condition 2")
    send

This means that when you have consecutive when blocks, one and only one when will be executed.
A workaround is to put each when block into its own rule.

P.S. I would split this routing rule in two separate routers and routing rules: one that sends messages only to EDM and one only to RIS. When you have a large environment, makes maintenance and a whole lot of other things easier in the future.

Alex Ostrynskyy · Aug 1, 2018 go to post

This typically means that the remote system has failed to send an HL7 ACK back within 30 seconds. If it is common for that system to take awhile to respond, you can increase "Response Timeout" from 30 sec to a higher value.

Alex Ostrynskyy · Jul 6, 2018 go to post

Your question is too broad to give a detailed answer. It's possible that you don't even need load balancing, or there is a better solution.

Maybe you could you tell us in details (wink) what's your setup and what problem you're trying to solve?

Alex Ostrynskyy · Jun 29, 2018 go to post

I'm guessing you're looking at the Production Configuration page. Try setting the IP Address of your operation, and it will show up in the Operations columns. Without the IP set, it will be in the Services column.

Alex Ostrynskyy · Oct 18, 2017 go to post

I would like to know when HealthShare 2017.2 is released, and I'm not talking about HealthShare Health Connect. Looking at the announcement history, it doesn't seem like HealthShare releases our announced here. Is there a plan to announce them in the future? 

Alex Ostrynskyy · Jun 13, 2017 go to post

Curious about everyone's thoughts about dynamic vs embedded SQL in terms of preference and performance?

Alex Ostrynskyy · Jul 29, 2016 go to post

Thank you for the online course! Very much needed.

The course videos below are not available. Getting an error "No playable video sources found":

WHAT IS FHIR?
FHIR VS. HL7V2, HL7V3, AND CDA
FHIR ARCHITECTURE

Also, it would be nice to get access to the custom code show in "FHIR IN HEALTHSHARE DEMONSTRATION", specifically, "Summit.BPL.V2ToFHIR." I'm sure many developers would like to know how to convert good old HL7v2 messages to FHIR resources using HealthConnect.