How does matching work for SOP Class UID in C-Find (Query/Retrieve)?

Viewed 568

I am confused about the role of SOP Class UID in QR Query C-Find.

  • In the C-Find request can I have SOP Class UID (0008,0016) empty?

  • In that case, supposed the query was on the IMAGE level, should that field be then populated in each response with the SOP Class UID of that image?

My experience with DCMTK is that it does not populate that field in C-Find response. But I am not sure if this is according to the standard, or a problem in DCMTK or elsewhere in my code which uses DCMTK QR.

3 Answers

You are asking about C-FIND request/response in Query/Retrieve Information Model.

With reference to Table C.6-4. Composite Object Instance Level Keys for the Patient Root Query/Retrieve Information Model in specifications, SOP Class UID is marked [O-Optional].

Table C.6-4 PS3.4 2021a - Service Class Specifications - C.6.1.1.5 Composite Object Instance Level

In the table:

  • R = Required (SCP must return value)
  • U = Unique Identifier (SCU must include this key in query; SCP must support match and return)
  • O = Optional (SCU may pass empty attribute to request a value. SCP may return value if supported; not mandatory)

But, the important is the note section at the bottom of the table:

Note

  1. SOP Class UID (0008,0016) is an optional key, but it is strongly recommended that it always be returned by all SCPs, if matching is requested.

Although it is optional, specifications strongly recommend to return it.

This is same for IMAGE level with both PATIENT ROOT and STUDY ROOT.

C.6.2.1.4 Composite Object Instance Level
Attributes for the Composite Object Instance Level of the Study Root Query/Retrieve Information Model are the same as the Attributes for the Composite Object Instance Level of the Patient Root Query/Retrieve Information Model described in Section C.6.1.1.5.
PS3.4 2021a - Service Class Specifications - C.6.2.1.4 Composite Object Instance Level

Please refer to this article for simple explanation.

Now, let us answer your questions. I am answering in context of IMAGE level as you are asking about SOP Class UID.

In the C-Find request can I have SOP Class UID (0008,0016) empty?

Yes; you can have any attribute (other than marked U) empty. Attributes marked R are always returned by SCP.

should that field be then populated in each response with the SOP Class UID of that image?

As mentioned above, this is optional. SCP may or may not populate (return) this attribute.

The SOP Instance UID is a mandatory return key for the Query SCP in an IMAGE-Level request. It must not be present in any request on any other level (PATIENT, STUDY, SERIES). The SOP Class UID is optional, but it is usually supported by an SCP. In many places in the Standard SOP Class- and Instance UID form a pair that uniquely identifies the object, and here the SOP Class UID is a required attribute. So not supporting it would significantly reduce the use scenarios for the SCP.

Since the background of querying for SOP Instance UID is usually: "Please give me a list of images belonging to this particular patient, study and series", it is very common to send it empty with the request. This instructs the SCP to fill in this attribute in its responses.

The documentation of DCMTK's Query/Retrieve SCP "dcmqrscp" does not list SOP Class UID (0008,0016) for the IMAGE level. Please note that support for this attribute is not required as others already explained.

Related