changeset 719:8a247c645ac6 Orthanc-1.9.4

Orthanc 1.9.4
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 24 Jun 2021 09:52:22 +0200
parents ab751f4ebd40
children 7d9b6e330699
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/crash.rst Sphinx/source/faq/debugging.rst Sphinx/source/faq/log.rst Sphinx/source/faq/orthanc-storage.rst Sphinx/source/faq/scalability.rst Sphinx/source/plugins/python.rst Sphinx/source/plugins/python/pil-conversions.py Sphinx/source/plugins/python/worklist.py 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/man-orthanc.txt Sphinx/source/users/rest-cheatsheet.csv Sphinx/source/users/rest.rst
diffstat 20 files changed, 998 insertions(+), 110 deletions(-) [+]
line wrap: on
line diff
--- a/OpenAPI/orthanc-openapi.json	Tue Jun 22 21:09:00 2021 +0200
+++ b/OpenAPI/orthanc-openapi.json	Thu Jun 24 09:52:22 2021 +0200
@@ -2,7 +2,7 @@
    "info" : {
       "description" : "This is the full documentation of the [REST API](https://book.orthanc-server.com/users/rest.html) of Orthanc.<p>This reference is automatically generated from the source code of Orthanc. A [shorter cheat sheet](https://book.orthanc-server.com/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.9.3"
+      "version" : "1.9.4"
    },
    "openapi" : "3.0.0",
    "paths" : {
@@ -165,6 +165,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Limit the number of results",
                   "in" : "query",
                   "name" : "limit",
@@ -174,6 +183,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Show only the resources since the provided index",
                   "in" : "query",
                   "name" : "since",
@@ -298,6 +316,24 @@
             "description" : "Get detailed information about the DICOM instance whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the instance of interest",
                   "in" : "path",
                   "name" : "id",
@@ -370,7 +406,7 @@
                               "type" : "boolean"
                            },
                            "Keep" : {
-                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -385,14 +421,14 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "description" : "List of additional tags to be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
                               "type" : "array"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            }
                         }
