Mercurial > hg > orthanc-book
changeset 782:33040fbf85a8
merge
author | Alain Mazy <am@osimis.io> |
---|---|
date | Mon, 27 Sep 2021 12:16:38 +0200 |
parents | ededfacf9a8d (current diff) 8e5e868e6369 (diff) |
children | 0fbe952b2906 |
files | |
diffstat | 3 files changed, 101 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/Sphinx/source/faq/orthanc-storage.rst Mon Sep 27 12:16:29 2021 +0200 +++ b/Sphinx/source/faq/orthanc-storage.rst Mon Sep 27 12:16:38 2021 +0200 @@ -3,6 +3,8 @@ How does Orthanc store its database? ==================================== +.. _orthanc-storage-area: + Storage area ------------
--- a/Sphinx/source/faq/scalability.rst Mon Sep 27 12:16:29 2021 +0200 +++ b/Sphinx/source/faq/scalability.rst Mon Sep 27 12:16:38 2021 +0200 @@ -370,15 +370,19 @@ Slow deletions ^^^^^^^^^^^^^^ -Deleting large studies can take some time, because removing a large +Deleting large studies can take much time, because removing a large number of files from a filesystem can be an expensive operation (which -might sound counterintuitive). +might sound counter-intuitive). This is especially true with HDD +drives, that can be much slower than SSD (`an user has reported +<https://groups.google.com/g/orthanc-users/c/1lga0oFCHN4/m/jF1inrc4AgAJ>`__ +a 20 times speedup by switching from HDD to SSD). -It is possible to create an :ref:`storage area plugin -<creating-plugins>` that delays the actual deletion from the -filesystem. The plugin would maintain a queue (e.g. as a SQLite -database) of files to be removed. The actual deletion from the -filesystem would be done asynchronously in a separate thread. +If switching from HDD to SDD is not applicable, it is possible to +create an :ref:`storage area plugin <creating-plugins>` that delays +the actual deletion from the filesystem. The plugin would maintain a +queue (e.g. as a SQLite database) of files to be removed. The actual +deletion from the filesystem would be done asynchronously in a +separate thread. We are looking for funding from the industry to implement such a plugin.
--- a/Sphinx/source/plugins/indexer.rst Mon Sep 27 12:16:29 2021 +0200 +++ b/Sphinx/source/plugins/indexer.rst Mon Sep 27 12:16:38 2021 +0200 @@ -1,9 +1,94 @@ .. _indexer: -Indexer plugin -============== +Folder Indexer plugin +===================== .. contents:: -Soon available. +This **official** plugin by the `ICTEAM institute of UCLouvain +<https://uclouvain.be/en/research-institutes/icteam>`__ uses Orthanc +to publish filesystems containing medical images as a DICOM modality. + +The plugin continuously synchronizes the content of an Orthanc server +with the content of a filesystem. This way, the filesystem is +automatically organized according to the :ref:`DICOM model of the real +world <model-world>`, without any manual intervention. The indexed +DICOM resources are immediately available in a Web interface and in a +Web viewer, and can be queried/retrieved by DICOM clients. The DICOM +files are **not** copied, so this solution has a very small footprint +in terms of storage requirements. + + +Compilation +----------- + +.. highlight:: bash + +Official releases can be `downloaded from the Orthanc homepage +<https://www.orthanc-server.com/browse.php?path=/plugin-indexer>`__. As +an alternative, the `repository containing the source code +<https://hg.orthanc-server.com/orthanc-indexer/>`__ can be accessed using +Mercurial. + +The procedure to compile this plugin is similar of that for the +:ref:`core of Orthanc <binaries>`. The following commands should work +for most UNIX-like distribution (including GNU/Linux):: + + $ mkdir Build + $ cd Build + $ cmake .. -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release + $ make + +The compilation will produce a shared library ``OrthancIndexer`` +that contains the folder indexer plugin for Orthanc. + +Pre-compiled Linux Standard Base (LSB) binaries `can be downloaded +<https://lsb.orthanc-server.com/plugin-indexer/>`__. + +Pre-compiled binaries for Microsoft Windows and macOS `are also +available +<https://www.orthanc-server.com/browse.php?path=/plugin-indexer>`__. + +Furthermore, the :ref:`Docker images <docker>` +``jodogne/orthanc-plugins`` and ``osimis/orthanc`` also contain the +plugin. + + +Usage +----- + +.. highlight:: json + +Here is a minimal sample :ref:`configuration file <configuration>` to +use this plugin:: + + { + "Plugins" : [ + "/home/user/OrthancIndexer/Build/libOrthancIndexer.so" + ], + "Indexer" : { + "Enable" : true, + "Folders" : [ "/home/user/DICOM" ], // List of folders to synchronize + "Interval" : 10 // Delay between two synchronizations + } + } + +Orthanc must of course be restarted after the modification of its +configuration file. + +Once Orthanc is started, the folders are transparently synchronized +without any further interaction. You can start Orthanc with the +``--verbose-plugins`` command-line option in order to monitor the +synchronization process. + +Some remarks: + +* This plugin cannot be used together with other custom storage area + plugins (such as :ref:`cloud object storage <object-storage>`). + +* Even if the folder indexer plugin is in use, you can still add other + DICOM files using the :ref:`REST API <rest>` or the :ref:`DICOM + network protocol <dicom-protocol>`. Such files would be stored in + the ``OrthancStorage`` :ref:`usual folder <orthanc-storage-area>`. +