Message Exchange

DICOM Messages are used to communicate information across the DICOM network. A DICOM Message is a DICOM Command Set, and can be followed by a conditional DICOM 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.

image\Command.gif

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.

image\ComEl.gif

 

Command Element Tag:

Is an ordered pair of 16-bit unsigned integers that represents the Group Number followed by 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:

COMMAND_C_STORE

COMMAND_C_FIND

COMMAND_C_GET

COMMAND_C_MOVE

COMMAND_C_CANCEL

COMMAND_C_ECHO

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:

COMMAND_N_REPORT

COMMAND_N_GET

COMMAND_N_SET

COMMAND_N_ACTION

COMMAND_N_CREATE

COMMAND_N_DELETE

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

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.