CFind fails on Study level - SOP Class not supported or No accepted presentation context found for abstract syntax
Asked Answered
S

1

7

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.
Patient Studies Series Image Radiant

Sprague answered 6/3, 2019 at 13:49 Comment(0)
B
8

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:

  • Patient Root: Patient ID uniquely identifies the patient.
  • Study Root: Patient information is treated as secondary information on the Study Level

[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.

Burrstone answered 6/3, 2019 at 14:11 Comment(7)
The PACS is from a major vendor and here is the conformance statemenet. I will edit the question with more information. sectramedical.blob.core.windows.net/uploads/2018/04/…Sprague
I had no access today so could not test this. But I noticed that one of the fields returned from the Q/R patient query is namned "Retrieve AE title" with the value DICOM_QR_SCP . So probably shall the application use this AETitle when querying on the study level.Sprague
@Sprague The RetrieveAETitle specifies the Application Entity Title (AET) of the SCP you should direct a subsequent "retrieve" (i.e. C-GET or C-MOVE) to. The "query" (C-FIND) should be processed by the same AET for all Q/R levels.Helban
True but in the DCS, there is only one Application entity for query and retrieve. So the AET DICOM_QR_SCP is most probably appropriate to solve the query problem as well.Burrstone
@kritzel_sw But Hans wrote in his comment that the "Q/R patient query" worked, otherwise he wouldn't have received a C-FIND response with the Retrieve AE Title. So, using the same AE title for the study-level query (as for the working patient-level query) should solve the problem. Or did I misunderstand something?Helban
@J.Riesmeier: As I understood, it works with dcm4chee but not with the Sectra PACS.Burrstone
kritzel_sw answer led me to investigate the actual configuration of the customers test site which in the end was not correct. Thanks for all the hints,Sprague

© 2022 - 2024 — McMap. All rights reserved.