wlmscpfs - match i don't understand

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
mribeiro
Posts: 6
Joined: Fri, 2023-09-01, 08:25

wlmscpfs - match i don't understand

#1 Post by mribeiro »

Hello good,

Here is an example query:

Code: Select all

(0008,0050) SH (no value available)                     #   0, 0 AccessionNumber
(0008,0090) PN (no value available)                     #   0, 0 ReferringPhysicianName
(0010,0010) PN (no value available)                     #   0, 0 PatientName
(0010,0020) LO (no value available)                     #   0, 0 PatientID
(0010,0030) DA (no value available)                     #   0, 0 PatientBirthDate
(0010,0040) CS (no value available)                     #   0, 0 PatientSex
(0020,000d) UI (no value available)                     #   0, 0 StudyInstanceUID
(0032,1060) LO (no value available)                     #   0, 0 RequestedProcedureDescription
(0040,0100) SQ (Sequence with explicit length #=1)      # 112, 1 ScheduledProcedureStepSequence
  (fffe,e000) na (Item with explicit length #=12)         # 104, 1 Item
    (0008,0060) CS (no value available)                     #   0, 0 Modality
    (0032,1070) LO (no value available)                     #   0, 0 RequestedContrastAgent
    (0040,0001) AE (no value available)                     #   0, 0 ScheduledStationAETitle
    [b](0040,0002) DA [19951015]                               #   8, 1 ScheduledProcedureStepStartDate[/b]
    (0040,0003) TM (no value available)                     #   0, 0 ScheduledProcedureStepStartTime
    (0040,0006) PN (no value available)                     #   0, 0 ScheduledPerformingPhysicianName
    (0040,0007) LO (no value available)                     #   0, 0 ScheduledProcedureStepDescription
    (0040,0009) SH (no value available)                     #   0, 0 ScheduledProcedureStepID
    (0040,0010) SH (no value available)                     #   0, 0 ScheduledStationName
    (0040,0011) SH (no value available)                     #   0, 0 ScheduledProcedureStepLocation
    (0040,0012) LO (no value available)                     #   0, 0 PreMedication
    (0040,0020) CS (no value available)                     #   0, 0 ScheduledProcedureStepStatus
  (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
(0040,1001) SH (no value available)                     #   0, 0 RequestedProcedureID
(0040,1003) SH (no value available)                     #   0, 0 RequestedProcedurePriority
As we can see, only "ScheduledProcedureStepStartDate" is informed in the query.

This is the answer from "wlmscpfs":

Code: Select all

(0008,0050) SH [123456]                                 #   6, 1 AccessionNumber
(0008,0090) PN (no value available)                     #   0, 0 ReferringPhysicianName
(0010,0010) PN [JOSE TOBIAS ]                           #  12, 1 PatientName
(0010,0020) LO [1111]                                   #   4, 1 PatientID
(0010,0030) DA [19781112]                               #   8, 1 PatientBirthDate
(0010,0040) CS [M ]                                     #   2, 1 PatientSex
(0020,000d) UI [111]                                    #   4, 1 StudyInstanceUID
(0032,1060) LO [RX]                                     #   2, 1 RequestedProcedureDescription
(0040,0100) SQ (Sequence with explicit length #=1)      # 112, 1 ScheduledProcedureStepSequence
  (fffe,e000) na (Item with explicit length #=12)         # 104, 1 Item
    (0008,0060) CS [MR]                                     #   2, 1 Modality
    (0032,1070) LO [BARIUMSULFAT]                           #  12, 1 RequestedContrastAgent
    (0040,0001) AE [AA32\AA33 ]                             #  10, 2 ScheduledStationAETitle
    (0040,0002) DA [19951015]                               #   8, 1 ScheduledProcedureStepStartDate
    (0040,0003) TM [085607]                                 #   6, 1 ScheduledProcedureStepStartTime
    (0040,0006) PN [JOHNSON ]                               #   8, 1 ScheduledPerformingPhysicianName
    (0040,0007) LO [EXAM74]                                 #   6, 1 ScheduledProcedureStepDescription
    (0040,0009) SH [XXX ]                                   #   4, 1 ScheduledProcedureStepID
    (0040,0010) SH (no value available)                     #   0, 0 ScheduledStationName
    (0040,0011) SH (no value available)                     #   0, 0 ScheduledProcedureStepLocation
    (0040,0012) LO (no value available)                     #   0, 0 PreMedication
    (0040,0020) CS (no value available)                     #   0, 0 ScheduledProcedureStepStatus
  (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
(0040,1001) SH [RP454G234 ]                             #  10, 1 RequestedProcedureID
(0040,1003) SH [LOW ]                                   #   4, 1 RequestedProcedurePriority
Note that the "StudyInstanceUID" is populated.

When I leave it empty in the ".wl" file, like this:

Code: Select all

(0020,000d) UI []                  #  26, 1 StudyInstanceUID
Then "wlmscpfs" does not respond, displaying the msg:

Code: Select all

Worklist file ".\1.wl" is incomplete, file will be ignored
Matching results: 0 matching records found in worklist files
I don't want to send "StudyInstanceUID" to my worklist, how do I accept null values, like other attributes?

What am I doing wrong?

Thank you very much!
Marcelo

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

Re: wlmscpfs - match i don't understand

#2 Post by J. Riesmeier »

The Study Instance UID (0020,000d) Attribute is a required Return Key, i.e. the Worklist Management SCP has to provide a value if requested by the SCU. Therefore, the wlmscpfs tool by default checks that this data element is present with a value.

If you want to disable this check, you could start wlmscpfs with option --disable-file-reject (-dfr).

mribeiro
Posts: 6
Joined: Fri, 2023-09-01, 08:25

Re: wlmscpfs - match i don't understand

#3 Post by mribeiro »

Hi Riesmeier,

I am delighted with your level of knowledge, thank you very much once again.

I note that when the modality does not receive a "StudyInstanceUID" from the worklist, the modality itself generates a UID, so my goal is to never send the UID and let the device do it, am I on the right track?

One more question:
Doing this:

Code: Select all

findscu --call WORKLIST 127.0.0.1 104 -k "(0010,0010)=*"
wlmscpfs' answer is:

Code: Select all

(0010,0010) PN [MARLENE IARA]                           #  12, 1 PatientName
Is there any way to return more attributes than were requested? In this case, only the key (0010,0010) was passed, but I would like to respond with all the keys contained in the ".wl" file.

That makes sense?

Thank you very much!
Marcelo

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

Re: wlmscpfs - match i don't understand

#4 Post by J. Riesmeier »

I note that when the modality does not receive a "StudyInstanceUID" from the worklist, the modality itself generates a UID, so my goal is to never send the UID and let the device do it, am I on the right track?
If you are on the server side (SCP), you must provide a non-empty value for the Study Instance UID if the SCU requests this Attribute (with an empty value). There is no way around this, unless you know that no SCU that is connected to your system (SCP) will ever request this Attribute (which is probably only a theoretical solution).
Is there any way to return more attributes than were requested?
The short answer is: no, because this is how the DICOM service is defined. However, you could request the Scheduled Procedure Step Sequence with an empty value (no Item with Attributes contained in it), because then Sequence Matching applies.

mribeiro
Posts: 6
Joined: Fri, 2023-09-01, 08:25

Re: wlmscpfs - match i don't understand

#5 Post by mribeiro »

As always a clear and objective answer, thank you very much.

Based on your explanation, I imagine the correct way would be to provide the completed StudyInstanceUID, sorry for my lack of knowledge, can this UID be automatically generated by wlmscpfs? How can I generate this UID to provide in the response?

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

Re: wlmscpfs - match i don't understand

#6 Post by J. Riesmeier »

Based on your explanation, I imagine the correct way would be to provide the completed StudyInstanceUID
Correct. Details can be found in DICOM part 4 (PS3.4).
can this UID be automatically generated by wlmscpfs? How can I generate this UID to provide in the response?
No, wlmscpfs expects the .wl files to be complete according to the requirements for a DICOM-compliant MWL SCP (unless option -dfr is used).

Of course, you could modify the .wl files, which are actually DICOM files, with a tool like dcmodify. dcmodify has many options to modify a DICOM file, including --gen-stud-uid (-gst) for generating a new Study Instance UID.

mribeiro
Posts: 6
Joined: Fri, 2023-09-01, 08:25

Re: wlmscpfs - match i don't understand

#7 Post by mribeiro »

Thank you very much Riesmeier, I hope to take the course with you soon to learn a little more about the details.

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

Re: wlmscpfs - match i don't understand

#8 Post by J. Riesmeier »

You are welcome, Marcelo.

By the way, the next DICOM training course in English starts on Monday: https://www.jriesmeier.com/dicom-traini ... ober-2023/

Regards,
Jörg

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest