Mercurial > hg > orthanc-book
diff Sphinx/source/plugins/multitenant-dicom.rst @ 936:5491953f7492
documentation of labels
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sun, 16 Apr 2023 16:55:46 +0200 |
parents | |
children | 1316bc62b5d5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Sphinx/source/plugins/multitenant-dicom.rst Sun Apr 16 16:55:46 2023 +0200 @@ -0,0 +1,77 @@ +.. _multitenant-dicom: + + +Sample multitenant DICOM server +=============================== + +.. contents:: + +This **official** plugin by the `ICTEAM institute of UCLouvain +<https://uclouvain.be/en/research-institutes/icteam>`__ can be used to +turn Orthanc into a **multitenant DICOM** server using :ref:`labels +<labels>`. More precisely, the same Orthanc database can be accessed +from different DICOM servers, that each provides a different view +depending on the presence of labels. This plugin available is part of +the `official source distribution +<https://hg.orthanc-server.com/orthanc/file/default/OrthancServer/Plugins/Samples/MultitenantDicom>`__ +of Orthanc, starting with Orthanc 1.12.0. + +This plugin starts additional DICOM servers, in complement to the main +DICOM server of Orthanc that provides full access to the Orthanc +database. These additional DICOM servers support the C-Find, C-Move, +and C-Store commands, and share most of their configuration with the +main DICOM server of Orthanc. They are however distinguished from the +latter by using a **different AET** and a **different TCP +port**. Furthermore, each of those additional DICOM servers are +associated with a **set of labels** that restricts which DICOM +resources stored in Orthanc are accessible through this additional +DICOM server. + +.. highlight:: json + +Here is a sample :ref:`configuration file <configuration>` to use this +plugin:: + + { + "Plugins" : [ "." ], + "DicomModalities" : { + "sample" : [ "STORESCP", "127.0.0.1", 2000 ] + }, + "MultitenantDicom" : { + "Servers" : [ + { + "AET" : "HELLO", + "Port" : 4343, + "Labels" : [ "hello" ], + "LabelsConstraint" : "All", + "LabelsStoreLevels" : [ "Patient", "Study", "Series", "Instance" ] + } + ] + } + } + +This configuration will start an additional DICOM server with AET +``HELLO`` listening on the 4343 port. This DICOM server will work as +follows: + +* DICOM C-Find and C-Move requests are restricted to the DICOM + resources that are assigned with the ``hello`` label. + + * Note that the labels are checked by query/retrieve level: For + instance, if ``QueryRetrieveLevel (0008, 0052)`` equals ``STUDY``, + the plugin will only report the studies that are associated with + the ``hello`` label. + + * The ``LabelsConstraint`` specifies the type of constraint on the + labels. Its value can be ``All`` (default), ``Any``, or ``None``, + which corresponds to the values accepted by the ``/tools/find`` + :ref:`route in the REST API <labels>` of Orthanc. Note that in the + sample configuration above, because there is only one label in the + ``Labels`` field, both ``Any`` and ``All`` have the same behavior. + +* Any DICOM resource that is received through DICOM C-Store requests + issued to this additional DICOM server, is automatically associated + with all the labels provided in the ``Labels`` field. The + configuration option ``LabelsStoreLevels`` can be used to restrict + the levels to which the labels are applied (it defaults to the three + study, series, and instances levels).