Sample multitenant DICOM server¶
Contents
This official plugin by the ICTEAM institute of UCLouvain can be used to turn Orthanc into a multitenant DICOM server using 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 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.
Here is a sample configuration file 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)
equalsSTUDY
, the plugin will only report the studies that are associated with thehello
label.The
LabelsConstraint
specifies the type of constraint on the labels. Its value can beAll
(default),Any
, orNone
, which corresponds to the values accepted by the/tools/find
route in the REST API of Orthanc. Note that in the sample configuration above, because there is only one label in theLabels
field, bothAny
andAll
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 optionLabelsStoreLevels
can be used to restrict the levels to which the labels are applied (it defaults to the three study, series, and instances levels).