Question
· Apr 25, 2022

Send messages from Dicom Process to multiple Operations

Hello, good morning

First thank you for your time in reading and answering our question.

We have been reading, inquiring, researching about how to make multiple dispatches from 1 Process of type "DICOM.BP.QueryProcess" to several target Operations.

We need some help to further develop this use case, and some advice 🧭, examples or recommendations

Currently we are using the basic example, the one that includes Ensemble, and this has DICOM Process which has a property by which from Web Production we write to which Operation it sends our FIND/QUERY/RETRIEVE messages:

The circuit is shown graphically:

Being in the code the property a simple String:

So, the code is:

Parameter SETTINGS = "OperationDuplexName,[... otras settings que pudieran haber ...]";

/// This is the name of the operation providing storage
Property OperationDuplexName;

Being the property where we indicate the Operation with which we link this Process, called: "OperationDuplexName".

Which way, form, mechanism, means, or procedure could be elaborated, used, reused or constructed, so that a PROCESS of the type "DICOM.BP.QueryProcess", can have different destination operations?

 

Thank you very much for reading, answering and assisting us.

Thank you for your time

 

Specifically our use case is:
"Procesos.DICOM.VNAtoPACSImagenesMedicasv01r00" sends by default, the query to "Operaciones.DICOM.VNAtoPACSAPSSCCv01r00".
 
if the first invocation of the first RISPAC is not available, the flow must continue for the next one:
"Operaciones.DICOM.VNAtoPACSCHUIMIv01r00"

The same for the following:

"Operaciones.DICOM.VNAtoPACSHUGCDNv01r00"

 

We would need to somehow link our dicom Process with the 3 TCP dicom Operations:

How would you plan, build or perform it?

What mechanism would support us to send from 1 single process to 3 operations?

Which way, form, mechanism, means, or procedure could be elaborated, used, reused or built, so that a PROCESS of the type "DICOM.BP.QueryProcess", can have different target operations ?

 

We have read 💭 and searched on:

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY...

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY...

https://community.intersystems.com/post/how-implement-dimse-timeout-dico...

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?....

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?...

https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?...

 

 

🎯 Your indications, orders, explanations 🥋, support and recommendations are appreciated.

Best regards

Product version: HealthShare 2017.2
$ZV: Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2017.2.1 (Build 801_3_18358U) Tue Jul 24 2018 16:36:10 EDT
Discussion (1)1
Log in or sign up to continue

I'm not sure I understand the class examples you have listed, but there's a possibility that you may not need to do this in a class.

Ensemble / HealthShare has a couple different ways that you can send a process output to multiple operations. The first is if you're not using any form of data translation, you can send the output right from the BP configuration screen:

 

Under the Response Target Config Names, I've selected two different targets here, and you can see that the connectivity verifies this - but I'm sending the output to more than two targets! How can that be? Simple, you can also select different targets in the Ensemble Rule Editor - this can be handy if you wanted to apply two different DTL transformations to two different targets. My example is super-simple (as in I'm not applying different rules or DTLs per target) but with multiple Send directives we can specify multiple targets:

 

You can have different rules with different constraints going to different operations - but I just added a send directive to a sample ruleset to show how to configure multiple targets - and as you can see between the two screenshots how Ensemble is sending the data to 4 different targets in two different ways.

Hope this helps!