Conditional DICOM Routing by Modality

A common requirement in medical imaging is to route DICOM files to different systems based on their type. For instance, you might need to send all CT scans to a primary PACS archive while routing MR scans to a specialized neurological workstation.

This tutorial guides you through creating a simple yet powerful workflow in Integration Host that automatically handles this routing logic without any code.

Tutorial video coming soon!

How to Route DICOM Files

This workflow uses one receiver to accept all incoming DICOM files and two senders, each with a filter to control which files are sent to their destination.

  1. Configure the DICOM Receiver
    Begin by adding a DICOM Receiver activity to your workflow. You'll want to set the Port (e.g., 104) and give your receiver an AE Title (e.g., ROUTER_SCP). To populate the binding tree for later steps, drag and drop a sample DICOM file onto the Message Template editor, which will instantly convert it to a user-friendly JSON structure.
  2. Configure the Sender for CT Scans
    Next, add a DICOM Sender activity that will handle the CT scans. Give it a name like "Send CT Scans to PACS_A" and enter the connection details (Host, Port, and AE Title) for your primary PACS archive. The Message Template will already be bound to the inbound message, which is what we want for relaying the file.
  3. Add a Filter for the CT Modality
    With the "Send CT Scans" activity selected, navigate to the Filters tab. Here you will add a new filter to ensure this activity only processes CT scans. Create a condition by dragging the ${Modality} field from the binding tree into the first box, selecting "Equals" as the operator, and typing "CT" into the final box.
  4. Configure and Filter the Second Sender
    Add a second DICOM Sender for your other destination, such as an MR workstation. After configuring its connection details, add a similar filter with the condition ${Modality} = "MR".
  5. Run and Test
    Finally, save and start the workflow. When you send a CT scan, the message logs will show it was successfully processed by the first sender and skipped by the second. Sending an MR scan will produce the opposite result, confirming your routing logic is working correctly.