Worklist question

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
robertsdavidb
Posts: 17
Joined: Thu, 2012-09-27, 09:12

Worklist question

#1 Post by robertsdavidb »

I have setup wlmscpfs with no problems and can query it fine with findscu with a few keys such as PatientName. I've used the wwwapps PERL scripts to generate the worklist files.

I have a Varian DR system that seems to have an odd query that's throwing errors because of missing values. It works fine for the two other worklists we've queried (GE Centricity is one).

Here is the query ..

Code: Select all

I: ===================== INCOMING DIMSE MESSAGE ====================
I: Message Type                  : C-FIND RQ
I: Presentation Context ID       : 1
I: Message ID                    : 59
I: Affected SOP Class UID        : FINDModalityWorklistInformationModel
I: Data Set                      : present
I: Priority                      : low
I: ======================= END DIMSE MESSAGE =======================
I: Find SCP Request Identifiers:
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0050) SH (no value available)                     #   0, 0 AccessionNumber
I: (0008,0090) PN (no value available)                     #   0, 0 ReferringPhysicianName
I: (0010,0010) PN (no value available)                     #   0, 0 PatientName
I: (0010,0020) LO (no value available)                     #   0, 0 PatientID
I: (0010,0030) DA (no value available)                     #   0, 0 PatientBirthDate
I: (0010,0040) CS (no value available)                     #   0, 0 PatientSex
I: (0010,1000) LO (no value available)                     #   0, 0 OtherPatientIDs
I: (0020,000d) UI (no value available)                     #   0, 0 StudyInstanceUID
I: (0032,1060) LO (no value available)                     #   0, 0 RequestedProcedureDescription
I: (0040,0100) SQ (Sequence with explicit length #=1)      #  86, 1 ScheduledProcedureStepSequence
I:   (fffe,e000) na (Item with explicit length #=7)          #  78, 1 Item
I:     (0008,0060) CS (no value available)                     #   0, 0 Modality
I:     (0040,0001) AE [DICOMPACS ]                             #  10, 1 ScheduledStationAETitle
I:     (0040,0002) DA [20121018]                               #   8, 1 ScheduledProcedureStepStartDate
I:     (0040,0003) TM (no value available)                     #   0, 0 ScheduledProcedureStepStartTime
I:     (0040,0006) PN (no value available)                     #   0, 0 ScheduledPerformingPhysicianName
I:     (0040,0007) LO (no value available)                     #   0, 0 ScheduledProcedureStepDescription
I:     (0040,0008) SQ (Sequence with explicit length #=0)      #   0, 1 ScheduledProtocolCodeSequence
I:     (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
I:   (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
I: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
I:
I: =============================
I: Checking the search mask
W: Empty sequence (ScheduledProtocolCodeSequence) encountered within the query, treating as if an empty item within the sequence has been sent
I: Expanded Find SCP Request Identifiers:
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0050) SH (no value available)                     #   0, 0 AccessionNumber
I: (0008,0090) PN (no value available)                     #   0, 0 ReferringPhysicianName
I: (0010,0010) PN (no value available)                     #   0, 0 PatientName
I: (0010,0020) LO (no value available)                     #   0, 0 PatientID
I: (0010,0030) DA (no value available)                     #   0, 0 PatientBirthDate
I: (0010,0040) CS (no value available)                     #   0, 0 PatientSex
I: (0010,1000) LO (no value available)                     #   0, 0 OtherPatientIDs
I: (0020,000d) UI (no value available)                     #   0, 0 StudyInstanceUID
I: (0032,1060) LO (no value available)                     #   0, 0 RequestedProcedureDescription
I: (0040,0100) SQ (Sequence with explicit length #=1)      #  86, 1 ScheduledProcedureStepSequence
I:   (fffe,e000) na (Item with explicit length #=7)          #  78, 1 Item
I:     (0008,0060) CS (no value available)                     #   0, 0 Modality
I:     (0040,0001) AE [DICOMPACS ]                             #  10, 1 ScheduledStationAETitle
I:     (0040,0002) DA [20121018]                               #   8, 1 ScheduledProcedureStepStartDate
I:     (0040,0003) TM (no value available)                     #   0, 0 ScheduledProcedureStepStartTime
I:     (0040,0006) PN (no value available)                     #   0, 0 ScheduledPerformingPhysicianName
I:     (0040,0007) LO (no value available)                     #   0, 0 ScheduledProcedureStepDescription
I:     (0040,0008) SQ (Sequence with explicit length #=1)      #   0, 1 ScheduledProtocolCodeSequence
I:       (fffe,e000) na (Item with explicit length #=4)          #   0, 1 Item
I:         (0008,0100) SH (no value available)                     #   0, 0 CodeValue
I:         (0008,0102) SH (no value available)                     #   0, 0 CodingSchemeDesignator
I:         (0008,0103) SH (no value available)                     #   0, 0 CodingSchemeVersion
I:         (0008,0104) LO (no value available)                     #   0, 0 CodeMeaning
I:       (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
I:     (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
I:   (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
I: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
... and here are the errors I see.

Code: Select all

D: Checking whether dataset is complete ...
D: - ScheduledProtocolCodeSequence (0040,0008) is missing or empty
D: - RequestedProcedureCodeSequence (0032,1064) is missing or empty
D: - ReferencedStudySequence (0008,1110) is missing
W: Added missing type 2 sequence attribute (0008,1110) to the current record
D: - ReferencedPatientSequence (0008,1120) is missing
W: Added missing type 2 sequence attribute (0008,1120) to the current record
I: Information from worklist file /var/dscribe_files/worklist/DLIST/wl31.wl does not match query
If I understand this correctly, the SCU is querying on all those keys, of which, only two have values in my worklist files. The SCP should handle the empty keys and return a valid result set.

I have read a few threads here that seem to be simliar, but I am not sure what I need to do to work around it.

What am I missing here?

robertsdavidb
Posts: 17
Joined: Thu, 2012-09-27, 09:12

Re: Worklist question

#2 Post by robertsdavidb »

After playing with this a bit, I realized I had no matching worklist files, so I wasn't getting a return.

What I thought were errors are just -d messages of wlmscpfs gracefully handling the missing data.

qimo601
Posts: 32
Joined: Wed, 2012-06-06, 07:38

Re: Worklist question

#3 Post by qimo601 »

robertsdavidb wrote:After playing with this a bit, I realized I had no matching worklist files, so I wasn't getting a return.

What I thought were errors are just -d messages of wlmscpfs gracefully handling the missing data.
hi,robertsdavidb. I have a question,can you give me some help? Thanks in advance. I have confused with it a few days.

Did you have builded a www application server to create ,modify,delete the worklist entries using a Web browser????

robertsdavidb
Posts: 17
Joined: Thu, 2012-09-27, 09:12

Re: Worklist question

#4 Post by robertsdavidb »

Yes, I built the wwwapps and can manage worklist entries with the PERL scripts.

qimo601
Posts: 32
Joined: Wed, 2012-06-06, 07:38

Re: Worklist question

#5 Post by qimo601 »

robertsdavidb wrote:Yes, I built the wwwapps and can manage worklist entries with the PERL scripts.
Thanks for quick answer.

can you give me some question?

As it said on wwwapp.txt
However, wlmscpfs is not a
hospital information system. Therefore, worklist entries must
be created, updated and deleted manually. Since the DICOM
services do not support this, a WWW server application has
been developed which allows to use a web browser from any
workstation in the demonstration network to create, edit and
delete worklist entries. During DICOM exhibitions, this WWW
server will reside on a test workstation, so that vendors
participating in the demonstration only require a web browser
on their systems.
The Dcmtk developers told me that about the www application:
>Concerning your specific question, the Web Server user interface has never been developed
>for Windows, and we have never tried to run it on Windows. This was intended for a
>demonstration at an exhibition in 1996 (more than 15 years ago!) and seen very little
>maintenance ever after. At that time even Apache as a webserver did not yet exist.
>
>The underlying principle is that the web server generates the user interface by running
>the Perl scripts from dcmwlm/perl and the binaries from dcmwlm/wwwapps through the
>CGI interface.
>
>The problem with running this on Windows is that the API for locking files (which is
>used to prevent the DICOM worklist server from accessing worklist entries while the
>web server is modifying them) does not work on Windows, which is the reason why the
>preplock tool cannot be compiled there.
>
>Summary: It's outdated software, not intended for anything except a demo anyway,
>and it does not run on Windows.
So my question is that:
how to create, edit and delete worklist entries on windows if there's no www application?

I have sent a moveRequest by DcmSCU, and I need DcmSCP handle the request. so i want to use wlmscpfs to match the query keys on worklist entries.
But i don't know how to build these worklist entries.

robertsdavidb
Posts: 17
Joined: Thu, 2012-09-27, 09:12

Re: Worklist question

#6 Post by robertsdavidb »

You can create the worklist files as ascii, then use dump2dcm to convert them to DICOM files. Take a look in the dcwlm/data/wlistqry/ directory and view the dump file examples.

qimo601
Posts: 32
Joined: Wed, 2012-06-06, 07:38

Re: Worklist question

#7 Post by qimo601 »

robertsdavidb wrote:You can create the worklist files as ascii, then use dump2dcm to convert them to DICOM files. Take a look in the dcwlm/data/wlistqry/ directory and view the dump file examples.
Is there any classes or function to create the worklist in DCMTK???
Because i can't use the dump2dcm.exe in my own qt application.

robertsdavidb
Posts: 17
Joined: Thu, 2012-09-27, 09:12

Re: Worklist question

#8 Post by robertsdavidb »

I am not aware of anything other than dump2dcm. Perhaps it is possible to build it as a .dll. I am not sure.

Why not launch dump2dcm as an external process from with your QT app?

qimo601
Posts: 32
Joined: Wed, 2012-06-06, 07:38

Re: Worklist question

#9 Post by qimo601 »

robertsdavidb wrote:I am not aware of anything other than dump2dcm. Perhaps it is possible to build it as a .dll. I am not sure.

Why not launch dump2dcm as an external process from with your QT app?
Thanks robertsdavidb. Your quick answer is very helpful for me.

But if I use dump2dcm as an external process to cerate the '*.wl' file, where can i get the '*.dump' file???

As you know, when i run a DcmSCP on the server computer ,it can only receive a storeRequest with DcmDataset parameter from DcmSCU. so i can only save the DcmDataset to a dicom type file with funtion DcmDataset::saveFile ().

There's no way to generate *.dump or *.wl files in DCMTK classes ?????I need these worklist entries to match searching keys .

Thanks for your any help you can give!

J. Riesmeier
DCMTK Developer
Posts: 2509
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Worklist question

#10 Post by J. Riesmeier »

The *.wl files are simple DICOM files, so use the second example in dcmdata's documentation as a starting point ...

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Baidu [Spider], Bing [Bot], Google [Bot] and 1 guest