DIMSE servicesevery command on one page
DIMSE is the set of commands that DICOM devices send each other inside an association. There are twelve of them. This page lists each one with its command field, what it carries and who uses it, plus the command elements and status codes you meet in logs and traces.
73 rows
DIMSE-C services: composite objects and queries
Used for images, structured reports and other composite SOP Instances, and for searching and retrieving them. Every service except C-CANCEL is confirmed: the request gets a response.
| Service | Command Field | What it does | Request carries | Response carries | Used by |
|---|---|---|---|---|---|
C-STORE | 0001 request, 8001 response | Sends one composite SOP Instance (an image or another object) to the peer for storage. | The SOP Instance as a data set. Command elements: Affected SOP Class UID, Affected SOP Instance UID, Priority. Optionally the Move Originator AE and Message ID. | Status only: 0000, a warning (Bxxx) or a failure (A7xx, A9xx, Cxxx). | Storage service class. Also the sub-operations of C-MOVE and C-GET. |
C-FIND | 0020 request, 8020 response | Matches a set of attributes against the instances the peer holds and returns the matches. | An Identifier: matching keys with values, and return keys left empty. Priority is mandatory. | One response per match with status FF00 (or FF01) and an Identifier, then a final response with 0000 and no Identifier. | Query/Retrieve, Modality Worklist, and the UPS services (Pull, Watch, Query). |
C-GET | 0010 request, 8010 response | Finds matching instances and retrieves them, with C-STORE sub-operations on the same association. | An Identifier with the unique keys of what to retrieve. Priority is mandatory. | Optional pending responses (FF00) with the counts of remaining, completed, failed and warning sub-operations, then a final response. | Query/Retrieve. |
C-MOVE | 0021 request, 8021 response | Finds matching instances and has the peer send them to a named AE, with C-STORE sub-operations on a separate association. | An Identifier, plus the Move Destination AE title (0000,0600). Priority is mandatory. | Optional pending responses (FF00) with the sub-operation counts, then a final response. Cancel, failure and warning responses list the failed instances. | Query/Retrieve. |
C-ECHO | 0030 request, 8030 response | Verifies end-to-end communication with the peer. | Nothing: no data set. Just the Affected SOP Class UID (Verification). | Status only, normally 0000. | Verification service class. |
C-CANCEL | 0FFF (request only) | Asks the peer to stop a C-FIND, C-GET or C-MOVE that is still running. It is C-CANCEL-FIND, C-CANCEL-GET or C-CANCEL-MOVE depending on the operation. | Message ID Being Responded To, set to the Message ID of the operation to stop. No data set. | No response of its own. The stopped operation ends with status FE00 (cancel). | Query/Retrieve and the other C-FIND users. |
No rows match the filter in this table.
The Command Field of a response is the request value with bit 15 set: 0001 gives 8001, 0020 gives 8020. C-CANCEL has no response value.
DIMSE-N services: managed objects
Used for managed SOP Instances that are created, changed and queried over time, such as a performed procedure step, a storage commitment request or a film session. The request names its target with the Requested SOP Class UID and Requested SOP Instance UID, except N-CREATE and N-EVENT-REPORT, which use the Affected ones.
| Service | Command Field | What it does | Request carries | Response carries | Used by |
|---|---|---|---|---|---|
N-CREATE | 0140 request, 8140 response | Asks the peer to create a new managed SOP Instance and register its identity. | Affected SOP Class UID (mandatory), Affected SOP Instance UID (optional: the peer assigns one if it is left out), an Attribute List (optional). | Status. On success it returns the Affected SOP Instance UID if the sender did not supply one, and optionally the complete Attribute List that was assigned. | Modality Performed Procedure Step, Instance Availability Notification, Print Management, UPS Push. |
N-SET | 0120 request, 8120 response | Asks the peer to modify attribute values of a managed SOP Instance. | Requested SOP Class UID and Instance UID, and a Modification List (mandatory). | Status, and optionally the Attribute List with the values that were changed. | Modality Performed Procedure Step, Print Management, UPS Pull. |
N-GET | 0110 request, 8110 response | Retrieves attribute values from a managed SOP Instance. | Requested SOP Class UID and Instance UID, and optionally an Attribute Identifier List (0000,1005) to limit what is returned. No data set. | Status and, on success, the Attribute List with the values. | Modality Performed Procedure Step (retrieve), Print Management (Printer and Print Job), UPS. |
N-ACTION | 0130 request, 8130 response | Asks the peer to perform an action on a managed SOP Instance. | Requested SOP Class UID and Instance UID, the Action Type ID (0000,1008, mandatory) and optionally Action Information. | Status and, optionally, an Action Reply. | Storage Commitment (Action Type 1), Print Management (print a film box), UPS (change state, subscribe, request cancel). |
N-DELETE | 0150 request, 8150 response | Asks the peer to delete a managed SOP Instance and de-register it. | Requested SOP Class UID and Instance UID. No data set. | Status only. | Print Management (film session and film box). |
N-EVENT-REPORT | 0100 request, 8100 response | Reports an event on a managed SOP Instance to the peer. In the services listed here it is the SCP that reports to the SCU. | Affected SOP Class UID and Instance UID, the Event Type ID (0000,1002, mandatory) and optionally Event Information. | Status and, optionally, an Event Reply. | Storage Commitment (Event Type 1 success, 2 failures), MPPS notification, Print Management (Printer and Print Job), UPS Event. |
No rows match the filter in this table.
PS3.4 notes that the Instance Availability Notification is called a notification, but "is in fact performed through Operations rather than Notifications": it is an N-CREATE, not an N-EVENT-REPORT.
Which service class uses which DIMSE service
Taken from the DIMSE Service Group table of each service class in PS3.4. A service class can have several SOP Classes, and each SOP Class uses some of the services listed here.
| Service class | DIMSE services | Notes |
|---|---|---|
| Verification | C-ECHO | Every DIMSE implementation that accepts associations must accept it as SCP (PS3.2). |
| Storage | C-STORE | One SOP Class per object type, such as CT Image Storage. |
| Query/Retrieve | C-FIND, C-MOVE, C-GET, C-CANCEL | C-MOVE and C-GET trigger C-STORE sub-operations, so the SCP of Query/Retrieve acts as Storage SCU. |
| Basic Worklist Management (Modality Worklist) | C-FIND | The modality is the SCU and the worklist provider the SCP. |
| Modality Performed Procedure Step | N-CREATE, N-SET | Two companion SOP Classes add N-GET (retrieve) and N-EVENT-REPORT (notification). N-CREATE may only carry IN PROGRESS. |
| Storage Commitment Push Model | N-ACTION, N-EVENT-REPORT | The SCU sends N-ACTION; the SCP answers with N-EVENT-REPORT, on the same or a different association. |
| Instance Availability Notification | N-CREATE | Sent by the holder of the images to tell another system they are available. |
| Print Management | N-CREATE, N-SET, N-GET, N-ACTION, N-DELETE, N-EVENT-REPORT | Spread over the Film Session, Film Box, Image Box, Printer and Print Job SOP Classes. |
| Unified Procedure Step (UPS) | C-FIND, N-CREATE, N-GET, N-SET, N-ACTION, N-EVENT-REPORT | Split over the UPS Push, Pull, Watch, Event and Query SOP Classes. |
No rows match the filter in this table.
Command elements you see in a trace
Every DIMSE message starts with a command set of elements in group 0000. It is always encoded as Implicit VR Little Endian, with the elements in ascending tag order.
| Tag | Name | Meaning |
|---|---|---|
(0000,0000) | Command Group Length | Number of bytes of the rest of the command set. |
(0000,0002) | Affected SOP Class UID | The SOP Class the operation works on. |
(0000,0003) | Requested SOP Class UID | The SOP Class of the instance an N-GET, N-SET, N-ACTION or N-DELETE addresses. |
(0000,0100) | Command Field | Which DIMSE operation this is: 0001 C-STORE-RQ, 0010 C-GET-RQ, 0020 C-FIND-RQ, 0021 C-MOVE-RQ, 0030 C-ECHO-RQ, 0100 N-EVENT-REPORT-RQ, 0110 N-GET-RQ, 0120 N-SET-RQ, 0130 N-ACTION-RQ, 0140 N-CREATE-RQ, 0150 N-DELETE-RQ, 0FFF C-CANCEL-RQ. Responses add 8000. |
(0000,0110) | Message ID | Identifies a request. Must be unique among outstanding operations. |
(0000,0120) | Message ID Being Responded To | In a response, the Message ID of its request. In a C-CANCEL, the Message ID of the operation to stop. |
(0000,0600) | Move Destination | AE title that receives the C-STORE sub-operations of a C-MOVE. |
(0000,0700) | Priority | 0002 low, 0000 medium, 0001 high. |
(0000,0800) | Command Data Set Type | 0101 means no data set follows; any other value means a data set is included. |
(0000,0900) | Status | Outcome of the operation, see the status table below. |
(0000,0901) | Offending Element | With a Cxxx status, the elements in which the error was found. |
(0000,0902) | Error Comment | Free-text description of the error. |
(0000,0903) | Error ID | Optional application-specific error code. |
(0000,1000) | Affected SOP Instance UID | The SOP Instance the operation worked on or created. |
(0000,1001) | Requested SOP Instance UID | The SOP Instance an N-GET, N-SET, N-ACTION or N-DELETE addresses. |
(0000,1002) | Event Type ID | Which event an N-EVENT-REPORT reports. Values are defined by the SOP Class. |
(0000,1005) | Attribute Identifier List | The attributes an N-GET asks for. |
(0000,1008) | Action Type ID | Which action an N-ACTION requests. Values are defined by the SOP Class. |
(0000,1020) | Number of Remaining Sub-operations | C-GET and C-MOVE: C-STORE sub-operations still to do. |
(0000,1021) | Number of Completed Sub-operations | C-GET and C-MOVE: sub-operations that succeeded. |
(0000,1022) | Number of Failed Sub-operations | C-GET and C-MOVE: sub-operations that failed. |
(0000,1023) | Number of Warning Sub-operations | C-GET and C-MOVE: sub-operations that gave a warning. |
(0000,1030) | Move Originator AE Title | In a C-STORE sub-operation: the AE that issued the C-MOVE. |
(0000,1031) | Move Originator Message ID | In a C-STORE sub-operation: the Message ID of the C-MOVE request. |
No rows match the filter in this table.
Status codes
The Status in (0000,0900) falls into one of five classes. The values 01xx and 02xx are reserved by DICOM and mean the same in every service. Axxx, Bxxx and Cxxx are assigned by a service class in PS3.4 (or by an implementation) and are listed in that service's section.
| Status | Class | Meaning |
|---|---|---|
0000 | Success | The operation completed. |
FE00 | Cancel | Matching or sub-operations were stopped by a C-CANCEL. |
FF00 | Pending | More responses follow. For a C-FIND this response carries a match. |
FF01 | Pending | C-FIND only: more follow, and one or more optional keys were not supported. |
0001, Bxxx | Warning | Done, with a deviation. B000 on a C-STORE is coercion of data elements, on a C-MOVE or C-GET it means some sub-operations failed. |
0107 | Warning | Attribute list error: some attributes were not recognized. |
0116 | Warning | Attribute value out of range. |
Axxx, Cxxx | Failure | Class-specific failures. A7xx out of resources, A801 move destination unknown, A9xx data set does not match the SOP Class, Cxxx cannot understand or unable to process. |
0105 | Failure | No such attribute. |
0106 | Failure | Invalid attribute value. |
0110 | Failure | Processing failure. |
0111 | Failure | Duplicate SOP Instance. |
0112 | Failure | No such SOP Instance. |
0113 | Failure | No such event type. |
0114 | Failure | No such argument. |
0115 | Failure | Invalid argument value. |
0117 | Failure | Invalid SOP Instance. |
0118 | Failure | No such SOP Class. |
0119 | Failure | Class-instance conflict. |
0120 | Failure | Missing attribute. |
0121 | Failure | Missing attribute value. |
0122 | Failure | Refused: SOP Class not supported. |
0123 | Failure | No such action type. |
0124 | Failure | Refused: not authorized. |
0210 | Failure | Duplicate invocation. |
0211 | Failure | Unrecognized operation. |
0212 | Failure | Mistyped argument. |
0213 | Failure | Resource limitation. |
No rows match the filter in this table.
The classes are defined in PS3.7 Annex C: success 0000, warning 0001, Bxxx, 0107 or 0116, failure Axxx, Cxxx, 01xx (except 0107 and 0116) or 02xx, cancel FE00, pending FF00 and FF01. Implementations may only use the values listed. An SCU must treat any code inside a listed range as that failure.
Glossary
- DIMSE
- DICOM Message Service Element. The commands (C- and N- services) that two application entities send each other inside an association.
- DIMSE-C
- The composite services: C-STORE, C-FIND, C-GET, C-MOVE, C-ECHO. They work on composite SOP Instances such as images.
- DIMSE-N
- The normalized services: N-CREATE, N-SET, N-GET, N-ACTION, N-DELETE, N-EVENT-REPORT. They work on managed SOP Instances such as a procedure step.
- Command set
- The group 0000 elements that start every DIMSE message. It names the operation, the SOP Class and the message ID, and says whether a data set follows.
- Data set
- The object that follows the command set when the message carries one: an image, an identifier, an attribute list.
- Identifier
- The data set of a C-FIND, C-GET or C-MOVE: the keys to match, or the values that matched.
- Composite vs normalized
- A composite SOP Instance, such as an image, has a fixed content and is stored or queried as a whole. A normalized instance, such as a procedure step, is created and then changed or queried in parts.
- Sub-operation
- One C-STORE that a C-GET or C-MOVE performs on behalf of the request. The responses count them.
Summary
- There are twelve DIMSE messages in two families. DIMSE-C:
C-STORE,C-FIND,C-GET,C-MOVE,C-ECHOandC-CANCEL. DIMSE-N:N-CREATE,N-SET,N-GET,N-ACTION,N-DELETEandN-EVENT-REPORT. - A response Command Field is the request value plus
8000.C-CANCELhas no response, and the stopped operation ends withFE00. (0000,0800)is0101when no data set follows. Every response has a Status in(0000,0900):0000success,FF00pending,Bxxxwarning, anything else a failure.- C-MOVE and C-GET both run C-STORE sub-operations: C-MOVE on a separate association to a named AE, C-GET on the same association.
- The N-services address an instance with the Requested UIDs, apart from N-CREATE and N-EVENT-REPORT. Which services a device supports, and in which role, is in its Conformance Statement.
Common questions
What is DIMSE?
DIMSE stands for DICOM Message Service Element. It is the set of commands, defined in PS3.7, that DICOM devices send each other inside an association: C-STORE to send an image, C-FIND to search, N-CREATE to create a procedure step and so on. The association itself is set up with the upper layer services of PS3.8.
What is the difference between DIMSE-C and DIMSE-N?
DIMSE-C services work on composite SOP Instances, such as images, and are used to store, find and retrieve them. DIMSE-N services work on normalized, managed SOP Instances, such as a performed procedure step or a storage commitment request, which are created and then read, changed or acted on. N-CREATE, N-SET, N-GET, N-ACTION, N-DELETE and N-EVENT-REPORT are the normalized services.
What are the Command Field values?
C-STORE 0001, C-GET 0010, C-FIND 0020, C-MOVE 0021, C-ECHO 0030, N-EVENT-REPORT 0100, N-GET 0110, N-SET 0120, N-ACTION 0130, N-CREATE 0140, N-DELETE 0150 and C-CANCEL 0FFF. A response has the same value with bit 15 set, so C-STORE-RSP is 8001 and N-CREATE-RSP is 8140.
Which DIMSE services does a Modality Performed Procedure Step use?
N-CREATE, to start the step with the status IN PROGRESS, and N-SET, to finish it with COMPLETED or DISCONTINUED. Two companion SOP Classes add N-GET, to read a step back, and N-EVENT-REPORT, to notify a system about it.
Why is the Instance Availability Notification an N-CREATE?
Despite its name, PS3.4 says the notification "is in fact performed through Operations rather than Notifications". The sender creates a new Instance Availability Notification SOP Instance on the receiver with an N-CREATE. An N-EVENT-REPORT is a different thing: an event reported on an object that already exists, as in storage commitment.
What does a Cxxx status mean?
It is a class-specific failure of the kind "cannot understand" or "unable to process". The message can carry an Offending Element list (0000,0901) naming the elements where the error was found, and an Error Comment (0000,0902) with a text. The service class in PS3.4 says which code in the range applies, and an SCU has to treat any code inside the range as that failure.
How do I see which DIMSE services a device supports?
In its DICOM Conformance Statement, which lists for each Application Entity the services it supports and whether it is SCU or SCP, and has a section on the status codes it sends and how it reacts to them. The Conformance Statement lesson shows where to look.