Search code examples
dicomdcmtk

DCMTK findscu returns multiple results when one is expected


I am trying to run a c-move to get a RTDOSe from a given RTPlan, first I tried to find the rtdose that references my rtplan. I expected that result to be a single item but I am getting multiple items. Here is my find scu:

findscu -v -aet DCMTK -aec VMSDBD1 -S -k "0008,0052=IMAGE" -k "0008,0016=1.2.840.10008.5.1.4.1.1.481.2" -k "0020,000D=1.2.xxx.xxx.71.1.xxx173684671.xxxx20.20160817145909" -k "(300c,0002)[0].ReferencedSOPInstanceUID=1.2.xxx.xxx.71.5.xxxx73684671.xxxx31.2016092318xxxx" xx.xx.xx.20 5678 

I get a result like:

W: Find Response: 1 (Pending)
(...)
W: Find Response: 2 (Pending)

I: ===================== INCOMING DIMSE MESSAGE ====================
I: Message Type                  : C-FIND RSP
I: Message ID Being Responded To : 1
I: Affected SOP Class UID        : FINDStudyRootQueryRetrieveInformationModel
I: Data Set                      : none
I: DIMSE Status                  : 0x0000: Success
I: ======================= END DIMSE MESSAGE =======================
I: Releasing Association

Question 1: why am I getting multiple results instead of the one dose that references the RTpLAN ?

Question 2: after replacing findscu by movescu I get an error about the syntax:

"(300c,0002)[0].ReferencedSOPInstanceUID= ...

Is this syntax not supported for movescu ?

Given an RTPLAN object, how would you query the corresponding RTDOSE ?

Thank you.

GT


Solution

  • Your C-FIND request (using findscu) is not standard conformant: When querying on IMAGE level in Study Root Information Model you also have to specify the Series Instance UID. Furthermore, you should make sure that your other query keys are actually supported by the SCP.

    Is this syntax not supported for movescu ?

    This C-MOVE request (using movescu) is also not standard conformant: When retrieving DICOM objects on IMAGE level in Study Root Information Model you have to specify the Study Instance UID, the Series Instance UID and the SOP Instance UID. The Referenced SOP Instance UID (as part of the Referenced RT Plan Sequence) is not supported for this service / message.

    See DICOM PS3.4 for details on the Query/Retrieve Service.

    Added on 2016-01-09:

    I forgot to answer your final question:

    Given an RTPLAN object, how would you query the corresponding RTDOSE ?

    I would check whether the Referenced Dose Sequence (300C,0080) is present in the RT Plan object, and if so, use the Referenced SOP Instance UID(s) from the contained item(s) for a subsequent retrieve (i.e. C-MOVE request).