Mercurial > hg > orthanc
diff NEWS @ 5807:8279eaab0d1d attach-custom-data
merged default -> attach-custom-data
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 24 Sep 2024 11:39:52 +0200 |
parents | 9770d537880d 7fadeb395359 |
children | 63c025cf6958 |
line wrap: on
line diff
--- a/NEWS Thu Sep 15 18:13:17 2022 +0200 +++ b/NEWS Tue Sep 24 11:39:52 2024 +0200 @@ -1,6 +1,7 @@ Pending changes in the mainline =============================== +<<<<<<< working copy General ------- @@ -18,6 +19,387 @@ version 1.11.2 (2022-08-30) +======= +REST API +----------- + +* Improved parsing of multiple numerical values in DICOM tags. + https://discourse.orthanc-server.org/t/qido-includefield-with-sequences/4746/6 + + +Maintenance +----------- + +* DICOM TLS: "DicomTlsTrustedCertificates" is not required anymore when issuing + an outgoing SCU connexion when "DicomTlsRemoteCertificateRequired" is set to false. +* Introduced a new thread to update the statistics at regular interval for the + DB plugins that are implementing the UpdateAndGetStatistics function (currently only + PostgreSQL). This avoids very long update times in case you don't call /statistics + for a long period. +* Fix C-Find queries not returning computed tags like ModalitiesInStudy, NumberOfStudyRelatedSeries, ... + in very specific use-cases. +* Fix extremely rare error when 2 threads are trying to create the same folder in the File Storage + at the same time. +* 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 +* 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: + https://discourse.orthanc-server.org/t/decoding-displaying-jpeg2000-lossy-images/5117 +* Added a new warning that can be disabled in the configuration: W003_DecoderFailure + + + +Version 1.12.4 (2024-06-05) +=========================== + +REST API +-------- + +* API version upgraded to 24 +* Added "MaximumPatientCount" in /system +* Added a new "LimitToThisLevelMainDicomTags" field in the payload of + /patients|studies|series/instances/../reconstruct to speed up the reconstruction + in case you just want to update the MainDicomTags of that resource level only + (e.g., after you have updated the "ExtraMainDicomTags" for this level) +* The "requestedTags" GET argument is deprecated in favor of "requested-tags" +* Added "?whole" option to "/instances/{id}/tags" to access tags stored after pixel data + +Plugins +------- + +* Multitenant DICOM plugin: added support for locales. +* Housekeeper plugin: + - Added an option "LimitMainDicomTagsReconstructLevel" + (allowed values: "Patient", "Study", "Series", "Instance"). This can greatly speed + up the housekeeper process, e.g. if you have only update the Study level ExtraMainDicomTags. + - Fixed broken /instances/../tags route after running the Housekeeper + after having changed the "IngestTranscoding". +* SDK: added OrthancPluginLogMessage() as a new primitive for plugins + to log messages. This new primitive will display the plugin name, + the plugin file name, and the plugin line number in the logs. If + they are not using the LOG() facilities provided by the + OrthancFramework, plugins should now use ORTHANC_PLUGINS_LOG_INFO(), + ORTHANC_PLUGINS_LOG_WARNING(), and ORTHANC_PLUGINS_LOG_ERROR(). + +Maintenance +----------- + +* C-Find queries: + - In C-Find queries including "GenericGroupLength" tags, Orthanc was still + extracting these tags from the storage although they were already ignored + and not returned in the response. + They are now removed from the query earlier to avoid this disk access that + could slow down the response time. Note that this seems to happen mainly + when the query originates from some GE devices (AWS). + - "TimezoneOffsetFromUTC" is now ignored for matching. +* The 0x0111 DIMSE Status is now considered as a warning instead of an error + when received as a response to a C-Store. + See https://discourse.orthanc-server.org/t/ignore-dimse-status-0x0111-when-sending-partial-duplicate-studies/4555/3 +* Removed potential PHI from the logs when Orthanc encounters an error while + creating a ZIP archive. +* Monitoring of stable resources now also takes into consideration the + resource type, not only the resource identifier identifier. +* DICOM TLS: + - In prior versions, when "DicomTlsRemoteCertificateRequired" was set to false, Orthanc + was still sending a client certificate request during the TLS handshake but was not + triggering and error if the client certificate was not trusted (equivalent to the + "--verify-peer-cert" DCMTK option). Starting with Orthanc 1.12.4, if this option is + set to "false", Orthanc will not send a client certificate request during the TLS + handshake anymore (equivalent to the "--ignore-peer-cert" DCMTK option). + - When working with "DicomTlsEnabled": true and "DicomTlsRemoteCertificateRequired": false, + Orthanc was refusing to start if no "DicomTlsTrustedCertificates" was provided. + - New configuration options: + - "DicomTlsMinimumProtocolVersion" to select the minimum TLS protocol version + - "DicomTlsCiphersAccepted" to fine tune the list of accepted ciphers +* Fixed broken /instances/../tags route after calling of + /studies/../reconstruct after having changed the "IngestTranscoding". +* Upgraded dependencies for static builds: + - boost 1.85.0 + + +Version 1.12.3 (2024-01-31) +=========================== + +General +------- + +* Performance of databases: + - At startup, if using a database plugin, displays the latency to access the DB. + - Added support for new DB primitives to enable the "READ COMMITTED" + transaction mode in the PostgreSQL plugin. + +REST API +-------- + +* API version upgraded to 23 +* Added a 'KeepLabels' option in /modify routes (default = false) + +Maintenance +----------- + +* Upgraded dependencies for static builds: + - boost 1.84.0 + - curl 8.5.0 + - dcmtk 3.6.8 + - jsoncpp 1.9.5 + - libjpeg 9f + - libpng 1.6.40 + - openssl 3.1.4 + - pugixml 1.14 + - zlib 1.3.1 + + +Version 1.12.2 (2023-12-19) +=========================== + +General +------- + +* Performance: + - Allow multiple plugins to use the plugin SDK at the same time. In previous versions, + functions like instance transcoding or instance reading where mutually exclusive. + This can bring some significant improvements, especially in viewers. + - Optimized the StorageCache to prevent loading the same file multiple times if + multiple users request the same file at the same time. + - The StorageCache is now also storing transcoded instances that have been requested by /file?transcode=... + that is now used by the DICOMweb plugin. This speeds up retrieval of transcoded frames through WADO-RS. + - Now displaying timings when reading from/writing to disk in the verbose logs. +* HTTP compression: + - The default value of the "HttpCompressionEnabled" is now false by default. This reduces + the Orthanc overall CPU usage and latency. This is suitable for setups with large + bandwidth network like LAN. + - When "HttpCompressionEnabled" is true, only the content that is clearly identified as + compressible is compressed (JSON, XML, HTML, text, ...). DICOM files are never + compressed over HTTP. In prior versions, all content types were compressed. + This notably greatly improves loading time of large DICOM + files through WADO-RS e.g in StoneViewer when working on large bandwidth networks. + - When "HttpCompressionEnabled" is true, content < 2KB are never compressed. +* Logs: + - Each line of log now contains the name of the thread that is logging the message. + A new "--logs-no-thread" command line option can be used to get back to the previous behavior to + keep backward compatibility. + +REST API +-------- + +* API version upgraded to 22 +* Added a route to delete completed jobs from history: DELETE /jobs/{id} +* Added a "transcode" option to the /file route: + e.g: /instances/../file?transcode=1.2.840.10008.1.2.4.80 +* now accepting GET requests on these 3 routes to create archive/media: + /tools/create-archive?resources=..,..2&transcode=1.2.840.10008.1.2.4.80 + /tools/create-media?resources=..,..2&transcode=1.2.840.10008.1.2.4.80 + /tools/create-media-extended?resources=..,..2&transcode=1.2.840.10008.1.2.4.80 +* All "expand" GET arguments now accepts "expand=true" and "expand=false" values. + The /studies/../instances and sibling routes are the only whose expand is true if not specified. + These routes now accepts "expand=false" to simply list the child resources ids. +* In /tools/metrics-prometheus: + - "orthanc_dicom_cache_size" renamed as "orthanc_dicom_cache_size_mb" + - added "orthanc_storage_cache_count" and "orthanc_storage_cache_size_mb" + +Plugins +------- + +* Housekeeper plugin: + - Update to rebuild the cache of the DICOMweb plugin when updating to DICOMweb 1.15. + - New trigger configuration: "DicomWebCacheChange" + - Fixed reading the triggers configuration. + - Introduced a "sleep" to lower CPU usage when idle. +* Plugins are now allowed to modify/delete private metadata/attachments + (i.e. whose identifiers are < 1024) +* Added "OrthancPluginSetCurrentThreadName()" in the plugin SDK. + +Maintenance +----------- + +* Fix unit test PngWriter.Color16Pattern on big-endian architectures, + as suggested by Etienne Mollier: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1041813 +* Prevent the leak of the full path of the source files in the binaries +* Fix loading of DCMTK dictionary in the MultitenantDicom plugin when built dynamically: + https://discourse.orthanc-server.org/t/dimse-failure-using-multitenant-plugin/3665 +* Support multiple values in SpecificCharacterSet in C-Find answers: + https://discourse.orthanc-server.org/t/c-find-fails-on-unknown-specific-character-set-iso-2022-ir-6-iso-2022-ir-100/3947 +* When exporting a study archive, make sure to use the PatientName from the study and not from the patient + in case of PatientID collision. +* DICOM C-Store: + - Avoid some unnecessary renegotiation of DICOM association. + - Force renegotiation in case no presentation context were accepted in previous association (we have + observed PACS that were not consistent in the accepted presentation contexts) + - Improved logging +* Solved a deadlock related to the Job Engine events and plugins. Job events are now pushed + into a queue to be handled asynchronously by plugins. +* ZIP of studies whose PatientName and PatientID did not contain any ASCII character are now valid. +* Upgraded minizip library to stay away from CVE-2023-45853 although Orthanc is likely not affected since ZIP + filenames are based on DICOM Tag values whose length is limited in size. + Great thanks to James Addison for notifying us about the vulnerability and patch to apply ! +* Fix XSS in Orthanc error reporting (as reported by Sébastien Doria, Vumetric Cybersecurity) by: + - always including a "Content-Type" header in HTTP responses with a body. + - always including "X-Content-Type-Options: nosniff" +* Upgraded dependencies for static builds: + - boost 1.83.0 + + +Version 1.12.1 (2023-07-04) +=========================== + +General +------- + +* Orthanc now anonymizes according to Basic Profile of PS 3.15-2023b Table E.1-1 +* Added metrics: + - "orthanc_storage_read_bytes" + - "orthanc_storage_written_bytes" + - "orthanc_memory_trimming_duration_ms" + +REST API +-------- + +* API version upgraded to 21 +* "/tools/create-dicom" can now be used to create Encapsulated 3D + Manufacturing Model IODs (MTL, OBJ, or STL) +* Added a route to delete the output of an asynchronous job (right now + only for archive jobs): e.g. DELETE /jobs/../archive + +Plugins +------- + +* Added "OrthancPluginLoadDicomInstance()" to load DICOM instances from the database +* Added "OrthancPluginSetMetricsIntegerValue()" to track metrics with integer values + +Maintenance +----------- + +* Fix decoding of YBR_FULL RLE images for which the "Planar Configuration" + tag (0028,0006) equals 1 +* Made Orthanc more resilient to common spelling errors in SpecificCharacterSet +* Modality worklists plugin: Allow searching on private tags (exact match only) +* Fix orphan files remaining in storage when working with MaximumStorageSize + (https://discourse.orthanc-server.org/t/issue-with-deleting-incoming-dicoms-when-maximumstoragesize-is-reached/3510) +* When deleting a resource, the "LastUpdate" metadata of its parents are now updated +* Reduced the memory usage when downloading archives when "ZipLoaderThreads" > 0 +* Metrics can be stored either as floating-point numbers, or as integers +* Reduce the frequency of memory trimming from 100ms to 30s to avoid high idle + CPU load (https://discourse.orthanc-server.org/t/onchange-callbacks-and-cpu-loads/3534). +* Upgraded dependencies for static builds: + - boost 1.82.0 + + +Version 1.12.0 (2023-04-14) +=========================== + +General +------- + +* Support for labels associated with patients, studies, series, and instances +* Added a sample plugin bringing multitenant DICOM support through labels + +REST API +-------- + +* API version upgraded to 20 +* New URIs "/.../{id}/labels/{label}" to test/set/remove labels +* "/patients/{id}", "/studies/{id}", "/series/{id}" and "/instances/{id}" + contain the "Labels" field +* "/tools/find" now accepts the "Labels" and "LabelsConstraint" arguments +* "/tools/labels" lists all the labels that are associated with any resource +* "/system": added "UserMetadata" and "HasLabels" +* Added option "?numeric" if listing metadata + +Plugins +------- + +* Added "OrthancPluginRegisterDatabaseBackendV4()" to communicate using Google + Protocol Buffers between the Orthanc core and database plugins + +Orthanc Explorer +---------------- + +* Added support for labels +* Added buttons to copy the URL of ZIP archives and DICOM files to the clipboard + +Maintenance +----------- + +* Enforce the existence of the patient/study/instance while creating its archive +* Security: New configuration option "RestApiWriteToFileSystemEnabled" + to allow "/instances/../export" (the latter is now disabled by default) +* Fix issue 214: VOILUTSequence is not returned in Wado-RS +* Fix /tools/reset crashing when ExtraMainDicomTags were defined +* Fix Housekeeper plugin infinite loop if Orthanc is empty. +* Fix a crash in /tools/reconstruct triggered by the Housekeeper plugin + when only changing the StorageCompression. +* Avoid the use of "externalproject_add()" to build the sample plugins +* Upgraded dependencies for static builds: + - openssl 3.1.0 + + +Version 1.11.3 (2023-02-03) +=========================== + +General +------- + +* C-Store SCU now gives priority to the preferred TransferSyntax + proposed by the receiving SCP instead of Orthanc own + AcceptedTransferSyntaxes. +* Made the default SQLite DB more robust wrt future updates like + adding new columns in DB. +* Made the HTTP Client errors more verbose by including the URL in the logs. +* Optimization: now using multiple threads to transcode files for + asynchronous download of studies archive. +* New configuration "KeepAliveTimeout" with a default value of 1 second. +* ResourceModification jobs (/modify + /anonymize) can now use multiple threads to speed up processing + - New configuration "JobsEngineThreadsCount.ResourceModification" to configure the number of threads. +* For systems using glibc > 2.8 (most of Linux systems except LSB + binaries): Introduced a new thread for to trim memory in Orthanc (different + from the Housekeeper sample plugin). This thread regularly try to + give back memory that Orthanc no longer uses to the system. This + reduces the overall memory consumption. More information in + OrthancServer/Resources/ImplementationNotes/memory_consumption.txt. + +REST API +-------- + +* API version upgraded to 19 +* Loosen the sanity checks for DICOM modifications, if "Force" option is given: + - allow modification of PatientID at study level + - allow modification of PatientID, StudyInstanceUID at series level + - allow modification of PatientID, StudyInstanceUID, SeriesInstanceUID at instance level + - allow modification of a patient without changing her PatientID + Added sanity checks for modifications to make sure the user preserves the DICOM model when modifying high level tags. + E.g. if you modify the PatientID at study level, also make sure to modify all other Patient related + tags (PatientName, PatientBirthDate, ...) +* Automatically reconstruct the modified resources at the end of the DICOM modifications job to ensure + improved consistency of the DICOM model. +* If specifying 'Transcode' option to /modify or /anonymize, this value will take over the 'IngestTranscoding' + global configuration +* Allow the HTTP server to return responses > 2GB (fixes asynchronous download of zip studies > 2GB) +* /modalities/.../store now accepts "CalledAet", "Host", "Port" to override the modality configuration + from the configuration file for a specific operation. +* /tools/metrics-prometheus: added orthanc_last_change and orthanc_up_time_s +* Tolerance for "image/jpg" MIME type instead of "image/jpeg" in /tools/create-dicom +* /system: added MaximumStorageMode and MaximumStorageSize + +Plugins +------- + +* Added a "header" argument to all OrthancPeers::DoPost, DoPut, ... in the "OrthancPluginCppWrapper" +* Added "OrthancPluginCreateJob2()" in the plugin SDK to avoid + possible crashes when "OrthancPluginJobGetContent()" or + "OrthancPluginJobGetSerialized()" get called + +Maintenance +----------- + +* Fix decoding of RLE images for which the "Planar Configuration" tag (0028,0006) equals 1 +* Fix issue #212 (Anonymization process transcodes data and loses resource link). + + +Version 1.11.2 (2022-08-30) +>>>>>>> merge rev =========================== General @@ -77,7 +459,7 @@ * Housekeeper plugin: Fix resume of previous processing * Added missing MOVEPatientRootQueryRetrieveInformationModel in DicomControlUserConnection::SetupPresentationContexts() -* Improved HttpClient error logging (add method + url) +* Improved HttpClient error logging (add method + URL) REST API --------