The application tries to do a CFind on patient level, get the studies, for a study, get the series and in the end, the images.
The code is working when querying two different PACS implementation but fails on a third on study level.
The part of the code that makes the patient request
var request = DicomCFindRequest.CreatePatientQuery(patientId: _patientid, patientName: _patientname);
var client = new DicomClient();
client.AddRequest(request);
await client.SendAsync(destip, port, useTLS, callingAE, calledAE);
And for the study level
request = DicomCFindRequest.CreateStudyQuery(patientId: _patientid);
It seems that by examing the logs and also comparing the logs from a tool that there should be a list of abstract syntaxes rather than just one? Or what is the problem?
2019-02-24 02:32:49.1671 INFO Dicom.Log.NLogManager+NLogger.Log DICOM_STORAGE -> Association request:
Calling AE Title: TEST_01
Called AE Title: DICOM_STORAGE
Remote host: xxx.29.
51.150
Remote port: 7817
Implementation Class: Implementation Class UID [1.3.6.1.4.1.30071.8]
Implementation Version: fo-dicom 4.0.0
Maximum PDU Length: 16384
Async Ops Invoked: 1
Async Ops Performed: 1
Presentation Contexts: 1
Presentation Context: 1 [Proposed]
Abstract Syntax: Study Root Query/Retrieve Information Model - FIND
Transfer Syntax: Implicit VR Little Endian: Default Transfer Syntax for DICOM
2019-02-24 02:32:49.1671 INFO Dicom.Log.NLogManager+NLogger.Log DICOM_STORAGE <- Association accept:
Calling AE Title: TEST_01
Called AE Title: DICOM_STORAGE
Remote host: xxx.29.51.150
Remote port: 7817
Implementation Class: Unknown [1.2.752.24.3.3.25.7]
Implementation Version: WISSTOSCP_20_1
Maximum PDU Length: 28672
Async Ops Invoked: 1
Async Ops Performed: 1
Presentation Contexts: 1
Presentation Context: 1 [RejectAbstractSyntaxNotSupported]
Abstract Syntax: Study Root Query/Retrieve Information Model - FIND
Transfer Syntax: Implicit VR Little Endian: Default Transfer Syntax for DICOM
2019-02-24 02:32:49.1671 INFO DicomHandler.DicomHandler+<>c__DisplayClass8_0.<QueryRetrieveSCU>b__0 DicomCFindRequest.QueryRetrieveSCU response rp.status=Failure [0122: Refused: SOP class not supported]
2019-02-24 02:32:49.1671 INFO Dicom.Network.DicomCFindRequest.PostResponse DicomCFindRequest.QueryRetrieveSCU response return.
2019-02-24 02:32:49.1671 ERROR Dicom.Log.NLogManager+NLogger.Log No accepted presentation context found for abstract syntax: Study Root Query/Retrieve Information Model - FIND [1.2.840.10008.5.1.4.1.2.2.1]
2019-02-24 02:32:49.2288 INFO Dicom.Log.NLogManager+NLogger.Log DICOM_STORAGE -> Association release request
2019-02-24 02:32:49.2288 INFO Dicom.Log.NLogManager+NLogger.Log DICOM_STORAGE <- Association release response
Log from jdicom that can execute the cfind request on study level
jdicom: *** request ***
application context UID: null
called title: DICOM_QR_SCP
calling title: jdicom
max pdu size: 32768
max operation invoked: 1
max operation performed: 1
implementation class UID: 1.2.826.0.1.3680043.2.60.0.1
implementation version Name: softlink_jdt103
abstract syntax scu scp
1.2.840.10008.1.1 -1 -1
1.2.840.10008.5.1.4.1.2.1.1 -1 -1
1.2.840.10008.5.1.4.1.2.2.1 -1 -1
1.2.840.10008.5.1.4.1.2.3.1 -1 -1
1.2.840.10008.5.1.4.1.2.1.2 -1 -1
1.2.840.10008.5.1.4.1.2.2.2 -1 -1
1.2.840.10008.5.1.4.1.2.3.2 -1 -1
nr abstract syntax pcid description
0 1.2.840.10008.1.1 1 Verification SOP Class
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
1 1.2.840.10008.5.1.4.1.2.1.1 3 Patient Root Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
2 1.2.840.10008.5.1.4.1.2.2.1 5 Study Root Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
3 1.2.840.10008.5.1.4.1.2.3.1 7 Patient/Study Only Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
4 1.2.840.10008.5.1.4.1.2.1.2 9 Patient Root Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
5 1.2.840.10008.5.1.4.1.2.2.2 11 Study Root Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
6 1.2.840.10008.5.1.4.1.2.3.2 13 Patient/Study Only Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
***************
Waiting for AssociationRsp
ASSOCIATE_ACKNOWLEDGE detected
jdicom: #17:DICOM_QR_SCP >> A-ASSOCIATE-AC PDU
jdicom: *** acknowledge ***
max pdu size: 28672
max operation invoked: 1
max operation performed: 1
implementation class UID: 1.2.752.24.3.3.25.7
implementation version name: WIQRSCP_20_1
abstract syntax scu scp
nr pcid result transfer syntax
0 1 accepted 1.2.840.10008.1.2
1 3 accepted 1.2.840.10008.1.2
2 5 accepted 1.2.840.10008.1.2
3 7 accepted 1.2.840.10008.1.2
4 9 accepted 1.2.840.10008.1.2
5 11 accepted 1.2.840.10008.1.2
6 13 accepted 1.2.840.10008.1.2
*******************
Edit,
Here is conformance statement.
https://sectramedical.blob.core.windows.net/uploads/2018/04/pacs-dicom-conformance-statement-20.1.pdf
But if CFind is not supported, what method to be used to retrieve studies and series? I am bit lost here but I really appreciate you taking the time to give hints.
Here is log (truncated due to the max length of a post) from the other tool that manage to list patient and studies and some screen shoots that shows that it is possible. There also a screen shot from Radiant that also can connect, display the patients and display the image.
PatientRootLog
# 14 1 PatientID
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [] # 0 0 SeriesInstanceUID
(0020,0011) IS [] # 0 0 SeriesNumber
(0020,1209) IS [] # 0 0 NumberOfSeriesRelatedImages
jdicom: DICOM_QR_SCP PDU received
jdicom: #16:DICOM_QR_SCP >> C-FIND-RSP Patient Root Query/Retrieve Information Model - FIND SOP Class, status #ff00H[StatusEntry.PENDING]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.1.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [258] # 2 1 DataSetType
(0000,0900) US [65280] # 2 1 Status
jdicom: #16:DICOM_QR_SCP >> Dataset
(0008,0005) CS [ISO_IR 100] # 10 1 SpecificCharacterSet
(0008,0050) SH [1912121-0034201] # 16 1 AccessionNumber
(0008,0052) CS [SERIES] # 6 1 QueryRetrieveLevel
(0008,0054) AE [DICOM_QR_SCP] # 12 1 RetrieveAETitle
(0008,0060) CS [OP] # 2 1 Modality
(0010,0020) LO [19121212-1212] # 14 1 PatientID
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476159]# 50 1 SeriesInstanceUID
(0020,0010) SH [1912121-0034201] # 16 1 StudyID
(0020,0011) IS [1] # 2 1 SeriesNumber
(0020,1209) IS [1] # 2 1 NumberOfSeriesRelatedImages
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: DICOM_QR_SCP PDU received
jdicom: #16:DICOM_QR_SCP >> C-FIND-RSP Patient Root Query/Retrieve Information Model - FIND SOP Class, status #0000H[Success]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.1.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [257] # 2 1 DataSetType
(0000,0900) US [0] # 2 1 Status
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: Enter _dimseSCUs.waitUntilEmpty(
jdicom: Enter _as.sendReleaseRequest()
jdicom: #16:DICOM_QR_SCP << A-RELEASE-RQ PDU
jdicom: Leave DimseExchange.releaseAssoc()
jdicom: DICOM_QR_SCP PDU received
jdicom: #16:DICOM_QR_SCP >> A-RELEASE-RP PDU
jdicom: #16:DICOM_QR_SCP closing socket
jdicom: DICOM_QR_SCP Leave DimseExchange.run()
jdicom: #17:DICOM_QR_SCP << A-ASSOCIATE-RQ PDU
jdicom: *** request ***
application context UID: null
called title: DICOM_QR_SCP
calling title: jdicom
max pdu size: 32768
max operation invoked: 1
max operation performed: 1
implementation class UID: 1.2.826.0.1.3680043.2.60.0.1
implementation version Name: softlink_jdt103
abstract syntax scu scp
1.2.840.10008.1.1 -1 -1
1.2.840.10008.5.1.4.1.2.1.1 -1 -1
1.2.840.10008.5.1.4.1.2.2.1 -1 -1
1.2.840.10008.5.1.4.1.2.3.1 -1 -1
1.2.840.10008.5.1.4.1.2.1.2 -1 -1
1.2.840.10008.5.1.4.1.2.2.2 -1 -1
1.2.840.10008.5.1.4.1.2.3.2 -1 -1
nr abstract syntax pcid description
0 1.2.840.10008.1.1 1 Verification SOP Class
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
1 1.2.840.10008.5.1.4.1.2.1.1 3 Patient Root Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
2 1.2.840.10008.5.1.4.1.2.2.1 5 Study Root Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
3 1.2.840.10008.5.1.4.1.2.3.1 7 Patient/Study Only Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
4 1.2.840.10008.5.1.4.1.2.1.2 9 Patient Root Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
5 1.2.840.10008.5.1.4.1.2.2.2 11 Study Root Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
6 1.2.840.10008.5.1.4.1.2.3.2 13 Patient/Study Only Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
***************
Waiting for AssociationRsp
ASSOCIATE_ACKNOWLEDGE detected
jdicom: #17:DICOM_QR_SCP >> A-ASSOCIATE-AC PDU
jdicom: *** acknowledge ***
max pdu size: 28672
max operation invoked: 1
max operation performed: 1
implementation class UID: 1.2.752.24.3.3.25.7
implementation version name: WIQRSCP_20_1
abstract syntax scu scp
nr pcid result transfer syntax
0 1 accepted 1.2.840.10008.1.2
1 3 accepted 1.2.840.10008.1.2
2 5 accepted 1.2.840.10008.1.2
3 7 accepted 1.2.840.10008.1.2
4 9 accepted 1.2.840.10008.1.2
5 11 accepted 1.2.840.10008.1.2
6 13 accepted 1.2.840.10008.1.2
*******************
jdicom: DICOM_QR_SCP Enter DimseExchange.run()
jdicom: #17:DICOM_QR_SCP << C-FIND-RQ Patient Root Query/Retrieve Information Model - FIND SOP Class
jdicom: DICOM_QR_SCP Waiting for PDU
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.1.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32] # 2 1 CommandField
(0000,0110) US [1] # 2 1 MessageID
(0000,0700) US [0] # 2 1 Priority
(0000,0800) US [65278] # 2 1 DataSetType
jdicom: #17:DICOM_QR_SCP << Dataset
(0008,0018) UI [] # 0 0 SOPInstanceUID
(0008,0052) CS [IMAGE] # 6 1 QueryRetrieveLevel
(0010,0020) LO [19121212-1212] # 14 1 PatientID
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476159]# 50 1 SeriesInstanceUID
(0020,0013) IS [] # 0 0 InstanceNumber
jdicom: DICOM_QR_SCP PDU received
jdicom: #17:DICOM_QR_SCP >> C-FIND-RSP Patient Root Query/Retrieve Information Model - FIND SOP Class, status #ff00H[StatusEntry.PENDING]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.1.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [258] # 2 1 DataSetType
(0000,0900) US [65280] # 2 1 Status
jdicom: #17:DICOM_QR_SCP >> Dataset
(0008,0005) CS [ISO_IR 100] # 10 1 SpecificCharacterSet
(0008,0018) UI [1.3.6.1.4.1.30071.8.345050320220.6024575915205577]# 50 1 SOPInstanceUID
(0008,0050) SH [1912121-0034201] # 16 1 AccessionNumber
(0008,0052) CS [IMAGE] # 6 1 QueryRetrieveLevel
(0008,0054) AE [DICOM_QR_SCP] # 12 1 RetrieveAETitle
(0010,0020) LO [19121212-1212] # 14 1 PatientID
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476159]# 50 1 SeriesInstanceUID
(0020,0010) SH [1912121-0034201] # 16 1 StudyID
(0020,0013) IS [1] # 2 1 InstanceNumber
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: DICOM_QR_SCP PDU received
jdicom: #17:DICOM_QR_SCP >> C-FIND-RSP Patient Root Query/Retrieve Information Model - FIND SOP Class, status #0000H[Success]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.1.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [257] # 2 1 DataSetType
(0000,0900) US [0] # 2 1 Status
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: Enter _dimseSCUs.waitUntilEmpty(
jdicom: Enter _as.sendReleaseRequest()
jdicom: #17:DICOM_QR_SCP << A-RELEASE-RQ PDU
jdicom: Leave DimseExchange.releaseAssoc()
jdicom: DICOM_QR_SCP PDU received
jdicom: #17:DICOM_QR_SCP >> A-RELEASE-RP PDU
jdicom: #17:DICOM_QR_SCP closing socket
jdicom: DICOM_QR_SCP Leave DimseExchange.run()
Studyroot LOG:
1 Priority
(0000,0800) US [65278] # 2 1 DataSetType
jdicom: #23:DICOM_QR_SCP << Dataset
(0008,0052) CS [SERIES] # 6 1 QueryRetrieveLevel
(0008,0060) CS [] # 0 0 Modality
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [] # 0 0 SeriesInstanceUID
(0020,0011) IS [] # 0 0 SeriesNumber
(0020,1209) IS [] # 0 0 NumberOfSeriesRelatedImages
jdicom: DICOM_QR_SCP PDU received
jdicom: #23:DICOM_QR_SCP >> C-FIND-RSP Study Root Query/Retrieve Information Model - FIND SOP Class, status #ff00H[StatusEntry.PENDING]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [258] # 2 1 DataSetType
(0000,0900) US [65280] # 2 1 Status
jdicom: #23:DICOM_QR_SCP >> Dataset
(0008,0005) CS [ISO_IR 100] # 10 1 SpecificCharacterSet
(0008,0050) SH [1912121-0034201] # 16 1 AccessionNumber
(0008,0052) CS [SERIES] # 6 1 QueryRetrieveLevel
(0008,0054) AE [DICOM_QR_SCP] # 12 1 RetrieveAETitle
(0008,0060) CS [OP] # 2 1 Modality
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476159]# 50 1 SeriesInstanceUID
(0020,0010) SH [1912121-0034201] # 16 1 StudyID
(0020,0011) IS [1] # 2 1 SeriesNumber
(0020,1209) IS [1] # 2 1 NumberOfSeriesRelatedImages
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: DICOM_QR_SCP PDU received
jdicom: #23:DICOM_QR_SCP >> C-FIND-RSP Study Root Query/Retrieve Information Model - FIND SOP Class, status #0000H[Success]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [257] # 2 1 DataSetType
(0000,0900) US [0] # 2 1 Status
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: Enter _dimseSCUs.waitUntilEmpty(
jdicom: Enter _as.sendReleaseRequest()
jdicom: #23:DICOM_QR_SCP << A-RELEASE-RQ PDU
jdicom: Leave DimseExchange.releaseAssoc()
jdicom: DICOM_QR_SCP PDU received
jdicom: #23:DICOM_QR_SCP >> A-RELEASE-RP PDU
jdicom: #23:DICOM_QR_SCP closing socket
jdicom: DICOM_QR_SCP Leave DimseExchange.run()
jdicom: #24:DICOM_QR_SCP << A-ASSOCIATE-RQ PDU
jdicom: *** request ***
application context UID: null
called title: DICOM_QR_SCP
calling title: jdicom
max pdu size: 32768
max operation invoked: 1
max operation performed: 1
implementation class UID: 1.2.826.0.1.3680043.2.60.0.1
implementation version Name: softlink_jdt103
abstract syntax scu scp
1.2.840.10008.1.1 -1 -1
1.2.840.10008.5.1.4.1.2.1.1 -1 -1
1.2.840.10008.5.1.4.1.2.2.1 -1 -1
1.2.840.10008.5.1.4.1.2.3.1 -1 -1
1.2.840.10008.5.1.4.1.2.1.2 -1 -1
1.2.840.10008.5.1.4.1.2.2.2 -1 -1
1.2.840.10008.5.1.4.1.2.3.2 -1 -1
nr abstract syntax pcid description
0 1.2.840.10008.1.1 1 Verification SOP Class
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
1 1.2.840.10008.5.1.4.1.2.1.1 3 Patient Root Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
2 1.2.840.10008.5.1.4.1.2.2.1 5 Study Root Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
3 1.2.840.10008.5.1.4.1.2.3.1 7 Patient/Study Only Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
4 1.2.840.10008.5.1.4.1.2.1.2 9 Patient Root Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
5 1.2.840.10008.5.1.4.1.2.2.2 11 Study Root Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
6 1.2.840.10008.5.1.4.1.2.3.2 13 Patient/Study Only Query/Retrieve Information Model - MOVE SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
***************
Waiting for AssociationRsp
ASSOCIATE_ACKNOWLEDGE detected
jdicom: #24:DICOM_QR_SCP >> A-ASSOCIATE-AC PDU
jdicom: *** acknowledge ***
max pdu size: 28672
max operation invoked: 1
max operation performed: 1
implementation class UID: 1.2.752.24.3.3.25.7
implementation version name: WIQRSCP_20_1
abstract syntax scu scp
nr pcid result transfer syntax
0 1 accepted 1.2.840.10008.1.2
1 3 accepted 1.2.840.10008.1.2
2 5 accepted 1.2.840.10008.1.2
3 7 accepted 1.2.840.10008.1.2
4 9 accepted 1.2.840.10008.1.2
5 11 accepted 1.2.840.10008.1.2
6 13 accepted 1.2.840.10008.1.2
*******************
jdicom: DICOM_QR_SCP Enter DimseExchange.run()
jdicom: #24:DICOM_QR_SCP << C-FIND-RQ Study Root Query/Retrieve Information Model - FIND SOP Class
jdicom: DICOM_QR_SCP Waiting for PDU
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32] # 2 1 CommandField
(0000,0110) US [1] # 2 1 MessageID
(0000,0700) US [0] # 2 1 Priority
(0000,0800) US [65278] # 2 1 DataSetType
jdicom: #24:DICOM_QR_SCP << Dataset
(0008,0018) UI [] # 0 0 SOPInstanceUID
(0008,0052) CS [IMAGE] # 6 1 QueryRetrieveLevel
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476159]# 50 1 SeriesInstanceUID
(0020,0013) IS [] # 0 0 InstanceNumber
jdicom: DICOM_QR_SCP PDU received
jdicom: #24:DICOM_QR_SCP >> C-FIND-RSP Study Root Query/Retrieve Information Model - FIND SOP Class, status #ff00H[StatusEntry.PENDING]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [258] # 2 1 DataSetType
(0000,0900) US [65280] # 2 1 Status
jdicom: #24:DICOM_QR_SCP >> Dataset
(0008,0005) CS [ISO_IR 100] # 10 1 SpecificCharacterSet
(0008,0018) UI [1.3.6.1.4.1.30071.8.345050320220.6024575915205577]# 50 1 SOPInstanceUID
(0008,0050) SH [1912121-0034201] # 16 1 AccessionNumber
(0008,0052) CS [IMAGE] # 6 1 QueryRetrieveLevel
(0008,0054) AE [DICOM_QR_SCP] # 12 1 RetrieveAETitle
(0020,000d) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476158]# 50 1 StudyInstanceUID
(0020,000e) UI [1.3.6.1.4.1.30071.8.345050320220.6024574499476159]# 50 1 SeriesInstanceUID
(0020,0010) SH [1912121-0034201] # 16 1 StudyID
(0020,0013) IS [1] # 2 1 InstanceNumber
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: DICOM_QR_SCP PDU received
jdicom: #24:DICOM_QR_SCP >> C-FIND-RSP Study Root Query/Retrieve Information Model - FIND SOP Class, status #0000H[Success]
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32800] # 2 1 CommandField
(0000,0120) US [1] # 2 1 MessageIDBeingRespondedTo
(0000,0800) US [257] # 2 1 DataSetType
(0000,0900) US [0] # 2 1 Status
jdicom: DICOM_QR_SCP Waiting for PDU
jdicom: Enter _dimseSCUs.waitUntilEmpty(
jdicom: Enter _as.sendReleaseRequest()
jdicom: #24:DICOM_QR_SCP << A-RELEASE-RQ PDU
jdicom: Leave DimseExchange.releaseAssoc()
jdicom: DICOM_QR_SCP PDU received
jdicom: #24:DICOM_QR_SCP >> A-RELEASE-RP PDU
jdicom: #24:DICOM_QR_SCP closing socket
jdicom: DICOM_QR_SCP Leave DimseExchange.run()
PatientStudyOnly
OM_QR_SCP << C-FIND-RQ Patient/Study Only Query/Retrieve Information Model - FIND SOP Class
jdicom: DICOM_QR_SCP Waiting for PDU
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.3.1] # 28 1 AffectedSOPClassUID
(0000,0100) US [32] # 2 1 CommandField
(0000,0110) US [1] # 2 1 MessageID
]
Log truncated hitting the post max length.
From your excellent problem description it seems to be quite obvious to me that the third PACS you are testing with plainly does not support Study Root Query Retrieve.
Your association request is formed correctly, and it is impossible to propose other than exactly one Abstract Syntax per Presentation Context. However the PACS then answers:
Presentation Contexts: 1
Presentation Context: 1 [RejectAbstractSyntaxNotSupported]
Abstract Syntax: Study Root Query/Retrieve Information Model - FIND
Transfer Syntax: Implicit VR Little Endian: Default Transfer Syntax for DICOM
Which tells you that this service is not supported at all.
The log from the failing communication appears to be shortened. From the dcm4chee log, you can obtain that the other Information model for Q/R is also proposed. This is the Patient Root model:
1 1.2.840.10008.5.1.4.1.2.1.1 3 Patient Root Query/Retrieve Information Model - FIND SOP Cl...
ts-0 1.2.840.10008.1.2 Implicit VR Little Endian Transfer Syntax
It would be interesting to know whether or not this is supported. Because if not, the system you are talking to can hardly be called a "PACS". I recommend to have a look at the DICOM Conformance Statement of the system in question. It should convey whether you are talking to the correct application entity (title) and which particular information models for the Query/Retrieve service class are supported.
In case you posted the full log file, the presentation contexts are probably determined by the way you are putting your query:
var request = DicomCFindRequest.CreatePatientQuery(patientId: _patientid, patientName: _patientname);
In this case you may want to try CreateStudyQuery() which also allows patient parameters to be specified.
DICOM Information models in a nutshell:
[EDIT] After reviewing the DICOM Conformance Statement for the Sectra PACS: Maybe you are connecting to the wrong Application Entity. It seems that the Sectra PACS has different application entities (i.e. same IP, maybe same/different Port but different AET) to handle Storage- and Query/Retrieve services. The AET you are addressing looks suspicious:
Calling AE Title: TEST_01
Called AE Title: DICOM_STORAGE
Remote host: xxx.29.51.150
Remote port: 7817
Implementation Class: Unknown [1.2.752.24.3.3.25.7]
Implementation Version: WISSTOSCP_20_1
Note the Called AE Title and the Implementation Version. Both appear to belong to the Storage SCP which - according to the DCS - does not support any query/retrieve services at all.
So I think you need to change your configuration for the AE you address to query.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With