Network

DICOM Service Classes

A DICOM service class is a contract. It says "if you're an SCP (Service Class Provider) for me, here's exactly what you must accept, how you must respond, and what errors you may return." The handful of service classes below cover the vast majority of clinical traffic; the long tail handles structured reports, print management, and vendor-specific workflows.

Verification — C-ECHO

The simplest service. C-ECHO is DICOM's ping: the SCU sends a command with no payload, the SCP responds. If it works, association negotiation succeeded and the pipe is open. Always run C-ECHO before troubleshooting any more complex service.

# DCMTK echoscu
echoscu -v -aec REMOTE_PACS -aet MY_AET remote.pacs.example 11112

Storage — C-STORE

The workhorse. The SCU pushes a DICOM object (an image, an SR, a waveform) to the SCP. Used by modalities sending to PACS, by routers forwarding studies, by anonymization proxies, by the last leg of a C-MOVE. Status 0000 means success; any other status code means some flavor of failure.

C-STORE — pushing an image
Imaging Device SCU
PACS SCP
A-ASSOCIATE-RQ Negotiate Presentation Contexts
A-ASSOCIATE-AC Accepted contexts returned
C-STORE-RQ Command + Data Set
C-STORE-RSP Status 0000 (Success)
A-RELEASE-RQ Close cleanly
A-RELEASE-RP
scu scp
A-ASSOCIATE-RQ Negotiate Presentation Contexts
scp scu
A-ASSOCIATE-AC Accepted contexts returned
scu scp
C-STORE-RQ Command + Data Set
scp scu
C-STORE-RSP Status 0000 (Success)
scu scp
A-RELEASE-RQ Close cleanly
scp scu
A-RELEASE-RP

Query — C-FIND

C-FIND asks "show me studies matching this criteria." The SCU sends an identifier (a Data Set with match keys), the SCP returns zero or more responses, each a Data Set matching the query. The query can be at Patient, Study, Series, or Image level, each with its own SOP Class UID and its own set of valid match keys.

Common match keys at Study level: Patient ID, Study Date, Accession Number, Modalities in Study, Study Description, Referring Physician.

Retrieve — C-MOVE vs C-GET

Two different answers to the same question: "send me these studies."

  • C-MOVE — SCU says "send study X to AE Title Y." SCP opens a new association to Y and C-STOREs the images there. Y must be pre-configured on the SCP as an allowed destination.
  • C-GET — SCU says "send study X back over this association." Simpler — no second connection to configure, friendlier through firewalls — but requires the SCP to support it, which many older PACS don't.
C-MOVE — retrieving studies
Workstation SCU
PACS SCP
Destination AE Move target SCP
C-FIND-RQ Query by Patient ID
C-FIND-RSP (multiple) Matching studies
C-MOVE-RQ Study UID + destination AET
C-STORE-RQ (per image) PACS pushes images to destination
C-STORE-RSP Each image acknowledged
C-MOVE-RSP Status: Success + completed count
w p
C-FIND-RQ Query by Patient ID
p w
C-FIND-RSP (multiple) Matching studies
w p
C-MOVE-RQ Study UID + destination AET
p d
C-STORE-RQ (per image) PACS pushes images to destination
d p
C-STORE-RSP Each image acknowledged
p w
C-MOVE-RSP Status: Success + completed count

C-MOVE firewall pain: the PACS opens a new TCP connection to the destination, typically using the destination's configured inbound port. Firewall rules must allow PACS → Destination on that port, which is backwards from how most network teams think about it. If a C-MOVE returns success but no images arrive, check the destination's side of the firewall.

Modality Worklist — C-FIND on a different SOP Class

MWL (Modality Worklist Management) is just C-FIND with SOP Class UID 1.2.840.10008.5.1.4.31. The SCU (a modality) queries the SCP (usually the RIS or PACS) for its scheduled work and gets back a list of Scheduled Procedure Steps — patient name, MRN, accession number, study description, scheduled start time. Without MWL, the tech has to type patient details in by hand, which is where 80% of patient-ID typos originate.

MPPS — Modality Performed Procedure Step

MPPS (N-CREATE / N-SET) lets a modality report to the RIS that it has started, continued, or completed a procedure. It is the billing trigger in most radiology workflows — not that your RIS will tell you this; you'll discover it the first time an MPPS outage results in claims not being dropped.

Storage Commitment

An asynchronous confirmation that a prior C-STORE was durably persisted. The SCU (the sender) asks the SCP (the PACS) "please confirm you have stored these SOP Instances." The SCP replies with N-EVENT-REPORT once it has committed the study to stable storage. Enterprise modalities use this to know when it's safe to delete local copies.

The long tail

Not all DICOM traffic is image movement. Other service classes in the standard:

  • Print Management (N-CREATE Film Session / Film Box / Image Box — yes, people still print)
  • Display System Management (queries + sets calibration)
  • Application Event Logging
  • Instance Availability Notification
  • Non-Patient Object Storage (hanging protocols, color palettes, CT protocols)
  • Unified Worklist and Procedure Step (Supplement 96 — the modern replacement for MWL + MPPS, slow adoption)

Explore further