# HG changeset patch # User Alain Mazy # Date 1687502535 -7200 # Node ID ec4e1e8c3fa9c9a9a3a4700dc1225c218699e658 # Parent 91273763cb940cc376649028293549ba70f2eb1f# Parent 22a19433820bf4d2d8e29cf733d56ef6352b84b1 merge diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/_templates/layout.html --- a/Sphinx/source/_templates/layout.html Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/_templates/layout.html Fri Jun 23 08:42:15 2023 +0200 @@ -17,7 +17,7 @@

- © Copyright 2015-2022, University Hospital of Liège, Osimis + © Copyright 2015-2023, University Hospital of Liège, Osimis S.A. (Belgium), UCLouvain ICTEAM, and the Orthanc community
The Orthanc Book is licensed under Creative @@ -27,19 +27,4 @@ - - - {% endblock %} diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/faq/features.rst --- a/Sphinx/source/faq/features.rst Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/faq/features.rst Fri Jun 23 08:42:15 2023 +0200 @@ -329,6 +329,7 @@ * ``Global property 5468`` is used by the :ref:`DICOMweb plugin ` to store the DICOMweb servers into the Orthanc database. * ``Metadata 4200`` is used by the plugin for :ref:`whole-slide imaging ` with version <= 0.7. * ``Metadata 4201`` is used by the plugin for :ref:`whole-slide imaging ` with version >= 1.0. +* ``Metadata 4202`` is used by the :ref:`OHIF plugin ` to store precomputed information about the DICOM instances. Jobs diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/faq/viewers.rst --- a/Sphinx/source/faq/viewers.rst Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/faq/viewers.rst Fri Jun 23 08:42:15 2023 +0200 @@ -17,7 +17,10 @@ with Orthanc (do not hesitate to `warn us `__ about other compatible FOSS): -* `Open Health Imaging Foundation (OHIF) `__. +* `Open Health Imaging Foundation (OHIF) `__, + for which an official :ref:`Orthanc plugin ` is available. +* `Kitware's VolView `__, for which an + official :ref:`Orthanc plugin ` is available. * `Horos `__. * `Gingko CADx `__ (a :ref:`configuration guide ` is available). diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/images/OHIF.png Binary file Sphinx/source/images/OHIF.png has changed diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/plugins.rst --- a/Sphinx/source/plugins.rst Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/plugins.rst Fri Jun 23 08:42:15 2023 +0200 @@ -82,10 +82,11 @@ .. toctree:: :maxdepth: 1 + plugins/ohif.rst + plugins/volview.rst plugins/tcia.rst plugins/indexer.rst plugins/neuro.rst - plugins/volview.rst plugins/multitenant-dicom.rst .. _plugins-contributed: diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/plugins/authorization.rst --- a/Sphinx/source/plugins/authorization.rst Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/plugins/authorization.rst Fri Jun 23 08:42:15 2023 +0200 @@ -375,12 +375,12 @@ } } -.. _orthanc-explorer-authorization: +.. _orthanc-explorer-2-authorization: Integration with the Orthanc Explorer 2 --------------------------------------- -This project contains a `complete example`__ +This project contains a `complete example `__ of a Web services integrating with :ref:`Orthanc Explorer 2 ` to implement user level permissions and sharing of single studies. diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/plugins/ohif.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Sphinx/source/plugins/ohif.rst Fri Jun 23 08:42:15 2023 +0200 @@ -0,0 +1,280 @@ +.. _ohif: + + +OHIF plugin +=========== + +.. contents:: + +This **official** plugin by the `ICTEAM institute of UCLouvain +`__ extends +Orthanc with the `OHIF `__ extensible Web imaging +platform. + +The plugin greatly simplifies the deployment of OHIF, as it does not +necessitate the setup of any reverse proxy. It also speeds up the +loading of + + +Usage +----- + +This plugin adds a dedicated button to Orthanc Explorer, which +provides an easy, fast access to the OHIF viewers (click on the image +to view a demo video): + +.. image:: ../images/OHIF.png + :align: center + :width: 800 + :target: https://www.youtube.com/watch?v=-lzddzq9iT4 +| + + +Compilation +----------- + +.. highlight:: bash + +Official releases can be `downloaded from the Orthanc homepage +`__. As +an alternative, the `repository containing the source code +`__ can be accessed +using Mercurial. + +The procedure to compile this plugin is similar of that for the +:ref:`core of Orthanc `. The following commands should work +on most GNU/Linux distributions, provided Docker is installed:: + + $ mkdir Build + $ cd Build + $ ../Resources/CreateOHIFDist.sh + $ cmake .. -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release + $ make + +The compilation will produce a shared library ``libOrthancOHIF.so`` +that contains the OHIF plugin for Orthanc. + +Pre-compiled Linux Standard Base (LSB) binaries `are available for +download `__. + +Pre-compiled binaries for Microsoft Windows and macOS `are also +available +`__. + +Furthermore, the :ref:`Docker images ` +``jodogne/orthanc-plugins`` and ``osimis/orthanc`` also contain the +plugin. Debian and Ubuntu packages can be found in the +:ref:`standalone repository ` +``https://debian.orthanc-labs.com/``. + + +Configuration +------------- + +.. highlight:: json + +Here is a minimal sample :ref:`configuration file ` to +use this plugin:: + + { + "Plugins" : [ + "/home/user/orthanc-ohif/Build/libOrthancOHIF.so" + ] + } + +Orthanc must of course be restarted after the modification of its +configuration file. + + +Using DICOMweb +^^^^^^^^^^^^^^ + +.. highlight:: json + +By default, the plugin uses the `DICOM JSON data source +`__ of +OHIF. This data source is optimized to provide the fastest access to +the DICOM images, while requiring no additional plugin. However, in +order to deliver fast access, the OHIF plugin will cache additional +information about each DICOM instance as :ref:`metadata ` in +the Orthanc database, which results in a larger size of the Orthanc +database (an additional 1KB is roughly needed per instance). + +As an alternative, it is possible to enable the `DICOMweb data source +`__. In +this case, the :ref:`DICOMweb plugin of Orthanc ` must also +be loaded. It can also be useful to load the :ref:`GDCM plugin ` +if the DICOM images are encoded using a JPEG2k compressed transfer +syntax. + +The advantages of using DICOMweb over the default DICOM JSON are: + +* More standard-compliant. + +* The OHIF study list is accessible, notably as a button on the + welcome screen of Orthanc Explorer. The study list is not available + if using the DICOM JSON data source. + +* No additional space is used in the Orthanc database. + +Here is a minimal configuration file to use DICOMweb:: + + { + "Plugins" : [ + "/home/user/orthanc-ohif/Build/libOrthancOHIF.so", + "/home/user/orthanc-dicomweb/Build/libOrthancDicomWeb.so" + ], + "OHIF" : { + "DataSource" : "dicom-web" + } + } + + +User configuration of OHIF +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. highlight:: json + +OHIF comes with a number of `configuration options +`__ +that can be fine-tuned by the user. User settings can be injected +using the ``UserConfiguration`` option as follows:: + + { + "Plugins" : [ + "/home/user/orthanc-ohif/Build/libOrthancOHIF.so" + ], + "OHIF" : { + "UserConfiguration" : "ohif.js" + } + } + +.. highlight:: javascript + +A minimal ``ohif.js`` would be:: + + window.config = { + extensions: [], + modes: [] + } + +Note that the following configuration options will be overridden by +the OHIF plugin to properly configure the data source and the +integration with the Orthanc Web server: + +* ``window.config.dataSources`` +* ``window.config.defaultDataSourceName`` +* ``window.config.routerBasename`` +* ``window.config.showStudyList`` (set to ``false`` if using the DICOM + JSON data source) + + +Router basename +^^^^^^^^^^^^^^^ + +.. highlight:: json + +If Orthanc is not branched at the root of a Web server thanks of the +presence of a reverse proxy, the configuration option +``RouterBasename`` must be adapted. + +For instance, if Orthanc is running at address +``https://host.com/imaging/demo/orthanc/``, the following +configuration file must be used for OHIF to work:: + + { + "Plugins" : [ + "/home/user/orthanc-ohif/Build/libOrthancOHIF.so" + ], + "OHIF" : { + "RouterBasename" : "/imaging/demo/orthanc/ohif/" + } + } + +The default value of ``RouterBasename`` is ``/ohif/``. + + +.. _ohif-preloading: + +Preloading +^^^^^^^^^^ + +.. highlight:: json + +If using the DICOM JSON data source, whenever a new DICOM instance is +received by Orthanc, the OHIF plugin will compute a summary of the +DICOM tags of interest to OHIF, and will store it as :ref:`metadata +` in the Orthanc database. This process has the advantage of +speeding up even the first opening of the DICOM study by OHIF, which +probably corresponds to the expectations of most radiologists. + +However, if your Orthanc deployment is focused on speed, this +preloading might be undesirable, as it slows down the ingestion of new +DICOM instances by Orthanc. Furthermore, if your Orthanc server will +contain a large number of DICOM studies that will never be displayed +using OHIF, this can result in a waste of space in the Orthanc +database because of the metadata that will be preloaded, but that will +never be read. + +It is consequently possible to turn off the automated preloading +of metadata using the following configuration:: + + { + "Plugins" : [ + "/home/user/orthanc-ohif/Build/libOrthancOHIF.so" + ], + "OHIF" : { + "DataSource" : "dicom-json", + "Preload" : false + } + } + +If the ``Preload`` option is set to ``false``, the first display of a +DICOM study can take several seconds because of the computation of the +metadata, but subsequent displays will run much faster. + +Note that preloading is only applied to the newly received instances: +The DICOM instances that were stored in the Orthanc server before the +installation of the OHIF plugin will only benefit from the +optimization starting with their second display using OHIF. + + +For developers +-------------- + +Extensions to the REST API +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. highlight:: bash + +The content of the `DICOM JSON data source +`__ +for a DICOM study of interest can be retrieved as follows:: + + $ curl http://demo.orthanc-server.com/studies/6b9e19d9-62094390-5f9ddb01-4a191ae7-9766b715/ohif-dicom-json + +This data source is constructed from the :ref:`metadata 4202 +` associated with the individual DICOM instances of the +DICOM study. The metadata corresponds to the `Base64 encoding +`__ of a gzipped JSON file. For +debugging, the JSON file associated with a DICOM instance can be +inspected using:: + + $ curl http://demo.orthanc-server.com/instances/1f3c00bd-49df10b7-f416a598-1b3bb5a2-cb791b52/metadata/4202 | base64 -d | gunzip -c + + +Preloading existing studies +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:ref:`As explained above `, the metadata associated +with DICOM instances are only preloaded for the newly ingested DICOM +instances. Using the REST API of Orthanc, it is easy to create a +script that would preload the metadata for the already existing DICOM +studies, hereby greatly speeding up the first opening of those studies +as well. + +This script would loop over the :ref:`the DICOM studies that are +stored by Orthanc ` using ``GET /studies``. For each +study whose :ref:`Orthanc identifier ` is ``id``, the +script would simply call ``GET /studies/{id}/ohif-dicom-json``. + diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/users/cookbook.rst --- a/Sphinx/source/users/cookbook.rst Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/users/cookbook.rst Fri Jun 23 08:42:15 2023 +0200 @@ -35,10 +35,10 @@ .. highlight:: bash Furthermore, if you are running Debian 9 (stretch), Debian 10 -(buster), Debian 11 (bullseye), Ubuntu 18.04 LTS (bionic), Ubuntu -20.04 LTS (focal), or Ubuntu 22.04 LTS (jammy) on an **AMD64 -architecture**, Sébastien Jodogne maintains a **standalone Debian -repository** that provides the latest versions of the LSB +(buster), Debian 11 (bullseye), Debian 12 (bookworm), Ubuntu 18.04 LTS +(bionic), Ubuntu 20.04 LTS (focal), or Ubuntu 22.04 LTS (jammy) on an +**AMD64 architecture**, Sébastien Jodogne maintains a **standalone +Debian repository** that provides the latest versions of the LSB binaries. For instance, here is how to install the :ref:`Stone Web viewer ` on a barebone Docker setup:: diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/users/replication.rst --- a/Sphinx/source/users/replication.rst Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/users/replication.rst Fri Jun 23 08:42:15 2023 +0200 @@ -72,11 +72,14 @@ The most direct way to replicate an instance of Orthanc consists in using the `ImportDicomFiles `_ -script of the Orthanc distribution. For instance, the following -command would recursively explore the content of the -``OrthancStorage`` folder (where Orthanc stores its DICOM files by -default), and send each DICOM file inside this folder to the instance -of Orthanc whose REST API is listening on +script of the Orthanc distribution. This process can also be used to +restore the content of an Orthanc server after a corruption of its +database. + +For instance, the following command would recursively explore the +content of the ``OrthancStorage`` folder (where Orthanc stores its +DICOM files by default), and send each DICOM file inside this folder +to the instance of Orthanc whose REST API is listening on ``http://192.168.0.2:8042``:: $ python ImportDicomFiles.py 192.168.0.2 8042 OrthancStorage @@ -97,16 +100,13 @@ **Important remark:** Because of :ref:`the way Orthanc stores its database ` on the filesystem, it is *entirely normal* -that the ``ImportDicomFiles.py`` script ends by saying that only half -of the DICOM files were properly sent. This is because the JSON -summaries are not DICOM files, and are thus rejected by the target -Orthanc server. More information are available `on the discussion -group +if the ``ImportDicomFiles.py`` script ends by saying that only half of +the DICOM files were properly sent. This is because the JSON summaries +are not DICOM files, and are thus rejected by the target Orthanc +server. More information are available `on the discussion group `__. - - Generic replication ------------------- diff -r 91273763cb94 -r ec4e1e8c3fa9 Sphinx/source/users/support.rst --- a/Sphinx/source/users/support.rst Fri Jun 23 08:41:58 2023 +0200 +++ b/Sphinx/source/users/support.rst Fri Jun 23 08:42:15 2023 +0200 @@ -187,11 +187,13 @@ * **Africa**: * `Abdrahman Elkafil `__ (English/French/Arabic, Belgium and Morocco) + * `Olakunle Dada `__ (English/French, Nigeria) * **Asia**: * `Phong Tran Duc `__ (English/Vietnamese, Vietnam) * `Rana Asim Wajid `__ (English/Urdu/Punjabi, Pakistan) + * `Yash Sonalia `__ (English/Hindi/Bengali, India) * **Oceania**: