# HG changeset patch # User Sebastien Jodogne # Date 1630401883 -7200 # Node ID 4e9dc26a5cb9c9fe98acb0ab633391ce3d19d574 # Parent b3fe7b0a09fcfb9c2bbaf355a7d623889c618d83 Orthanc 1.9.7 diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 OpenAPI/orthanc-openapi.json --- a/OpenAPI/orthanc-openapi.json Mon Aug 30 08:20:05 2021 +0200 +++ b/OpenAPI/orthanc-openapi.json Tue Aug 31 11:24:43 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.

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.9.6" + "version" : "1.9.7" }, "openapi" : "3.0.0", "paths" : { @@ -3265,10 +3265,8 @@ "schema" : { "description" : "JSON array containing either the jobs identifiers, or detailed information about the reported jobs (if `expand` argument is provided)", "example" : [ - "0190e616-f520-4128-98f1-ab681bd4633a", - "0a43a06e-f53a-45e5-8a2e-ce9702f81247", - "4ee11497-4381-4979-b999-d96b9566bef1", - "..." + "0c686aae-1509-4179-a8c5-1824c180bb84", + "f30d99df-3a10-480f-96a9-d0701550f07c" ] } } @@ -7011,10 +7009,14 @@ "gdcm", "mysql-index", "mysql-storage", + "odbc-index", + "odbc-storage", "postgresql-index", "postgresql-storage", "serve-folders", + "stone-rtviewer", "stone-webviewer", + "tcia", "transfers", "web-viewer", "worklists", @@ -13259,6 +13261,10 @@ "description" : "If set to `false`, instructs Orthanc to the remove original resources. By default, the original resources are kept in Orthanc.", "type" : "boolean" }, + "Level" : { + "description" : "Level of the modification (`Patient`, `Study`, `Series` or `Instance`). If absent, the level defaults to `Instance`, but is set to `Patient` if `PatientID` is modified, to `Study` if `StudyInstanceUID` is modified, or to `Series` if `SeriesInstancesUID` is modified. (new in Orthanc 1.9.7)", + "type" : "string" + }, "Permissive" : { "description" : "If `true`, ignore errors during the individual steps of the job.", "type" : "boolean" @@ -14311,7 +14317,7 @@ "200" : { "content" : { "text/plain" : { - "example" : "orthanc_count_instances 2552 1629103886979\northanc_count_patients 8 1629103886979\northanc_count_series 26 1629103886979\northanc_count_studies 8 1629103886979\northanc_dicom_cache_count 231 1629098711537\northanc_dicom_cache_size 114.333038 1629098711537\northanc_disk_size_mb 1018.65021 1629103886979\northanc_jobs_completed 10 1629103886979\northanc_jobs_failed 4 1629103886979\northanc_jobs_pending 0 1629103886979\northanc_jobs_running 0 1629103886979\northanc_jobs_success 6 1629103886979\northanc_rest_api_active_requests 1 1629103886977\northanc_rest_api_duration_ms 1790 1629103882403\northanc_storage_read_duration_ms 52 1629103881241\northanc_uncompressed_size_mb 1018.65021 1629103886979\n" + "example" : "orthanc_count_instances 2552 1630401803782\northanc_count_patients 8 1630401803782\northanc_count_series 26 1630401803782\northanc_count_studies 8 1630401803782\northanc_dicom_cache_count 213 1630393626028\northanc_dicom_cache_size 125.938728 1630393626028\northanc_disk_size_mb 1018.65021 1630401803782\northanc_jobs_completed 2 1630401803782\northanc_jobs_failed 0 1630401803782\northanc_jobs_pending 0 1630401803782\northanc_jobs_running 0 1630401803782\northanc_jobs_success 2 1630401803782\northanc_rest_api_active_requests 1 1630401803781\northanc_rest_api_duration_ms 353 1630401802149\northanc_storage_read_duration_ms 0 1630401797848\northanc_uncompressed_size_mb 1018.65021 1630401803782\n" } }, "description" : "" @@ -14330,7 +14336,7 @@ "200" : { "content" : { "text/plain" : { - "example" : "20210816T085127", + "example" : "20210831T092323", "schema" : { "description" : "The UTC time" } @@ -14352,7 +14358,7 @@ "200" : { "content" : { "text/plain" : { - "example" : "20210816T085127", + "example" : "20210831T092323", "schema" : { "description" : "The local time" } diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/developers/creating-plugins.rst --- a/Sphinx/source/developers/creating-plugins.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/developers/creating-plugins.rst Tue Aug 31 11:24:43 2021 +0200 @@ -83,7 +83,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 @@ -97,8 +97,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 b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/developers/db-versioning.rst --- a/Sphinx/source/developers/db-versioning.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/developers/db-versioning.rst Tue Aug 31 11:24:43 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.6 u u u x +Orthanc 0.9.5 - Orthanc 1.9.7 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 b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/dicom-guide.rst --- a/Sphinx/source/dicom-guide.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/dicom-guide.rst Tue Aug 31 11:24:43 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.6, Orthanc only implements C-Get as a +*Note:* As of Orthanc 1.9.7, 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 b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/faq/crash.rst --- a/Sphinx/source/faq/crash.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/faq/crash.rst Tue Aug 31 11:24:43 2021 +0200 @@ -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.9.6/Orthanc + $ wget https://lsb.orthanc-server.com/orthanc/debug/1.9.7/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.6 + W0427 15:43:24.215783 main.cpp:1436] Orthanc version: 1.9.7 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 b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/faq/debugging.rst --- a/Sphinx/source/faq/debugging.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/faq/debugging.rst Tue Aug 31 11:24:43 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.6/Orthanc + $ wget https://lsb.orthanc-server.com/orthanc/debug/1.9.7/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.6 + W0513 15:24:42.374349 main.cpp:1436] Orthanc version: 1.9.7 ---> 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 b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/faq/log.rst --- a/Sphinx/source/faq/log.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/faq/log.rst Tue Aug 31 11:24:43 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.6-Release.exe`` together +3. Copy the just-downloaded ``Orthanc-1.9.7-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.6-Release.exe --verbose Configuration.json > Orthanc.log 2<&1 + $ Orthanc-1.9.7-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 diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/faq/orthanc-storage.rst --- a/Sphinx/source/faq/orthanc-storage.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/faq/orthanc-storage.rst Tue Aug 31 11:24:43 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 -`__ +`__ and `InstallTrackAttachmentsSize.sql -`__. +`__. Direct access diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/faq/scalability.rst --- a/Sphinx/source/faq/scalability.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/faq/scalability.rst Tue Aug 31 11:24:43 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.6 at the time of +* Make sure to use the latest release of Orthanc (1.9.7 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 b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/plugins/python.rst --- a/Sphinx/source/plugins/python.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/plugins/python.rst Tue Aug 31 11:24:43 2021 +0200 @@ -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 b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/plugins/python/pil-conversions.py --- a/Sphinx/source/plugins/python/pil-conversions.py Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/plugins/python/pil-conversions.py Tue Aug 31 11:24:43 2021 +0200 @@ -3,7 +3,7 @@ import PIL.ImageDraw import orthanc -URL = 'http://hg.orthanc-server.com/orthanc-tests/raw-file/Orthanc-1.9.6/Database/LenaTwiceWithFragments.dcm' +URL = 'http://hg.orthanc-server.com/orthanc-tests/raw-file/Orthanc-1.9.7/Database/LenaTwiceWithFragments.dcm' USERNAME = '' PASSWORD = '' diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/plugins/python/worklist.py --- a/Sphinx/source/plugins/python/worklist.py Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/plugins/python/worklist.py Tue Aug 31 11:24:43 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.6/OrthancServer/Plugins/Samples/ModalityWorklists/WorklistsDatabase +# https://hg.orthanc-server.com/orthanc/file/Orthanc-1.9.7/OrthancServer/Plugins/Samples/ModalityWorklists/WorklistsDatabase WORKLIST_DIR = '/tmp/WorklistsDatabase' def OnWorklist(answers, query, issuerAet, calledAet): diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/users/advanced-rest.rst --- a/Sphinx/source/users/advanced-rest.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/users/advanced-rest.rst Tue Aug 31 11:24:43 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.6, this feature is not + re-submission after a delay. As of Orthanc 1.9.7, 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 -`__ +`__ 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 -`__ +`__ 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.6, only the creation of a ZIP or a DICOMDIR archive +As of Orthanc 1.9.7, only the creation of a ZIP or a DICOMDIR archive produces such "outputs". diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/users/anonymization.rst --- a/Sphinx/source/users/anonymization.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/users/anonymization.rst Tue Aug 31 11:24:43 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 -`__). +`__). Modification of a Single Instance diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/users/configuration.rst --- a/Sphinx/source/users/configuration.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/users/configuration.rst Tue Aug 31 11:24:43 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 -`_. This +`_. This file is in the `JSON `_ file format. You can generate this file file with the following call:: diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/users/debian-packages.rst --- a/Sphinx/source/users/debian-packages.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/users/debian-packages.rst Tue Aug 31 11:24:43 2021 +0200 @@ -106,10 +106,10 @@ This can be done with this sequence of commands:: $ sudo service orthanc stop - $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.6/Orthanc --output-document /usr/sbin/Orthanc + $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.7/Orthanc --output-document /usr/sbin/Orthanc $ sudo rm -f /usr/share/orthanc/plugins/*.so - $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.6/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so - $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.6/libModalityWorklists.so --output-document /usr/share/orthanc/plugins/libModalityWorklists.so + $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.7/libServeFolders.so --output-document /usr/share/orthanc/plugins/libServeFolders.so + $ sudo wget https://lsb.orthanc-server.com/orthanc/1.9.7/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 $ ... diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/users/docker.rst --- a/Sphinx/source/users/docker.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/users/docker.rst Tue Aug 31 11:24:43 2021 +0200 @@ -75,7 +75,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.6 + $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc:1.9.7 Passing additional command-line options (e.g. to make Orthanc verbose) can be done as follows (note the ``/etc/orthanc`` option that is @@ -97,7 +97,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.6 + $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-plugins:1.9.7 If you have an interest in the :ref:`Python plugin `, you can use the ``orthanc-python`` image. The latter image is a @@ -105,7 +105,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.6 + $ docker run -p 4242:4242 -p 8042:8042 --rm jodogne/orthanc-python:1.9.7 Fine-tuning the configuration @@ -157,7 +157,7 @@ version: '3.1' # Secrets are only available since this version of Docker Compose services: orthanc: - image: jodogne/orthanc-plugins:1.9.6 + image: jodogne/orthanc-plugins:1.9.7 command: /run/secrets/ # Path to the configuration files (stored as secrets) ports: - 4242:4242 @@ -206,7 +206,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.6 + $ docker run -p 4242:4242 -p 8042:8042 --rm -v /tmp/orthanc-db/:/var/lib/orthanc/db/ jodogne/orthanc:1.9.7 Whole-slide imaging support @@ -327,4 +327,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.6``. + use e.g. ``jodogne/orthanc-debug:1.9.7``. diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/users/man-orthanc.txt --- a/Sphinx/source/users/man-orthanc.txt Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/users/man-orthanc.txt Tue Aug 31 11:24:43 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.6 July 2021 ORTHANC(1) +Orthanc 1.9.7 August 2021 ORTHANC(1) diff -r b3fe7b0a09fc -r 4e9dc26a5cb9 Sphinx/source/users/rest.rst --- a/Sphinx/source/users/rest.rst Mon Aug 30 08:20:05 2021 +0200 +++ b/Sphinx/source/users/rest.rst Tue Aug 31 11:24:43 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 -`__ +`__ 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 -`__. +`__. .. highlight:: perl