WorkList use case added
This repository provides hands-on examples of DICOM integration using InterSystems IRIS for Health and the dcm4che DICOM simulator.
Youโll find:
Perfect for testing, learning, or building healthcare imaging integrations.
To run this project, youโll need:
Once youโve got Docker installed, you can get up and running with:
docker-compose build
docker-compose up -d
Thatโs it โ youโre ready to dive in!
Open the DICOM production interface in your browser:
๐ DICOM.Production
๐ Credentials: superuser
/ SYS
Description: A DICOM file containing a PDF report is received by IRIS. The system extracts metadata from the DICOM header (e.g. patient name, study ID) and stores both the PDF and metadata in another system (like an EHR or document store).
Open a shell in the tools container:
docker exec -it tools bash
Generate a DICOM file with embedded PDF:
./pdf2dcm -f /shared/pdf/metadata.xml -- /shared/pdf/sample.pdf /shared/pdf/embeddedpdf.dcm
Send it to IRIS:
./storescu -b DCM_PDF_SCP -c IRIS_PDF_SCU@iris:2010 /shared/pdf/embeddedpdf.dcm
๐จ Check the messages in IRIS:
๐ Message Viewer
Description: IRIS queries a PACS using a DICOM C-FIND to locate imaging studies, then uses C-MOVE to retrieve one of the matching documents.
Open the tools container:
docker exec -it tools bash
Inspect a DICOM file:
./dcmdump /shared/dicom/d1I00001.dcm
Create the DICOMDIR database:
./dcmdir -c /shared/DICOMDIR --fs-id SAMPLEDICOMS --fs-desc /shared/dicom/descriptor /shared/dicom
Start the simulated archive:
./dcmqrscp --ae-config /shared/ae.properties -b DCM_QRY_SCP:3010 --dicomdir /shared/DICOMDIR
Connect to IRIS:
docker exec -it iris bash
iris session iris
Run the C-FIND:
do ##class(DICOM.BS.QueryService).TestFind()
๐ View results in QueryService Messages
Request a study using C-MOVE:
do ##class(DICOM.BS.MoveService).TestMove()
๐ Track the transfer:
MoveService |
DICOM Store In
Description: An imaging device sends a C-FIND request to IRIS to retrieve scheduled studies. IRIS queries an external MySQL database, builds the WorkList response, and sends it back.
Enter the MySQL container:
docker exec -it mysql bash
mysql --host=localhost --user=testuser testdb -p # Password: testpassword
View WorkList data:
SELECT * FROM WorkList;
Open the tools container:
docker exec -it tools bash
Send a WorkList query:
./findscu -b DCM_WL -c IRIS_WL@iris:1112 -m StudyDate=20250404
๐ Check DICOM WL Find In Messages
Description: An imaging device sends an image over HTTP using a STOW-RS (HTTP POST) request to IRIS, which receives, extracts, and processes the DICOM image.
Open the tools container:
docker exec -it tools bash
Send a DICOM image using STOW-RS:
./stowrs --url http://iris:52773/dicom/studies /shared/dicom/d1I00001.dcm
In IRIS, check the received message in the DICOM REST Service Messages
You now have a fully working, simulated DICOM integration lab using IRIS for Health and dcm4che. Use it to learn, test, build prototypes โ and have fun doing it!