changeset 1075:d2be251975d1 Orthanc-1.12.4

Orthanc 1.12.4
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 05 Jun 2024 20:18:43 +0200
parents 32ac45058512
children 416c04974966
files OpenAPI/orthanc-openapi.json Sphinx/source/developers/creating-plugins.rst Sphinx/source/developers/db-versioning.rst Sphinx/source/dicom-guide.rst Sphinx/source/faq/main-dicom-tags.rst Sphinx/source/faq/orthanc-storage.rst Sphinx/source/faq/scalability.rst Sphinx/source/plugins/java.rst Sphinx/source/plugins/python.rst Sphinx/source/users/advanced-rest.rst Sphinx/source/users/anonymization.rst Sphinx/source/users/configuration.rst Sphinx/source/users/debian-packages.rst Sphinx/source/users/docker.rst Sphinx/source/users/docker.rst.BAK Sphinx/source/users/man-orthanc.txt Sphinx/source/users/rest.rst
diffstat 17 files changed, 166 insertions(+), 115 deletions(-) [+]
line wrap: on
line diff
--- a/OpenAPI/orthanc-openapi.json	Thu May 30 22:23:40 2024 +0200
+++ b/OpenAPI/orthanc-openapi.json	Wed Jun 05 20:18:43 2024 +0200
@@ -2,7 +2,7 @@
    "info" : {
       "description" : "This is the full documentation of the [REST API](https://orthanc.uclouvain.be/book/users/rest.html) of Orthanc.<p>This reference is automatically generated from the source code of Orthanc. A [shorter cheat sheet](https://orthanc.uclouvain.be/book/users/rest-cheatsheet.html) is part of the Orthanc Book.<p>An earlier, manually crafted version from August 2019, is [still available](2019-08-orthanc-openapi.html), but is not up-to-date anymore ([source](https://groups.google.com/g/orthanc-users/c/NUiJTEICSl8/m/xKeqMrbqAAAJ)).",
       "title" : "Orthanc API",
-      "version" : "1.12.3"
+      "version" : "1.12.4"
    },
    "openapi" : "3.0.0",
    "paths" : {
@@ -183,9 +183,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -334,9 +334,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -2999,9 +2999,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -3180,6 +3180,10 @@
                      "schema" : {
                         "description" : "",
                         "properties" : {
+                           "LimitToThisLevelMainDicomTags" : {
+                              "description" : "Only reconstruct this level MainDicomTags by re-reading them from a random child instance of the resource. This option is much faster than a full reconstruct and is usefull e.g. if you have modified the 'ExtraMainDicomTags' at the Study level to optimize the speed of some C-Find. 'false' by default. (New in Orthanc 1.12.4)",
+                              "type" : "boolean"
+                           },
                            "ReconstructFiles" : {
                               "description" : "Also reconstruct the files of the resources (e.g: apply IngestTranscoding, StorageCompression). 'false' by default. (New in Orthanc 1.11.0)",
                               "type" : "boolean"
@@ -3329,9 +3333,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -3411,6 +3415,15 @@
                   }
                },
                {
+                  "description" : "Whether to read the whole DICOM file from the storage area (new in Orthanc 1.12.4). If set to \"false\" (default value), the DICOM file is read until the pixel data tag (7fe0,0010) to optimize access to storage. Setting the option to \"true\" provides access to the DICOM tags stored after the pixel data tag.",
+                  "in" : "query",
+                  "name" : "whole",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the DICOM instance of interest",
                   "in" : "path",
                   "name" : "id",
@@ -3539,9 +3552,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -3649,6 +3662,15 @@
                   }
                },
                {
+                  "description" : "Whether to read the whole DICOM file from the storage area (new in Orthanc 1.12.4). If set to \"false\" (default value), the DICOM file is read until the pixel data tag (7fe0,0010) to optimize access to storage. Setting the option to \"true\" provides access to the DICOM tags stored after the pixel data tag.",
+                  "in" : "query",
+                  "name" : "whole",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the DICOM instance of interest",
                   "in" : "path",
                   "name" : "id",
@@ -3749,9 +3771,9 @@
                         "schema" : {
                            "description" : "JSON array containing either the jobs identifiers, or detailed information about the reported jobs (if `expand` argument is provided)",
                            "example" : [
-                              "2567f12f-a2dc-4ac6-8990-16335b5a3d5a",
-                              "42251acb-3089-40dd-9263-3d39970342a7",
-                              "7583bd1e-39f9-4564-93ef-602b57185449",
+                              "1ce8c49a-875e-47ee-8235-7287d1b5bd06",
+                              "1d864388-fbd5-47ef-b52c-17f3f9a87344",
+                              "288beb8a-0548-4b72-8d26-92c1b22ad00b",
                               "..."
                            ]
                         }
@@ -4181,6 +4203,10 @@
                               "description" : "Host address of the remote DICOM modality (typically, an IP address)",
                               "type" : "string"
                            },
+                           "LocalAet" : {
+                              "description" : "Whether to override the default DicomAet in the SCU connection initiated by Orthanc to this modality",
+                              "type" : "string"
+                           },
                            "Manufacturer" : {
                               "description" : "Manufacturer of the remote DICOM modality (check configuration option `DicomModalities` for possible values",
                               "type" : "string"
@@ -4189,6 +4215,10 @@
                               "description" : "TCP port of the remote DICOM modality",
                               "type" : "number"
                            },
+                           "Timeout" : {
+                              "description" : "Whether to override the default DicomScuTimeout in the SCU connection initiated by Orthanc to this modality",
+                              "type" : "number"
+                           },
                            "UseDicomTls" : {
                               "description" : "Whether to use DICOM TLS in the SCU connection initiated by Orthanc (new in Orthanc 1.9.0)",
                               "type" : "boolean"
@@ -4989,9 +5019,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -5073,9 +5103,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -6149,9 +6179,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -7159,6 +7189,10 @@
                      "schema" : {
                         "description" : "",
                         "properties" : {
+                           "LimitToThisLevelMainDicomTags" : {
+                              "description" : "Only reconstruct this level MainDicomTags by re-reading them from a random child instance of the resource. This option is much faster than a full reconstruct and is usefull e.g. if you have modified the 'ExtraMainDicomTags' at the Study level to optimize the speed of some C-Find. 'false' by default. (New in Orthanc 1.12.4)",
+                              "type" : "boolean"
+                           },
                            "ReconstructFiles" : {
                               "description" : "Also reconstruct the files of the resources (e.g: apply IngestTranscoding, StorageCompression). 'false' by default. (New in Orthanc 1.11.0)",
                               "type" : "boolean"
@@ -7201,9 +7235,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -7452,9 +7486,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -8776,9 +8810,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -8860,9 +8894,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -9945,9 +9979,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -11011,9 +11045,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -11089,6 +11123,10 @@
                      "schema" : {
                         "description" : "",
                         "properties" : {
+                           "LimitToThisLevelMainDicomTags" : {
+                              "description" : "Only reconstruct this level MainDicomTags by re-reading them from a random child instance of the resource. This option is much faster than a full reconstruct and is usefull e.g. if you have modified the 'ExtraMainDicomTags' at the Study level to optimize the speed of some C-Find. 'false' by default. (New in Orthanc 1.12.4)",
+                              "type" : "boolean"
+                           },
                            "ReconstructFiles" : {
                               "description" : "Also reconstruct the files of the resources (e.g: apply IngestTranscoding, StorageCompression). 'false' by default. (New in Orthanc 1.11.0)",
                               "type" : "boolean"
@@ -11279,9 +11317,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -11531,9 +11569,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -11615,9 +11653,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -12713,9 +12751,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -13897,9 +13935,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -13975,6 +14013,10 @@
                      "schema" : {
                         "description" : "",
                         "properties" : {
+                           "LimitToThisLevelMainDicomTags" : {
+                              "description" : "Only reconstruct this level MainDicomTags by re-reading them from a random child instance of the resource. This option is much faster than a full reconstruct and is usefull e.g. if you have modified the 'ExtraMainDicomTags' at the Study level to optimize the speed of some C-Find. 'false' by default. (New in Orthanc 1.12.4)",
+                              "type" : "boolean"
+                           },
                            "ReconstructFiles" : {
                               "description" : "Also reconstruct the files of the resources (e.g: apply IngestTranscoding, StorageCompression). 'false' by default. (New in Orthanc 1.11.0)",
                               "type" : "boolean"
@@ -14017,9 +14059,9 @@
                   }
                },
                {
-                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
-                  "in" : "query",
-                  "name" : "requestedTags",
+                  "description" : "If present, list the DICOM Tags you want to list in the response.  This argument is a semi-column separated list of DICOM Tags identifiers; e.g: 'requested-tags=0010,0010;PatientBirthDate'.  The tags requested tags are returned in the 'RequestedTags' field in the response.  Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response might be slow since Orthanc will need to access the DICOM files.  If not specified, Orthanc will return ",
+                  "in" : "query",
+                  "name" : "requested-tags",
                   "required" : false,
                   "schema" : {
                      "type" : "string"
@@ -14414,7 +14456,7 @@
                         "schema" : {
                            "description" : "",
                            "example" : {
-                              "ApiVersion" : 22,
+                              "ApiVersion" : 23,
                               "CheckRevisions" : false,
                               "DatabaseBackendPlugin" : null,
                               "DatabaseServerIdentifier" : "a67fa91c-20328956-26614107-bbaec3f4-5cbbc6f9",
@@ -14439,7 +14481,7 @@
                               "StorageAreaPlugin" : null,
                               "StorageCompression" : false,
                               "UserMetadata" : {},
-                              "Version" : "1.12.2"
+                              "Version" : "1.12.3"
                            },
                            "properties" : {
                               "ApiVersion" : {
@@ -14490,6 +14532,10 @@
                                  "description" : "The list of MainDicomTags saved in DB for each resource level (new in Orthanc 1.11.0)",
                                  "type" : "object"
                               },
+                              "MaximumPatientCount" : {
+                                 "description" : "The configured MaximumPatientCount (new in Orthanc 1.12.4)",
+                                 "type" : "number"
+                              },
                               "MaximumStorageMode" : {
                                  "description" : "The configured MaximumStorageMode (new in Orthanc 1.11.3)",
                                  "type" : "string"
@@ -15422,6 +15468,10 @@
                               "description" : "Host address of the remote DICOM modality (typically, an IP address)",
                               "type" : "string"
                            },
+                           "LocalAet" : {
+                              "description" : "Whether to override the default DicomAet in the SCU connection initiated by Orthanc to this modality",
+                              "type" : "string"
+                           },
                            "Manufacturer" : {
                               "description" : "Manufacturer of the remote DICOM modality (check configuration option `DicomModalities` for possible values",
                               "type" : "string"
@@ -15431,7 +15481,7 @@
                               "type" : "number"
                            },
                            "Timeout" : {
-                              "description" : "Timeout for the C-ECHO command, in seconds",
+                              "description" : "Whether to override the default DicomScuTimeout in the SCU connection initiated by Orthanc to this modality",
                               "type" : "number"
                            },
                            "UseDicomTls" : {
@@ -16061,7 +16111,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "orthanc_count_instances 2352 1706706084150\northanc_count_patients 7 1706706084150\northanc_count_series 23 1706706084150\northanc_count_studies 7 1706706084150\northanc_dicom_cache_count 302 1706706084150\northanc_dicom_cache_size_mb 127.904297 1706706084150\northanc_disk_size_mb 840.589417 1706706084150\northanc_jobs_completed 10 1706706084150\northanc_jobs_failed 0 1706706084150\northanc_jobs_pending 0 1706706084150\northanc_jobs_running 0 1706706084150\northanc_jobs_success 10 1706706084150\northanc_last_change 4778 1706706084150\northanc_rest_api_active_requests 1 1706706084150\northanc_rest_api_duration_ms 311 1706706082544\northanc_storage_cache_count 704 1706706084150\northanc_storage_cache_size_mb 127.69693 1706706084150\northanc_storage_read_duration_ms 0 1706706076439\northanc_uncompressed_size_mb 840.589417 1706706084150\northanc_up_time_s 2323485 1706706084150\n"
+                        "example" : "orthanc_count_instances 2352 1717611466656\northanc_count_patients 7 1717611466656\northanc_count_series 23 1717611466656\northanc_count_studies 7 1717611466656\northanc_dicom_cache_count 304 1717611466656\northanc_dicom_cache_size_mb 127.931244 1717611466656\northanc_disk_size_mb 840.589417 1717611466656\northanc_jobs_completed 10 1717611466656\northanc_jobs_failed 0 1717611466656\northanc_jobs_pending 0 1717611466656\northanc_jobs_running 0 1717611466656\northanc_jobs_success 10 1717611466656\northanc_last_change 4778 1717611466656\northanc_rest_api_active_requests 1 1717611466656\northanc_rest_api_duration_ms 428 1717611466329\northanc_storage_cache_count 704 1717611466656\northanc_storage_cache_size_mb 127.69693 1717611466656\northanc_storage_read_duration_ms 5 1717611461503\northanc_uncompressed_size_mb 840.589417 1717611466656\northanc_up_time_s 2606700 1717611466656\n"
                      }
                   },
                   "description" : ""
@@ -16080,7 +16130,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "20240131T130124",
+                        "example" : "20240605T181746",
                         "schema" : {
                            "description" : "The UTC time"
                         }
@@ -16102,7 +16152,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "20240131T130124",
+                        "example" : "20240605T181746",
                         "schema" : {
                            "description" : "The local time"
                         }
--- a/Sphinx/source/developers/creating-plugins.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/developers/creating-plugins.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -15,7 +15,7 @@
 Native Orthanc plugins must use the `plugin SDK
 <https://orthanc.uclouvain.be/sdk/>`__ whose interface is available as a
 `C header
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__.
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__.
 As a consequence, an Orthanc plugin will typically be written using C
 or C++, although it is also possible to create native plugins using
 languages that feature compatibility with C headers and with `FFI of
@@ -97,7 +97,7 @@
 that is part of the Orthanc source distribution:
 
 * `Plugins/Include/orthanc/OrthancCPlugin.h
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 
 `Online documentation <https://orthanc.uclouvain.be/sdk/>`__ for this C
 header is available, as generated by `Doxygen
@@ -111,8 +111,8 @@
 ``HAS_ORTHANC_EXCEPTION`` is set to ``0``:
 
 * `Plugins/Samples/Common/OrthanPluginCppWrapper.h
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h>`__
 * `Plugins/Samples/Common/OrthanPluginCppWrapper.cpp
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp>`__
 * `Plugins/Samples/Common/OrthanPluginException.h
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h>`__
--- a/Sphinx/source/developers/db-versioning.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/developers/db-versioning.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -26,7 +26,7 @@
 Version                           DB v2   DB v3   DB v4   DB v5   DB v6
 ===============================   =====   =====   =====   =====   =====
 Mainline                                  u       u       u       x
-Orthanc 0.9.5 - Orthanc 1.12.3            u       u       u       x
+Orthanc 0.9.5 - Orthanc 1.12.4            u       u       u       x
 Orthanc 0.8.5 - Orthanc 0.9.4             u       u       x
 Orthanc 0.7.3 - Orthanc 0.8.4             u       x
 Orthanc 0.4.0 - Orthanc 0.7.2             x
--- a/Sphinx/source/dicom-guide.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/dicom-guide.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -665,7 +665,7 @@
 
     $ getscu -v localhost 4242 -aec ORTHANC -k "0008,0052=STUDY" -k "0020,000d=1.2.840.113543.6.6.4.7.64067529866380271256212683512383713111129"
 
-*Note:* As of Orthanc 1.12.3, Orthanc only implements C-Get as a
+*Note:* As of Orthanc 1.12.4, Orthanc only implements C-Get as a
 service class provider (SCP). Using C-Get as a service class user
 (SCU) is not currently supported in Orthanc.
 
--- a/Sphinx/source/faq/main-dicom-tags.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/faq/main-dicom-tags.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -126,7 +126,7 @@
 ``SeriesDescription`` at ``Study`` level will lead to unpredictible results.
 Orthanc will **not** check that the tags levels are adequate. 
 
-*Note:* As of Orthanc 1.12.3, it is not possible to store Private DICOM tags
+*Note:* As of Orthanc 1.12.4, it is not possible to store Private DICOM tags
 in the ``ExtraMainDicomTags``.
 
 
--- a/Sphinx/source/faq/orthanc-storage.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/faq/orthanc-storage.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -59,9 +59,9 @@
 database schema is kept as simple as possible, and can be found in the
 following two files of the source code of Orthanc:
 `PrepareDatabase.sql
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Sources/Database/PrepareDatabase.sql>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Sources/Database/PrepareDatabase.sql>`__
 and `InstallTrackAttachmentsSize.sql
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql>`__.
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql>`__.
 
 
 Direct access
--- a/Sphinx/source/faq/scalability.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/faq/scalability.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -54,7 +54,7 @@
 Here is a generic setup that should provide best performance in the
 presence of large databases:
 
-* Make sure to use the latest release of Orthanc (1.12.3 at the time of
+* Make sure to use the latest release of Orthanc (1.12.4 at the time of
   writing) running on a GNU/Linux distribution.
 
 * We suggest to use the latest release of the :ref:`PostgreSQL plugin
--- a/Sphinx/source/plugins/java.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/plugins/java.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -18,7 +18,7 @@
 Java plugins have access to more features and a more consistent SDK
 than :ref:`Lua scripts <lua>`. The largest part of the Java API is
 automatically generated from the `Orthanc plugin SDK in C
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 using the `Clang <https://en.wikipedia.org/wiki/Clang>`__ compiler
 front-end.
 
--- a/Sphinx/source/plugins/python.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/plugins/python.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -18,7 +18,7 @@
 Python plugins have access to more features and a more consistent SDK
 than :ref:`Lua scripts <lua>`. The largest part of the Python API is
 automatically generated from the `Orthanc plugin SDK in C
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 using the `Clang <https://en.wikipedia.org/wiki/Clang>`__ compiler
 front-end.
 
@@ -301,7 +301,7 @@
 call ``RestApiPostAfterPlugin`` to call the REST API from plugins.
 
 
-Note however, that, as of Orthanc 1.12.3, the Orthanc plugin SDK
+Note however, that, as of Orthanc 1.12.4, the Orthanc plugin SDK
 does not support multiple plugins implementing the same route.
 Orthanc will actually accept e.g a Python plugin that overrides
 a DICOMWeb route but it is impossible to tell which route
@@ -890,7 +890,7 @@
 
 * The call to ``orthanc.ExtendOrthancExplorer()`` installs the button
   with JavaScript code that uses the `jQuery Mobile framework
-  <https://demos.jquerymobile.com/1.1.0/>`__ (as of Orthanc 1.12.3,
+  <https://demos.jquerymobile.com/1.1.0/>`__ (as of Orthanc 1.12.4,
   version 1.1.0 of jQuery Mobile is used in Orthanc Explorer).
 
 * If clicking on the button, a GET call to the REST API is made to
--- a/Sphinx/source/users/advanced-rest.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/advanced-rest.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -89,7 +89,7 @@
 the ``MediaArchiveSize`` configuration that defines the maximum
 number of ZIP/media archives that are maintained by Orthanc, as a 
 response to the asynchronous creation of archive. As of Orthanc
-1.12.3, this value is ``1`` by default.
+1.12.4, this value is ``1`` by default.
 
 .. _jobs-monitoring:
 
@@ -139,7 +139,7 @@
   ``ErrorCode`` and ``ErrorDescription`` fields for more information.
 * ``Paused``: The job has been paused.
 * ``Retry``: The job has failed internally, and has been scheduled for
-  re-submission after a delay. As of Orthanc 1.12.3, this feature is not
+  re-submission after a delay. As of Orthanc 1.12.4, this feature is not
   used by any type of job.
 
 In order to wait for the end of an asynchronous call, the caller will
@@ -148,7 +148,7 @@
 ``Failure``.
 
 Note that the `integration tests of Orthanc
-<https://orthanc.uclouvain.be/hg/orthanc-tests/file/Orthanc-1.12.3/Tests/Toolbox.py>`__
+<https://orthanc.uclouvain.be/hg/orthanc-tests/file/Orthanc-1.12.4/Tests/Toolbox.py>`__
 give an example about how to monitor a job in Python using the REST
 API (cf. function ``MonitorJob()``).
 
@@ -221,7 +221,7 @@
 Note how we retrieve the content of the archive by accessing the
 ``archive`` output of the job (check out the virtual method
 ``IJob::GetOutput()`` from the `source code
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Sources/ServerJobs/ArchiveJob.cpp>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Sources/ServerJobs/ArchiveJob.cpp>`__
 of Orthanc).
 
 Here is the corresponding sequence of commands to generate a DICOMDIR
@@ -230,7 +230,7 @@
   $ curl http://localhost:8042/studies/27f7126f-4f66fb14-03f4081b-f9341db2-53925988/media -d '{"Asynchronous":true}'
   $ curl http://localhost:8042/jobs/6332be8a-0052-44fb-8cc2-ac959aeccad9/archive > a.zip
 
-As of Orthanc 1.12.3, only the creation of a ZIP or a DICOMDIR archive
+As of Orthanc 1.12.4, only the creation of a ZIP or a DICOMDIR archive
 produces such "outputs".
 
 
--- a/Sphinx/source/users/anonymization.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/anonymization.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -80,7 +80,7 @@
 **Implementation:** Internally, the setup of the anonymization
 profiles can be found in the methods ``SetupAnonymizationXXX()`` of
 the class ``Orthanc::DicomModification`` (cf. `source code
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancFramework/Sources/DicomParsing/DicomModification.cpp>`__).
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancFramework/Sources/DicomParsing/DicomModification.cpp>`__).
 
 
 Modification of a Single Instance
--- a/Sphinx/source/users/configuration.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/configuration.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -8,7 +8,7 @@
 Configuring Orthanc simply consists in providing a configuration file.
 Orthanc has numerous configuration that are documented in the `default
 configuration file
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Resources/Configuration.json>`_. This
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Resources/Configuration.json>`_. This
 file is in the `JSON <https://en.wikipedia.org/wiki/JSON>`_ file
 format. You can generate this file file with the following call::
 
--- a/Sphinx/source/users/debian-packages.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/debian-packages.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -108,11 +108,11 @@
 This can be done with this sequence of commands::
 
   $ sudo service orthanc stop
-  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.3/Orthanc --output-document /usr/sbin/Orthanc
+  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.4/Orthanc --output-document /usr/sbin/Orthanc
   $ sudo chmod +x /usr/sbin/Orthanc
   $ sudo rm -f /usr/share/orthanc/plugins/*.so
-  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.3/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so
-  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.3/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so
+  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.4/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so
+  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.4/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so
   $
   $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc-dicomweb/1.16/libOrthancDicomWeb.so --output-document /usr/share/orthanc/plugins/libOrthancDicomWeb.so
   $ ...
--- a/Sphinx/source/users/docker.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/docker.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -72,13 +72,13 @@
 If more stability is required, you can select the official release of
 Orthanc to be run::
 
-  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.12.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.12.4
 
 Passing additional command-line options (e.g. to make Orthanc verbose)
 can be done as follows (note the ``/etc/orthanc`` option that is
 required for Orthanc to find its configuration files)::
 
-  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.12.3 /etc/orthanc --verbose
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.12.4 /etc/orthanc --verbose
 
 
 Usage, with plugins enabled
@@ -94,7 +94,7 @@
 
 Or you can also start a specific version of Orthanc for more stability::
 
-  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-plugins:1.12.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-plugins:1.12.4
 
 If you have an interest in the :ref:`Python plugin <python-plugin>`,
 you can use the ``orthanc-python`` image. The latter image is a
@@ -102,7 +102,7 @@
 Python 3.7 interpreter. Here is how to start this image::
 
   $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-python
-  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-python:1.12.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-python:1.12.4
   
 
 Fine-tuning the configuration
@@ -116,12 +116,12 @@
 
 You can generate a custom configuration file for Orthanc as follows::
 
-  $ docker run --rm --entrypoint=cat jodogne/orthanc:1.12.3 /etc/orthanc/orthanc.json > /tmp/orthanc.json
+  $ docker run --rm --entrypoint=cat jodogne/orthanc:1.12.4 /etc/orthanc/orthanc.json > /tmp/orthanc.json
 
 Then, edit the just-generated file ``/tmp/orthanc.json`` and restart
 Orthanc with your updated configuration::
 
-  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc:1.12.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc:1.12.4
 
 *Remark:* These Docker images automatically set the environment
 variable ``MALLOC_ARENA_MAX`` to ``5`` in order to :ref:`control
@@ -154,7 +154,7 @@
   version: '3.1'  # Secrets are only available since this version of Docker Compose
   services:
     orthanc:
-      image: jodogne/orthanc-plugins:1.12.3
+      image: jodogne/orthanc-plugins:1.12.4
       command: /run/secrets/  # Path to the configuration files (stored as secrets)
       ports:
         - 4242:4242
@@ -203,7 +203,7 @@
 container to some path in the filesystem of your Linux host, e.g.::
 
   $ mkdir /tmp/orthanc-db
-  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc-db/:/var/lib/orthanc/db/ jodogne/orthanc:1.12.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc-db/:/var/lib/orthanc/db/ jodogne/orthanc:1.12.4
 
 
 Whole-slide imaging support
@@ -213,13 +213,13 @@
 whole-slide imaging (WSI) <wsi>`. For instance, the following command
 will start the WSI viewer plugin transparently together with Orthanc::
 
-  $ docker run -p 4242:4242 -p 8042:8042 --rm --name orthanc-wsi jodogne/orthanc-plugins:1.12.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm --name orthanc-wsi jodogne/orthanc-plugins:1.12.4
 
 Note that we gave the name ``orthanc-wsi`` to this new Docker
 container. Then, the Dicomizer command-line tool can be invoked as
 follows::
 
-  $ docker run -t -i --rm --link=orthanc-wsi:orthanc --entrypoint=OrthancWSIDicomizer -v /tmp/Source.tif:/tmp/Source.tif:ro jodogne/orthanc-plugins:1.12.3 --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ /tmp/Source.tif
+  $ docker run -t -i --rm --link=orthanc-wsi:orthanc --entrypoint=OrthancWSIDicomizer -v /tmp/Source.tif:/tmp/Source.tif:ro jodogne/orthanc-plugins:1.12.4 --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ /tmp/Source.tif
 
 This command needs a few explanations:
 
@@ -247,7 +247,7 @@
 instruct the Dicomizer to use `OpenSlide <https://openslide.org/>`__
 to decode it by adding the ``--openslide`` option::
 
-  $ docker run -t -i --rm --link=orthanc-wsi:orthanc --entrypoint=OrthancWSIDicomizer -v /tmp/Source.svs:/tmp/Source.svs:ro jodogne/orthanc-plugins:1.12.3 --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ --openslide=libopenslide.so /tmp/Source.svs
+  $ docker run -t -i --rm --link=orthanc-wsi:orthanc --entrypoint=OrthancWSIDicomizer -v /tmp/Source.svs:/tmp/Source.svs:ro jodogne/orthanc-plugins:1.12.4 --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ --openslide=libopenslide.so /tmp/Source.svs
 
 
 PostgreSQL and Orthanc inside Docker
@@ -268,7 +268,7 @@
 
   $ docker inspect --format '{{ .NetworkSettings.IPAddress }}' some-postgres
   $ docker inspect --format '{{ .NetworkSettings.Ports }}' some-postgres
-  $ docker run --rm --entrypoint=cat jodogne/orthanc-plugins:1.12.3 /etc/orthanc/orthanc.json > /tmp/orthanc.json
+  $ docker run --rm --entrypoint=cat jodogne/orthanc-plugins:1.12.4 /etc/orthanc/orthanc.json > /tmp/orthanc.json
 
 .. highlight:: text
 
@@ -289,7 +289,7 @@
 
 Finally, you can start Orthanc::
 
-  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc-plugins:1.12.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc-plugins:1.12.4
 
 
 Debugging
@@ -300,5 +300,5 @@
 For debugging purpose, you can start an interactive bash session as
 follows::
 
-  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc:1.12.3
-  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc-plugins:1.12.3
+  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc:1.12.4
+  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc-plugins:1.12.4
--- a/Sphinx/source/users/docker.rst.BAK	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/docker.rst.BAK	Wed Jun 05 20:18:43 2024 +0200
@@ -20,4 +20,4 @@
 * The build artifacts can be found in folder ``/root/orthanc/Build``.
 
 * This command launches the mainline version. To start a released version,
-  use e.g. ``jodogne/orthanc-debug:1.12.3``.
+  use e.g. ``jodogne/orthanc-debug:1.12.4``.
--- a/Sphinx/source/users/man-orthanc.txt	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/man-orthanc.txt	Wed Jun 05 20:18:43 2024 +0200
@@ -122,11 +122,12 @@
 COPYRIGHT
        Copyright © 2012-2016 Sebastien Jodogne,	 Medical  Physics  Department,
        University Hospital of Liege (Belgium)
-       Copyright © 2017-2024 Osimis S.A. (Belgium)
+       Copyright © 2017-2023 Osimis S.A. (Belgium)
+       Copyright © 2024-2024 Orthanc Team SRL (Belgium)
        Copyright © 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain (Belgium) Li‐
        censing	GPLv3+:	 GNU  GPL  version  3  or  later   <http://gnu.org/li‐
        censes/gpl.html>.
        This  is	 free  software:  you  are free to change and redistribute it.
        There is NO WARRANTY, to the extent permitted by law.
 
-Orthanc 1.12.3			 January 2024			    ORTHANC(1)
+Orthanc 1.12.4			   June 2024			    ORTHANC(1)
--- a/Sphinx/source/users/rest.rst	Thu May 30 22:23:40 2024 +0200
+++ b/Sphinx/source/users/rest.rst	Wed Jun 05 20:18:43 2024 +0200
@@ -98,7 +98,7 @@
     $ curl -X POST -H "Expect:" http://localhost:8042/instances --data-binary @CT.X.1.2.276.0.7230010.dcm
 
 The code distribution of Orthanc contains a `sample Python script
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py>`__
 that recursively upload the content of some folder into Orthanc using
 the REST API::
 
@@ -110,7 +110,7 @@
 import the content of ``.zip``, ``.tar.gz`` or ``.tar.bz2`` archives
 without having to uncompress them first. It also provides more
 comprehensive command-line options. `Check this script out
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.3/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py>`__.
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.4/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py>`__.
     
 
 .. highlight:: perl