Any Worklist Gurus Out There?

  • I have been trying very hard to get a Siemens Syngo Emotion 16 slice CT to pull the worklist from my linux 1.4.14 worklist server. any bugs in .14? I have no problem adding individual dicom attributes to the dicom.sql and database such as pregnancy status etc. The problem occurs when I try to get into the area of sequences. One of the sequences actually is two deep being inside of the 0040,0100 sequence that comes with conquest by default. Two specific attributes that Siemens Persists on having that i cannot get to work for the life of me are Type 1 0040,0008 SchedProtocolSequence and 0032,1064 ReqProcCodeSequence.


    From my research, these contain some Code attributes. I cannot get these to feed properly using a combination of start and end sequences or just adding the attributes and seeing if the order of results just provides the fields to the SCU. I'm thinking it should act similar to the sequence scheduled performed procedure sequence. Does anyone have any working examples or some elaborate or comprehensive dicom.sql files to share? Any help is greatly appreciated. I would like to type a blog up if i can get it working for others to understand with step by step instructions. I'm thinking its possible.


    *WorkList*
    {
    { 0x0008, 0x0050, "AccessionNumber", 16, SQL_C_CHAR, DT_STR, "OBR.3" },
    { 0x0008, 0x0090, "ReferringPhysiciansName", 64, SQL_C_CHAR, DT_STR, "OBR.16" },
    { 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" },
    { 0x0010, 0x1030, "PatientsWeight", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0010, 0x2000, "MedicalAlerts", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0010, 0x2110, "ContrastAllergies", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0010, 0x21c0, "PregnancyStatus", 16, 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", 16, SQL_C_CHAR, DT_STR, "OBR.4.1" },


    { 0x0032, 0x1064, "--------", 0, SQL_C_CHAR, DT_STARTSEQUENCE, "---" },
    { 0x0032, 0x1064, "ReqProcCodeSequence", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0100, "CodeValue", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0102, "CodeSchDesignator", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0103, "CodeSchVersion", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0104, "CodeMeaning", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0032, 0x1064, "--------", 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" },
    { 0x0040, 0x1004, "PatientTransportArrangements", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x3001, "ConfidentialityOnPatientDataDescr", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0038, 0x0010, "AdmissionID", 16, SQL_C_CHAR, DT_STR, "OBR.3" },
    { 0x0038, 0x0050, "SpecialNeeds", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0038, 0x0300, "CurrentPatientLocation", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0038, 0x0500, "PatientState", 16, SQL_C_CHAR, DT_STR, "---" },

    { 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, 0x0008, "--------", 0, SQL_C_CHAR, DT_STARTSEQUENCE, "---" },
    { 0x0040, 0x0008, "SchedProtocolSequence", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0100, "CodeValue", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0102, "CodeSchDesignator", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0103, "CodeSchVersion", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0104, "CodeMeaning", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0008, "---------", 0, SQL_C_CHAR, DT_ENDSEQUENCE, "---" },


    { 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, 0x0400, "SchedPSComments", 64, SQL_C_CHAR, DT_STR, "---" },
    { 0x0040, 0x0100, "---------", 0, SQL_C_CHAR, DT_ENDSEQUENCE, "---" },

  • Hi,


    conquest echoes the sequence structure that siemens requests, irrespective of the database (which is always 'flat'). Your problem may be that you need VR's twice or need to send VR's that Siemens does not request. Can you send a dump of what siemens requests and what conquest responds?


    Edit: the only bug in 1.4.14 relates to the WorkListReturnsISO_IR_100 flag.


    Marcel

  • Here is siemens scu c-find and my response. it appears to build the sequence for the 0040,0100 just fine just not the other two i need. it's weird because on a query from an ultrasound it seems to build them but it must be a siemens issue for the order of the results.


    Edited for brevity by mvh:
    Query:
    0008,0005 0 CS SpecificCharacterSet (empty)
    0008,0050 0 SH AccessionNumber (empty)
    0008,0080 0 LO InstitutionName (empty)
    0008,0081 0 ST InstitutionAddress (empty)
    0008,0082 0 SQ InstitutionCodeSeque Sequence Item
    0008,0090 0 PN ReferringPhysicianNa (empty)
    0008,1080 0 LO AdmittingDiagnosisDe (empty)
    0008,1110 0 SQ ReferencedStudySeque Sequence Item
    0008,1120 0 SQ ReferencedPatientSeq Sequence Item
    0008,1125 0 SQ ReferencedVisitSeque Sequence Item
    0010,0010 0 PN PatientName (empty)
    0010,0020 0 LO PatientID (empty)
    0010,0021 0 LO IssuerOfPatientID (empty)
    0010,0030 0 DA PatientBirthDate (empty)
    0010,0032 0 TM PatientBirthTime (empty)
    0010,0040 0 CS PatientSex (empty)
    0010,0050 0 SQ PatientInsurancePlan Sequence Item
    0010,1000 0 LO OtherPatientID (empty)
    0010,1001 0 PN OtherPatientName (empty)
    0010,1005 0 PN PatientBirthName (empty)
    0010,1010 0 AS PatientAge (empty)
    0010,1020 0 DS PatientSize (empty)
    0010,1030 0 DS PatientWeight (empty)
    0010,1040 0 LO PatientAddress (empty)
    0010,1060 0 PN PatientMotherBirthNa (empty)
    0010,1080 0 LO MilitaryRank (empty)
    0010,1081 0 LO BranchOfService (empty)
    0010,1090 0 LO MedicalRecordLocator (empty)
    0010,2000 0 LO MedicalAlerts (empty)
    0010,2110 0 LO ContrastAllergies (empty)
    0010,2150 0 LO CountryOfResidence (empty)
    0010,2152 0 LO RegionOfResidence (empty)
    0010,2154 0 SH PatientTelephoneNumb (empty)
    0010,2160 0 SH EthnicGroup (empty)
    0010,2180 0 SH Occupation (empty)
    0010,21a0 0 CS SmokingStatus (empty)
    0010,21b0 0 LT AdditionalPatientHis (empty)
    0010,21c0 0 US PregnancyStatus (empty)
    0010,21d0 0 DA LastMenstrualDate (empty)
    0010,21f0 0 LO PatientReligiousPref (empty)
    0010,4000 0 LT PatientComments (empty)
    0020,000d 0 UI StudyInstanceUID (empty)
    0032,1032 0 PN RequestingPhysician (empty)
    0032,1033 0 LO RequestingService (empty)
    0032,1060 0 LO RequestedProcedureDe (empty)
    0032,1064 0 SQ RequestedProcedureCo Sequence Item
    0038,0004 0 SQ ReferencedPatientAli Sequence Item
    0038,0008 0 CS VisitStatusID (empty)
    0038,0010 0 LO AdmissionID (empty)
    0038,0011 0 LO IssuerOfAdmissionID (empty)
    0038,0050 0 LO SpecialNeeds (empty)
    0038,0300 0 LO CurrentPatientLocati (empty)
    0038,0400 0 LO PatientInstitutionRe (empty)
    0038,0500 0 LO PatientState (empty)
    0038,4000 0 LT VisitComments (empty)
    0040,0100 0 SQ ScheduledProcedureSt Sequence Item
    >0008,0060 2 CS Modality "CT"
    >0032,1070 0 LO RequestedContrastAge (empty)
    >0040,0001 0 AE ScheduledStationAETi (empty)
    >0040,0002 8 DA ScheduledProcedureSt "20091117"
    >0040,0003 14 TM ScheduledProcedureSt "000000-235959 "
    >0040,0004 0 DA ScheduledProcedureSt (empty)
    >0040,0005 0 TM ScheduledProcedureSt (empty)
    >0040,0006 0 PN ScheduledPerformingP (empty)
    >0040,0007 0 LO ScheduledProcedureSt (empty)
    >0040,0008 0 SQ ScheduledProcedureSt Sequence Item
    >0040,0009 0 SH ScheduledProcedureSt (empty)
    >0040,0010 0 SH ScheduledStationName (empty)
    >0040,0011 0 SH ScheduledProcedureSt (empty)
    >0040,0012 0 LO ScheduledPreOrderOfM (empty)
    >0040,0020 0 UN (empty)
    >0040,0400 0 LT CommentsOnScheduledP (empty)
    0040,1001 0 SH RequestedProcedureID (empty)
    0040,1002 0 LO ReasonForRequestedPr (empty)
    0040,1003 0 SH RequestedProcedurePr (empty)
    0040,1004 0 LO PatientTransportArra (empty)
    0040,1005 0 LO RequestedProcedureLo (empty)
    0040,1008 0 LO ConfidentialityCode (empty)
    0040,1009 0 UN (empty)
    0040,1010 0 UN (empty)
    0040,1400 0 LT RequestedProcedureCo (empty)
    0040,2004 0 DA IssueDateOfImagingSe (empty)
    0040,2005 0 TM IssueTimeOfImagingSe (empty)
    0040,2008 0 PN OrderEnteredBy (empty)
    0040,2009 0 SH OrderEntererLocation (empty)
    0040,2010 0 SH OrderCallbackPhoneNu (empty)
    0040,2016 0 UN (empty)
    0040,2017 0 UN (empty)
    0040,2400 0 LT ImagingServiceReques (empty)
    0040,3001 0 LT ConfidentialityConst (empty)
    Query On Modality WorkList
    Records = 3
    First record of cleaned response:
    0008,0005 10 CS SpecificCharacterSet "ISO IR_100"
    0008,0050 14 SH AccessionNumber "20091117250881"
    0008,0090 6 PN ReferringPhysicianNa "WILSON"
    0008,1110 0 SQ ReferencedStudySeque Sequence Item
    0008,1120 0 SQ ReferencedPatientSeq Sequence Item
    0010,0010 14 PN PatientName "LAST^FIRST^F"
    0010,0020 6 LO PatientID "245436"
    0010,0030 8 DA PatientBirthDate "19391228"
    0010,0040 2 CS PatientSex "M "
    0010,1030 0 DS PatientWeight ""
    0010,2000 8 LO MedicalAlerts "UNKNOWN "
    0010,2110 8 LO ContrastAllergies "UNKNOWN "
    0010,21c0 0 US PregnancyStatus "UNKNOWN "
    0020,000d 14 UI StudyInstanceUID "20091117250881"
    0032,1032 6 PN RequestingPhysician "WILSON"
    0032,1060 22 LO RequestedProcedureDe "CT ABDOMEN NO CONTRAST"
    0032,1064 0 SQ RequestedProcedureCo "CT ABDOMEN NO CONTRAST"
    0038,0010 14 LO AdmissionID "20091117250881"
    0038,0050 4 LO SpecialNeeds "NONE"
    0038,0300 8 LO CurrentPatientLocati "UNKNOWN "
    0038,0500 0 LO PatientState ""
    0040,0100 0 SQ ScheduledProcedureSt Sequence Item
    >0008,0060 2 CS Modality "CT"
    >0032,1070 0 LO RequestedContrastAge ""
    >0040,0001 8 AE ScheduledStationAETi "AN_MEDPC"
    >0040,0002 8 DA ScheduledProcedureSt "20091117"
    >0040,0003 6 TM ScheduledProcedureSt "130000"
    >0040,0006 6 PN ScheduledPerformingP "WILSON"
    >0040,0007 22 LO ScheduledProcedureSt "CT ABDOMEN NO CONTRAST"
    >0040,0008 0 SQ ScheduledProcedureSt "CT ABDOMEN NO CONTRAST"
    >0040,0009 14 SH ScheduledProcedureSt "20091117250881"
    >0040,0010 0 SH ScheduledStationName ""
    >0040,0011 0 SH ScheduledProcedureSt ""
    >0040,0012 0 LO ScheduledPreOrderOfM ""
    >0040,0400 0 LT CommentsOnScheduledP ""
    0040,1001 14 SH RequestedProcedureID "20091117250881"
    0040,1003 0 SH RequestedProcedurePr ""
    0040,1004 0 LO PatientTransportArra ""
    0040,3001 0 LT ConfidentialityConst ""
    C-Find (Modality Work List) located 3 records

  • Hi.


    I justed edited the previous post to put the query and the response below each other. As you can see, conquest replies with exactly the same structure as the query, but only with the fields stored in the database - that is how the worklist query was programmed. It does not fill out sequences where no internals was asked. This is the way that a 'flat' database query can be made to response to sequences.


    So I believe, Siemens wants something that conquest cannot provide, unless the worklist query response would be hard coded.


    Sorry,


    Marcel

  • The siemens guys tell me that it works with all of the his/ris and worklists they usually attach to at other sites. They tell me they cannot turn off these fields as they are type 1.


    Why does conquest not reply something like this?


    0032,1064 0 SQ RequestedProcedureCo "CT ABDOMEN NO CONTRAST"
    >0008, 0100 2 CodeValue "UNKNOWN"
    >0008, 0102 2 CodeSchDesignator "UNKNOWN"
    >0008, 0103 2 CodeSchVersion "UNKNOWN"
    >0008, 0104 2 CodeMeaning "UNKNOWN"

    based on the following in the dicom.sql and data in the database. Is it something to do with the startsequence and end sequence that i am missing? why only start and stop sequence for the 0040,0100 sequence and no others?


    { 0x0032, 0x1064, "ReqProcCodeSequence", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0100, "CodeValue", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0102, "CodeSchDesignator", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0103, "CodeSchVersion", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0104, "CodeMeaning", 16, SQL_C_CHAR, DT_STR, "---" },

  • Here's a response to a query from my philips iu22 ultrasound...weird how conquest puts in the sequences but not for ct?


    First record of cleaned response:
    0008,0005 10 CS SpecificCharacterSet "ISO IR_100"
    0008,0050 14 SH AccessionNumber "20091117246368"
    0008,0090 8 PN ReferringPhysicianNa "SIEVERS "
    0008,1110 0 SQ ReferencedStudySeque Sequence Item
    0008,1120 0 SQ ReferencedPatientSeq Sequence Item
    0010,0010 16 PN PatientName "LAST^FIRST^J"
    0010,0020 6 LO PatientID "55558"
    0010,0030 8 DA PatientBirthDate "19400706"
    0010,0040 2 CS PatientSex "F "
    0010,1030 0 DS PatientWeight ""
    0010,2000 8 LO MedicalAlerts "UNKNOWN "
    0010,21c0 0 US PregnancyStatus "UNKNOWN "
    0020,000d 0 UI StudyInstanceUID ""
    0032,1032 8 PN RequestingPhysician "SIEVERS "
    0032,1060 10 LO RequestedProcedureDe "US THYROID"
    0032,1064 0 SQ RequestedProcedureCo Sequence Item
    >0008,0100 8 SH CodeValue "UNKNOWN "
    >0008,0102 8 SH CodingSchemeDesignat "UNKNOWN "
    >0008,0103 8 UN "UNKNOWN "
    >0008,0104 8 LO CodeMeaning "UNKNOWN "

    0038,0300 8 LO CurrentPatientLocati "UNKNOWN "
    0040,0100 0 SQ ScheduledProcedureSt Sequence Item
    >0008,0060 2 CS Modality "US"
    >0032,1070 0 LO RequestedContrastAge ""
    >0040,0001 0 AE ScheduledStationAETi ""
    >0040,0002 8 DA ScheduledProcedureSt "20091117"
    >0040,0003 4 TM ScheduledProcedureSt "1030"
    >0040,0006 8 PN ScheduledPerformingP "SIEVERS "
    >0040,0007 10 LO ScheduledProcedureSt "US THYROID"
    >0040,0008 0 SQ ScheduledProcedureSt Sequence Item
    >>0008,0100 8 SH CodeValue "UNKNOWN "
    >>0008,0102 8 SH CodingSchemeDesignat "UNKNOWN "
    >>0008,0103 8 UN "UNKNOWN "
    >>0008,0104 8 LO CodeMeaning "UNKNOWN "

    >0040,0009 0 SH ScheduledProcedureSt ""
    >0040,0010 0 SH ScheduledStationName ""
    >0040,0011 0 SH ScheduledProcedureSt ""
    >0040,0012 0 LO ScheduledPreOrderOfM ""
    >0040,0400 0 LT CommentsOnScheduledP ""
    0040,1001 0 SH RequestedProcedureID ""

  • Hi,


    if the requester asks for the items under a sequence, it gets them. Siemens just asks for the sequence, not the items. The DT_STARTSEQUENCE and DT_ENDSEQUENCE is just a comment. It does not do anything...


    Marcel

  • Hi,


    these sequence fields in the database are comment only: if they are present, they MUST have zero length and DT_START/ENDSEQUENCE type. I actually believe they do not even need to be present. The presence of sequences is read from the query and any sequence in the query is always echoed in the result.


    Code
    { 0x0040, 0x0100, "--------", 0, SQL_C_CHAR, DT_STARTSEQUENCE, "---" },


    Marcel

  • I just wanted to follow up on this. I was never able to get Siemens CT Syngo 2009E to successfully take worklist rsp from Conquest. It only asks for the 0032,1064 and 0040,0008 but expects the SCP to return at least the 0008,0100 and 0008,0102 sub items for these two sequences without defining it in its request. I had to use an alternative SCP to make it work. It is unfortunate I could not use the Conquest. I guess it would take some hard coding to make it work.


    { 0x0032, 0x1064, "ReqProcCodeSequence", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0100, "CodeValue", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0102, "CodeSchDesignator", 16, SQL_C_CHAR, DT_STR, "---" },
    expected but not asked for


    0040,0008 0 SQ ScheduledProcedureSt Sequence Item
    { 0x0008, 0x0100, "CodeValue", 16, SQL_C_CHAR, DT_STR, "---" },
    { 0x0008, 0x0102, "CodeSchDesignator", 16, SQL_C_CHAR, DT_STR, "---" },
    expected but not asked for

  • Hi,


    in 1.4.15 you can insert the missing tags into the worklist query using:


    WorkListQueryConverter0 = set 0032,1064/0008,0100 to ""; set 0032,1064/0008,0102 to ""


    This should force conquest to return the items even if they are not asked for.


    Marcel

  • Hi,


    dear jheleniak and marcelvanherk please let me know about your test. I am new in PACS field and have stucked with Siemens Somaton Sensation Open CT. I am facing the same problem with modality work list. Siemens CT query the conquest but shows no results. as this conquest mwl is working fine with Toshiba CT and Kodak CRs.

Participate now!

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