# HG changeset patch # User Sebastien Jodogne # Date 1734361473 -3600 # Node ID a9c3f1c245d9bb497cc363a0052c77964e482e53 # Parent 4692e1ae6d3ddb8133d8ac42e212eb6957e0180d updated NEWS diff -r 4692e1ae6d3d -r a9c3f1c245d9 NEWS --- a/NEWS Mon Dec 16 15:39:08 2024 +0100 +++ b/NEWS Mon Dec 16 16:04:33 2024 +0100 @@ -5,15 +5,15 @@ ------- * Database: - - Introduced database optimizations "ExtendedFind" to replace many small SQL queries - by a very large SQL query to greatly reduce the cost of DB latency when working with - e.g PostgreSQL. - Furthermore, this "ExtendedFind" brings new sorting and filtering features to the - Rest API, mainly in /tools/find. - - Introduced database optimizations "ExtendedChanges" to allow filtering of /changes. + - Introduced the database optimization "ExtendedFind" to replace many small SQL queries + by a single, large SQL query. This can greatly reduce the cost related to latency + when working with large databases (e.g., if using PostgreSQL). + Furthermore, "ExtendedFind" brings new sorting and filtering features to the + REST API, mainly in "/tools/find". + - Introduced the new database primitive "ExtendedChanges" to allow filtering on "/changes". - Reduced the number of SQL queries when ingesting DICOM files. -* Introduced a new configuration "ReadOnly" to forbid an Orthanc instance to perform - any modifications in the Index DB or in the storage. +* Introduced a new configuration "ReadOnly" to forbid an Orthanc instance to perform + any modification to the index database or to the storage area. REST API @@ -22,38 +22,35 @@ * API version upgraded to 26 * Support HTTP "Range" request header on "{...}/attachments/{...}/data" and "{...}/attachments/{...}/compressed-data" -* Improved parsing of multiple numerical values in DICOM tags. +* Improved parsing of multiple numerical values in DICOM tags https://discourse.orthanc-server.org/t/qido-includefield-with-sequences/4746/6 -* in /system, added a new field "Capabilities" with new values: - - "HasExtendedChanges" for DB backend that provides this feature (currently, the default - SQLite DB and upcoming PostgreSQL v7.0). - - "HasExtendedFind" for DB backend that provides this feature (currently, the default - SQLite DB and upcoming PostgreSQL v7.0). -* With DB backend with "HasExtendedChanges" support: - - /changes now supports 2 more options: - - 'type' to filter the changes returned by the query - - 'to' to potentially cycle through changes in reverse order. - example: /changes?type=StableStudy&to=7584&limit=100 -* With DB backend with "HasExtendedFind" support: - - /tools/find now supports new options: - - 'OrderBy' to order by DICOM Tag or metadata value - - 'ParentPatient', 'ParentStudy', 'ParentSeries' to retrieve only descendants of an - Orthanc resource. - - 'MetadataQuery' to filter results based on metadata values. - - 'ResponseContent' to define what shall be included in the response for each returned - resource (e.g: Metadata, Children, ...) - - in /tools/find: 'Limit' and 'Since' are not allowed anymore if your query includes - filtering on DICOM tags that are not stored in DB. - - /tools/count-resources API route is similar to tools/find but only returns the number - of resources matching the criteria. - - /studies?expand and sibbling routes now also return "Metadata" - - /studies?since=x&limit=0 and sibbling routes: limit=0 now means "no limit" instead of - "no results" in previous versions. -* In DICOMWeb json, the "DS - Decimal String" values were represented by float numbers - and they are now represented as strings to avoid introduction of long float representation - (e.g 0.1429999999999 vs "0.143") and be more compliant with the DICOMWeb - standard https://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_F.2.3.html. - This has no impact on StoneViewer and OHIF. +* In "/system", added a new field "Capabilities" with new values: + - "HasExtendedChanges" if the index database provides this optimization + - "HasExtendedFind" if the index database provides this primitive +* If the index database provides the "HasExtendedChanges" primitive, "/changes" + supports two additional arguments: + - "type" to filter the changes returned by the query + - "to" to possibly cycle through changes in reverse order + Example: "/changes?type=StableStudy&to=7584&limit=100" +* If the index database provides the "HasExtendedFind" primitive, "/tools/find" + supports new options: + - "OrderBy" to order by DICOM tag or metadata value + - "ParentPatient", "ParentStudy", and "ParentSeries" to retrieve only descendants of a + given DICOM resource + - "MetadataQuery" to filter results based on metadata values + - "ResponseContent" to define what shall be included in the response for each returned + resource (e.g: Metadata, Children,...) +* In "/tools/find", the "Limit" and "Since" arguments are not allowed anymore if the + query requests filtering on DICOM tags that are not stored in the index database +* The new "/tools/count-resources" API route is similar to "tools/find" but only + returns the number of resources matching the criteria +* "/studies?since=x&limit=0" and similar routes for patients, series, and instances: + "limit=0" now means "no limit" instead of "no results" as in previous versions of Orthanc +* In DICOMweb JSON, the "DS - Decimal String" values were previously represented as float + numbers, but are now represented as strings to avoid introduction of long float representation + (e.g 0.1429999999999 vs "0.143") and to be compliant with the DICOMweb standard: + https://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_F.2.3.html + This has no impact on the Stone Web viewer and OHIF: https://discourse.orthanc-server.org/t/dicomwebplugin-does-not-return-series-metadata-properly/5195 @@ -61,25 +58,21 @@ ----------- * DICOM TLS: "DicomTlsTrustedCertificates" is not required anymore when issuing - an outgoing SCU connexion when "DicomTlsRemoteCertificateRequired" is set to false. -* Fix C-Find queries not returning computed tags like ModalitiesInStudy, NumberOfStudyRelatedSeries, ... - in very specific use-cases. -* Fix C-Find queries not returning private tags in the modality worklist plugin. -* Fix extremely rare error when 2 threads are trying to create the same folder in the File Storage - at the same time. -* Fix crashes if handling very large images. -* Fix deadlock when parsing specific invalid DICOM files. -* Loading plugins: - - Orthanc will now fail to start when provided with a plugin path that can not be found. + an outgoing SCU connection if "DicomTlsRemoteCertificateRequired" is set to "false" +* Fix C-Find queries not returning computed tags such as ModalitiesInStudy, + NumberOfStudyRelatedSeries,... in very specific use cases +* Fix C-Find queries not returning private tags in the modality worklist plugin +* Fix an extremely rare error when 2 threads are trying to create the same folder + in the File Storage at the same time +* Fix crashes if handling very large images +* Fix deadlock when parsing specific invalid DICOM files +* Loading plugins: Orthanc will now fail to start when provided with a plugin path + that can not be found * Metrics: - - fix a few metrics that were not published - - added 2 metrics: orthanc_storage_cache_miss_count & orthanc_storage_cache_hit_count -* Upgraded dependencies for static builds: - - curl 8.9.0 - - SQLite 3.46 - - boost 1.86.0 + - Fix a few metrics that were not published + - Added 2 metrics: "orthanc_storage_cache_miss_count" and "orthanc_storage_cache_hit_count" * Added a new fallback when trying to decode a frame: transcode the file using the plugin - before decoding the frame. This solves some issues with JP2K Lossy compression: + before decoding the frame. This solves some issues with JP2K Lossy compression: https://discourse.orthanc-server.org/t/decoding-displaying-jpeg2000-lossy-images/5117 * Added new warnings that can be disabled in the configuration: - W003_DecoderFailure @@ -87,9 +80,7 @@ - W005_RequestingTagFromLowerResourceLevel - W006_RequestingTagFromMetaHeader - W007_MissingRequestedTagsNotReadFromDisk -* New default MainDicomTags are now stored in DB. Note that, in order to store these values - for resources that were ingested in Orthanc before this release, you will have to run - the Housekeeper plugin or call /reconstruct on every resources +* New default MainDicomTags are now stored in the DB: - At Study Level: - TimezoneOffsetFromUTC (used in QIDO-RS default queries) - At Series Level: @@ -97,7 +88,13 @@ - PerformedProcedureStepStartDate (used in QIDO-RS default queries) - PerformedProcedureStepStartTime (used in QIDO-RS default queries) - RequestAttributesSequence (used in QIDO-RS default queries) - + - Note that, in order to access these values for resources that were ingested in Orthanc + before this release, you will have to run the Housekeeper plugin or to call + "/reconstruct" on every resource +* Upgraded dependencies for static builds: + - boost 1.86.0 + - curl 8.9.0 + - SQLite 3.46 Version 1.12.4 (2024-06-05)