Mercurial > hg > orthanc-book
view Sphinx/source/faq/worklist.rst @ 1013:ab270400aae1
python: overriding core API
author | Alain Mazy <am@osimis.io> |
---|---|
date | Tue, 09 Jan 2024 11:50:17 +0100 |
parents | 05b106383b2a |
children |
line wrap: on
line source
.. _worklist: Does Orthanc support worklists? =============================== Orthanc supports DICOM Modality Worklists (MWL) through its `plugin SDK <https://github.com/jodogne/OrthancContributed/tree/master/Plugins>`__. In other words, Orthanc can act as a worklist server (C-Find SCP), but an user-defined plugin must be provided to answer a list of worklists given a MWL query. The rationale for using plugins instead of providing a built-in MWL mechanism, is that the way worklists are generated is very specific to the clinical flows and to the manufacturer of your `RIS system <https://en.wikipedia.org/wiki/Radiology_information_system>`__. Indeed, depending on the situation, worklists can be generated either from HL7 messages, from calls to a Web service (e.g. through FHIR), or from a direct access to some RIS database. It is thus up to the Orthanc user to provide the worklist generator that is best suited for her use. A :ref:`sample plugin <worklists-plugin>` is available in the source distribution of Orthanc to serve the worklists stored in some folder on the filesystem. This sample plugin mimics the behavior of the ``wlmscpfs`` command-line tool from the `DCMTK software <https://support.dcmtk.org/docs/wlmscpfs.html>`__. For more complex or integrated workflows where you must implement a custom MWL plugin, please check the `documentation of the part of the Orthanc plugin SDK <https://orthanc.uclouvain.be/sdk/group__DicomCallbacks.html#ga23080c4e871b8428ede61d9841c10d76>`__ that is related to the management of worklists. Custom MWL plugin can also be implemented using :ref:`Python plugins <python_worklists>`. This is especially useful to easily create bridges between Orthanc, HL7 messages, RIS systems and `FHIR <https://www.hl7.org/fhir/overview.html>`__ stores. Indeed, Python provides many tools to handle HL7 or FHIR such as `python-hl7 library <https://python-hl7.readthedocs.io/en/latest/>`__.