9.3.2 C-FIND PROTOCOL

The information necessary for the C-FIND request and indication DIMSE-C primitives are conveyed in the C-FIND-RQ Message. The information necessary for the C-FIND response and confirmation DIMSE-C primitives are conveyed in the C-FIND-RSP Message. The information necessary for the C-FIND Cancel Request and Cancel Indication primitives are conveyed in the C-CANCEL-FIND-RQ Message.

9.3.2.1 C-FIND-RQ

The C-FIND-RQ Message contains fields as defined in Table 9.3-3. Each field shall conform to DICOM encoding and Value Representation as defined in PS 3.5. Fields are required as specified in the C-FIND service definition unless otherwise noted in Table 9.3-3. Fields not specified in the C-FIND service definition but present in Table 9.3-3 are required by the DIMSE-C protocol.

Table 9.3-3 C-FIND-RQ MESSAGE FIELDS

Message Field Tag VR VM Description of Field
Command Group Length (0000,0000) UL 1 The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID (0000,0002) UI 1 SOP Class UID associated with this operation.
Command Field (0000,0100) US 1 This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 0020H for the C-FIND-RQ Message.
Message ID (0000,0110) US 1 Implementation-specific value which distinguishes this Message from other Messages.
Priority (0000,0700) US 1 The priority shall be set to one of the following values: LOW = 0002H MEDIUM = 0000H HIGH = 0001H
Command Data Set Type (0000,0800) US 1 This field indicates that a Data Set is present in the Message. It shall be set to any value other than 0101H (Null).
Identifier (no tag) A Data Set which encodes the Identifier to be matched. See Section 9.1.2.1.4.

Note: Implementations which require compatibility to previous versions of this Standard must set the Command Data Set Type (0000,0800) Field to 0102H (Identifier).

9.3.2.2 C-FIND-RSP

The C-FIND-RSP Message contains fields as defined in Table 9.3-4 and in Annex C. Each field shall conform to DICOM encoding and Value Representation as defined in PS 3.5. Fields are required as specified in the C-FIND service definition unless otherwise noted in Table 9.3-4. Fields not specified in the C-FIND service definition but present in Table 9.3-4 are required by the DIMSE-C protocol.

Table 9.3-4 C-FIND-RSP MESSAGE FIELDS

Message Field Tag VR VM Description of Field
Command Group Length (0000,0000) UL 1 The even number of bytes from the end of the value field to the beginning of the next group.
Affected SOP Class UID (0000,0002) UI 1 SOP Class UID associated with the operation.
Command Field (0000,0100) US 1 This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 8020H for the C-FIND-RSP Message.
Message ID Being Responded To (0000,0120) US 1 Shall be set to the value of the Message ID (0000,0110) field used in associated C-FIND-RQ Message.
Command Data Set Type (0000,0800) US 1 This field indicates if a Data Set is present in the Message. This field shall be set to the value of 0101H (Null) if no Data Set is present; any other value indicates a Data Set is included in the Message.
Status (0000,0900) US 1 The value of this field depends upon the status type. Annex C defines the encoding of the status types defined in the service definition.
Identifier (no tag) A Data Set which encodes the Identifier that was matched. See Section 9.1.2.1.4.

9.3.2.3 C-CANCEL-FIND-RQ

The C-CANCEL-FIND-RQ Message contains fields as defined in Table 9.3-5. Each field shall conform to DICOM encoding and Value Representation as defined in PS 3.5. Fields are required as specified in the C-FIND service definition unless otherwise noted in Table 9.3-5. Fields not specified in the C-FIND service definition but present in Table 9.3-5 are required by the DIMSE-C protocol.

Table 9.3-5 C-CANCEL-FIND-RQ MESSAGE FIELDS

Message Field Tag VR VM Description of Field
Command Group Length (0000,0000) UL 1 The even number of bytes from the end of the value field to the beginning of the next group.
Command Field (0000,0100) US 1 This field distinguishes the DIMSE-C operation conveyed by this Message. The value of this field shall be set to 0FFFH for the C-CANCEL-FIND-RQ Message.
Message ID Being Responded To (0000,0120) US 1 Shall be set to the value of the Message ID (0000,0110) field used in associated C-FIND-RQ Message.
Command Data Set Type (0000,0800) US 1 This field indicates that no Data Set is present in the Message and shall be set to a value of 0101H.

9.3.2.4 C-FIND protocol procedures

The C-FIND procedures are initiated by the invoking DIMSE-service-user issuing a C-FIND request primitive. On receipt of the C-FIND request primitive the DIMSE-C protocol machine shall:

⎯ construct a Message conveying the C-FIND-RQ

⎯ send the Message using the P-DATA request service (See 8.1)

On receipt of a Message conveying a C-FIND-RQ the DIMSE-C protocol machine shall issue a C-FIND indication primitive to the performing DIMSE-service-user.

The DIMSE-C protocol machine shall:

⎯ accept zero or more C-FIND response primitives containing the status of Pending, issued by the performing DIMSE-service-user, followed by a single C-FIND response primitive containing the final status

⎯ for each C-FIND response primitive containing the Pending status the DIMSE-C protocol machine shall:

a) construct a Message conveying the (Pending) C-FIND-RSP

b) send the Message using the P-DATA request service (See 8.1)

⎯ for the C-FIND response primitive containing the final status the DIMSE-C protocol machine shall:

a) construct a Message conveying the (final) C-FIND-RSP

b) end the Message using the P-DATA request service (See 8.1)

On receipt of a Message conveying a C-FIND-RSP the DIMSE-C protocol machine shall:

⎯ if the Message indicates the status of Pending, issue a C-FIND confirmation primitive to the invoking DIMSE-service-user with a Pending status

⎯ if the Message indicates a final status, issue a C-FIND confirmation primitive to the invoking DIMSE-service-user with a final status, thus completing the C-FIND procedure

Note: The C-FIND procedures can be canceled at any time by the invoking DIMSE-service-user. This is accomplished by the invoking DIMSE-service-user issuing a C-CANCEL request primitive.

The performing DIMSE-service-user may return a C-FIND-RSP with the status of Failed or Refused before the complete C-FIND-RQ request Message has been completely transmitted by the invoking DIMSE-service-user (this is called an early failed response). Upon receipt of this Failed or Refused C-FIND-RSP the invoking DIMSE-service-user may terminate the Message before it is completely sent (i.e. set the Last Fragment bit to 1 in a Data PDV for this Message, see Annex F). Following this, it may invoke another operation or notification. It is a protocol violation for an invoking DIMSE-service-user to set the Last Fragment bit to 1 before a C-FIND-RQ Message has been completely transmitted if it has not received a Failed or Refused C-FIND-RSP to that request.

Note: When an Association is operating in asynchronous mode, it is possible for an invoking DIMSE-service-user to transmit several Messages before a response. Therefore, while sending a Message it may receive a response to a previously transmitted Message. In this case this response is not an early failed response because the related Message has already been sent.