9.1.4 C-MOVE SERVICE

The C-MOVE service is used by a DIMSE-service-user to match a set of Attributes against the Attributes of a set of composite SOP Instances maintained by a peer DIMSE-service-user, and retrieve all composite SOP Instances which match. It triggers one or more C-STORE sub-operations on a separate Association. It is a confirmed service.

9.1.4.1 C-MOVE parameters

See Table 9.1-4.

Table 9.1-4 C-MOVE PARAMETERS

DIMSE-C Parameter Name Req/Ind Rsp/Conf CnclReq/CnclInd
Message ID M U
Message ID Being Responded To M M
Affected SOP Class UID M U(=)
Priority M
Move Destination M
Identifier M U
Status M
Number of Remaining Sub-operations C
Number of Completed Sub-operations C
Number of Failed Sub-operations C
Number of Warning Sub-operations C

9.1.4.1.1 Message ID

This parameter identifies the operation. It is used to distinguish this operation from other notifications or operations that the DIMSE-service-provider may have in progress. No two identical values for the Message ID (0000,0110) shall be used for outstanding operations or notifications.

Notes: 1. Inclusion of this parameter in the confirmation was permitted in previous versions of this Standard but this mode of use is now retired. This parameter may be included in the confirmation but in such a case the invoking DIMSE-service-user should not attach any semantic significance to this parameter.

2. The Message ID (0000,0110) is recommended to be unique within the scope of an Association, to support debug procedures.

9.1.4.1.2 Message ID being responded to

This parameter specifies the Message ID (0000,0110) of the request/indication to which this response/confirmation applies.

9.1.4.1.3 Affected SOP class UID

For the request/indication, this parameter specifies the SOP Class of the Information Model for the retrieve. It may be included in the response/confirmation. If included in the response/confirmation, this parameter shall be equal to the value in the request/indication.

9.1.4.1.4 Priority

This parameter specifies the priority of the C-MOVE operation. It shall be one of LOW, MEDIUM or HIGH . This priority shall also be the priority used for all sub-operations.

9.1.4.1.5 Move destination

This parameter specifies the DICOM AE Title of the destination DICOM AE to which the C-STORE sub-operations are being performed.

9.1.4.1.6 Identifier

In the request/indication, this is a list of Attributes to be matched against the values of the Attributes of known composite SOP Instances of the performing DIMSE-service-user. The list of Attributes allowed and the rules for the construction are in PS 3.4.

Note: The Identifier is specified as U in the Response/Confirmation, but Services defined in PS 3.4 that use this primitive may impose mandatory or conditional requirements on its presence.

In the response/confirmation, this is a list of Attributes that provide status information about the C-MOVE operation. The list of Attributes allowed and the rules that define the usage of the Identifier are specified in PS 3.4.

9.1.4.1.7 Status

Indicates the status of the response. It may have any of the following values:

a) Success⎯This indicates that processing of the matches and all sub-operations are complete.

b) Pending⎯This indicates that procession of the matches and sub-operations is initiated or continuing.

c) Refused: Out of Resources⎯Indicates that processing of the C-MOVE has been terminated because it was out of resources. This may be the initial response to the C-MOVE or may be sent after a number of Pending statuses.

d) Refused: SOP Class Not Supported⎯Indicates that processing of the C-MOVE has been terminated because the SOP Class was not supported.

e) Refused: Move Destination Unknown⎯Indicates that processing of the C-MOVE has been terminated because the Move destination was unknown.

f) Cancel⎯Indicates that processing of the C-MOVE has been terminated due to a C-MOVE Cancel indication primitive.

g) Failed⎯Indicates that the C-MOVE operation failed at the performing DIMSE-service-user.

9.1.4.1.8 Number of remaining sub-operations

This specifies the number of remaining C-STORE sub-operations to be invoked by this C-MOVE operation. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

9.1.4.1.9 Number of completed sub-operations

