Home Applications workshop-iris-dicom-interop

workshop-iris-dicom-interop

InterSystems does not provide technical support for this project. Please contact its developer for the technical assistance.
5
1 reviews
0
Awards
413
Views
0
IPM installs
2
1
Details
Releases (2)
Reviews (1)
Issues
Articles (1)
๐Ÿงช Hands-on DICOM integration examples using InterSystems IRIS for Health and dcm4che simulator. Store, query, retrieve, and manage WorkLists with Docker.

What's new in this version

WorkList use case added

๐Ÿงช Simple DICOM Integration with InterSystems IRIS for Health + dcm4che Simulator

License Docker Ready VS Code Compatible Maintained InterSystems IRIS

This repository provides hands-on examples of DICOM integration using InterSystems IRIS for Health and the dcm4che DICOM simulator.

Youโ€™ll find:

  • A working IRIS production for handling DICOM messages
  • Tools to simulate common DICOM workflows (store, query, retrieve)
  • A sample WorkList scenario integrated with a MySQL database

Perfect for testing, learning, or building healthcare imaging integrations.


๐Ÿงฐ Requirements

To run this project, youโ€™ll need:


๐Ÿš€ Getting Started

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!


๐Ÿงญ Explore the IRIS Production

Open the DICOM production interface in your browser:

๐Ÿ‘‰ DICOM.Production
๐Ÿ” Credentials: superuser / SYS


๐Ÿ“ฅ Use Case 1: Receiving DICOM with Embedded PDF

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).

How to run it:

  1. Open a shell in the tools container:

    docker exec -it tools bash
    
  2. Generate a DICOM file with embedded PDF:

    ./pdf2dcm -f /shared/pdf/metadata.xml -- /shared/pdf/sample.pdf /shared/pdf/embeddedpdf.dcm
    
  3. Send it to IRIS:

    ./storescu -b DCM_PDF_SCP -c IRIS_PDF_SCU@iris:2010 /shared/pdf/embeddedpdf.dcm
    
  4. ๐Ÿ“จ Check the messages in IRIS:
    ๐Ÿ‘‰ Message Viewer


๐Ÿ” Use Case 2: Query / Retrieve (C-FIND / C-MOVE)

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.

Querying with C-FIND

  1. Open the tools container:

    docker exec -it tools bash
    
  2. Inspect a DICOM file:

    ./dcmdump /shared/dicom/d1I00001.dcm
    
  3. Create the DICOMDIR database:

    ./dcmdir -c /shared/DICOMDIR --fs-id SAMPLEDICOMS --fs-desc /shared/dicom/descriptor /shared/dicom
    
  4. Start the simulated archive:

    ./dcmqrscp --ae-config /shared/ae.properties -b DCM_QRY_SCP:3010 --dicomdir /shared/DICOMDIR
    
  5. Connect to IRIS:

    docker exec -it iris bash
    iris session iris
    
  6. Run the C-FIND:

    do ##class(DICOM.BS.QueryService).TestFind()
    

    ๐Ÿ‘‰ View results in QueryService Messages

Retrieving with C-MOVE

  1. Request a study using C-MOVE:

    do ##class(DICOM.BS.MoveService).TestMove()
    

    ๐Ÿ‘‰ Track the transfer:
    MoveService |
    DICOM Store In


๐Ÿ“‹ Use Case 3: WorkList Management (C-FIND + SQL)

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.

๐Ÿ›ข๏ธ Check the external MySQL WorkList DB

  1. Enter the MySQL container:

    docker exec -it mysql bash
    mysql --host=localhost --user=testuser testdb -p  # Password: testpassword
    
  2. View WorkList data:

    SELECT * FROM WorkList;
    

๐Ÿ“ก Request the WorkList using C-FIND

  1. Open the tools container:

    docker exec -it tools bash
    
  2. Send a WorkList query:

    ./findscu -b DCM_WL -c IRIS_WL@iris:1112 -m StudyDate=20250404
    

๐Ÿง  See how IRIS handled it

๐Ÿ‘‰ Check DICOM WL Find In Messages


๐ŸŒ Use Case 4: Store Document over the Web

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.

  1. Open the tools container:

    docker exec -it tools bash
    
  2. Send a DICOM image using STOW-RS:

    ./stowrs --url http://iris:52773/dicom/studies /shared/dicom/d1I00001.dcm
    
  3. In IRIS, check the received message in the DICOM REST Service Messages


๐ŸŽ‰ Youโ€™re All Set!

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!


๐Ÿ“š Learn More

Made with
Version
2.0.021 Apr, 2025
Category
Technology Example
Works with
InterSystems IRIS for Health
First published
25 May, 2022
Last edited
21 Apr, 2025
Last checked by moderator
26 Nov, 2024Works