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.