- A project to set up three Orthanc DICOM servers
- DICOM C-STORE SCP Client to send DICOM data to those servers

.
├── add_server.sh
├── data
│ ├── generate.py
│ ├── test.dcm
│ └── test_template.json
├── docker-compose.yml
├── media
│ ├── diagram modified.png
│ ├── DICOM_Instances.png
│ ├── sending_to_servers.png
│ └── specific_Instance.png
├── monitoring.log
├── README.md
├── requirements.txt
├── scripts
│ ├── monitor.py
│ └── send.py
└── servers
├── monitor_containers.sh
├── orthanc1.json
├── orthanc2.json
├── orthanc3.json
└── start_servers.sh
- Deploys multiple Orthanc servers (ORTHANC1, ORTHANC2, ORTHANC3) using docker compose file.
- A Python client (using pynetdicom) sends DICOM files to multiple servers.
- Uses REST API queries to inspect orthanc servers and inspect stored DICOM instances.
we can extend that that REST API and make a flask dashboard or something like that but I prefer The CLI as it's more flexible
- run
docker compose up -dthis will give you three preconfigured Orthanc servers on ports 8042, 8043, 8044 - craete a virtualenv and install requirements.txt
- then login to the orthanc servers
-
- Orthanc Servers:
ORTHANC1→ http://localhost:8042ORTHANC2→ http://localhost:8043ORTHANC3→ http://localhost:8044- orthanc:orthanc
make sure that any new servers you launch add them to send.py to make them visible and send DICOM to them
- first you need to genrate DICOM Images (.dcm)
- you can use ./data/generate.py to genrate dummy dcm Images but missing metadata will make requests fail
- so I got some actual dcm data from cancerimagingarchive
- you can use that data ./data/T1_TRA_SE-69134
- now we are ready to send some DICOM to Orthanc servers
- run the file send.py after configuring data paths and servers if you launched new ones

- status (0000) !success
- Inspecting DICOM Instances on a specific server
-
Inspecting a specific DICOM Instance
-
you can do some monitoring using monitoy_containers.sh this will give you live data about you containers
-
monitoring data will go into monitoring.log
- Implement a load balancing mechanism to distribute DICOM data efficiently.
- Enhance security by configuring authentication, encryption, and access control.
- Explore data replication or federation between servers to ensure consistency.
- Automate deployment and scaling using container orchestra

