Worklist Query Problem

  • Hi everyone,
    yesterday I installed conquest in one of my clinics. Storage of images from modality (philips Magnetic Res.) works fine. I also developed the web user interface for filling the Worklist table in MSSQL 2005 server database.


    Now, I have a problem when I try to retrieve scheduled worklists from Philips modality. I am getting the following in Conquest server status console:


    2/26/2010 8:24:12 PM [CONQUESTSRV1] UPACS THREAD 0: STARTED AT: Fri Feb 26 20:24:12 2010
    2/26/2010 8:24:12 PM [CONQUESTSRV1] Calling Application Title : "NTSCAN "
    2/26/2010 8:24:12 PM [CONQUESTSRV1] Called Application Title : "CONQUESTSRV1 "
    2/26/2010 8:24:12 PM [CONQUESTSRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384
    2/26/2010 8:24:12 PM [CONQUESTSRV1] Presentation Context 0 "1.2.840.10008.5.1.4.31" 1
    2/26/2010 8:24:12 PM [CONQUESTSRV1] (ModalityWorkListQuery) search level:
    2/26/2010 8:24:12 PM [CONQUESTSRV1] C-Find (Modality Work List) located 1 records
    2/26/2010 8:24:12 PM [CONQUESTSRV1] Cancel request (ignored)
    2/26/2010 8:24:12 PM [CONQUESTSRV1] UPACS THREAD 0: ENDED AT: Fri Feb 26 20:24:12 2010
    2/26/2010 8:24:12 PM [CONQUESTSRV1] UPACS THREAD 0: TOTAL RUNNING TIME: 0 SECONDS


    As it can be seen from this log, query retrieves one worklist (I inserted it manually, for test purpose), but on the Philips device console, from which I'am querying, error message is shown. Message doesn't sa nothing useful, it says something like "Error in retrieving the worklist".


    What should I do? Is it actually possible to make this function with Philips? If someone had similar experience, I am begging him for assistance.
    Thank you in advance,
    Brindic Nebojsha

  • I am using conquest 4.15. I am new in this world, so I cannot quiet understand very well the info you posted to me on that link. Can you just slightly introduce me in the story?
    Thanks in advance.

  • Hi,


    conquest answers exactly with what philips asks for it is in the database. There may be two issues:


    1) the database is not extensive enough
    2) Some sequences that are asked for without sub-items should be responded to with sub-items in place


    You should log coquests response and compare it to what philips wants.


    Marcel

  • OK, so I will read the forum carefully, and will try to resolve the problem. Meanwhile, can you post me one DICOMWorklist example record, just to see how data should look like in the table. And what subitems you are talking about? Should I put one more table in it? I am testing all of this stuff on Philips Intera t10.


    Sorry if my questions are stupid and take your time, but I am really new in this.


    Thanks in advance,
    Brindic Nebojsha

  • Hi, I just tried to make Philips take a sample.hl7 worklist, but no success. Same errors are present as before. Can you tell me how I insert sub-items, because I think the problem lies there.
    Thanks in advance

  • One additional question. How I can see what device is asking for (just like in posts from link you provided me)? Can I see that somehow from conquest (debug level is on 4th level, but I am not seeing it), or I should see that from Device's conformance statement? If there is a need, I can send you few pages from Conformance statement regarding worklists, so you can resolve the issue.
    Thx, Nebojsha

  • Forget previous posts. I was stupid enough about debugging level. OK, here is what I'm getting from server:


    [CONQUESTSRV1] UPACS THREAD 2: STARTED AT: Sun Mar 07 18:47:20 2010
    [CONQUESTSRV1] A-ASSOCIATE-RQ Packet Dump
    [CONQUESTSRV1] Calling Application Title : "NTSCAN "
    [CONQUESTSRV1] Called Application Title : "CONQUESTSRV1 "
    [CONQUESTSRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384
    [CONQUESTSRV1] Number of Proposed Presentation Contexts: 1
    [CONQUESTSRV1] Presentation Context 0 "1.2.840.10008.5.1.4.31" 1
    [CONQUESTSRV1] Server Command := 0020
    [CONQUESTSRV1] Message ID := 0000
    [CONQUESTSRV1] (ModalityWorkListQuery) search level:
    [CONQUESTSRV1] Query On Modality WorkList
    [CONQUESTSRV1] Failed on VR Search: 0008 0090
    [CONQUESTSRV1] (testing phase) - ignored
    [CONQUESTSRV1] Failed on VR Search: 0010 1030
    [CONQUESTSRV1] (testing phase) - ignored
    [CONQUESTSRV1] Failed on VR Search: 0040 0020
    [CONQUESTSRV1] (testing phase) - ignored
    [CONQUESTSRV1] Issue Query on Columns: DICOMWorkList.AccessionN, DICOMWorkList.PatientNam, DICOMWorkList.PatientID, DICOMWorkList.PatientBir, DICOMWorkList.PatientSex, DICOMWorkList.StudyInsta, DICOMWorkList.ScheduledA, DICOMWorkList.StartDate, DICOMWorkList.StartTime, DICOMWorkList.SchedPSDes, DICOMWorkList.SchedPSID
    [CONQUESTSRV1] Values: DICOMWorkList.ScheduledA = 'NTSCAN' and DICOMWorkList.StartDate = '20100307'
    [CONQUESTSRV1] Tables: DICOMWorkList
    [CONQUESTSRV1] Sorting (DICOMWorkList.PatientNam) DoSort := 1
    [CONQUESTSRV1] Coding sequence (0040,0100), level=1
    [CONQUESTSRV1] Records = 1
    [CONQUESTSRV1] C-Find (Modality Work List) located 1 records
    [CONQUESTSRV1] Server Command := 0fff
    [CONQUESTSRV1] Message ID := 0000
    [CONQUESTSRV1] Cancel request (ignored)
    [CONQUESTSRV1] UPACS THREAD 2: ENDED AT: Sun Mar 07 18:47:20 2010
    [CONQUESTSRV1] UPACS THREAD 2: TOTAL RUNNING TIME: 0 SECONDS



    So, do you have any idea of what should be the solution? Maybe something with worklistqueryconverter?

  • Hi Marcel, finally I got the details about the errors. Before I post the reply, just to shortly describe you what I did:


    1. as you can see from my last post, server noticed 3 failures (patientweight, referringphysicianname, scheduledprocedurestepstatus). Codes for patientweight and referringphysiciansname were already registered in dgate.dic, so it was unnecessary to add them. But scheduledprocedurestepstatus wasn't present in that file, so I didn't know what to do. In the end, I added it manually, so I don't know is it OK. I noticed also that the line "# correction proposal 72: 0040,0020" in the beginning of the file, so please tell me is that OK. This is what I have added to dgate.dic:
    (0040,0020) VERS="3" VR="CS" VM="1" Keyword="ScheduledProcedureStepStatus" Name="ScheduledProcedureStepStatus"


    2. I changed the dicom.sql worklist section to following:


    *WorkList*
    {
    { 0x0008, 0x0050, "AccessionNumber", 16, SQL_C_CHAR, DT_STR, "OBR.3" },
    { 0x0010, 0x0020, "PatientID", 64, SQL_C_CHAR, DT_STR, "PID.4" },
    { 0x0010, 0x0010, "PatientName", 64, SQL_C_CHAR, DT_STR, "PID.5" },
    { 0x0010, 0x0030, "PatientBirthDate", 8, SQL_C_DATE, DT_DATE, "PID.7" },
    { 0x0010, 0x0040, "PatientSex", 16, SQL_C_CHAR, DT_STR, "PID.8" },
    { 0x0008, 0x0090, "ReferringPhysicianName", 64, SQL_C_CHAR, DT_STR, "PID.9" },
    { 0x0010, 0x1030, "PatientWeight", 8, SQL_C_CHAR, DT_STR, "PID.10" },


    { 0x0010, 0x2000, "MedicalAlerts", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0010, 0x2110, "ContrastAllergies", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0020, 0x000d, "StudyInstanceUID", 64, SQL_C_CHAR, DT_UI, "---" },
    { 0x0032, 0x1032, "ReqPhysician", 64, SQL_C_CHAR, DT_STR, "OBR.16" },
    { 0x0032, 0x1060, "ReqProcDescription", 64, SQL_C_CHAR, DT_STR, "OBR.4.1" },


    { 0x0040, 0x0100, "--------", 0, SQL_C_CHAR, DT_STARTSEQUENCE, "---" },
    { 0x0008, 0x0060, "Modality", 16, SQL_C_CHAR, DT_STR, "OBR.21" },
    { 0x0032, 0x1070, "ReqContrastAgent", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0001, "ScheduledAE", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0002, "StartDate", 8, SQL_C_DATE, DT_DATE, "OBR.7.DATE" },
    { 0x0040, 0x0003, "StartTime", 16, SQL_C_CHAR, DT_TIME, "OBR.7.TIME" },
    { 0x0040, 0x0006, "PerfPhysician", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0007, "SchedPSDescription", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0009, "SchedPSID", 16, SQL_C_CHAR, DT_STR, "OBR.4" },
    { 0x0040, 0x0010, "SchedStationName", 16, SQL_C_CHAR, DT_STR, "OBR.24" },
    { 0x0040, 0x0011, "SchedPSLocation", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0012, "PreMedication", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0020, "ScheduledProcedureStepStatus", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0400, "SchedPSComments", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0100, "---------", 0, SQL_C_CHAR, DT_ENDSEQUENCE, "---" },


    { 0x0040, 0x1001, "ReqProcID", 16, SQL_C_CHAR, DT_STR, "OBR.4.0" },
    { 0x0040, 0x1003, "ReqProcPriority", 16, SQL_C_CHAR, DT_STR, "OBR.27 }
    }


    3. This is what I'm getting on conquest console:


    [CONQUESTSRV1] UPACS THREAD 4: STARTED AT: Mon Mar 08 11:10:36 2010
    [CONQUESTSRV1] A-ASSOCIATE-RQ Packet Dump
    [CONQUESTSRV1] Calling Application Title : "NTSCAN "
    [CONQUESTSRV1] Called Application Title : "CONQUESTSRV1 "
    [CONQUESTSRV1] Application Context : "1.2.840.10008.3.1.1.1", PDU length: 16384
    [CONQUESTSRV1] Number of Proposed Presentation Contexts: 1
    [CONQUESTSRV1] Presentation Context 0 "1.2.840.10008.5.1.4.31" 1
    [CONQUESTSRV1] Server Command := 0020
    [CONQUESTSRV1] Message ID := 0000
    [CONQUESTSRV1] 0000,0002 22 UI AffectedSOPClassUID "1.2.840.10008.5.1.4.31"
    [CONQUESTSRV1] 0000,0100 2 US CommandField 32
    [CONQUESTSRV1] 0000,0110 2 US MessageID 0
    [CONQUESTSRV1] 0000,0700 2 US Priority 0
    [CONQUESTSRV1] 0000,0800 2 US DataSetType 0
    [CONQUESTSRV1] (ModalityWorkListQuery) search level:
    [CONQUESTSRV1] 0008,0050 0 SH AccessionNumber (empty)
    [CONQUESTSRV1] 0008,0090 0 PN ReferringPhysicianNa (empty)
    [CONQUESTSRV1] 0010,0010 0 PN PatientName (empty)
    [CONQUESTSRV1] 0010,0020 0 LO PatientID (empty)
    [CONQUESTSRV1] 0010,0030 0 DA PatientBirthDate (empty)
    [CONQUESTSRV1] 0010,0040 0 CS PatientSex (empty)
    [CONQUESTSRV1] 0010,1030 0 DS PatientWeight (empty)
    [CONQUESTSRV1] 0020,000d 0 UI StudyInstanceUID (empty)
    [CONQUESTSRV1] 0040,0100 0 SQ ScheduledProcedureSt Sequence Item
    [CONQUESTSRV1] >0040,0001 6 AE ScheduledStationAETi "NTSCAN"
    [CONQUESTSRV1] >0040,0002 8 DA ScheduledProcedureSt "20100308"
    [CONQUESTSRV1] >0040,0003 0 TM ScheduledProcedureSt (empty)
    [CONQUESTSRV1] >0040,0007 0 LO ScheduledProcedureSt (empty)
    [CONQUESTSRV1] >0040,0009 0 SH ScheduledProcedureSt (empty)
    [CONQUESTSRV1] >0040,0020 0 CS ScheduledProcedureSt (empty)
    [CONQUESTSRV1] Query On Modality WorkList
    [CONQUESTSRV1] Issue Query on Columns: DICOMWorkList.AccessionN, DICOMWorkList.ReferringP, DICOMWorkList.PatientNam, DICOMWorkList.PatientID, DICOMWorkList.PatientBir, DICOMWorkList.PatientSex, DICOMWorkList.PatientWei, DICOMWorkList.StudyInsta, DICOMWorkList.ScheduledA, DICOMWorkList.StartDate, DICOMWorkList.StartTime, DICOMWorkList.SchedPSDes, DICOMWorkList.SchedPSID, DICOMWorkList.ScheduledP
    [CONQUESTSRV1] Values: DICOMWorkList.ScheduledA = 'NTSCAN' and DICOMWorkList.StartDate = '20100308'
    [CONQUESTSRV1] Tables: DICOMWorkList
    [CONQUESTSRV1] Sorting (DICOMWorkList.PatientNam) DoSort := 1
    [CONQUESTSRV1] 0008,0050 10 SH AccessionNumber "2005-9999 "
    [CONQUESTSRV1] 0008,0090 16 PN ReferringPhysicianNa "BrindicNebojsha "
    [CONQUESTSRV1] 0010,0010 12 PN PatientName "Zijp^Lambert"
    [CONQUESTSRV1] 0010,0020 8 LO PatientID "20504567"
    [CONQUESTSRV1] 0010,0030 8 DA PatientBirthDate "19591206"
    [CONQUESTSRV1] 0010,0040 2 CS PatientSex "M "
    [CONQUESTSRV1] 0010,1030 2 DS PatientWeight "78"
    [CONQUESTSRV1] 0020,000d 0 UI StudyInstanceUID (empty)
    [CONQUESTSRV1] Coding sequence (0040,0100), level=1
    [CONQUESTSRV1] 0040,0001 6 AE ScheduledStationAETi "NTSCAN"
    [CONQUESTSRV1] 0040,0002 8 DA ScheduledProcedureSt "20100308"
    [CONQUESTSRV1] 0040,0003 0 TM ScheduledProcedureSt (empty)
    [CONQUESTSRV1] 0040,0007 0 LO ScheduledProcedureSt (empty)
    [CONQUESTSRV1] 0040,0009 10 SH ScheduledProcedureSt "1234^BRAIN"
    [CONQUESTSRV1] 0040,0020 0 CS ScheduledProcedureSt (empty)
    [CONQUESTSRV1] Records = 1
    [CONQUESTSRV1] C-Find (Modality Work List) located 1 records
    [CONQUESTSRV1] Server Command := 0fff
    [CONQUESTSRV1] Message ID := 0000
    [CONQUESTSRV1] 0000,0100 2 US CommandField 4095
    [CONQUESTSRV1] 0000,0120 2 US MessageIDBeingRespon 0
    [CONQUESTSRV1] 0000,0800 2 US DataSetType 257
    [CONQUESTSRV1] Cancel request (ignored)
    [CONQUESTSRV1] UPACS THREAD 4: ENDED AT: Mon Mar 08 11:10:36 2010
    [CONQUESTSRV1] UPACS THREAD 4: TOTAL RUNNING TIME: 0 SECONDS


    Well, there are no more errors, like before (see my last post), but worklists are still not transferred to the device. What I am doing wrong?
    Please reply me a.s.a.p., 'cause I'm keeping my MR busy, and patients cannot perform exams.


    Thanks in advance,
    Nebojsha

  • Forget all the problems, I did it!!!! It turned out that last settings were good. There are few things that should be known, and those are: StudyInstanceUID is mandatory, and some other fields, I have it all written, so I will post whole summary tomorrow, for possible future users that are trying to make conquest run with Philips NT Intera.


    Thank you for spared time, and all the best,
    Nebojsha Brindic

  • Hi,


    the mentioned errors in the LOG (patientweight etc) were ok: it is just that the scanner asks for fields conquest does not have. The essential part is the latter: put all mandatory information in the database like the STUDYUID!


    Marcel

  • Marcel, just one informative question... If I have two or more modalities, pointing to the same conquest dicom server, how should I manage the worklist table? Should I add fields in it to conform to all device requests, or queryconverters can do this instead of changing the table? I mean on following situation:


    -Modality 1 asks for PatientID, Name, DOB, Weight.
    -Modality 2 asks for PatientID, Name, DOB, Weight, RefferingPhysicianName, Comments.


    Should I make the DICOMWorklist table to look like [PatientId, Name, DOB, Weight, RefferingPhysicianName, Comments] , or I can manage this situation with queryconverters is something similar to following:


    - I have only [PatientID, Name, Weight] columns in a table. Add following converters:
    -converter1: for Modality 1, add the field "DOB" in response with the empty value.
    -converter2: for Modality 2, add the fields "DOB", "RefferingPhysicianName", "Comments" in response with the empty values.



    Waiting for reply.
    All the best,
    Nebojsha Brindic

  • Yes, it is OK to have all columns, but solution with queryconverters is more flexible (by my opinion). Can you please redirect me on some topic that speaks about this, or can you write me one sample converter that converts things from my last post? Please, this is my last question. Sorry because of disturbing, but I really need your help.
    THX in advance,
    Nebojsha Brindic

Participate now!

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