Query Aria/Varian

  • We are in the process of making CDonQuest query an Arian (Varian product), but currently unsuccessful. In order to debug the system we have used Dicom tool kit using the command findscu


    findscu.exe -v -aet BATCH -aec Variansystem -S -k QueryRetrieveLevel="STUDY" -k PatientName="H*" x.x.x.x y


    This is successful but only then using the command argument –S (query information model: Study) and not the command argument –P (query information model: Patient)


    Query retrieve level can be defined in the ConQuest GUI at the query page, but this is not the same as query information model.


    In the manual it is stated in appendix 7.1 that the Query & Retrieve Information Model is configurable on the “configuration” page of conquest. We have not been able to find this option on the configuration page but can it be defined directly in the dicom.ini file, and if so what is the syntax of that?


    This question might link to a previous posted topic:
    http://forum.image-systems.biz…hp?f=33&t=3218&hilit=aria

  • We have used findscu.exe and Conquest to query a Conquest DICOM server.


    Findscu with QueryRetrieveLevel="STUDY" and -S (Study Root Query/Retrieve Information Model) looks like this in the receiving Conquest debug log at level 4 (this is the query that works on Aria):


    Code
    [BATCH] Connected by address: 0100007f[BATCH] Testing transfer: '1.2.840.10008.1.2.1' against list #0 = '1.2.840.10008.1.2'[BATCH] Testing transfer: '1.2.840.10008.1.2.2' against list #0 = '1.2.840.10008.1.2'[BATCH] Testing transfer: '1.2.840.10008.1.2' against list #0 = '1.2.840.10008.1.2'[BATCH] [BATCH] UPACS THREAD 24: STARTED AT: Tue Jun 24 09:38:45 2014[BATCH] A-ASSOCIATE-RQ Packet Dump[BATCH] Calling Application Title : "CAB "[BATCH] Called Application Title : "BATCH "[BATCH] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384[BATCH] Number of Proposed Presentation Contexts: 1[BATCH] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.2.1" 1[BATCH] Server Command := 0020[BATCH] Message ID := 0001[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.2.1" (Study Root Query/Retrieve Information Model - FIND)[BATCH] 0000,0100 2 US CommandField 32 [BATCH] 0000,0110 2 US MessageID 1 [BATCH] 0000,0700 2 US Priority 2 [BATCH] 0000,0800 2 US DataSetType 1 [BATCH] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2" [BATCH] (StudyRootQuery) search level: STUDY [BATCH] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "STUDY " [BATCH] 0010,0020 8 LO PatientID "01023* " [BATCH] Query On Study[BATCH] Issue Query on Columns: DICOMStudies.PatientID[BATCH] Values: DICOMStudies.PatientID LIKE '01023%'[BATCH] Tables: DICOMStudies[BATCH] Sorting ((null)) DoSort := 0[BATCH] Query Distinct Tables: DICOMStudies[BATCH] Columns : DICOMStudies.PatientID[BATCH] Where : DICOMStudies.PatientID LIKE '01023%'[BATCH] Order : (null)[BATCH] Records = 0[BATCH] C-Find (StudyRoot) located 0 records[BATCH] UPACS THREAD 24: ENDED AT: Tue Jun 24 09:38:45 2014[BATCH] UPACS THREAD 24: TOTAL RUNNING TIME: 0 SECONDS


    Findscu with -P (Patient Root Query/Retrieve Information Model)


    Code
    [BATCH] Connected by address: 0100007f[BATCH] Testing transfer: '1.2.840.10008.1.2.1' against list #0 = '1.2.840.10008.1.2'[BATCH] Testing transfer: '1.2.840.10008.1.2.2' against list #0 = '1.2.840.10008.1.2'[BATCH] Testing transfer: '1.2.840.10008.1.2' against list #0 = '1.2.840.10008.1.2'[BATCH] [BATCH] UPACS THREAD 25: STARTED AT: Tue Jun 24 09:39:38 2014[BATCH] A-ASSOCIATE-RQ Packet Dump[BATCH] Calling Application Title : "CAB "[BATCH] Called Application Title : "BATCH "[BATCH] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384[BATCH] Number of Proposed Presentation Contexts: 1[BATCH] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.1.1" 1[BATCH] Server Command := 0020[BATCH] Message ID := 0001[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.1.1" (Patient Root Query/Retrieve Information Model - FIND)[BATCH] 0000,0100 2 US CommandField 32 [BATCH] 0000,0110 2 US MessageID 1 [BATCH] 0000,0700 2 US Priority 2 [BATCH] 0000,0800 2 US DataSetType 1 [BATCH] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2" [BATCH] (PatientRootQuery) search level: STUDY [BATCH] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "STUDY " [BATCH] 0010,0020 8 LO PatientID "01023* " [BATCH] Query On Study[BATCH] Issue Query on Columns: DICOMStudies.PatientID[BATCH] Values: DICOMStudies.PatientID LIKE '01023%'[BATCH] Tables: DICOMStudies[BATCH] Sorting ((null)) DoSort := 0[BATCH] Query Distinct Tables: DICOMStudies[BATCH] Columns : DICOMStudies.PatientID[BATCH] Where : DICOMStudies.PatientID LIKE '01023%'[BATCH] Order : (null)[BATCH] Records = 0[BATCH] C-Find (PatientRoot) located 0 records[BATCH] UPACS THREAD 25: ENDED AT: Tue Jun 24 09:39:38 2014[BATCH] UPACS THREAD 25: TOTAL RUNNING TIME: 0 SECONDS


    Next, we tested all the possible values of "Query level" in the Conquest GUI.


    Code
    //Query level = PATIENT[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.1.1" [BATCH] 0008,0052 8 CS QueryRetrieveLevel "PATIENT " // Query level = STUDY[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.1.1" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "STUDY " // Query level = SERIES[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.1.1" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "SERIES" // Query level = IMAGE[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.1.1" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "IMAGE " // Query level = STUDY - StudyRoot[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.2.1" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "STUDY " // Query level = SERIE - StudyRoot[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.2.1" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "SERIES" // Query level = IMAGE - StudyRoot[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.2.1" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "IMAGE " // Query level = PATIENT - PatientStudyOnly[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.3.1" (Patient/Study Only Query/Retrieve Information Model - FIND)[BATCH] 0008,0052 8 CS QueryRetrieveLevel "PATIENT " // Query level = STUDY - PatientStudyOnly[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.3.1" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "STUDY " // Query level = Modality Worklist[BATCH] 0000,0002 24 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.31" (Modality Worklist Information Model - FIND)[BATCH] 0008,0052 0 CS QueryRetrieveLevel (empty)


    Thus, to archive the same result as with findscu the correct "Query level" in Conquest is the "STUDY - StudyRoot". Finally, comparing the log for a query from findscu and Conquest only show minor differences.


    Findscu with QueryRetrieveLevel="STUDY" and -S:


    Code
    [BATCH] Connected by address: 0100007f[BATCH] Testing transfer: '1.2.840.10008.1.2.1' against list #0 = '1.2.840.10008.1.2'[BATCH] Testing transfer: '1.2.840.10008.1.2.2' against list #0 = '1.2.840.10008.1.2'[BATCH] Testing transfer: '1.2.840.10008.1.2' against list #0 = '1.2.840.10008.1.2'[BATCH] [BATCH] UPACS THREAD 24: STARTED AT: Tue Jun 24 09:38:45 2014[BATCH] A-ASSOCIATE-RQ Packet Dump[BATCH] Calling Application Title : "CAB "[BATCH] Called Application Title : "BATCH "[BATCH] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384[BATCH] Number of Proposed Presentation Contexts: 1[BATCH] Presentation Context 0 "1.2.840.10008.5.1.4.1.2.2.1" 1[BATCH] Server Command := 0020[BATCH] Message ID := 0001[BATCH] 0000,0002 28 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.1.2.2.1" (Study Root Query/Retrieve Information Model - FIND)[BATCH] 0000,0100 2 US CommandField 32 [BATCH] 0000,0110 2 US MessageID 1 [BATCH] 0000,0700 2 US Priority 2 [BATCH] 0000,0800 2 US DataSetType 1 [BATCH] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2" [BATCH] (StudyRootQuery) search level: STUDY [BATCH] 0002,0010 17 UI TransferSyntaxUID "1.2.840.10008.1.2" [BATCH] 0008,0052 6 CS QueryRetrieveLevel "STUDY " [BATCH] 0010,0020 8 LO PatientID "01023* " [BATCH] Query On Study[BATCH] Issue Query on Columns: DICOMStudies.PatientID[BATCH] Values: DICOMStudies.PatientID LIKE '01023%'[BATCH] Tables: DICOMStudies[BATCH] Sorting ((null)) DoSort := 0[BATCH] Query Distinct Tables: DICOMStudies[BATCH] Columns : DICOMStudies.PatientID[BATCH] Where : DICOMStudies.PatientID LIKE '01023%'[BATCH] Order : (null)[BATCH] Records = 0[BATCH] C-Find (StudyRoot) located 0 records[BATCH] UPACS THREAD 24: ENDED AT: Tue Jun 24 09:38:45 2014[BATCH] UPACS THREAD 24: TOTAL RUNNING TIME: 0 SECONDS


    Conquest with Query level = STUDY StudyRoot:



    Is it an issue with the transfer syntax or presentation context - and why does it test four of the same (1.2.840.10008.1.2) in the beginning of the log?

  • Hi, the conquest GUI always proposes:


    uid.Set("1.2.840.10008.5.1.4.1.2.1.1"); // PatientRootQuery
    PDU.AddAbstractSyntax(uid);
    uid.Set("1.2.840.10008.5.1.4.1.2.2.1"); // StudyRootQuery (C-Find SOP)
    PDU.AddAbstractSyntax(uid);
    uid.Set("1.2.840.10008.5.1.4.1.2.3.1"); // PatientStudyOnlyQuery
    PDU.AddAbstractSyntax(uid);
    uid.Set("1.2.840.10008.5.1.4.31");
    PDU.AddAbstractSyntax(uid);


    with one transfer sytnax '1.2.840.10008.1.2'. These are the four items in the list. I will prepare a version which will copy the findscu behavior, then we can see if aria then responds well.


    Marcel

  • Hi,


    If you install zerobrane studio, you can try dicomquery and see if that fixes the problem. This query uses a single context and transfer syntax. A sample script is in the Lua folder.


    Marcel

  • Hi Marcel,


    Thanks for the advice with ZeroBrane. The following Lua script returns "*** Virtual query - failed to connect for C-FIND to Variansystem"



    We have tested the three different transfer syntaxes listed in the Lua script with no luck.

  • Removing the two lines the code is


    Code
    a=DicomObject:new()a.QueryRetrieveLevel='STUDY'a.StudyInstanceUID=''a.PatientID='0009*'b=dicomquery('Variansystem', 'STUDY', a)...


    and result is



    So, this does not seems to make any different. We also tested with finscu to ensure that it is still possible to query Aria from another application on the client.

  • Hi,


    Thanks for double checking. The issue is then apparently that Aria does not accept LittleEndianImplicit, and requires an Explicit transfer syntax. As far as I know this is a violation of the DICOM standard. I will prepare a test version (based on the upcoming 1.4.17e release) for you to try and fix this but as it is ot without risk of breaking communication with other systems, this will likely not be in the upcoming release.


    Marcel

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!