comparison Sphinx/source/faq/worklist.rst @ 31:93bbfaf0e62c

worklist instructions migrated to a specific page, indexing of Osimis Web viewer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 20 Jul 2016 11:35:54 +0200
parents 98c0c61e7931
children 6ddc98c305cd
comparison
equal deleted inserted replaced
30:79b6d3ea92aa 31:93bbfaf0e62c
18 from HL7 messages, from calls to a Web service (e.g. through FHIR), or 18 from HL7 messages, from calls to a Web service (e.g. through FHIR), or
19 from a direct access to some RIS database. It is thus up to the 19 from a direct access to some RIS database. It is thus up to the
20 Orthanc user to provide the worklist generator that is best suited for 20 Orthanc user to provide the worklist generator that is best suited for
21 her use. 21 her use.
22 22
23 A `sample plugin 23 A :ref:`sample plugin <worklists-plugin>` is available in the source
24 <https://bitbucket.org/sjodogne/orthanc/src/default/Plugins/Samples/ModalityWorklists/>`__ 24 distribution of Orthanc to serve the worklists stored in some folder
25 is available to serve the worklists stored in some folder on the 25 on the filesystem. This sample plugin mimics the behavior of the
26 filesystem. This mimics the behavior of the ``wlmscpfs`` command-line 26 ``wlmscpfs`` command-line tool from the `DCMTK software
27 tool from the `DCMTK software 27 <http://support.dcmtk.org/docs/wlmscpfs.html>`__.
28 <http://support.dcmtk.org/docs/wlmscpfs.html>`__. ``dump2dcm`` might
29 be a very `useful companion tool
30 <http://support.dcmtk.org/docs/dump2dcm.html>`__ to feed the sample
31 plugin with worklists for some separate maintenance script.
32 28
33 For more complex or integrated workflows where you must implement a 29 For more complex or integrated workflows where you must implement a
34 custom MWL plugin, please check the `documentation of the part of the 30 custom MWL plugin, please check the `documentation of the part of the
35 Orthanc plugin SDK 31 Orthanc plugin SDK
36 <https://orthanc.chu.ulg.ac.be/sdk/group__Worklists.html>`__ that is 32 <https://orthanc.chu.ulg.ac.be/sdk/group__Worklists.html>`__ that is
37 related to the management of worklists. 33 related to the management of worklists.
38
39
40 How should I use it ?
41 ---------------------
42
43 - download `DCMTK utilities <http://dicom.offis.de/download/dcmtk/release/bin/>`__
44 - download sample `worklist files <https://bitbucket.org/sjodogne/orthanc/src/default/Plugins/Samples/ModalityWorklists/>`__ from the Orthanc source code and copy them in a dedicated folder.
45
46 .. highlight:: javascript
47
48 - Enable the ModalityWorklist plugin in your config.json by adding this section::
49
50 "Worklists" : {
51 "Enable": true,
52 "Database": "WorklistsDatabase" //this is the path to the folder with the worklist files. Use absolute path !
53 },
54
55 - Add the plugin to the list of plugins to load (this is an example for Windows)::
56
57 "Plugins" : [
58 "OsimisWebViewer.dll",
59 "ModalityWorklists.dll" // on Linux, use ModalityWorklists.so
60 ],
61
62 - Add the findscu utility to the list of know modalities (considering findscu and Orthanc runs on the same machine)::
63
64 "DicomModalities" : {
65 "horos" : [ "HOROS", "192.168.0.8", 11112 ],
66 "findscu" : [ "FINDSCU", "127.0.0.1", 1234 ]
67 },
68
69 .. highlight:: bash
70
71 - Launch Orthanc as usual, make sure to pass him the configuration file (ex for Windows)::
72
73 Orthanc.exe config.json
74
75 - 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: 127.0.0.1 is the Orthanc url and 4242 is the Orthanc DICOM port)::
76
77 findscu -W -k "ScheduledProcedureStepSequence[0].Modality=CT" 127.0.0.1 4242
78
79 - findscu should display the matching worklists
80
81 How can I create worklist files ?
82 ---------------------------------
83
84 - let's start from an existing `worklist file <https://bitbucket.org/sjodogne/orthanc/src/default/Plugins/Samples/ModalityWorklists/>`__.
85
86 - dump the sample worklist file to a DCMTK dump file::
87
88 dcmdump.exe wklist1.wl > sampleWorklist.txt
89
90 - you'll get something like::
91
92 # Dicom-File-Format
93
94 # Dicom-Meta-Information-Header
95 # Used TransferSyntax: Little Endian Explicit
96 (0002,0000) UL 202 # 4, 1 FileMetaInformationGroupLength
97 (0002,0001) OB 00\01 # 2, 1 FileMetaInformationVersion
98 (0002,0002) UI [1.2.276.0.7230010.3.1.0.1] # 26, 1 MediaStorageSOPClassUID
99 (0002,0003) UI [1.2.276.0.7230010.3.1.4.2831176407.11154.1448031138.805061] # 58, 1 MediaStorageSOPInstanceUID
100 (0002,0010) UI =LittleEndianExplicit # 20, 1 TransferSyntaxUID
101 (0002,0012) UI [1.2.276.0.7230010.3.0.3.6.0] # 28, 1 ImplementationClassUID
102 (0002,0013) SH [OFFIS_DCMTK_360] # 16, 1 ImplementationVersionName
103
104 # Dicom-Data-Set
105 # Used TransferSyntax: Little Endian Explicit
106 (0008,0005) CS [ISO_IR 100] # 10, 1 SpecificCharacterSet
107 (0008,0050) SH [00000] # 6, 1 AccessionNumber
108 (0010,0010) PN [VIVALDI^ANTONIO] # 16, 1 PatientName
109 (0010,0020) LO [AV35674] # 8, 1 PatientID
110 (0010,0030) DA [16780304] # 8, 1 PatientBirthDate
111 (0010,0040) CS [M] # 2, 1 PatientSex
112 (0010,2000) LO [METASTASIS] # 10, 1 MedicalAlerts
113 (0010,2110) LO [TANTAL] # 6, 1 Allergies
114 (0020,000d) UI [1.2.276.0.7230010.3.2.101] # 26, 1 StudyInstanceUID
115 (0032,1032) PN [SMITH] # 6, 1 RequestingPhysician
116 (0032,1060) LO [EXAM6] # 6, 1 RequestedProcedureDescription
117 (0040,0100) SQ (Sequence with explicit length #=1) # 176, 1 ScheduledProcedureStepSequence
118 (fffe,e000) na (Item with explicit length #=12) # 168, 1 Item
119 (0008,0060) CS [MR] # 2, 1 Modality
120 (0032,1070) LO [BARIUMSULFAT] # 12, 1 RequestedContrastAgent
121 (0040,0001) AE [AA32\AA33] # 10, 2 ScheduledStationAETitle
122 (0040,0002) DA [19951015] # 8, 1 ScheduledProcedureStepStartDate
123 (0040,0003) TM [085607] # 6, 1 ScheduledProcedureStepStartTime
124 (0040,0006) PN [JOHNSON] # 8, 1 ScheduledPerformingPhysicianName
125 (0040,0007) LO [EXAM74] # 6, 1 ScheduledProcedureStepDescription
126 (0040,0009) SH [SPD3445] # 8, 1 ScheduledProcedureStepID
127 (0040,0010) SH [STN456] # 6, 1 ScheduledStationName
128 (0040,0011) SH [B34F56] # 6, 1 ScheduledProcedureStepLocation
129 (0040,0012) LO (no value available) # 0, 0 PreMedication
130 (0040,0400) LT (no value available) # 0, 0 CommentsOnTheScheduledProcedureStep
131 (fffe,e00d) na (ItemDelimitationItem for re-encoding) # 0, 0 ItemDelimitationItem
132 (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem
133 (0040,1001) SH [RP454G234] # 10, 1 RequestedProcedureID
134 (0040,1003) SH [LOW] # 4, 1 RequestedProcedurePriority
135
136
137 - open sampleWorklist.txt file in a text editor and modify/add/remove some Dicom Tags
138
139 - then, generate a new worklist file with dump2dcm::
140
141 dump2dcm.exe sampleWorklist.txt newWorklist.wl
142
143 - copy that file in the folder where Orthanc searches for its worklist files and that's it !
144
145 - of course, you'll automate this worklist generation workflow with some scripting language.
146
147