@@ -1842,21 +1878,21 @@
             "description" : "Get the DICOM tags in the meta-header of the DICOM instance. By default, the `full` format is used, which combines hexadecimal tags with human-readable description.",
             "parameters" : [
                {
-                  "description" : "If present, report the DICOM tags indexed in hexadecimal format",
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
                   "in" : "query",
                   "name" : "short",
                   "required" : false,
                   "schema" : {
-                     "type" : "string"
-                  }
-               },
-               {
-                  "description" : "If present, report the DICOM tags in human-readable format",
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
                   "in" : "query",
                   "name" : "simplify",
                   "required" : false,
                   "schema" : {
-                     "type" : "string"
+                     "type" : "boolean"
                   }
                },
                {
@@ -2371,7 +2407,7 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "description" : "List of tags that must be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -2382,7 +2418,7 @@
                               "type" : "boolean"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            },
                            "Transcode" : {
@@ -2429,6 +2465,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the instance of interest",
                   "in" : "path",
                   "name" : "id",
@@ -2497,6 +2551,24 @@
             "description" : "Get detailed information about the parent patient of the DICOM instance whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the instance of interest",
                   "in" : "path",
                   "name" : "id",
@@ -2766,6 +2838,24 @@
             "description" : "Get detailed information about the parent series of the DICOM instance whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the instance of interest",
                   "in" : "path",
                   "name" : "id",
@@ -2827,7 +2917,7 @@
       "/instances/{id}/simplified-tags" : {
          "get" : {
             "deprecated" : false,
-            "description" : "Get the DICOM tags in human-readable format",
+            "description" : "Get the DICOM tags in human-readable format (same as the `/instances/{id}/tags?simplify` route)",
             "parameters" : [
                {
                   "description" : "Also include the DICOM tags that are provided in this list, even if their associated value is long",
@@ -2961,6 +3051,24 @@
             "description" : "Get detailed information about the parent study of the DICOM instance whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the instance of interest",
                   "in" : "path",
                   "name" : "id",
@@ -3019,21 +3127,21 @@
             "description" : "Get the DICOM tags in the specified format. By default, the `full` format is used, which combines hexadecimal tags with human-readable description.",
             "parameters" : [
                {
-                  "description" : "If present, report the DICOM tags indexed in hexadecimal format",
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
                   "in" : "query",
                   "name" : "short",
                   "required" : false,
                   "schema" : {
-                     "type" : "string"
-                  }
-               },
-               {
-                  "description" : "If present, report the DICOM tags in human-readable format (same as the `/instances/{id}/simplified-tags` route)",
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
                   "in" : "query",
                   "name" : "simplify",
                   "required" : false,
                   "schema" : {
-                     "type" : "string"
+                     "type" : "boolean"
                   }
                },
                {
@@ -3137,9 +3245,9 @@
                         "schema" : {
                            "description" : "JSON array containing either the jobs identifiers, or detailed information about the reported jobs (if `expand` argument is provided)",
                            "example" : [
-                              "28c9f653-b8e3-476c-8237-794905f4711d",
-                              "2fc02948-0e5d-472e-a6d2-2e3af2275cc1",
-                              "3ab8820c-f757-4eb1-8305-4d554c989077",
+                              "33043739-94a9-454e-8af6-3093711e64d7",
+                              "425b1738-afef-46eb-84b1-5a0ee9fb63d9",
+                              "92c239a1-918a-419a-bcef-0a8533a7a780",
                               "..."
                            ]
                         }
@@ -4275,6 +4383,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Limit the number of results",
                   "in" : "query",
                   "name" : "limit",
@@ -4284,6 +4401,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Show only the resources since the provided index",
                   "in" : "query",
                   "name" : "since",
@@ -4341,6 +4467,24 @@
             "description" : "Get detailed information about the DICOM patient whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the patient of interest",
                   "in" : "path",
                   "name" : "id",
@@ -4411,7 +4555,7 @@
                               "type" : "boolean"
                            },
                            "Keep" : {
-                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -4434,14 +4578,14 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "description" : "List of additional tags to be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
                               "type" : "array"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            },
                            "Synchronous" : {
@@ -4541,7 +4685,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Priority" : {
@@ -4549,7 +4693,7 @@
                               "type" : "number"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -5287,6 +5431,24 @@
             "description" : "Get detailed information about the child instances of the DICOM patient whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the patient of interest",
                   "in" : "path",
                   "name" : "id",
@@ -5398,6 +5560,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the patient of interest",
                   "in" : "path",
                   "name" : "id",
@@ -5636,7 +5816,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Extended" : {
@@ -5648,7 +5828,7 @@
                               "type" : "number"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -5927,7 +6107,7 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "description" : "List of tags that must be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -5938,7 +6118,7 @@
                               "type" : "boolean"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            },
                            "Synchronous" : {
@@ -5999,6 +6179,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the patient of interest",
                   "in" : "path",
                   "name" : "id",
@@ -6120,6 +6318,24 @@
             "description" : "Get detailed information about the child series of the DICOM patient whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the patient of interest",
                   "in" : "path",
                   "name" : "id",
@@ -6168,6 +6384,24 @@
             "description" : "Extract the DICOM tags whose value is constant across all the child instances of the DICOM patient whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the patient of interest",
                   "in" : "path",
                   "name" : "id",
@@ -6317,6 +6551,24 @@
             "description" : "Get detailed information about the child studies of the DICOM patient whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the patient of interest",
                   "in" : "path",
                   "name" : "id",
@@ -6818,7 +7070,7 @@
                               "ExtendsOrthancExplorer" : true,
                               "ID" : "dicom-web",
                               "RootUri" : "../dicom-web/app/client/index.html",
-                              "Version" : "1.5"
+                              "Version" : "1.6"
                            }
                         }
                      }
@@ -6921,12 +7173,21 @@
                   }
                },
                {
-                  "description" : "If present and if `expand` is present, format the tags of the answers in human-readable format",
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
                   "in" : "query",
                   "name" : "simplify",
                   "required" : false,
                   "schema" : {
-                     "type" : "string"
+                     "type" : "boolean"
                   }
                },
                {
@@ -7003,12 +7264,21 @@
             "description" : "Get the content (DICOM tags) of one answer associated with the query/retrieve operation whose identifier is provided in the URL",
             "parameters" : [
                {
-                  "description" : "If present, format the tags of the answer in human-readable format",
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
                   "in" : "query",
                   "name" : "simplify",
                   "required" : false,
                   "schema" : {
-                     "type" : "string"
+                     "type" : "boolean"
                   }
                },
                {
@@ -7418,12 +7688,21 @@
             "description" : "Get the original DICOM filter associated with the query/retrieve operation whose identifier is provided in the URL",
             "parameters" : [
                {
-                  "description" : "If present, format the tags of the DICOM filter in human-readable format",
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
                   "in" : "query",
                   "name" : "simplify",
                   "required" : false,
                   "schema" : {
-                     "type" : "string"
+                     "type" : "boolean"
                   }
                },
                {
@@ -7550,6 +7829,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Limit the number of results",
                   "in" : "query",
                   "name" : "limit",
@@ -7559,6 +7847,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Show only the resources since the provided index",
                   "in" : "query",
                   "name" : "since",
@@ -7616,6 +7913,24 @@
             "description" : "Get detailed information about the DICOM series whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the series of interest",
                   "in" : "path",
                   "name" : "id",
@@ -7695,7 +8010,7 @@
                               "type" : "boolean"
                            },
                            "Keep" : {
-                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -7718,14 +8033,14 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "description" : "List of additional tags to be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
                               "type" : "array"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            },
                            "Synchronous" : {
@@ -7825,7 +8140,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Priority" : {
@@ -7833,7 +8148,7 @@
                               "type" : "number"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -8571,6 +8886,24 @@
             "description" : "Get detailed information about the child instances of the DICOM series whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the series of interest",
                   "in" : "path",
                   "name" : "id",
@@ -8630,6 +8963,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the series of interest",
                   "in" : "path",
                   "name" : "id",
@@ -8755,7 +9106,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Extended" : {
@@ -8767,7 +9118,7 @@
                               "type" : "number"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -9046,7 +9397,7 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "description" : "List of tags that must be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -9057,7 +9408,7 @@
                               "type" : "boolean"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            },
                            "Synchronous" : {
@@ -9118,6 +9469,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the series of interest",
                   "in" : "path",
                   "name" : "id",
@@ -9373,6 +9742,24 @@
             "description" : "Get detailed information about the parent patient of the DICOM series whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the series of interest",
                   "in" : "path",
                   "name" : "id",
@@ -9441,6 +9828,24 @@
             "description" : "Extract the DICOM tags whose value is constant across all the child instances of the DICOM series whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the series of interest",
                   "in" : "path",
                   "name" : "id",
@@ -9580,6 +9985,24 @@
             "description" : "Get detailed information about the parent study of the DICOM series whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the series of interest",
                   "in" : "path",
                   "name" : "id",
@@ -9795,6 +10218,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Limit the number of results",
                   "in" : "query",
                   "name" : "limit",
@@ -9804,6 +10236,15 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Show only the resources since the provided index",
                   "in" : "query",
                   "name" : "since",
@@ -9861,6 +10302,24 @@
             "description" : "Get detailed information about the DICOM study whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -9953,7 +10412,7 @@
                               "type" : "boolean"
                            },
                            "Keep" : {
-                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization",
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -9976,14 +10435,14 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of additional tags to be removed from the DICOM instances",
+                              "description" : "List of additional tags to be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
                               "type" : "array"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            },
                            "Synchronous" : {
@@ -10083,7 +10542,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Priority" : {
@@ -10091,7 +10550,7 @@
                               "type" : "number"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -10829,6 +11288,24 @@
             "description" : "Get detailed information about the child instances of the DICOM study whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -10950,6 +11427,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -11188,7 +11683,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Extended" : {
@@ -11200,7 +11695,7 @@
                               "type" : "number"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -11248,7 +11743,7 @@
       "/studies/{id}/merge" : {
          "post" : {
             "deprecated" : false,
-            "description" : "Start a new job so as to move some DICOM series into the DICOM study whose Orthanc identifier is provided in the URL: https://book.orthanc-server.com/users/anonymization.html#merging",
+            "description" : "Start a new job so as to move some DICOM resources into the DICOM study whose Orthanc identifier is provided in the URL: https://book.orthanc-server.com/users/anonymization.html#merging",
             "parameters" : [
                {
                   "description" : "Orthanc identifier of the study of interest",
@@ -11283,7 +11778,7 @@
                               "type" : "number"
                            },
                            "Resources" : {
-                              "description" : "The list of DICOM resources (patients, studies, series, and/or instances) to be merged into the study of interest (mandatory option)",
+                              "description" : "The list of DICOM resources (studies, series, and/or instances) to be merged into the study of interest (mandatory option)",
                               "items" : {
                                  "type" : "string"
                               },
@@ -11559,7 +12054,7 @@
                               "type" : "string"
                            },
                            "Remove" : {
-                              "description" : "List of tags that must be removed from the DICOM instances",
+                              "description" : "List of tags that must be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "items" : {
                                  "type" : "string"
                               },
@@ -11570,7 +12065,7 @@
                               "type" : "boolean"
                            },
                            "Replace" : {
-                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances",
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
                               "type" : "object"
                            },
                            "Synchronous" : {
@@ -11631,6 +12126,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -11757,6 +12270,24 @@
                   }
                },
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -11810,6 +12341,24 @@
             "description" : "Get detailed information about the parent patient of the DICOM study whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -11878,6 +12427,24 @@
             "description" : "Get detailed information about the child series of the DICOM study whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                  "in" : "query",
+                  "name" : "full",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -11987,6 +12554,24 @@
             "description" : "Extract the DICOM tags whose value is constant across all the child instances of the DICOM study whose Orthanc identifier is provided in the URL",
             "parameters" : [
                {
+                  "description" : "If present, report the DICOM tags in hexadecimal format",
+                  "in" : "query",
+                  "name" : "short",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
+                  "description" : "If present, report the DICOM tags in human-readable format (using the symbolic name of the tags)",
+                  "in" : "query",
+                  "name" : "simplify",
+                  "required" : false,
+                  "schema" : {
+                     "type" : "boolean"
+                  }
+               },
+               {
                   "description" : "Orthanc identifier of the study of interest",
                   "in" : "path",
                   "name" : "id",
@@ -12043,7 +12628,7 @@
       "/studies/{id}/split" : {
          "post" : {
             "deprecated" : false,
-            "description" : "Start a new job so as to split the DICOM study whose Orthanc identifier is provided in the URL, by taking some of its children series out of it and putting them into a brand new study (this new study is created by setting the `StudyInstanceUID` tag to a random identifier): https://book.orthanc-server.com/users/anonymization.html#splitting",
+            "description" : "Start a new job so as to split the DICOM study whose Orthanc identifier is provided in the URL, by taking some of its children series or instances out of it and putting them into a brand new study (this new study is created by setting the `StudyInstanceUID` tag to a random identifier): https://book.orthanc-server.com/users/anonymization.html#splitting",
             "parameters" : [
                {
                   "description" : "Orthanc identifier of the study of interest",
@@ -12065,8 +12650,15 @@
                               "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
                               "type" : "boolean"
                            },
+                           "Instances" : {
+                              "description" : "The list of instances to be separated from the parent study. These instances must all be children of the same source study, that is specified in the URI.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
                            "KeepSource" : {
-                              "description" : "If set to `true`, instructs Orthanc to keep a copy of the original series in the source study. By default, the original series are deleted from Orthanc.",
+                              "description" : "If set to `true`, instructs Orthanc to keep a copy of the original series/instances in the source study. By default, the original series/instances are deleted from Orthanc.",
                               "type" : "boolean"
                            },
                            "Permissive" : {
@@ -12089,7 +12681,7 @@
                               "type" : "object"
                            },
                            "Series" : {
-                              "description" : "The list of series to be separated from the parent study (mandatory option). These series must all be children of the same source study, that is specified in the URI.",
+                              "description" : "The list of series to be separated from the parent study. These series must all be children of the same source study, that is specified in the URI.",
                               "items" : {
                                  "type" : "string"
                               },
@@ -12239,7 +12831,7 @@
                               "Name" : "Orthanc Demo",
                               "PluginsEnabled" : true,
                               "StorageAreaPlugin" : null,
-                              "Version" : "1.9.2"
+                              "Version" : "1.9.3"
                            },
                            "properties" : {
                               "ApiVersion" : {
@@ -12314,6 +12906,10 @@
                            "description" : "List of the available operations",
                            "example" : [
                               "accepted-transfer-syntaxes",
+                              "bulk-anonymize",
+                              "bulk-content",
+                              "bulk-delete",
+                              "bulk-modify",
                               "create-archive",
                               "create-dicom",
                               "create-media",
@@ -12409,6 +13005,286 @@
             "tags" : [ "System" ]
          }
       },
+      "/tools/bulk-anonymize" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will anonymize all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field.",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "DicomVersion" : {
+                              "description" : "Version of the DICOM standard to be used for anonymization. Check out configuration option `DeidentifyLogsDicomVersion` for possible values.",
+                              "type" : "string"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "List of DICOM tags whose value must not be destroyed by the anonymization. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "KeepPrivateTags" : {
+                              "description" : "Keep the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of additional tags to be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
+                              "type" : "object"
+                           },
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of the patients/studies/series/instances of interest.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The list of all the resources that have been created by this anonymization",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Anonymize a set of resources",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/bulk-content" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Get the content all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field, in one single call.",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Full" : {
+                              "description" : "If set to `true`, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                              "type" : "boolean"
+                           },
+                           "Level" : {
+                              "description" : "This optional argument specifies the level of interest (can be `Patient`, `Study`, `Series` or `Instance`). Orthanc will loop over the items inside `Resources`, and explorer upward or downward in the DICOM hierarchy in order to find the level of interest.",
+                              "type" : "string"
+                           },
+                           "Metadata" : {
+                              "description" : "If set to `true` (default value), the metadata associated with the resources will also be retrieved.",
+                              "type" : "boolean"
+                           },
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of the patients/studies/series/instances of interest.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Short" : {
+                              "description" : "If set to `true`, report the DICOM tags in hexadecimal format",
+                              "type" : "boolean"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Describe a set of instances",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/bulk-delete" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Delete all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field.",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of the patients/studies/series/instances of interest.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "description" : ""
+               }
+            },
+            "summary" : "Delete a set of instances",
+            "tags" : [ "System" ]
+         }
+      },
+      "/tools/bulk-modify" : {
+         "post" : {
+            "deprecated" : false,
+            "description" : "Start a job that will modify all the DICOM patients, studies, series or instances whose identifiers are provided in the `Resources` field.",
+            "parameters" : [],
+            "requestBody" : {
+               "content" : {
+                  "application/json" : {
+                     "schema" : {
+                        "description" : "",
+                        "properties" : {
+                           "Asynchronous" : {
+                              "description" : "If `true`, run the job in asynchronous mode, which means that the REST API call will immediately return, reporting the identifier of a job. Prefer this flavor wherever possible.",
+                              "type" : "boolean"
+                           },
+                           "Force" : {
+                              "description" : "Allow the modification of tags related to DICOM identifiers, at the risk of breaking the DICOM model of the real world",
+                              "type" : "boolean"
+                           },
+                           "Keep" : {
+                              "description" : "Keep the original value of the specified tags, to be chosen among the `StudyInstanceUID`, `SeriesInstanceUID` and `SOPInstanceUID` tags. Avoid this feature as much as possible, as this breaks the DICOM model of the real world.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Permissive" : {
+                              "description" : "If `true`, ignore errors during the individual steps of the job.",
+                              "type" : "boolean"
+                           },
+                           "Priority" : {
+                              "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.",
+                              "type" : "number"
+                           },
+                           "PrivateCreator" : {
+                              "description" : "The private creator to be used for private tags in `Replace`",
+                              "type" : "string"
+                           },
+                           "Remove" : {
+                              "description" : "List of tags that must be removed from the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "RemovePrivateTags" : {
+                              "description" : "Remove the private tags from the DICOM instances (defaults to `false`)",
+                              "type" : "boolean"
+                           },
+                           "Replace" : {
+                              "description" : "Associative array to change the value of some DICOM tags in the DICOM instances. Starting with Orthanc 1.9.4, paths to subsequences can be provided using the same syntax as the `dcmodify` command-line tool (wildcards are supported as well).",
+                              "type" : "object"
+                           },
+                           "Resources" : {
+                              "description" : "List of the Orthanc identifiers of the patients/studies/series/instances of interest.",
+                              "items" : {
+                                 "type" : "string"
+                              },
+                              "type" : "array"
+                           },
+                           "Synchronous" : {
+                              "description" : "If `true`, run the job in synchronous mode, which means that the HTTP answer will directly contain the result of the job. This is the default, easy behavior, but it is *not* desirable for long jobs, as it might lead to network timeouts.",
+                              "type" : "boolean"
+                           },
+                           "Transcode" : {
+                              "description" : "Transcode the DICOM instances to the provided DICOM transfer syntax: https://book.orthanc-server.com/faq/transcoding.html",
+                              "type" : "string"
+                           }
+                        }
+                     }
+                  }
+               }
+            },
+            "responses" : {
+               "200" : {
+                  "content" : {
+                     "application/json" : {
+                        "examples" : {},
+                        "schema" : {
+                           "description" : "The list of all the resources that have been altered by this modification",
+                           "properties" : {
+                              "ID" : {
+                                 "description" : "In asynchronous mode, identifier of the job",
+                                 "type" : "string"
+                              },
+                              "Path" : {
+                                 "description" : "In asynchronous mode, path to access the job in the REST API",
+                                 "type" : "string"
+                              }
+                           }
+                        }
+                     }
+                  },
+                  "description" : ""
+               }
+            },
+            "summary" : "Modify a set of resources",
+            "tags" : [ "System" ]
+         }
+      },
       "/tools/create-archive" : {
          "post" : {
             "deprecated" : false,
@@ -12421,7 +13297,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Priority" : {
@@ -12436,7 +13312,7 @@
                               "type" : "array"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -12560,7 +13436,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Extended" : {
@@ -12579,7 +13455,7 @@
                               "type" : "array"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -12636,7 +13512,7 @@
                         "description" : "",
                         "properties" : {
                            "Asynchronous" : {
-                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background. Prefer this flavor wherever possible.",
+                              "description" : "If `true`, create the archive in asynchronous mode, which means that a job is submitted to create the archive in background.",
                               "type" : "boolean"
                            },
                            "Extended" : {
@@ -12655,7 +13531,7 @@
                               "type" : "array"
                            },
                            "Synchronous" : {
-                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior, but it is *not* be desirable to archive large amount of data, as it might lead to network timeouts.",
+                              "description" : "If `true`, create the archive in synchronous mode, which means that the HTTP answer will directly contain the ZIP file. This is the default, easy behavior. However, if global configuration option \"SynchronousZipStream\" is set to \"false\", asynchronous transfers should be prefered for large amount of data, as the creation of the temporary file might lead to network timeouts.",
                               "type" : "boolean"
                            },
                            "Transcode" : {
@@ -12868,6 +13744,10 @@
                               "description" : "Also retrieve the content of the matching resources, not only their Orthanc identifiers",
                               "type" : "boolean"
                            },
+                           "Full" : {
+                              "description" : "If set to `true`, report the DICOM tags in full format (tags indexed by their hexadecimal format, associated with their symbolic name and their value)",
+                              "type" : "boolean"
+                           },
                            "Level" : {
                               "description" : "Level of the query (`Patient`, `Study`, `Series` or `Instance`)",
                               "type" : "string"
@@ -12880,6 +13760,10 @@
                               "description" : "Associative array containing the filter on the values of the DICOM tags",
                               "type" : "object"
                            },
+                           "Short" : {
+                              "description" : "If set to `true`, report the DICOM tags in hexadecimal format",
+                              "type" : "boolean"
+                           },
                            "Since" : {
                               "description" : "Show only the resources since the provided index (in conjunction with `Limit`)",
                               "type" : "number"
@@ -13379,7 +14263,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "orthanc_count_instances 2552 1620382972570\northanc_count_patients 8 1620382972570\northanc_count_series 26 1620382972570\northanc_count_studies 8 1620382972570\northanc_dicom_cache_count 180 1620341242884\northanc_dicom_cache_size 89.929306 1620341242884\northanc_disk_size_mb 1018.65021 1620382972570\northanc_jobs_completed 10 1620382972570\northanc_jobs_failed 0 1620382972570\northanc_jobs_pending 0 1620382972570\northanc_jobs_running 0 1620382972570\northanc_jobs_success 10 1620382972570\northanc_rest_api_active_requests 1 1620382972570\northanc_rest_api_duration_ms 6078 1620382966006\northanc_storage_read_duration_ms 346 1620382962068\northanc_uncompressed_size_mb 1018.65021 1620382972570\n"
+                        "example" : "orthanc_count_instances 2552 1624520944061\northanc_count_patients 8 1624520944061\northanc_count_series 26 1624520944061\northanc_count_studies 8 1624520944061\northanc_dicom_cache_count 64 1624464718932\northanc_dicom_cache_size 59.926609 1624464718932\northanc_disk_size_mb 1018.65021 1624520944061\northanc_jobs_completed 10 1624520944061\northanc_jobs_failed 0 1624520944061\northanc_jobs_pending 0 1624520944061\northanc_jobs_running 0 1624520944061\northanc_jobs_success 10 1624520944061\northanc_rest_api_active_requests 1 1624520944060\northanc_rest_api_duration_ms 441 1624520942071\northanc_storage_read_duration_ms 18 1624520941704\northanc_uncompressed_size_mb 1018.65021 1624520944061\n"
                      }
                   },
                   "description" : ""
@@ -13398,7 +14282,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "20210507T102252",
+                        "example" : "20210624T074904",
                         "schema" : {
                            "description" : "The UTC time"
                         }
@@ -13420,7 +14304,7 @@
                "200" : {
                   "content" : {
                      "text/plain" : {
-                        "example" : "20210507T102253",
+                        "example" : "20210624T074904",
                         "schema" : {
                            "description" : "The local time"
                         }
--- a/Sphinx/source/developers/creating-plugins.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/developers/creating-plugins.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -83,7 +83,7 @@
 that is part of the Orthanc source distribution:
 
 * `Plugins/Include/orthanc/OrthancCPlugin.h
-  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 
 `Online documentation <https://sdk.orthanc-server.com/>`__ for this C
 header is available, as generated by `Doxygen
@@ -97,8 +97,8 @@
 ``HAS_ORTHANC_EXCEPTION`` is set to ``0``:
 
 * `Plugins/Samples/Common/OrthanPluginCppWrapper.h
-  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h>`__
+  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h>`__
 * `Plugins/Samples/Common/OrthanPluginCppWrapper.cpp
-  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp>`__
+  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp>`__
 * `Plugins/Samples/Common/OrthanPluginException.h
-  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h>`__
+  <https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h>`__
--- a/Sphinx/source/developers/db-versioning.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/developers/db-versioning.rst	Thu Jun 24 09:52:22 2021 +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.9.3             u       u       u       x
+Orthanc 0.9.5 - Orthanc 1.9.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	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/dicom-guide.rst	Thu Jun 24 09:52:22 2021 +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.9.3, Orthanc only implements C-Get as a
+*Note:* As of Orthanc 1.9.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/crash.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/faq/crash.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -64,13 +64,13 @@
 above <segfault-plugin>` is available as the ``crash.cpp`` file, here
 is a sample debug session::
 
-  $ wget https://lsb.orthanc-server.com/orthanc/debug/1.9.3/Orthanc
+  $ wget https://lsb.orthanc-server.com/orthanc/debug/1.9.4/Orthanc
   $ chmod +x ./Orthanc
   $ gcc -fPIC -shared ./crash.cpp -I ~/orthanc/Plugins/Include -o crash.so
   $ ulimit -c unlimited
   $ echo '{ "Plugins" : ["crash.so"] }' > Configuration.json
   $ rm -f core ; ./Orthanc Configuration.json
-  W0427 15:43:24.215783 main.cpp:1436] Orthanc version: 1.9.3
+  W0427 15:43:24.215783 main.cpp:1436] Orthanc version: 1.9.4
   W0427 15:43:24.215910 main.cpp:1279] Performance warning: Non-release build, runtime debug assertions are turned on
   W0427 15:43:24.217585 OrthancConfiguration.cpp:61] Reading the configuration from: "Configuration.json"
   W0427 15:43:24.254733 main.cpp:700] Loading plugin(s) from: crash.so
--- a/Sphinx/source/faq/debugging.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/faq/debugging.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -45,13 +45,13 @@
 to debug Orthanc without compiling from sources. Here is a sample
 debug session::
 
-  $ wget https://lsb.orthanc-server.com/orthanc/debug/1.9.3/Orthanc
+  $ wget https://lsb.orthanc-server.com/orthanc/debug/1.9.4/Orthanc
   $ chmod +x ./Orthanc
   $ gdb ./Orthanc Configuration.json
   (gdb) catch throw
   Catchpoint 1 (throw)
   (gdb) run
-  W0513 15:24:42.374349 main.cpp:1436] Orthanc version: 1.9.3
+  W0513 15:24:42.374349 main.cpp:1436] Orthanc version: 1.9.4
   ---> Reproduce your error case <---
   Thread 15 "Orthanc" hit Catchpoint 1 (exception thrown), 0x00007ffff6de68bd in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
   (gdb) backtrace
--- a/Sphinx/source/faq/log.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/faq/log.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -58,7 +58,7 @@
 2. Stop the Orthanc service. The actual process depends on your
    version of Windows.
 
-3. Copy the just-downloaded ``Orthanc-1.9.3-Release.exe`` together
+3. Copy the just-downloaded ``Orthanc-1.9.4-Release.exe`` together
    with your configuration file (that is by default located in
    ``C:\Orthanc\Configuration.json``) into the same folder
    (e.g. ``C:\Temp``).
@@ -67,7 +67,7 @@
    ``Orthanc.log`` file::
 
    $ cd C:\Temp
-   $ Orthanc-1.9.3-Release.exe --verbose Configuration.json > Orthanc.log 2<&1
+   $ Orthanc-1.9.4-Release.exe --verbose Configuration.json > Orthanc.log 2<&1
 
 5. Once the log has been generated (by default, it is available as
    ``C:\Temp\Orthanc.log``), stop Orthanc and possibly restart the
--- a/Sphinx/source/faq/orthanc-storage.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/faq/orthanc-storage.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -57,9 +57,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://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Sources/Database/PrepareDatabase.sql>`__
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Sources/Database/PrepareDatabase.sql>`__
 and `InstallTrackAttachmentsSize.sql
-<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql>`__.
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql>`__.
 
 
 Direct access
--- a/Sphinx/source/faq/scalability.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/faq/scalability.rst	Thu Jun 24 09:52:22 2021 +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.9.3 at the time of
+* Make sure to use the latest release of Orthanc (1.9.4 at the time of
   writing).
 
 * We suggest to use the latest release of the :ref:`PostgreSQL plugin
--- a/Sphinx/source/plugins/python.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/plugins/python.rst	Thu Jun 24 09:52:22 2021 +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://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h>`__
 using the `Clang <https://en.wikipedia.org/wiki/Clang>`__ compiler
 front-end.
 
--- a/Sphinx/source/plugins/python/pil-conversions.py	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/plugins/python/pil-conversions.py	Thu Jun 24 09:52:22 2021 +0200
@@ -3,7 +3,7 @@
 import PIL.ImageDraw
 import orthanc
 
-URL = 'http://hg.orthanc-server.com/orthanc-tests/raw-file/Orthanc-1.9.3/Database/LenaTwiceWithFragments.dcm'
+URL = 'http://hg.orthanc-server.com/orthanc-tests/raw-file/Orthanc-1.9.4/Database/LenaTwiceWithFragments.dcm'
 USERNAME = ''
 PASSWORD = ''
 
--- a/Sphinx/source/plugins/python/worklist.py	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/plugins/python/worklist.py	Thu Jun 24 09:52:22 2021 +0200
@@ -3,7 +3,7 @@
 import os
 
 # Path to the directory containing the DICOM worklists
-# https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Plugins/Samples/ModalityWorklists/WorklistsDatabase
+# https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Plugins/Samples/ModalityWorklists/WorklistsDatabase
 WORKLIST_DIR = '/tmp/WorklistsDatabase'
 
 def OnWorklist(answers, query, issuerAet, calledAet):
--- a/Sphinx/source/users/advanced-rest.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/advanced-rest.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -132,7 +132,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.9.3, this feature is not
+  re-submission after a delay. As of Orthanc 1.9.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
@@ -141,7 +141,7 @@
 ``Failure``.
 
 Note that the `integration tests of Orthanc
-<https://hg.orthanc-server.com/orthanc-tests/file/Orthanc-1.9.3/Tests/Toolbox.py>`__
+<https://hg.orthanc-server.com/orthanc-tests/file/Orthanc-1.9.4/Tests/Toolbox.py>`__
 give an example about how to monitor a job in Python using the REST
 API (cf. function ``MonitorJob()``).
 
@@ -202,7 +202,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://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Sources/ServerJobs/ArchiveJob.cpp>`__
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Sources/ServerJobs/ArchiveJob.cpp>`__
 of Orthanc).
 
 Here is the corresponding sequence of commands to generate a DICOMDIR
@@ -211,7 +211,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.9.3, only the creation of a ZIP or a DICOMDIR archive
+As of Orthanc 1.9.4, only the creation of a ZIP or a DICOMDIR archive
 produces such "outputs".
 
   
--- a/Sphinx/source/users/anonymization.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/anonymization.rst	Thu Jun 24 09:52:22 2021 +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://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancFramework/Sources/DicomParsing/DicomModification.cpp>`__).
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancFramework/Sources/DicomParsing/DicomModification.cpp>`__).
 
 
 Modification of a Single Instance
--- a/Sphinx/source/users/configuration.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/configuration.rst	Thu Jun 24 09:52:22 2021 +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://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Resources/Configuration.json>`_. This
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.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	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/debian-packages.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -106,12 +106,12 @@
 This can be done with this sequence of commands::
 
   $ sudo service orthanc stop
-  $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.3/Orthanc --output-document /usr/sbin/Orthanc
+  $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.4/Orthanc --output-document /usr/sbin/Orthanc
   $ sudo rm -f /usr/share/orthanc/plugins/*.so
-  $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.3/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so
-  $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.3/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so
+  $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.4/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so
+  $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.4/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so
   $
-  $ sudo wget https://lsb.orthanc-server.com/plugin-dicom-web/1.3/libOrthancDicomWeb.so --output-document /usr/share/orthanc/plugins/libOrthancDicomWeb.so
+  $ sudo wget https://lsb.orthanc-server.com/plugin-dicom-web/1.6/libOrthancDicomWeb.so --output-document /usr/share/orthanc/plugins/libOrthancDicomWeb.so
   $ ...
   $ sudo service orthanc restart
 
--- a/Sphinx/source/users/docker.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/docker.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -73,7 +73,7 @@
 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.9.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.9.4
 
 Passing additional command-line options (e.g. to make Orthanc verbose)
 can be done as follows (note the ``/etc/orthanc`` option that is
@@ -95,7 +95,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.9.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-plugins:1.9.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
@@ -103,7 +103,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.9.3
+  $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-python:1.9.4
   
 
 Fine-tuning the configuration
@@ -155,7 +155,7 @@
   version: '3.1'  # Secrets are only available since this version of Docker Compose
   services:
     orthanc:
-      image: jodogne/orthanc-plugins:1.9.3
+      image: jodogne/orthanc-plugins:1.9.4
       command: /run/secrets/  # Path to the configuration files (stored as secrets)
       ports:
         - 4242:4242
@@ -204,7 +204,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.9.3 
+  $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc-db/:/var/lib/orthanc/db/ jodogne/orthanc:1.9.4 
 
 
 Whole-slide imaging support
@@ -325,4 +325,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.9.3``.
+  use e.g. ``jodogne/orthanc-debug:1.9.4``.
--- a/Sphinx/source/users/man-orthanc.txt	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/man-orthanc.txt	Thu Jun 24 09:52:22 2021 +0200
@@ -128,4 +128,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.9.3			   May 2021			    ORTHANC(1)
+Orthanc 1.9.4			   June 2021			    ORTHANC(1)
--- a/Sphinx/source/users/rest-cheatsheet.csv	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/rest-cheatsheet.csv	Thu Jun 24 09:52:22 2021 +0200
@@ -187,6 +187,10 @@
 ``/system``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1system/get>`__,,,,Get system information
 ``/tools``,`GET <https://api.orthanc-server.com/index.html#tag/Other/paths/~1tools/get>`__,,,,List operations
 ``/tools/accepted-transfer-syntaxes``,`GET <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1accepted-transfer-syntaxes/get>`__,,,`PUT <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1accepted-transfer-syntaxes/put>`__,Get accepted transfer syntaxes
+``/tools/bulk-anonymize``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1bulk-anonymize/post>`__,,,Anonymize a set of resources
+``/tools/bulk-content``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1bulk-content/post>`__,,,Describe a set of instances
+``/tools/bulk-delete``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1bulk-delete/post>`__,,,Delete a set of instances
+``/tools/bulk-modify``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1bulk-modify/post>`__,,,Modify a set of resources
 ``/tools/create-archive``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1create-archive/post>`__,,,Create ZIP archive
 ``/tools/create-dicom``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1create-dicom/post>`__,,,Create one DICOM instance
 ``/tools/create-media``,,`POST <https://api.orthanc-server.com/index.html#tag/System/paths/~1tools~1create-media/post>`__,,,Create DICOMDIR media
--- a/Sphinx/source/users/rest.rst	Tue Jun 22 21:09:00 2021 +0200
+++ b/Sphinx/source/users/rest.rst	Thu Jun 24 09:52:22 2021 +0200
@@ -94,7 +94,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://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py>`__
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py>`__
 that recursively upload the content of some folder into Orthanc using
 the REST API::
 
@@ -106,7 +106,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://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.3/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py>`__.
+<https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.4/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py>`__.
     
 
 .. highlight:: perl