Mercurial > hg > orthanc
changeset 7099:0d107b25642f streaming
NEWS
| author | Sebastien Jodogne <s.jodogne@gmail.com> |
|---|---|
| date | Thu, 13 Aug 2026 14:20:56 +0000 |
| parents | 030407cb8e70 |
| children | a72fd96ed434 |
| files | NEWS |
| diffstat | 1 files changed, 62 insertions(+), 58 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Thu Aug 13 14:14:27 2026 +0000 +++ b/NEWS Thu Aug 13 14:20:56 2026 +0000 @@ -4,29 +4,26 @@ General ------- -* Full rewrite of access to storage area and of DICOM parsing/transcoding - to improve caching and to limit memory usage. - This change brings updated configurations (TODO-Streaming: review): - - "StorageLoaderThreads" +* Complete rewrite of access to storage area and to DICOM parsing/transcoding to improve caching + and reduce memory usage. This change introduces the following new configuration options: + - "DicomParserCacheSize" + - "DicomParserMemoryCapacity" + - "DicomParserThreadsCount" + - "SequentialDicomReaderThreadsCount" + - "SequentialDicomReaderWindowCapacity" + - "SequentialDicomReaderWindowSize" + - "StorageLoaderThreadsCount" - "StorageMemoryCapacity" - - "DicomParserThreads" - - "DicomParserMemoryCapacity" - - "DicomParserCacheSize" - - "TranscoderThreads" - - "TranscoderMemoryCapacity" - "TranscoderCacheSize" - - "SequentialDicomReaderThreads" - - "SequentialDicomReaderWindowSize" - - "SequentialDicomReaderWindowCapacity" - And new metrics: - - TODO-Streaming list -* Multiple paths to configuration files can now be provided, instead of a single file or a single folder -* Split the configuration into a main file and a second file for advanced settings -* Orthanc will now refuse to start if you have "AuthenticationEnabled" and "RemoteAccessAllowed" - set to true and have not defined any users in "RegisteredUsers". + - "TranscoderMemoryCapacity" + - "TranscoderThreadsCount" +* Split the configuration into a main file and a separate file for advanced settings. +* Multiple paths to configuration files can now be provided, instead of a single file or a single folder. +* Orthanc will now refuse to start if both options "AuthenticationEnabled" and "RemoteAccessAllowed" + are set to true, but no user is defined in "RegisteredUsers". * New values for "OverwriteInstances" configuration. In previous versions, this configuration - was a Boolean and it is now a string whose allowed values are "Never", "Always", - and "IfChanged". For backward compatibility, you may still provide a Boolean value + was a Boolean. It is now a string whose allowed values are "Never", "Always", + and "IfChanged". For backward compatibility, a Boolean value can still be provided (true = "Always" and false = "Never"). Compared to previous versions, in the "Never" and "IfChanged" mode, the number of disks and DB operations are reduced when uploading the same instance again. @@ -34,31 +31,14 @@ * When the "IngestTranscoding" configuration is set to a compressed transfer syntax, Orthanc no longer transcodes DICOM files that do not have any pixel data (e.g. DICOM-SR, RTSTRUCT, Encapsulated PDF,...). Such files are sometimes poorly handled by other software. -* In Lua, added new functions to manage key-value stores in the Orthanc DB (provided that - the DB backend supports it: currently, PostgreSQL and SQLite): - - StoreKeyValue(storeId, key, value) - - value = GetKeyValue(storeId, key) - - DeleteKeyValue(storeId, key) * Logs: - - Some line of log now contain additional contextual informations like the job id they relate to. - A new "--logs-no-context" command line option can be used to get back to the previous behavior to - keep backward compatibility and reduce the lines length. - Another "--logs-thread-names-in-context" command line option can be used to add more information in the - contexts wrt the thread that has requested a service. This is mainly for developers. -* C-Find SCP: - - When Orthanc was requested a sequence in a C-Find query, Orthanc was actually not returning - any sequences in the C-Find answer if the matched resource did contain the requested sequence and - was returning an empty sequence if the matched resource did not contain the requested sequence. - Orthanc now returns the full sequence content when the matched resource contains the requested sequence. - - When Orthanc was requested to return a private tag in a C-Find query, Orthanc was actually not returning - the resources that did not contain the private tag although it was not used as a filter in the query. -* Fix mismatches between the configuration default values and the documentation: - - "HttpTimeout" was documented as 60 while its default value is 0 (no timeout). - - "Name" was documented as "MyOrthanc" while its default value is "ORTHANC". -* Orthanc no longer accepts DICOM association from modalities whose AET contains invalid characters. -* Orthanc now ignores leading/trailing spaces in AET. -* Experimental: New "Manufacturer" "SiemensSyngoCT" to propose both the SCU and SCP C-Store roles when - performing a C-Get SCU. + - Lines of log can now contain additional contextual information like the job ID they relate to. + - A new "--logs-no-context" command-line option restores the previous behavior for backward + compatibility and to reduce log line length. + - A new "--logs-thread-names-in-context" command-line option adds information about the thread that + requested a service to the log context. This option is mainly intended for developers. +* Experimental: New manufacturer "SiemensSyngoCT" available in "DicomModalities" to propose + both the SCU and SCP C-STORE roles when performing a C-GET SCU. REST API -------- @@ -75,25 +55,36 @@ * The "LocalAet" field of the payload to "/modalities/../move", "/modalities/../store", "/modalities/../get", "queries/../answers/../retrieve" now always overwrites the "DicomAet" and the "DicomModalities.LocalAet" configurations. -* Optimized the "/patients|studies|series|instances/../statistics" routes. -* Updated the naming structure of the zip downloaded from "/../../archive" routes. Notably added - SeriesNumber at the series level and now using " - " instead of " " to separate DICOM tags used - in folder names. +* Optimized the "/{patients|studies|series|instances}/../statistics" routes. +* Updated the naming structure of ZIP archives downloaded from "/../../archive" routes. + Notably added "SeriesNumber" at the series level and now using " - " instead of " " to + separate DICOM tags used in folder names. * In "/tools/metrics-prometheus": - Removed "orthanc_jobs_completed", "orthanc_jobs_success" and "orthanc_jobs_failed" that were only considering the jobs currently stored in the JobsHistory and that were not suitable for - monitoring. These metrics have been replaced by "orthanc_jobs_total_completed", + monitoring. These metrics have been replaced by "orthanc_jobs_total_completed", "orthanc_jobs_total_success" and "orthanc_jobs_total_failed" that are now considering all the jobs that have run since Orthanc started. + - New metrics related to the refactored architecture to access the storage area and DICOM + parsing/transcoding: TODO-Streaming * The "/tools/bulk-delete" route now also accepts a payload of this type: - {"Resources": [{"Level": "Study", "ID": "..."}]}. This payload reduces the number + {"Resources": [{"Level": "Study", "ID": "..."}]}. This payload reduces the number of calls to the SQL DB and is more suitable for the authorization plugin. +Lua +--- + +* Added new functions to manage key-value stores in the Orthanc database (provided that the + database backend supports them; currently, only PostgreSQL and SQLite): + - StoreKeyValue(storeId, key, value) + - value = GetKeyValue(storeId, key) + - DeleteKeyValue(storeId, key) + Plugin SDK ---------- * Added OrthancPluginClearCurrentThreadName() to avoid storing many thread - names when dynamically creating/killing threads in a plugin. + names when dynamically creating/killing threads in a plugin * Added OD, OL, UC, UR, OV, SV, and UV values to the OrthancPluginValueRepresentation enumeration * Added OrthancPluginDicomWebBinaryMode_ArrayOfValues to generate DICOMweb representations with OW, OL, OV, OF, and OD value representations as array of values @@ -104,11 +95,25 @@ * Added support for OV, SV, and UV value representations * Added support for multiple values in AT value representation * Improved support of OW, OL, OV, OF, and OD value representations in DICOMweb JSON +* C-FIND SCP: + - When Orthanc was requested to return a sequence in a C-FIND query, it did not return + any sequence in the C-FIND answer if the matched resource *did* contain the requested sequence, and + it returned an empty sequence if the matched resource *did not* contain the requested sequence. + Orthanc now returns the full sequence content when the matched resource contains the requested sequence. + - When Orthanc was requested to return a private tag in a C-FIND query, it did not return resources that + did not contain the private tag, even though the tag was not used as a filter in the query. Resources + without the private tag are now correctly returned in the response. +* Fix mismatches between the configuration default values and the documentation: + - "HttpTimeout" was documented as 60 while its default value is 0 (no timeout) + - "Name" was documented as "MyOrthanc" while its default value is "ORTHANC" +* Orthanc no longer accepts DICOM association from modalities whose AET contains invalid characters +* Orthanc now ignores leading/trailing spaces in AET +* The configuration options "LoaderThreads" and "ZipLoaderThreads" have been removed from + the default configuration file and are only used for backward compatibility with new options * Fix resubmit/pause/cancel and reloading of OrthancPeerStore and DicomModalityStore jobs (bug introduced in 1.12.10) -* Fix OrthancPeerStore jobs that was using the loader threads only if transcoding - was required. -* Fix usage of "LocalAet" in C-Find and "queries/../answers/../retrieve". +* Fix OrthancPeerStore jobs that was using the loader threads only if transcoding was required +* Fix usage of "LocalAet" in C-FIND and "queries/../answers/../retrieve" * Fix Orthanc::ImageAccessor that was broken in Orthanc Framework 1.12.11 * Fix a memory leak in C-GET: https://github.com/orthanc-server/orthanc-builder/issues/36 @@ -116,12 +121,11 @@ https://discourse.orthanc-server.org/t/orthanc-1-12-11-performance-issues-with-deformable-registrations/6448) * Fix a Denial of Service via Deeply Nested DICOM Sequences (CVE-2026-10528): https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=258 - Security issue reported by Jose Lopez Martinez (aka elpe_pinillo) from Deloitte. + Security issue reported by Jose Lopez Martinez (aka elpe_pinillo) from Deloitte * Fixed various OOB read/write (TODO: still waiting for CVE ID) * Improved preview and rendering of multiframe instances a with a Color Lookup Table; - notably, some cardiac US instances. -* Lua: Fix the "ReceivedCStoreInstanceFilter" Lua callback whose return value was - not taken into account. + notably, some cardiac US instances +* Lua: Fix the "ReceivedCStoreInstanceFilter()" callback whose return value was not taken into account * Upgraded dependencies for static builds: - dcmtk 3.7.0 hot-fix for CVE-2026-10528: https://github.com/DCMTK/dcmtk/commit/885ff0f10372bd589b5f44cea974f28a3964cb0f
