Skip to content

mahmoudnasser1561/DICOM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Transfer DICOM

description:

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

structure :

.
├── 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

Features:

  • 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

how it works:

  • run docker compose up -d this 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
you can also launch more by utilizing the bash script start_servers.sh
just run the file with ./start_servers.sh and give add an incremental number from 4 forwad
ps: ./start_servers.sh 4

make sure that any new servers you launch add them to send.py to make them visible and send DICOM to them

Interaction with the servers:

  • 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

Interacting with Orthanc servers

  • run the file send.py after configuring data paths and servers if you launched new ones
  • sending_to_servers
  • status (0000) !success

Uses REST API queries to inspect stored DICOM instances and query your servers.

DICOM_Instances

  • Inspecting DICOM Instances on a specific server

specific_Instance

  • 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

Next Steps

  • 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

About

deploy three Orthanc servers and can be increased using a ready to use bash file to send DICOM data to them ,log their metrics and inspect them using REST API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors