Greetings! I seek some advice regarding my current project. I am in the process of setting up a remote imaging diagnostic center that utilizes Orthanc to receive DICOM images from grassroots hospitals. Many grassroots hospitals need to transmit DICOM images to the central platform. Without using Docker or Kubernetes, my current architecture design involves using Nginx for load balancing, multiple Orthanc services where one handles write operations and others handle read operations, sharing a single database, and employing object storage. I have two questions:
Is my architecture feasible? Could you please provide some suggestions?
What is the most suitable way for grassroots hospitals to transmit CT, DX, and MR DICOM images to the central platform via the internet?
What are some good methods to ensure the integrity of DICOM images received at grassroots levels and during transmission from grassroots to the central platform?
Your insights and guidance would be greatly appreciated.
Yes, your architecture is feasible and is the right way to do it. Here are a few links to sample setups for load-balancing and object-storage. These are Docker based setup but they should show you how to configure the services even if you are not using Docker.
We typically deploy a DICOMWeb forwarder in each grassroot hospital so you can use HTTP authentication and HTTPS encryption to make it secure.
The DICOM protocol does not provide any mechanisms for the receiver to check the integrity of data so your grassroot forwarder won’t be able to check the integrity of the data received from the modalities/local pacs.
When sending from the grassroot to the central Orthanc, if you use DICOMWeb STOW-RS at study level or the TransferAccelerator plugin, and if you do not get any error message, you have the guarantee that the study has been transmitted in full and written to disk in the central Orthanc.
If you use the DICOMWeb forwarder that is sending each instances individually, any instance that has not been transmitted to the central Orthanc will remain in the forwarder (and will be retried).
Thank you very much for your reply. Regarding the DICOMWeb forwarder, https://github.com/orthanc-team/dicom-web-forwarder, there seems to be a problem with this address and it cannot be opened. The access is 404.
In addition, if I want to deploy multiple Orthanc receiving instances, what should I do to support multiple reads and multiple writes?
Sorry, this should be fixed now (the repo was still private).
As soon as you use PostgreSQL or MySQL database, Orthanc supports multiple readers and writers. Note that we recommend using PostgreSQL since this is the Orthanc DB plugin that is the more advanced.