# HG changeset patch # User Alain Mazy # Date 1675762753 -3600 # Node ID 6474e299918bb07ea753c2a33d2ba547397b371d # Parent b113d1384248c74fdcb7d04bcb964421139292ae Orthanc 1.11.3 diff -r b113d1384248 -r 6474e299918b OpenAPI/orthanc-openapi.json --- a/OpenAPI/orthanc-openapi.json Thu Feb 02 12:18:54 2023 +0100 +++ b/OpenAPI/orthanc-openapi.json Tue Feb 07 10:39:13 2023 +0100 @@ -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.

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.

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.11.2" + "version" : "1.11.3" }, "openapi" : "3.0.0", "paths" : { @@ -452,6 +452,10 @@ "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" + }, + "Transcode" : { + "description" : "Transcode the DICOM instances to the provided DICOM transfer syntax: https://book.orthanc-server.com/faq/transcoding.html", + "type" : "string" } } } @@ -3598,9 +3602,9 @@ "schema" : { "description" : "JSON array containing either the jobs identifiers, or detailed information about the reported jobs (if `expand` argument is provided)", "example" : [ - "23a80b32-d72d-47cd-93d2-88d12e064ff6", - "2db25003-6758-4509-a828-e74d70773c5e", - "3f1aa2c2-fca5-4d83-bb47-f4eafe85ae24", + "088d9652-7ca3-4dfc-ba70-8da881f13e7e", + "1461a56a-f046-47c3-bf2c-ad891dff319a", + "4e22e7a9-467f-4957-8ab5-4a86834e66e6", "..." ] } @@ -4613,6 +4617,14 @@ "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" }, + "CalledAet" : { + "description" : "Called AET that is used for this commands, defaults to `AET` configuration option. Allows you to overwrite the destination AET for a specific operation.", + "type" : "string" + }, + "Host" : { + "description" : "Host that is used for this commands, defaults to `Host` configuration option. Allows you to overwrite the destination host for a specific operation.", + "type" : "string" + }, "LocalAet" : { "description" : "Local AET that is used for this commands, defaults to `DicomAet` configuration option. Ignored if `DicomModalities` already sets `LocalAet` for this modality.", "type" : "string" @@ -4629,6 +4641,10 @@ "description" : "If `true`, ignore errors during the individual steps of the job.", "type" : "boolean" }, + "Port" : { + "description" : "Port that is used for this commands, defaults to `Port` configuration option. Allows you to overwrite the destination port for a specific operation.", + "type" : "number" + }, "Priority" : { "description" : "In asynchronous mode, the priority of the job. The lower the value, the higher the priority.", "type" : "number" @@ -4985,6 +5001,10 @@ "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" } } } @@ -8621,6 +8641,10 @@ "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" } } } @@ -11232,6 +11256,10 @@ "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" } } } @@ -13799,6 +13827,14 @@ "description" : "The list of MainDicomTags saved in DB for each resource level (new in Orthanc 1.11.0)", "type" : "object" }, + "MaximumStorageMode" : { + "description" : "The configured MaximumStorageMode (new in Orthanc 1.11.3)", + "type" : "string" + }, + "MaximumStorageSize" : { + "description" : "The configured MaximumStorageSize in MB (new in Orthanc 1.11.3)", + "type" : "number" + }, "Name" : { "description" : "The name of the Orthanc server, cf. the `Name` configuration option", "type" : "string" @@ -14017,6 +14053,10 @@ "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" } } } @@ -15223,7 +15263,7 @@ "200" : { "content" : { "text/plain" : { - "example" : "orthanc_count_instances 2552 1661940227313\northanc_count_patients 8 1661940227313\northanc_count_series 26 1661940227313\northanc_count_studies 8 1661940227313\northanc_dicom_cache_count 587 1661939724041\northanc_dicom_cache_size 127.833656 1661939724040\northanc_disk_size_mb 1018.65021 1661940227313\northanc_jobs_completed 10 1661940227313\northanc_jobs_failed 2 1661940227313\northanc_jobs_pending 0 1661940227313\northanc_jobs_running 0 1661940227313\northanc_jobs_success 8 1661940227313\northanc_rest_api_active_requests 1 1661940227312\northanc_rest_api_duration_ms 3036 1661940225539\northanc_storage_read_duration_ms 57 1661940217477\northanc_uncompressed_size_mb 1018.65021 1661940227313\n" + "example" : "orthanc_count_instances 2552 1675430423655\northanc_count_patients 8 1675430423655\northanc_count_series 26 1675430423655\northanc_count_studies 8 1675430423655\northanc_dicom_cache_count 285 1675420129748\northanc_dicom_cache_size 127.721069 1675420129748\northanc_disk_size_mb 1018.65021 1675430423655\northanc_jobs_completed 10 1675430423655\northanc_jobs_failed 0 1675430423655\northanc_jobs_pending 0 1675430423655\northanc_jobs_running 0 1675430423655\northanc_jobs_success 10 1675430423655\northanc_rest_api_active_requests 1 1675430423654\northanc_rest_api_duration_ms 415 1675430412272\northanc_storage_read_duration_ms 0 1675430411860\northanc_uncompressed_size_mb 1018.65021 1675430423655\n" } }, "description" : "" @@ -15242,7 +15282,7 @@ "200" : { "content" : { "text/plain" : { - "example" : "20220831T100347", + "example" : "20230203T132024", "schema" : { "description" : "The UTC time" } @@ -15264,7 +15304,7 @@ "200" : { "content" : { "text/plain" : { - "example" : "20220831T100347", + "example" : "20230203T132025", "schema" : { "description" : "The local time" } diff -r b113d1384248 -r 6474e299918b Sphinx/source/developers/creating-plugins.rst --- a/Sphinx/source/developers/creating-plugins.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/developers/creating-plugins.rst Tue Feb 07 10:39:13 2023 +0100 @@ -15,7 +15,7 @@ Native Orthanc plugins must use the `plugin SDK `__ whose interface is available as a `C header -`__. +`__. As a consequence, an Orthanc plugin will typically be written using C or C++, although it is also possible to create native plugins using languages that feature compatibility with C headers and with `FFI of @@ -96,7 +96,7 @@ that is part of the Orthanc source distribution: * `Plugins/Include/orthanc/OrthancCPlugin.h - `__ + `__ `Online documentation `__ for this C header is available, as generated by `Doxygen @@ -110,8 +110,8 @@ ``HAS_ORTHANC_EXCEPTION`` is set to ``0``: * `Plugins/Samples/Common/OrthanPluginCppWrapper.h - `__ + `__ * `Plugins/Samples/Common/OrthanPluginCppWrapper.cpp - `__ + `__ * `Plugins/Samples/Common/OrthanPluginException.h - `__ + `__ diff -r b113d1384248 -r 6474e299918b Sphinx/source/developers/db-versioning.rst --- a/Sphinx/source/developers/db-versioning.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/developers/db-versioning.rst Tue Feb 07 10:39:13 2023 +0100 @@ -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.11.2 u u u x +Orthanc 0.9.5 - Orthanc 1.11.3 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 diff -r b113d1384248 -r 6474e299918b Sphinx/source/dicom-guide.rst --- a/Sphinx/source/dicom-guide.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/dicom-guide.rst Tue Feb 07 10:39:13 2023 +0100 @@ -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.11.2, Orthanc only implements C-Get as a +*Note:* As of Orthanc 1.11.3, 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. diff -r b113d1384248 -r 6474e299918b Sphinx/source/faq/crash.rst --- a/Sphinx/source/faq/crash.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/faq/crash.rst Tue Feb 07 10:39:13 2023 +0100 @@ -64,13 +64,13 @@ above ` is available as the ``crash.cpp`` file, here is a sample debug session:: - $ wget https://lsb.orthanc-server.com/orthanc/debug/1.11.2/Orthanc + $ wget https://lsb.orthanc-server.com/orthanc/debug/1.11.3/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.11.2 + W0427 15:43:24.215783 main.cpp:1436] Orthanc version: 1.11.3 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 diff -r b113d1384248 -r 6474e299918b Sphinx/source/faq/debugging.rst --- a/Sphinx/source/faq/debugging.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/faq/debugging.rst Tue Feb 07 10:39:13 2023 +0100 @@ -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.11.2/Orthanc + $ wget https://lsb.orthanc-server.com/orthanc/debug/1.11.3/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.11.2 + W0513 15:24:42.374349 main.cpp:1436] Orthanc version: 1.11.3 ---> 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 diff -r b113d1384248 -r 6474e299918b Sphinx/source/faq/orthanc-storage.rst --- a/Sphinx/source/faq/orthanc-storage.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/faq/orthanc-storage.rst Tue Feb 07 10:39:13 2023 +0100 @@ -59,9 +59,9 @@ database schema is kept as simple as possible, and can be found in the following two files of the source code of Orthanc: `PrepareDatabase.sql -`__ +`__ and `InstallTrackAttachmentsSize.sql -`__. +`__. Direct access diff -r b113d1384248 -r 6474e299918b Sphinx/source/faq/scalability.rst --- a/Sphinx/source/faq/scalability.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/faq/scalability.rst Tue Feb 07 10:39:13 2023 +0100 @@ -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.11.2 at the time of +* Make sure to use the latest release of Orthanc (1.11.3 at the time of writing) running on a GNU/Linux distribution. * We suggest to use the latest release of the :ref:`PostgreSQL plugin diff -r b113d1384248 -r 6474e299918b Sphinx/source/plugins/python.rst --- a/Sphinx/source/plugins/python.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/plugins/python.rst Tue Feb 07 10:39:13 2023 +0100 @@ -18,7 +18,7 @@ Python plugins have access to more features and a more consistent SDK than :ref:`Lua scripts `. The largest part of the Python API is automatically generated from the `Orthanc plugin SDK in C -`__ +`__ using the `Clang `__ compiler front-end. diff -r b113d1384248 -r 6474e299918b Sphinx/source/users/advanced-rest.rst --- a/Sphinx/source/users/advanced-rest.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/users/advanced-rest.rst Tue Feb 07 10:39:13 2023 +0100 @@ -89,7 +89,7 @@ the ``MediaArchiveSize`` configuration that defines the maximum number of ZIP/media archives that are maintained by Orthanc, as a response to the asynchronous creation of archive. As of Orthanc -1.11.2, this value is ``1`` by default ! +1.11.3, this value is ``1`` by default ! .. _jobs-monitoring: @@ -139,7 +139,7 @@ ``ErrorCode`` and ``ErrorDescription`` fields for more information. * ``Paused``: The job has been paused. * ``Retry``: The job has failed internally, and has been scheduled for - re-submission after a delay. As of Orthanc 1.11.2, this feature is not + re-submission after a delay. As of Orthanc 1.11.3, this feature is not used by any type of job. In order to wait for the end of an asynchronous call, the caller will @@ -148,7 +148,7 @@ ``Failure``. Note that the `integration tests of Orthanc -`__ +`__ give an example about how to monitor a job in Python using the REST API (cf. function ``MonitorJob()``). @@ -221,7 +221,7 @@ Note how we retrieve the content of the archive by accessing the ``archive`` output of the job (check out the virtual method ``IJob::GetOutput()`` from the `source code -`__ +`__ of Orthanc). Here is the corresponding sequence of commands to generate a DICOMDIR @@ -230,7 +230,7 @@ $ curl http://localhost:8042/studies/27f7126f-4f66fb14-03f4081b-f9341db2-53925988/media -d '{"Asynchronous":true}' $ curl http://localhost:8042/jobs/6332be8a-0052-44fb-8cc2-ac959aeccad9/archive > a.zip -As of Orthanc 1.11.2, only the creation of a ZIP or a DICOMDIR archive +As of Orthanc 1.11.3, only the creation of a ZIP or a DICOMDIR archive produces such "outputs". diff -r b113d1384248 -r 6474e299918b Sphinx/source/users/anonymization.rst --- a/Sphinx/source/users/anonymization.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/users/anonymization.rst Tue Feb 07 10:39:13 2023 +0100 @@ -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 -`__). +`__). Modification of a Single Instance @@ -218,8 +218,8 @@ instance, the tag ``PatientID`` could not be modified if using the ``/studies/{id}/modify`` route (in the latter case, the ``/patients/{id}/modify`` route had to be used, cf. next section). -These sanity checks have been loosened in more recent versions and users must -be very careful to preserve the DICOM model when updating these tags (e.g. +These sanity checks have been loosened in more recent versions (starting from 1.11.3) +and users must be very careful to preserve the DICOM model when updating these tags (e.g. if you modify the ``PatientID`` at study level, also make sure to modify all other Patient related tags (``PatientName``, ``PatientBirthDate``, ...)). diff -r b113d1384248 -r 6474e299918b Sphinx/source/users/configuration.rst --- a/Sphinx/source/users/configuration.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/users/configuration.rst Tue Feb 07 10:39:13 2023 +0100 @@ -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 -`_. This +`_. This file is in the `JSON `_ file format. You can generate this file file with the following call:: diff -r b113d1384248 -r 6474e299918b Sphinx/source/users/debian-packages.rst --- a/Sphinx/source/users/debian-packages.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/users/debian-packages.rst Tue Feb 07 10:39:13 2023 +0100 @@ -108,12 +108,12 @@ This can be done with this sequence of commands:: $ sudo service orthanc stop - $ sudo wget https://lsb.orthanc-server.com/orthanc/1.11.2/Orthanc --output-document /usr/sbin/Orthanc + $ sudo wget https://lsb.orthanc-server.com/orthanc/1.11.3/Orthanc --output-document /usr/sbin/Orthanc $ sudo rm -f /usr/share/orthanc/plugins/*.so - $ sudo wget https://lsb.orthanc-server.com/orthanc/1.11.2/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so - $ sudo wget https://lsb.orthanc-server.com/orthanc/1.11.2/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so + $ sudo wget https://lsb.orthanc-server.com/orthanc/1.11.3/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so + $ sudo wget https://lsb.orthanc-server.com/orthanc/1.11.3/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so $ - $ sudo wget https://lsb.orthanc-server.com/plugin-dicom-web/1.6/libOrthancDicomWeb.so --output-document /usr/share/orthanc/plugins/libOrthancDicomWeb.so + $ sudo wget https://lsb.orthanc-server.com/plugin-dicom-web/1.13/libOrthancDicomWeb.so --output-document /usr/share/orthanc/plugins/libOrthancDicomWeb.so $ ... $ sudo service orthanc restart diff -r b113d1384248 -r 6474e299918b Sphinx/source/users/rest.rst --- a/Sphinx/source/users/rest.rst Thu Feb 02 12:18:54 2023 +0100 +++ b/Sphinx/source/users/rest.rst Tue Feb 07 10:39:13 2023 +0100 @@ -98,7 +98,7 @@ $ curl -X POST -H "Expect:" http://localhost:8042/instances --data-binary @CT.X.1.2.276.0.7230010.dcm The code distribution of Orthanc contains a `sample Python script -`__ +`__ that recursively upload the content of some folder into Orthanc using the REST API:: @@ -110,7 +110,7 @@ import the content of ``.zip``, ``.tar.gz`` or ``.tar.bz2`` archives without having to uncompress them first. It also provides more comprehensive command-line options. `Check this script out -`__. +`__. .. highlight:: perl