changeset 1165:28b55ad71cb6 Orthanc-1.12.8

Orthanc 1.12.8
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 14 Jun 2025 17:53:22 +0200
parents b23c0aa10c6e
children 37664f3f523b
files OpenAPI/orthanc-openapi.json Sphinx/source/developers/creating-plugins.rst Sphinx/source/developers/db-versioning.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 16 files changed, 65 insertions(+), 59 deletions(-) [+]
line wrap: on
line diff
--- a/OpenAPI/orthanc-openapi.json	Tue Jun 03 11:10:45 2025 +0200
+++ b/OpenAPI/orthanc-openapi.json	Sat Jun 14 17:53:22 2025 +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.7"
+      "version" : "1.12.8"
    },
    "openapi" : "3.0.0",
    "paths" : {
@@ -224,7 +224,7 @@
                   }
                },
                {
-                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
+                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
                   "in" : "query",
                   "name" : "response-content",
                   "required" : false,
@@ -3137,6 +3137,7 @@
                            "description" : "Information about the parent DICOM patient",
                            "example" : {
                               "ID" : "2f74083e-9b042648-10edac14-b26950f8-f82ec3a0",
+                              "IsProtected" : false,
                               "IsStable" : true,
                               "Labels" : [],
                               "LastUpdate" : "20231109T160911",
@@ -3873,7 +3874,7 @@
                      "application/json" : {
                         "schema" : {
                            "description" : "JSON array containing either the jobs identifiers, or detailed information about the reported jobs (if `expand` argument is provided)",
-                           "example" : [ "a58970a8-bf47-4cac-8ec0-fd7f836b0efa" ]
+                           "example" : []
                         }
                      }
                   },
@@ -5214,7 +5215,7 @@
                   }
                },
                {
-                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
+                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
                   "in" : "query",
                   "name" : "response-content",
                   "required" : false,
@@ -5333,6 +5334,7 @@
                            "description" : "Information about the DICOM patient",
                            "example" : {
                               "ID" : "46e6332c-677825b6-202fcf7c-f787bc5f-7b07c382",
+                              "IsProtected" : false,
                               "IsStable" : true,
                               "Labels" : [],
                               "LastUpdate" : "20231109T160830",
@@ -8292,7 +8294,7 @@
                               "ExtendsOrthancExplorer" : true,
                               "ID" : "dicom-web",
                               "RootUri" : "../dicom-web/app/client/index.html",
-                              "Version" : "1.18"
+                              "Version" : "1.20"
                            }
                         }
                      }
