How does Modality Worklist plugin work in Orthanc?

2,907 views
Skip to first unread message

Peter Parker

unread,
May 25, 2016, 11:06:20 PM5/25/16
to Orthanc Users
Hi,

Orthanc supported Modality Worklist but have no tutorial about this. I don't know how to work with worklist file.

Is it .wl file?

So how can I make crud (create,read,update,delete) worklist?

Thanks,


Peter Parker

unread,
May 26, 2016, 12:17:07 AM5/26/16
to Orthanc Users
I found tutorial at http://forum.dcmtk.org/viewtopic.php?t=84

It's better if have a tutorial in orthanc website,

Thanks

Sébastien Jodogne

unread,
May 26, 2016, 3:31:58 AM5/26/16
to Orthanc Users
There does exist a FAQ entry on the Orthanc Web site:

Peter Parker

unread,
May 26, 2016, 3:47:02 AM5/26/16
to Orthanc Users
You mean https://orthanc.chu.ulg.ac.be/sdk/group__Worklists.html

I'm really not understand these function. Poor me :(

How can I manage worklist :(

Peter Parker

unread,
May 26, 2016, 3:48:57 AM5/26/16
to Orthanc Users
Hi Sébastien ,

May it be have restful api for worklist ? :(


On Thursday, May 26, 2016 at 2:31:58 PM UTC+7, Sébastien Jodogne wrote:

Sébastien Jodogne

unread,
May 26, 2016, 3:55:03 AM5/26/16
to Orthanc Users
I rather meant the following line : "A sample plugin is available to serve the worklists stored in some folder on the filesystem. This mimics the behavior of the wlmscpfs command-line tool from the DCMTK software. dump2dcm might be a very useful companion tool to feed the sample plugin with worklists for some separate maintenance script."

Regarding the REST API for worklists, it is definitely possible thanks to the plugin SDK. It would be a really great, useful plugin. However, I currently work on other parts of Orthanc for my employer, so I cannot do this by now.

Obviously, any third-party contribution providing such a "RESTful worklist plugin" would be warmly welcome. Orthanc is free and open-source, so that everybody (not just me) can contribute through plugins.

Sébastien-

Peter Parker

unread,
May 26, 2016, 5:03:50 AM5/26/16
to Orthanc Users
Hi Sébastien,

Can you tell me about how to manage worklist (.wl file) such as create,read,update,delete.

I config worklist plugin into Orthanc but I don't know how it work :(

Sébastien Jodogne

unread,
May 26, 2016, 5:10:16 AM5/26/16
to Orthanc Users
Simply create/read/modify/delete the files in the folder containing the worklist files (cf. the "Database" option in the "Worklists" section of the configuration file of Orthanc).

This folder is automatically re-scanned for each incoming worklist request.

Peter Parker

unread,
May 26, 2016, 5:21:05 AM5/26/16
to Orthanc Users
But how can I create .wl file :|

Seem to be .wl file is converted from .dump file, and so how can I create .dump file :(

I have info about patient: id, name, age. And I have to create .wl file from that info, is this right?

--
Thank you so much

Peter Parker

unread,
May 26, 2016, 5:24:11 AM5/26/16
to Orthanc Users
By the way, I used Modality Emulator to read worklist, but it stop responding immedialy

It seem Orthanc is not response worklist!!


On Thursday, May 26, 2016 at 10:06:20 AM UTC+7, Peter Parker wrote:

Alain Mazy

unread,
May 26, 2016, 5:26:45 AM5/26/16
to Peter Parker, Orthanc Users
.dump file is a text file a human (you) can write in a text editor.
--

Alain Mazy / CTO 
a...@osimis.io / +32 494 31 67 27

OSIMIS S.A.

OSIMIS S.A. 
Rue bois Saint-Jean 15/1BE-4102 Seraing 
www.osimis.io

Twitter LinkedIn


Peter Parker

unread,
May 26, 2016, 5:27:06 AM5/26/16
to Orthanc Users


Alain Mazy

unread,
May 26, 2016, 5:29:41 AM5/26/16
to Peter Parker, Orthanc Users
Orthanc is not a RIS and will never be.

Peter Parker

unread,
May 26, 2016, 5:37:01 AM5/26/16
to Orthanc Users, spider...@gmail.com
Hi Alain,

I'm just test worklist plugin of Orthanc

So how can I test this function if do not use Modality Emulator?


Thanks for your help :)

Alain Mazy

unread,
May 26, 2016, 5:46:09 AM5/26/16
to Peter Parker, Orthanc Users
findscu (and Google by the way) are your friends 

Peter Parker

unread,
May 26, 2016, 5:58:41 AM5/26/16
to Orthanc Users, spider...@gmail.com
Hi Alain, 

I'm not familar with C, C++ :)

So I don't understand that tool and how to use that tool much.

You know, it's hard to understand the field that you're not familiar with :)

Alain Mazy

unread,
May 27, 2016, 3:29:37 AM5/27/16
to Peter Parker, Orthanc Users
The Dll files should be in the same directory as the Orthanc executable (the location depends on the way you have installed Orthanc).

For the worklist creation, I have updated the faq: https://orthanc.chu.ulg.ac.be/book/faq/worklist.html



On Fri, May 27, 2016 at 5:15 AM, Peter Parker <spider...@gmail.com> wrote:
Hi Alain,

Thanks for your tutorial, it's so clear,

But I'm still confused: 
I must save dll file to ... where?
C:\Orthanc
or
C:\Program Files (x86)\Orthanc\Orthanc Server 1.0.0


By the way, I can not find any tutorial about .dump file,
How can I create .dump file, after that how can I create dicom file?

Thank you so much,

Br,

Peter


2016-05-26 23:07 GMT+07:00 Alain Mazy <a...@osimis.io>:
Hi Peter,

No need to understand C/C++.  You may download/install DCMTK executables directly.

I must admit that the worklist plugin might not be obvious to use.  Here is a complete step by step guide (I'll add it to the FAQ) :

  • download sample worklist files from the Orthanc source code and copy them in a dedicated folder.  I have attached them to this mail.
  • Enable the ModalityWorklist plugin in your config.json by adding this section:
      "Worklists" : {
        "Enable": true,
        "Database": "WorklistsDatabase"  //this is the path to the folder with the worklist files.  Use absolute path !
      },
            • Add the plugin (this is an example for Windows):
              "Plugins" : [
                "OsimisWebViewer.dll",
                "ModalityWorklists.dll" // on Linux, use ModalityWorklists.so
              ],
                • Add the findscu utility to the list of know modalities:
                  "DicomModalities" : {
                     "horos" : [ "HOROS", "192.168.0.8", 11112 ],
                     "findscu" : [ "FINDSCU", "127.0.0.1", 1234 ]
                },
                • Launch Orthanc as usual, make sure to pass him the configuration file (ex for Windows):
                Orthanc.exe config.json

                • In a prompt, launch a findscu request to ask Orthanc to return all Worklists for 'CT' modalities (considering findscu and Orthanc both runs on your machine):
                findscu -W -k "ScheduledProcedureStepSequence[0].Modality=CT" 127.0.0.1 4242

                • You should then receive a list of 4 worklists:
                W: ---------------------------
                W: Find Response: 1 (Pending)
                W:
                W: # Dicom-Data-Set
                W: # Used TransferSyntax: Little Endian Explicit
                W: (0008,0005) CS [ISO_IR 192]                             #  10, 1 SpecificCharacterSet
                W: (0040,0100) SQ (Sequence with explicit length #=1)      #  18, 1 ScheduledProcedureStepSequence
                W:   (fffe,e000) na (Item with explicit length #=1)          #  10, 1 Item
                W:     (0008,0060) CS [CT]                                     #   2, 1 Modality
                W:   (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
                W: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
                W:
                W: ---------------------------
                W: Find Response: 2 (Pending)
                W:
                W: # Dicom-Data-Set
                W: # Used TransferSyntax: Little Endian Explicit
                W: (0008,0005) CS [ISO_IR 192]                             #  10, 1 SpecificCharacterSet
                W: (0040,0100) SQ (Sequence with explicit length #=1)      #  18, 1 ScheduledProcedureStepSequence
                W:   (fffe,e000) na (Item with explicit length #=1)          #  10, 1 Item
                W:     (0008,0060) CS [CT]                                     #   2, 1 Modality
                W:   (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
                W: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
                W:
                W: ---------------------------
                W: Find Response: 3 (Pending)
                W:
                W: # Dicom-Data-Set
                W: # Used TransferSyntax: Little Endian Explicit
                W: (0008,0005) CS [ISO_IR 192]                             #  10, 1 SpecificCharacterSet
                W: (0040,0100) SQ (Sequence with explicit length #=1)      #  18, 1 ScheduledProcedureStepSequence
                W:   (fffe,e000) na (Item with explicit length #=1)          #  10, 1 Item
                W:     (0008,0060) CS [CT]                                     #   2, 1 Modality
                W:   (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
                W: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
                W:
                W: ---------------------------
                W: Find Response: 4 (Pending)
                W:
                W: # Dicom-Data-Set
                W: # Used TransferSyntax: Little Endian Explicit
                W: (0008,0005) CS [ISO_IR 192]                             #  10, 1 SpecificCharacterSet
                W: (0040,0100) SQ (Sequence with explicit length #=1)      #  18, 1 ScheduledProcedureStepSequence
                W:   (fffe,e000) na (Item with explicit length #=1)          #  10, 1 Item
                W:     (0008,0060) CS [CT]                                     #   2, 1 Modality
                W:   (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
                W: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
                W:












                Peter Parker

                unread,
                May 27, 2016, 3:47:43 AM5/27/16
                to Orthanc Users, spider...@gmail.com
                Hi Alain,

                Thanks for your help

                When setup Orthanc, it's on 2 location
                C:\Orthanc  (seem for data)
                and
                C:\Program Files (x86)\Orthanc\Orthanc Server 1.0.0  (seem executable file)

                I put dll file on C:\Orthanc and it run OK

                By the way, dll file of worklist can be downloaded at http://www.orthanc-server.com/browse.php?path=/orthanc/snapshots
                (just snapshot, is it OK?)

                Alain Mazy

                unread,
                May 27, 2016, 4:46:20 AM5/27/16
                to Peter Parker, Orthanc Users
                On Fri, May 27, 2016 at 9:47 AM, Peter Parker <spider...@gmail.com> wrote:
                Hi Alain,

                Thanks for your help

                When setup Orthanc, it's on 2 location
                C:\Orthanc  (seem for data)
                and
                C:\Program Files (x86)\Orthanc\Orthanc Server 1.0.0  (seem executable file)

                I put dll file on C:\Orthanc and it run OK


                Another option is actually to specify the absolute path to the DLL in the config.json i.e: c:\Orthanc\ModalityWorklists.dll.

                 
                By the way, dll file of worklist can be downloaded at http://www.orthanc-server.com/browse.php?path=/orthanc/snapshots
                (just snapshot, is it OK?)


                Yes, that's right.  You may also download all orthanc executables/plugins here: http://orthanc.osimis.io
                Reply all
                Reply to author
                Forward
                0 new messages