Hi everyone!
We are having some problems at the time of getting the SOPInstanceUID of the images referenced by KO instances.
Although the developed code is working fine with DCM4CHEE PACS, it fails with GE PACS; so we started to make some tests with the binary toolkit of dcm4che.
We have made some query tests to GE PACS with the tool DIMSE C-FIND (using both StudyRoot and PatientRoot) with the aim of obtaining the reference to the images pointed by the KOs (ReferencedSOPInstanceUID). The sequence usually looks like the following:
Tests results
We have looked at some DICOM Conformance Statementes and it looks like it should support it.
Here are the logs:
PACs DCM4CHE request CurrentRequestedProcedureEvidenceSequence within KO - WORKS
findscu -b WEA...@xxx.xxx.xx.xxx:11113 -c DCM4...@yyy.yyy.yy.yyy:11112 -L IMAGE -m StudyInstanceUID=1.3.6.1.4.1.19291.2.1.1.2899276456219106460 -m SeriesInstanceUID=2.25.151979171568856337117767897648427215577 -r SOPClassUID -r CurrentRequestedProcedureEvidenceSequence
08:28:43,820 INFO - Initiate connection from /xxx.xxx.xx.xxx:0 to yyy.yyy.yy.yyy:11112
08:28:43,863 INFO - Established connection Socket[addr=/yyy.yyy.yy.yyy,port=11112,localport=63288]
08:28:43,879 DEBUG - /192.168.60.103:63288->/yyy.yyy.yy.yyy:11112(1): enter state: Sta4 - Awaiting transport connection opening to complete
08:28:43,880 INFO - WEASIS->DCM4CHEE(1) << A-ASSOCIATE-RQ
08:28:43,891 DEBUG - A-ASSOCIATE-RQ[
calledAET: DCM4CHEE
callingAET: WEASIS
applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
implClassUID: 1.2.40.0.13.1.3
implVersionName: dcm4che-3.3.8
maxPDULength: 16378
maxOpsInvoked/maxOpsPerformed: 0/0
PresentationContext[id: 1
as: 1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
ts: 1.2.840.10008.1.2.2 - Explicit VR Big Endian (Retired)
]
]
08:28:43,892 DEBUG - WEASIS->DCM4CHEE(1): enter state: Sta5 - Awaiting A-ASSOCIATE-AC or A-ASSOCIATE-RJ PDU
08:28:43,914 INFO - WEASIS->DCM4CHEE(1) >> A-ASSOCIATE-AC
08:28:43,914 DEBUG - A-ASSOCIATE-AC[
calledAET: DCM4CHEE
callingAET: WEASIS
applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
implClassUID: 1.2.40.0.13.1.3
implVersionName: dcm4che-dcm4chee
maxPDULength: 16378
maxOpsInvoked/maxOpsPerformed: 0/0
PresentationContext[id: 1
result: 0 - acceptance
ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
]
]
08:28:43,916 DEBUG - WEASIS->DCM4CHEE(1): enter state: Sta6 - Association established and ready for data transfer
Association opened in 119ms
08:28:43,923 INFO - WEASIS->DCM4CHEE(1) << 1:C-FIND-RQ[pcid=1, prior=0
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
08:28:43,944 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32] CommandField
(0000,0110) US [1] MessageID
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType
08:28:43,944 DEBUG - Dataset: <===REQUEST
(0008,0016) UI [] SOPClassUID
(0008,0052) CS [IMAGE] QueryRetrieveLevel
(0020,000D) UI [1.3.6.1.4.1.19291.2.1.1.2899276456219106460] StudyInstanceUID
(0020,000E) UI [2.25.151979171568856337117767897648427215577] SeriesInstanceUI
(0040,A375) SQ [1 Items] CurrentRequestedProcedureEvidenceSequence
>Item #1
C-FIND Request done in 46ms!
08:28:44,004 INFO - WEASIS->DCM4CHEE(1) >> 1:C-FIND-RSP[pcid=1, status=ff00H
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
08:28:44,004 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32800] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [0] CommandDataSetType
(0000,0900) US [65280] Status
08:28:44,007 DEBUG - Dataset:<===RESPONSE
(0008,0016) UI [1.2.840.10008.5.1.4.1.1.88.59] SOPClassUID
(0008,0052) CS [IMAGE] QueryRetrieveLevel
(0008,0054) AE [DCM4CHEE] RetrieveAETitle
(0008,0056) CS [ONLINE] InstanceAvailability
(0020,000D) UI [1.3.6.1.4.1.19291.2.1.1.2899276456219106460] StudyInstanceUID
(0020,000E) UI [2.25.151979171568856337117767897648427215577] SeriesInstanceUI
(0040,A375) SQ [1 Items] CurrentRequestedProcedureEvidenceSequence
>Item #1
>(0008,1115) SQ [1 Items] ReferencedSeriesSequence
>>Item #1
>>(0008,1199) SQ [1 Items] ReferencedSOPSequence
>>>Item #1
>>>(0008,1150) UI [1.2.840.10008.5.1.4.1.1.7] ReferencedSOPClassUID
>>>(0008,1155) UI [1.3.6.1.4.1.19291.2.1.3.2899276456257106468] ReferencedSOPI
>>(0020,000E) UI [1.3.6.1.4.1.19291.2.1.2.2899276456219106461] SeriesInstanceU
>(0020,000D) UI [1.3.6.1.4.1.19291.2.1.1.2899276456219106460] StudyInstanceUID
####### DimesRSP received after 91ms
08:28:44,013 INFO - WEASIS->DCM4CHEE(1) >> 1:C-FIND-RSP[pcid=1, status=0H
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian
08:28:44,013 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32800] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [0] Status
####### DimesRSP received after 96ms
08:28:44,019 INFO - WEASIS->DCM4CHEE(1) << A-RELEASE-RQ
08:28:44,021 DEBUG - WEASIS->DCM4CHEE(1): enter state: Sta7 - Awaiting A-RELEASE-RP PDU
08:28:44,022 INFO - WEASIS->DCM4CHEE(1) >> A-RELEASE-RP
08:28:44,027 INFO - WEASIS->DCM4CHEE(1): close Socket[addr=/yyy.yyy.yy.yyy,port=11112,localport=63288]
08:28:44,040 DEBUG - WEASIS->DCM4CHEE(1): enter state: Sta1 - Idle
GE PACS request CurrentRequestedProcedureEvidenceSequence
within KO - NO SQ IN RESPONSE
C:\Users\admin\Desktop\prueba_onko\dcm4che-5.12.0-bin\dcm4che-5.12.0\bin>findscu -bBASE@xxx.xxx.xx.xxx:11115 -c GEPACS@yyy.yyy.yy.yyy:4100 -L IMAGE -m StudyInstanceUID=1.2.840.113619.6.95.31.0.3.4.1.8282.13.978883 -m SeriesInstanceUID=1.2.840.
113619.2.201.1921682097.7579.1521628964443.1.18 -r SOPClassUID -r CurrentRequestedProcedureEvidenceSequence
17:14:02,452 INFO - Initiate connection from /xxx.xxx.xx.xxx:0 to yyy.yyy.yy.yyy:4100
17:14:02,467 INFO - Established connection Socket[addr=/yyy.yyy.yy.yyy,port=4100,localport=59042]
17:14:02,483 DEBUG - /172.27.5.77:59042->/yyy.yyy.yy.yyy:4100(1): enter state: Sta4 - Awaiting transport connection opening to complete
17:14:02,483 INFO - BASE->GEPACS(1) << A-ASSOCIATE-RQ
17:14:02,514 DEBUG - A-ASSOCIATE-RQ[
calledAET: GEPACS
callingAET: BASE
applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
implClassUID: 1.2.40.0.13.1.3
implVersionName: dcm4che-5.12.0
maxPDULength: 16378
maxOpsInvoked/maxOpsPerformed: 0/0
PresentationContext[id: 1
as: 1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
ts: 1.2.840.10008.1.2.2 - Explicit VR Big Endian (Retired)
]
]
17:14:02,530 DEBUG - BASE->GEPACS(1): enter state: Sta5 - Awaiting A-ASSOCIATE-AC or A-ASSOCIATE-RJ PDU
17:14:02,577 INFO - BASE->GEPACS(1) >> A-ASSOCIATE-AC
17:14:02,577 DEBUG - A-ASSOCIATE-AC[
calledAET: GEPACS
callingAET: BASE
applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
implClassUID: 1.2.840.113619.6.94
implVersionName: CENTRICITY_4.0
maxPDULength: 28672
maxOpsInvoked/maxOpsPerformed: 1/1
PresentationContext[id: 1
result: 0 - acceptance
ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
]
]
17:14:02,577 DEBUG - BASE->GEPACS(1): enter state: Sta6 - Association established and ready for data transfer
17:14:02,592 INFO - BASE->GEPACS(1) << 1:C-FIND-RQ[pcid=1, prior=0
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
17:14:02,623 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32] CommandField
(0000,0110) US [1] MessageID
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType
17:14:02,623 DEBUG - Dataset: <===REQUEST
(0008,0016) UI [] SOPClassUID
(0008,0052) CS [IMAGE] QueryRetrieveLevel
(0020,000D) UI [1.2.840.113619.6.95.31.0.3.4.1.8282.13.978883] StudyInstanceUI
(0020,000E) UI [1.2.840.113619.2.201.1921682097.7579.1521628964443.1.18] Serie
(0040,A375) SQ [1 Items] CurrentRequestedProcedureEvidenceSequence
>Item #1
17:14:02,717 INFO - BASE->GEPACS(1) >> 1:C-FIND-RSP[pcid=1, status=ff00H
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
17:14:02,717 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32800] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [0] CommandDataSetType
(0000,0900) US [65280] Status
17:14:02,717 DEBUG - Dataset: <===RESPONSE RETURNS NO SEQUENCE
(0008,0016) UI [1.2.840.10008.5.1.4.1.1.88.59] SOPClassUID
(0008,0018) UI [1.2.840.113619.2.201.1921682097.7579.1521628964443.2.17] SOPIn
(0008,0052) CS [IMAGE] QueryRetrieveLevel
(0008,0054) AE [GEPACS] RetrieveAETitle
(0008,0056) CS [ONLINE] InstanceAvailability
(0010,0020) LO [6393] PatientID
(0020,000D) UI [1.2.840.113619.6.95.31.0.3.4.1.8282.13.978883] StudyInstanceUI
(0020,000E) UI [1.2.840.113619.2.201.1921682097.7579.1521628964443.1.18] Serie
17:14:02,920 INFO - BASE->GEPACS(1) >> 1:C-FIND-RSP[pcid=1, status=0H
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
17:14:02,920 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32800] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [0] Status
17:14:02,920 INFO - BASE->GEPACS(1) << A-RELEASE-RQ
17:14:02,920 DEBUG - BASE->GEPACS(1): enter state: Sta7 - Awaiting A-RELEASE-RP
PDU
17:14:02,920 INFO - BASE->GEPACS(1) >> A-RELEASE-RP
17:14:02,920 INFO - BASE->GEPACS(1): close Socket[addr=/yyy.yyy.yy.yyy,port=4100
,localport=59042]
17:14:02,920 DEBUG - BASE->GEPACS(1): enter state: Sta1 - Idle
GE PACS request Study Date (0008,0020) within KO - WORKS
fC:\Users\admin\Desktop\prueba_onko\dcm4che-5.12.0-bin\dcm4che-5.12.0\bin>findscu -b BASE@xxx.xxx.xx.xxx:11115-c GEPACS@yyy.yyy.yy.yyy:4100 -L IMAGE -m StudyInstanceUID=1.2.840.113619.6.95.31.0.3.4.1.8282.13.978883 -m SOPInstanceUID=1.2.840.113619.2.201.1921682097.7579.1521628964443.2.17 -m SeriesInstanceUID=1.2.840.113619.2.201.1921682097.7579.1521628964443.1.18 -r StudyDate
12:13:54,227 INFO - Initiate connection from /xxx.xxx.xx.xxx:0 to 1yyy.yyy.yy.yyy:4100
12:13:54,237 INFO - Established connection Socket[addr=/yyy.yyy.yy.yyy,port=4100,localport=60538]
12:13:54,259 DEBUG - /172.27.5.77:60538->/yyy.yyy.yy.yyy:4100(1): enter state: Sta4 - Awaiting transport connection opening to complete
12:13:54,264 INFO - BASE->GEPACS(1) << A-ASSOCIATE-RQ
12:13:54,299 DEBUG - A-ASSOCIATE-RQ[
calledAET: GEPACS
callingAET: BASE
applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
implClassUID: 1.2.40.0.13.1.3
implVersionName: dcm4che-5.12.0
maxPDULength: 16378
maxOpsInvoked/maxOpsPerformed: 0/0
PresentationContext[id: 1
as: 1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
ts: 1.2.840.10008.1.2.2 - Explicit VR Big Endian (Retired)
]
]
12:13:54,306 DEBUG - BASE->GEPACS(1): enter state: Sta5 - Awaiting A-ASSOCIATE-AC or A-ASSOCIATE-RJ PDU
12:13:54,370 INFO - BASE->GEPACS(1) >> A-ASSOCIATE-AC
12:13:54,371 DEBUG - A-ASSOCIATE-AC[
calledAET: GEPACS
callingAET: BASE
applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
implClassUID: 1.2.840.113619.6.94
implVersionName: CENTRICITY_4.0
maxPDULength: 28672
maxOpsInvoked/maxOpsPerformed: 1/1
PresentationContext[id: 1
result: 0 - acceptance
ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
]
]
12:13:54,376 DEBUG - BASE->GEPACS(1): enter state: Sta6 - Association established and ready for data transfer
12:13:54,381 INFO - BASE->GEPACS(1) << 1:C-FIND-RQ[pcid=1, prior=0
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
12:13:54,415 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32] CommandField
(0000,0110) US [1] MessageID
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType
12:13:54,418 DEBUG - Dataset: <===REQUEST
(0008,0018) UI [1.2.840.113619.2.201.1921682097.7579.1521628964443.2.17] SOPIn
(0008,0020) DA [] StudyDate
(0008,0052) CS [IMAGE] QueryRetrieveLevel
(0020,000D) UI [1.2.840.113619.6.95.31.0.3.4.1.8282.13.978883] StudyInstanceUI
(0020,000E) UI [1.2.840.113619.2.201.1921682097.7579.1521628964443.1.18] Serie
12:13:54,509 INFO - BASE->GEPACS(1) >> 1:C-FIND-RSP[pcid=1, status=ff00H
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
12:13:54,511 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32800] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [0] CommandDataSetType
(0000,0900) US [65280] Status
12:13:54,514 DEBUG - Dataset: <===RESPONSE
(0008,0018) UI [1.2.840.113619.2.201.1921682097.7579.1521628964443.2.17] SOPIn
(0008,0020) DA [20180321] StudyDate
(0008,0052) CS [IMAGE] QueryRetrieveLevel
(0008,0054) AE [GEPACS] RetrieveAETitle
(0008,0056) CS [ONLINE] InstanceAvailability
(0010,0020) LO [6393] PatientID
(0020,000D) UI [1.2.840.113619.6.95.31.0.3.4.1.8282.13.978883] StudyInstanceUI
(0020,000E) UI [1.2.840.113619.2.201.1921682097.7579.1521628964443.1.18] Serie
12:13:54,694 INFO - BASE->GEPACS(1) >> 1:C-FIND-RSP[pcid=1, status=0H
cuid=1.2.840.10008.5.1.4.1.2.2.1 - Study Root Query/Retrieve Information Model - FIND
tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
12:13:54,696 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] AffectedSOPClassUID
(0000,0100) US [32800] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [0] Status
12:13:54,700 INFO - BASE->GEPACS(1) << A-RELEASE-RQ
12:13:54,701 DEBUG - BASE->GEPACS(1): enter state: Sta7 - Awaiting A-RELEASE-RPPDU
12:13:54,703 INFO - BASE->GEPACS(1) >> A-RELEASE-RP
12:13:54,703 INFO - BASE->GEPACS(1): close Socket[addr=/yyy.yyy.yy.yyy,port=4100,localport=60538]
12:13:54,705 DEBUG - BASE->GEPACS(1): enter state: Sta1 - Idle