instance level replication

dear all

I’m just a simple programmer, playing with python.

I’m day dreaming of a big repository of dicom.
What I’m thinking of, is whenever a new instance arrive, it’ll duplicated to a remote orthanc
Local copy is keeped.

I read https://orthanc.chu.ulg.ac.be/book/users/rest.html
also :

  1. about HighPerformanceAutoRouting.py :
    a. from line 71-74, the ‘queue’ will only contain instance IDs. is that correct ?
    b. if so , line 114 will only post instance IDs, is that correct ?
    c. if so, how to send a complete set of instance data (including image(s)) to remote server ?

  2. about ChangesLoop.py and RestToolbox.py :
    how to delete single record of change ?

Note :
Internet connection in my area is fast enough, but not 100% always on.
So I’m thinking of using RabbitMQ in the midle, that is :
A. At each Intranet :

  1. DICOM instance come,
  2. Get it (complete data set including image), pack (i.e using msg pack),
  3. Send to intranet RabbitMQ (the shovel will throw it to remote RabbitMQ whenever there is internet connection)

B. at the Hub site :

  1. Worker(s) consume RabbitMQ
  2. unpack it
  3. Post it to that big orthanc (or orthanc servers behind HAProxy)

Sincerely
-bino-

Hello,

Short answers to your questions:

1.a. Yes, the queue is filled with Orthanc identifiers of instances.
1.b. Yes, the consumer thread receives a set of Orthanc identifiers of instances. Then, the instances are sent to remote DICOM server one by one (one DICOM connection is opened for each instance). Obviously, one could create a pool of consumer threads to add concurrency.
1.c. What do you mean by “instance data”? At line 114, the full DICOM instance (including image) is sent.
2. This is explained here: https://orthanc.chu.ulg.ac.be/book/users/rest.html#deleting-patients-studies-series-or-instances

HTH,
Sébastien-

Dear Sir

Hello,

Short answers to your questions:

1.a. Yes, the queue is filled with Orthanc identifiers of instances.
1.b. Yes, the consumer thread receives a set of Orthanc identifiers of instances. Then, the instances are sent to remote DICOM server one by one (one DICOM connection is opened for each instance). Obviously, one could create a pool of consumer threads to add concurrency.
1.c. What do you mean by “instance data”? At line 114, the full DICOM instance (including image) is sent.
2. This is explained here: https://orthanc.chu.ulg.ac.be/book/users/rest.html#deleting-patients-studies-series-or-instances

Thankyou for your fast response.
I think I have to take deeper look.

Ooopppsss … the data transfer is done using DICOM protocol right ? not http rest

Sincerely
-bino-

Ooopppsss … the data transfer is done using DICOM protocol right ? not http rest

The protocol can be chosen to best fit your needs:

  • POST on “/modalities/…/store” will use DICOM protocol.

  • POST on “/peers/…/store” will use HTTP/HTTPS (only possible if the recipient is Orthanc).

  • You can also use DICOMweb STOW-RS to use HTTP/HTTPS, check the plugin: Orthanc - DICOM Server

Dear Sir.
Again, thankyou for your very prompt response
I really appreciate

Ah I don’t want to ruin this discussion group with my lame question.
Better for me to start make two VM of it and play with them.

If you wish to give an easy try with several instances of Orthanc communicating together (and if you run Linux), I would highly recommend you to use Docker instead of installing virtual machines: