DICOM Messages are used to communicate information across the DICOM network. A DICOM Message is composed of a Command Set followed by a conditional Data Set. The Command Set indicates the operations and/or notifications that the requesting Application Entity (AE) wishes to have the accepting AE perform on or with the conditional Data Set.
Command Sets are made up of Command Elements, which contain encoded values for each field of the Command Set. The semantics for the Command Set are specified in the DIMSE protocol. Each element in a Command Set is made up of an explicit Tag, a Value Length, and a Value Field.
Within the Command Set, Elements are ordered by increasing Tag number. The Tag uniquely identifies an Element, and occurs only once in a Command Set. The requirements for Command Sets and Command Elements are defined in the DIMSE protocol.
An Element in a Command Set is made up of three fields; a Tag, a Value Length, and a Value Field.
Command Element Tag: |
Is an ordered pair of 16-bit unsigned integers that represents the Group Number followed by the Element Number. |
Value Length: |
Is a 32-bit unsigned integer that represents the explicit Length of the value. This is an even number of bytes. This does not include the length of the Command Element Tag or Value Length fields. |
Value Field: |
Is an even number of bytes that contains the Value or Values(s) of the Command Element. The Command Element's Value Representation (VR) determines the command type of Value(s) stored in this field. |
The Value Multiplicity (VM) specifies the number of Values that can be placed in the Value Field. When the VM is > 1, multiple Values can be stored within the Value Field. |
DICOM Application Entities use services that are provided by the DICOM Message Service Element (DIMSE). DIMSE specifies two sets of services:
DIMSE-C These operations are associated with composite SOP Classes and provide effective compatibility with previous versions of the DICOM Standard.
In LEADTOOLS, the following are DIMSE-C commands:
CStore
CFind
CGet
CMove
CCancel
CEcho
DIMSE-N These operations are associated with normalized SOP Classes and provide an extended set of operations and notifications.
In LEADTOOLS, the following are DIMSE-N commands:
NReport
NGet
NSet
NAction
NCreate
NDelete
When using DICOM Messages, AEs can serve in one of two roles:
1. Invoking DIMSE-service-user.
2. Performing DIMSE-service-user.
The invoking service-user sends command requests to the performing service-user. The performing service users performs the requested operation, and reports progress/status by sending command responses back to the invoking service-user.
The following is a list of DIMSE Services, which are supported in LEADTOOLS by the DIMSE-C and DIMSE-N commands:
C Store Request
C Store Response
C Find Request
C Find Response
C Get Request
C Get Response
C Move Request
C Move Response
C Cancel Request
C Echo Request
C Echo Response
N Event Report Request
N Event Report Response
N Get Request
N Get Response
N Set Request
N Set Response
N Action Request
N Action Response
N Create Request
N Create Response
N Delete Request
N Delete Response
C-STORE |
This service allows an invoking service-user to request the storage of Composite SOP Instance information by a peer service-user. |
C-FIND |
This service allows an invoking service-user to match a series of Attribute strings against the Attributes of the set of SOP Instances being handled by a peer service-user. This service will return a list of requested Attributes and their values for each match. |
C-GET |
This service allows an invoking service-user to fetch information for one or more Composite SOP Instances from a peer service-user. The information returned by the performing service-user is based on the Attributes supplied by the invoking DIMSE-service-user. |
C-MOVE |
This service allows an invoking service-user to move information for one or more Composite SOP Instances from a peer service-user, to a third party service-user. The information moved is based on the Attributes supplied by the invoking service-user |
C-ECHO |
This service allows an invoking service-user to verify end-to-end communications with a peer service-user. |
N-GET |
This service allows an invoking service-user to retrieve information from a peer service-user. |
N-SET |
This service allows an invoking service-user to modify information being handled by a peer service-user. |
N-ACTION |
This service allows an invoking service-user to request that a peer service-user perform a specified action. |
N-CREATE |
This service allows an invoking service-user to request that a peer service-user create an instance of a SOP Class. |
N-DELETE |
This service allows an invoking service-user to delete an instance of a SOP Class that is being handled by a peer service-user. |