@@ -9102,7 +9104,7 @@
                   }
                },
                {
-                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
+                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
                   "in" : "query",
                   "name" : "response-content",
                   "required" : false,
@@ -11450,6 +11452,7 @@
                            "description" : "Information about the parent DICOM patient",
                            "example" : {
                               "ID" : "2f74083e-9b042648-10edac14-b26950f8-f82ec3a0",
+                              "IsProtected" : false,
                               "IsStable" : true,
                               "Labels" : [],
                               "LastUpdate" : "20231109T160911",
@@ -11948,7 +11951,7 @@
                   }
                },
                {
-                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
+                  "description" : "Defines the content of response for each returned resource.  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`.e.g: 'response-content=MainDicomTags;Children (new in Orthanc 1.12.5 - overrides `expand`)",
                   "in" : "query",
                   "name" : "response-content",
                   "required" : false,
@@ -14427,6 +14430,7 @@
                            "description" : "Information about the parent DICOM patient",
                            "example" : {
                               "ID" : "16738bc3-e47ed42a-43ce044c-a3414a45-cb069bd0",
+                              "IsProtected" : false,
                               "IsStable" : true,
                               "Labels" : [],
                               "LastUpdate" : "20231109T160811",
@@ -14913,14 +14917,16 @@
                         "schema" : {
                            "description" : "",
                            "example" : {
-                              "ApiVersion" : 27,
+                              "ApiVersion" : 29,
                               "Capabilities" : {
                                  "HasExtendedChanges" : true,
-                                 "HasExtendedFind" : true
+                                 "HasExtendedFind" : true,
+                                 "HasKeyValueStores" : true,
+                                 "HasQueues" : true
                               },
                               "CheckRevisions" : false,
                               "DatabaseBackendPlugin" : null,
-                              "DatabaseServerIdentifier" : "3d10366d-2038f306-f066fd6f-2648bdad-882aac90",
+                              "DatabaseServerIdentifier" : "be2ba798-1cb577e0-483accf5-d286e8f5-de2599df",
                               "DatabaseVersion" : 6,
                               "DefaultRetrieveMethod" : "C-MOVE",
                               "DicomAet" : "ORTHANC",
@@ -14945,7 +14951,7 @@
                               "StorageAreaPlugin" : null,
                               "StorageCompression" : false,
                               "UserMetadata" : {},
-                              "Version" : "1.12.7"
+                              "Version" : "1.12.8"
                            },
                            "properties" : {
                               "ApiVersion" : {
@@ -16276,7 +16282,7 @@
                               "type" : "array"
                            },
                            "ResponseContent" : {
-                              "description" : "Defines the content of response for each returned resource. (this field, if present, overrides the \"Expand\" field).  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`.(new in Orthanc 1.12.5)",
+                              "description" : "Defines the content of response for each returned resource. (this field, if present, overrides the \"Expand\" field).  Allowed values are `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`, `Attachments`.  If not specified, Orthanc will return `MainDicomTags`, `Metadata`, `Children`, `Parent`, `Labels`, `Status`, `IsStable`, `IsProtected`.(new in Orthanc 1.12.5)",
                               "items" : {
                                  "type" : "string"
                               },
@@ -16807,7 +16813,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "orthanc_count_instances 2552 1744023638288\northanc_count_patients 8 1744023638288\northanc_count_series 26 1744023638288\northanc_count_studies 8 1744023638288\northanc_dicom_cache_count 29 1744023638288\northanc_dicom_cache_size_mb 13.5450821 1744023638288\northanc_disk_size_mb 983.235352 1744023638288\northanc_jobs_completed 1 1744023638288\northanc_jobs_failed 0 1744023638288\northanc_jobs_pending 0 1744023638288\northanc_jobs_running 0 1744023638288\northanc_jobs_success 1 1744023638288\northanc_last_change 6551 1744023638288\northanc_rest_api_active_requests 1 1744023638288\northanc_rest_api_duration_ms 642 1744023636811\northanc_storage_cache_count 428 1744023638288\northanc_storage_cache_hit_count 771 1744023638071\northanc_storage_cache_miss_count 428 1744023632849\northanc_storage_cache_size_mb 66.1587219 1744023638288\northanc_storage_read_bytes 69372450 1744023632849\northanc_storage_read_duration_ms 0 1744023631251\northanc_uncompressed_size_mb 983.235352 1744023638288\northanc_up_time_s 223 1744023638288\n"
+                        "example" : "orthanc_count_instances 2552 1749916381731\northanc_count_patients 8 1749916381731\northanc_count_series 26 1749916381731\northanc_count_studies 8 1749916381731\northanc_dicom_cache_count 1 1749916381731\northanc_dicom_cache_size_mb 0.502557755 1749916381731\northanc_disk_size_mb 983.235352 1749916381731\northanc_jobs_completed 0 1749916381731\northanc_jobs_failed 0 1749916381731\northanc_jobs_pending 0 1749916381731\northanc_jobs_running 0 1749916381731\northanc_jobs_success 0 1749916381731\northanc_last_change 6551 1749916381731\northanc_rest_api_active_requests 1 1749916381731\northanc_rest_api_duration_ms 658 1749916380195\northanc_storage_cache_count 417 1749916381731\northanc_storage_cache_hit_count 567 1749916381503\northanc_storage_cache_miss_count 417 1749916380002\northanc_storage_cache_size_mb 34.7660789 1749916381731\northanc_storage_read_bytes 36454876 1749916380002\northanc_storage_read_duration_ms 0 1749916374668\northanc_uncompressed_size_mb 983.235352 1749916381731\northanc_up_time_s 168 1749916381731\n"
                      }
                   },
                   "description" : ""
@@ -16826,7 +16832,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "20250407T110038",
+                        "example" : "20250614T155301",
                         "schema" : {
                            "description" : "The UTC time"
                         }
@@ -16848,7 +16854,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "20250407T110038",
+                        "example" : "20250614T155301",
                         "schema" : {
                            "description" : "The local time"
                         }
--- a/Sphinx/source/developers/creating-plugins.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/developers/creating-plugins.rst	Sat Jun 14 17:53:22 2025 +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.7/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__.
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/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
@@ -103,7 +103,7 @@
 that is part of the Orthanc source distribution:
 
 * `Plugins/Include/orthanc/OrthancCPlugin.h
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.7/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 
 `Online documentation <https://orthanc.uclouvain.be/sdk/>`__ for this C
 header is available, as generated by `Doxygen
@@ -117,8 +117,8 @@
 ``HAS_ORTHANC_EXCEPTION`` is set to ``0``:
 
 * `Plugins/Samples/Common/OrthanPluginCppWrapper.h
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.7/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h>`__
 * `Plugins/Samples/Common/OrthanPluginCppWrapper.cpp
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.7/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp>`__
 * `Plugins/Samples/Common/OrthanPluginException.h
-  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.7/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h>`__
+  <https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h>`__
--- a/Sphinx/source/developers/db-versioning.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/developers/db-versioning.rst	Sat Jun 14 17:53:22 2025 +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.7            u       u       u       x
+Orthanc 0.9.5 - Orthanc 1.12.8            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/faq/main-dicom-tags.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/faq/main-dicom-tags.rst	Sat Jun 14 17:53:22 2025 +0200
@@ -127,7 +127,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.7, it is not possible to store Private DICOM tags
+*Note:* As of Orthanc 1.12.8, it is not possible to store Private DICOM tags
 in the ``ExtraMainDicomTags``.
 
 
--- a/Sphinx/source/faq/orthanc-storage.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/faq/orthanc-storage.rst	Sat Jun 14 17:53:22 2025 +0200
@@ -102,9 +102,9 @@
 The database schema is kept as simple as possible, e.g, for SQLite,
 the schema 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.7/OrthancServer/Sources/Database/PrepareDatabase.sql>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Sources/Database/PrepareDatabase.sql>`__
 and `InstallTrackAttachmentsSize.sql
-<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.7/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql>`__.
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql>`__.
 
 
 Direct access
--- a/Sphinx/source/faq/scalability.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/faq/scalability.rst	Sat Jun 14 17:53:22 2025 +0200
@@ -53,7 +53,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.7 at the time of
+* Make sure to use the latest release of Orthanc (1.12.8 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	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/plugins/java.rst	Sat Jun 14 17:53:22 2025 +0200
@@ -18,7 +18,7 @@
 Java applications for Orthanc 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.7/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 using the `Clang <https://en.wikipedia.org/wiki/Clang>`__ compiler
 front-end.
 
--- a/Sphinx/source/plugins/python.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/plugins/python.rst	Sat Jun 14 17:53:22 2025 +0200
@@ -30,7 +30,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.7/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 using the `Clang <https://en.wikipedia.org/wiki/Clang>`__ compiler
 front-end.
 
@@ -351,7 +351,7 @@
 call ``RestApiPostAfterPlugin`` to call the REST API from plugins.
 
 
-Note however, that, as of Orthanc 1.12.7, the Orthanc plugin SDK
+Note however, that, as of Orthanc 1.12.8, 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
@@ -940,7 +940,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.7,
+  <https://demos.jquerymobile.com/1.1.0/>`__ (as of Orthanc 1.12.8,
   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	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/advanced-rest.rst	Sat Jun 14 17:53:22 2025 +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.7, this value is ``1`` by default.
+1.12.8, 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.7, this feature is not
+  re-submission after a delay. As of Orthanc 1.12.8, 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.7/Tests/Toolbox.py>`__
+<https://orthanc.uclouvain.be/hg/orthanc-tests/file/Orthanc-1.12.8/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.7/OrthancServer/Sources/ServerJobs/ArchiveJob.cpp>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/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.7, only the creation of a ZIP or a DICOMDIR archive
+As of Orthanc 1.12.8, only the creation of a ZIP or a DICOMDIR archive
 produces such "outputs".
 
 
--- a/Sphinx/source/users/anonymization.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/anonymization.rst	Sat Jun 14 17:53:22 2025 +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.7/OrthancFramework/Sources/DicomParsing/DicomModification.cpp>`__).
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancFramework/Sources/DicomParsing/DicomModification.cpp>`__).
 
 
 Modification of a Single Instance
--- a/Sphinx/source/users/configuration.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/configuration.rst	Sat Jun 14 17:53:22 2025 +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.7/OrthancServer/Resources/Configuration.json>`_. This
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/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	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/debian-packages.rst	Sat Jun 14 17:53:22 2025 +0200
@@ -108,13 +108,13 @@
 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.7/Orthanc --output-document /usr/sbin/Orthanc
+  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.8/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.7/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so
-  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.7/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so
+  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.8/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so
+  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc/1.12.8/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so
   $
-  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc-dicomweb/1.18/libOrthancDicomWeb.so --output-document /usr/share/orthanc/plugins/libOrthancDicomWeb.so
+  $ sudo wget https://orthanc.uclouvain.be/downloads/linux-standard-base/orthanc-dicomweb/1.20/libOrthancDicomWeb.so --output-document /usr/share/orthanc/plugins/libOrthancDicomWeb.so
   $ ...
   $ sudo service orthanc restart
 
--- a/Sphinx/source/users/docker.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/docker.rst	Sat Jun 14 17:53:22 2025 +0200
@@ -97,13 +97,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.7
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.12.8
 
 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.7 /etc/orthanc --verbose
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.12.8 /etc/orthanc --verbose
 
 
 Usage, with plugins enabled
@@ -119,7 +119,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.7
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-plugins:1.12.8
 
 If you have an interest in the :ref:`Python plugin <python-plugin>`,
 you can use the ``orthanc-python`` image. The latter image is a
@@ -127,7 +127,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.7
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-python:1.12.8
   
 
 Fine-tuning the configuration
@@ -141,12 +141,12 @@
 
 You can generate a custom configuration file for Orthanc as follows::
 
-  $ docker run --rm --entrypoint=cat jodogne/orthanc:1.12.7 /etc/orthanc/orthanc.json > /tmp/orthanc.json
+  $ docker run --rm --entrypoint=cat jodogne/orthanc:1.12.8 /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.7
+  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc:1.12.8
 
 *Remark:* These Docker images automatically set the environment
 variable ``MALLOC_ARENA_MAX`` to ``5`` in order to :ref:`control
@@ -179,7 +179,7 @@
   version: '3.1'  # Secrets are only available since this version of Docker Compose
   services:
     orthanc:
-      image: jodogne/orthanc-plugins:1.12.7
+      image: jodogne/orthanc-plugins:1.12.8
       command: /run/secrets/  # Path to the configuration files (stored as secrets)
       ports:
         - 4242:4242
@@ -228,7 +228,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.7
+  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc-db/:/var/lib/orthanc/db/ jodogne/orthanc:1.12.8
 
 
 Whole-slide imaging support
@@ -238,13 +238,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.7
+  $ docker run -p 4242:4242 -p 8042:8042 --rm --name orthanc-wsi jodogne/orthanc-plugins:1.12.8
 
 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.7 --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.8 --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ /tmp/Source.tif
 
 This command needs a few explanations:
 
@@ -272,7 +272,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.7 --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.8 --username=orthanc --password=orthanc --orthanc=http://orthanc:8042/ --openslide=libopenslide.so /tmp/Source.svs
 
 
 PostgreSQL and Orthanc inside Docker
@@ -293,7 +293,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.7 /etc/orthanc/orthanc.json > /tmp/orthanc.json
+  $ docker run --rm --entrypoint=cat jodogne/orthanc-plugins:1.12.8 /etc/orthanc/orthanc.json > /tmp/orthanc.json
 
 .. highlight:: text
 
@@ -314,7 +314,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.7
+  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc.json:/etc/orthanc/orthanc.json:ro jodogne/orthanc-plugins:1.12.8
 
 
 Debugging
@@ -325,5 +325,5 @@
 For debugging purpose, you can start an interactive bash session as
 follows::
 
-  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc:1.12.7
-  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc-plugins:1.12.7
+  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc:1.12.8
+  $ docker run -i -t --rm --entrypoint=bash jodogne/orthanc-plugins:1.12.8
--- a/Sphinx/source/users/docker.rst.BAK	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/docker.rst.BAK	Sat Jun 14 17:53:22 2025 +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.7``.
+  use e.g. ``jodogne/orthanc-debug:1.12.8``.
--- a/Sphinx/source/users/man-orthanc.txt	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/man-orthanc.txt	Sat Jun 14 17:53:22 2025 +0200
@@ -130,4 +130,4 @@
        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.7			  April 2025			    ORTHANC(1)
+Orthanc 1.12.8			   June 2025			    ORTHANC(1)
--- a/Sphinx/source/users/rest.rst	Tue Jun 03 11:10:45 2025 +0200
+++ b/Sphinx/source/users/rest.rst	Sat Jun 14 17:53:22 2025 +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.7/OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py>`__
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/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.7/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py>`__.
+<https://orthanc.uclouvain.be/hg/orthanc/file/Orthanc-1.12.8/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py>`__.
     
 
 .. highlight:: perl