Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

c#

dicom

fo-dicom

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

like image 954
Hans Avatar asked Mar 06 '19 13:03

Hans


1 Answers

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.

like image 95
kritzel_sw Avatar answered Sep 22 '22 15:09

kritzel_sw