This specifies the number of C-STORE sub-operations invoked by this C-MOVE operation which have completed successfully. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

9.1.4.1.10 Number of failed sub-operations

This specifies the number of C-STORE sub-operations invoked by this C-MOVE operation which have failed. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

9.1.4.1.11 Number of warning sub-operations

This specifies the number of C-STORE sub-operation invoked by this C-MOVE operation which generated Warning responses. It may be included in any response/confirmation and shall be included if the status is equal to Pending.

9.1.4.2 C-MOVE service procedures

The following C-MOVE service procedures apply to the invoking DIMSE-service user:

a) The invoking DIMSE-service-user requests a performing DIMSE-service-user to match an Identifier against the Attributes of all SOP Instances known to the performing DIMSE-service-user and generate a C-STORE sub-operation for each match. This request is made by issuing a C-MOVE request primitive to the DIMSE-service-provider. If the request is rejected by the DIMSE-service-provider, the following procedures do not apply.

b) At any time before receiving a C-MOVE confirmation primitive with status unequal to Pending, the invoking DIMSE-service-user may request the performing DIMSE-service-user to cancel the service by issuing a C-MOVE cancel request primitive to the DIMSE-service-provider.

c) The invoking DIMSE-service-user may receive C-MOVE confirmation primitives with status of Pending during the processing of the C-MOVE operation.

d) The invoking DIMSE-service-user receives a final C-MOVE confirmation primitive.

Note: in the above procedures, (c) may precede (b).

The following C-MOVE service procedures apply to the performing DIMSE-service-user:

a) When the performing DIMSE-service-user receives a C-MOVE indication from the DIMSE-service-provider it matches the Identifier against the Attributes of known composite SOP Instances and generates a C-STORE sub-operation for each match.

b) At any time following the C-MOVE indication, the performing DIMSE-service-user may receive a C-MOVE cancel indication.

c) If the C-MOVE cancel indication is received before the processing of the C-MOVE request has completed, then the C-MOVE operation is terminated; otherwise the following procedure does not apply.

d) The performing DIMSE-service-user issues a C-MOVE response with a status of Canceled to the DIMSE-service-provider to indicate that the C-MOVE has been canceled. The following procedures do not apply.

e) For each matching composite SOP Instance, the C-MOVE performing DIMSE-service-user initiates a C-STORE sub-operation on a different Association than the C-MOVE. In this sub-operation, the C-MOVE performing DIMSE-service-user becomes the C-STORE invoking DIMSE-service-user. The C-STORE performing DIMSE-service-user may or may not be the C-MOVE invoking DIMSE-service-user.

f) During the processing of the C-MOVE operation, the performing DIMSE-service-user may issue C-MOVE response primitives with a status of Pending.

g) When the C-MOVE operation completes (either in success or in failure), the performing DIMSE-service-user issues a C-MOVE response with the status set to either Refused, Failed, or Success to the DIMSE-service-provider.

The following C-MOVE service procedures apply to the DIMSE-service-provider:

a) When the DIMSE-service-provider receives a C-MOVE request primitive from the invoking DIMSE-service-user, it issues a C-MOVE indication primitive to the performing DIMSE-service-user.

b) When the DIMSE-service-provider receives a C-MOVE cancel request primitive from the invoking DIMSE-service-user, it issues a C-MOVE cancel indication to the performing DIMSE-service-user.

c) When the DIMSE-service-provider receives a C-MOVE response primitive from the performing DIMSE-service-user, it issues a C-MOVE confirmation primitive to the invoking DIMSE-service-user.

The performing DIMSE-service-user may return a C-MOVE response primitive with the status of Failed or Refused before the entire C-MOVE indication (Data Set) has been completely transmitted by the invoking DIMSE-service-user. A C-MOVE response primitive with the status of Success or Warning shall not be returned until the entire C-MOVE indication has been received by the performing DIMSE-service-user.

Notes: Such an occurrence of a "Failed" response is often called an early failed response.