comparison 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
comparison
equal deleted inserted replaced
5085:79f98ee4f04b 5807:8279eaab0d1d
1 Pending changes in the mainline 1 Pending changes in the mainline
2 =============================== 2 ===============================
3 3
4 <<<<<<< working copy
4 General 5 General
5 ------- 6 -------
6 7
7 * SQLite default DB engine now supports metadata and attachment revisions 8 * SQLite default DB engine now supports metadata and attachment revisions
8 * Upgraded the DB to allow plugins to store customData for each attachment. 9 * Upgraded the DB to allow plugins to store customData for each attachment.
16 * New database plugin SDK (v4) to handle customData for attachments. 17 * New database plugin SDK (v4) to handle customData for attachments.
17 * New storage plugin SDK (v3) to handle customData for attachments, 18 * New storage plugin SDK (v3) to handle customData for attachments,
18 19
19 20
20 version 1.11.2 (2022-08-30) 21 version 1.11.2 (2022-08-30)
22 =======
23 REST API
24 -----------
25
26 * Improved parsing of multiple numerical values in DICOM tags.
27 https://discourse.orthanc-server.org/t/qido-includefield-with-sequences/4746/6
28
29
30 Maintenance
31 -----------
32
33 * DICOM TLS: "DicomTlsTrustedCertificates" is not required anymore when issuing
34 an outgoing SCU connexion when "DicomTlsRemoteCertificateRequired" is set to false.
35 * Introduced a new thread to update the statistics at regular interval for the
36 DB plugins that are implementing the UpdateAndGetStatistics function (currently only
37 PostgreSQL). This avoids very long update times in case you don't call /statistics
38 for a long period.
39 * Fix C-Find queries not returning computed tags like ModalitiesInStudy, NumberOfStudyRelatedSeries, ...
40 in very specific use-cases.
41 * Fix extremely rare error when 2 threads are trying to create the same folder in the File Storage
42 at the same time.
43 * Metrics:
44 - fix a few metrics that were not published
45 - added 2 metrics: orthanc_storage_cache_miss_count & orthanc_storage_cache_hit_count
46 * Upgraded dependencies for static builds:
47 - curl 8.9.0
48 * Added a new fallback when trying to decode a frame: transcode the file using the plugin
49 before decoding the frame. This solves some issues with JP2K Lossy compression:
50 https://discourse.orthanc-server.org/t/decoding-displaying-jpeg2000-lossy-images/5117
51 * Added a new warning that can be disabled in the configuration: W003_DecoderFailure
52
53
54
55 Version 1.12.4 (2024-06-05)
56 ===========================
57
58 REST API
59 --------
60
61 * API version upgraded to 24
62 * Added "MaximumPatientCount" in /system
63 * Added a new "LimitToThisLevelMainDicomTags" field in the payload of
64 /patients|studies|series/instances/../reconstruct to speed up the reconstruction
65 in case you just want to update the MainDicomTags of that resource level only
66 (e.g., after you have updated the "ExtraMainDicomTags" for this level)
67 * The "requestedTags" GET argument is deprecated in favor of "requested-tags"
68 * Added "?whole" option to "/instances/{id}/tags" to access tags stored after pixel data
69
70 Plugins
71 -------
72
73 * Multitenant DICOM plugin: added support for locales.
74 * Housekeeper plugin:
75 - Added an option "LimitMainDicomTagsReconstructLevel"
76 (allowed values: "Patient", "Study", "Series", "Instance"). This can greatly speed
77 up the housekeeper process, e.g. if you have only update the Study level ExtraMainDicomTags.
78 - Fixed broken /instances/../tags route after running the Housekeeper
79 after having changed the "IngestTranscoding".
80 * SDK: added OrthancPluginLogMessage() as a new primitive for plugins
81 to log messages. This new primitive will display the plugin name,
82 the plugin file name, and the plugin line number in the logs. If
83 they are not using the LOG() facilities provided by the
84 OrthancFramework, plugins should now use ORTHANC_PLUGINS_LOG_INFO(),
85 ORTHANC_PLUGINS_LOG_WARNING(), and ORTHANC_PLUGINS_LOG_ERROR().
86
87 Maintenance
88 -----------
89
90 * C-Find queries:
91 - In C-Find queries including "GenericGroupLength" tags, Orthanc was still
92 extracting these tags from the storage although they were already ignored
93 and not returned in the response.
94 They are now removed from the query earlier to avoid this disk access that
95 could slow down the response time. Note that this seems to happen mainly
96 when the query originates from some GE devices (AWS).
97 - "TimezoneOffsetFromUTC" is now ignored for matching.
98 * The 0x0111 DIMSE Status is now considered as a warning instead of an error
99 when received as a response to a C-Store.
100 See https://discourse.orthanc-server.org/t/ignore-dimse-status-0x0111-when-sending-partial-duplicate-studies/4555/3
101 * Removed potential PHI from the logs when Orthanc encounters an error while
102 creating a ZIP archive.
103 * Monitoring of stable resources now also takes into consideration the
104 resource type, not only the resource identifier identifier.
105 * DICOM TLS:
106 - In prior versions, when "DicomTlsRemoteCertificateRequired" was set to false, Orthanc
107 was still sending a client certificate request during the TLS handshake but was not
108 triggering and error if the client certificate was not trusted (equivalent to the
109 "--verify-peer-cert" DCMTK option). Starting with Orthanc 1.12.4, if this option is
110 set to "false", Orthanc will not send a client certificate request during the TLS
111 handshake anymore (equivalent to the "--ignore-peer-cert" DCMTK option).
112 - When working with "DicomTlsEnabled": true and "DicomTlsRemoteCertificateRequired": false,
113 Orthanc was refusing to start if no "DicomTlsTrustedCertificates" was provided.
114 - New configuration options:
115 - "DicomTlsMinimumProtocolVersion" to select the minimum TLS protocol version
116 - "DicomTlsCiphersAccepted" to fine tune the list of accepted ciphers
117 * Fixed broken /instances/../tags route after calling of
118 /studies/../reconstruct after having changed the "IngestTranscoding".
119 * Upgraded dependencies for static builds:
120 - boost 1.85.0
121
122
123 Version 1.12.3 (2024-01-31)
124 ===========================
125
126 General
127 -------
128
129 * Performance of databases:
130 - At startup, if using a database plugin, displays the latency to access the DB.
131 - Added support for new DB primitives to enable the "READ COMMITTED"
132 transaction mode in the PostgreSQL plugin.
133
134 REST API
135 --------
136
137 * API version upgraded to 23
138 * Added a 'KeepLabels' option in /modify routes (default = false)
139
140 Maintenance
141 -----------
142
143 * Upgraded dependencies for static builds:
144 - boost 1.84.0
145 - curl 8.5.0
146 - dcmtk 3.6.8
147 - jsoncpp 1.9.5
148 - libjpeg 9f
149 - libpng 1.6.40
150 - openssl 3.1.4
151 - pugixml 1.14
152 - zlib 1.3.1
153
154
155 Version 1.12.2 (2023-12-19)
156 ===========================
157
158 General
159 -------
160
161 * Performance:
162 - Allow multiple plugins to use the plugin SDK at the same time. In previous versions,
163 functions like instance transcoding or instance reading where mutually exclusive.
164 This can bring some significant improvements, especially in viewers.
165 - Optimized the StorageCache to prevent loading the same file multiple times if
166 multiple users request the same file at the same time.
167 - The StorageCache is now also storing transcoded instances that have been requested by /file?transcode=...
168 that is now used by the DICOMweb plugin. This speeds up retrieval of transcoded frames through WADO-RS.
169 - Now displaying timings when reading from/writing to disk in the verbose logs.
170 * HTTP compression:
171 - The default value of the "HttpCompressionEnabled" is now false by default. This reduces
172 the Orthanc overall CPU usage and latency. This is suitable for setups with large
173 bandwidth network like LAN.
174 - When "HttpCompressionEnabled" is true, only the content that is clearly identified as
175 compressible is compressed (JSON, XML, HTML, text, ...). DICOM files are never
176 compressed over HTTP. In prior versions, all content types were compressed.
177 This notably greatly improves loading time of large DICOM
178 files through WADO-RS e.g in StoneViewer when working on large bandwidth networks.
179 - When "HttpCompressionEnabled" is true, content < 2KB are never compressed.
180 * Logs:
181 - Each line of log now contains the name of the thread that is logging the message.
182 A new "--logs-no-thread" command line option can be used to get back to the previous behavior to
183 keep backward compatibility.
184
185 REST API
186 --------
187
188 * API version upgraded to 22
189 * Added a route to delete completed jobs from history: DELETE /jobs/{id}
190 * Added a "transcode" option to the /file route:
191 e.g: /instances/../file?transcode=1.2.840.10008.1.2.4.80
192 * now accepting GET requests on these 3 routes to create archive/media:
193 /tools/create-archive?resources=..,..2&transcode=1.2.840.10008.1.2.4.80
194 /tools/create-media?resources=..,..2&transcode=1.2.840.10008.1.2.4.80
195 /tools/create-media-extended?resources=..,..2&transcode=1.2.840.10008.1.2.4.80
196 * All "expand" GET arguments now accepts "expand=true" and "expand=false" values.
197 The /studies/../instances and sibling routes are the only whose expand is true if not specified.
198 These routes now accepts "expand=false" to simply list the child resources ids.
199 * In /tools/metrics-prometheus:
200 - "orthanc_dicom_cache_size" renamed as "orthanc_dicom_cache_size_mb"
201 - added "orthanc_storage_cache_count" and "orthanc_storage_cache_size_mb"
202
203 Plugins
204 -------
205
206 * Housekeeper plugin:
207 - Update to rebuild the cache of the DICOMweb plugin when updating to DICOMweb 1.15.
208 - New trigger configuration: "DicomWebCacheChange"
209 - Fixed reading the triggers configuration.
210 - Introduced a "sleep" to lower CPU usage when idle.
211 * Plugins are now allowed to modify/delete private metadata/attachments
212 (i.e. whose identifiers are < 1024)
213 * Added "OrthancPluginSetCurrentThreadName()" in the plugin SDK.
214
215 Maintenance
216 -----------
217
218 * Fix unit test PngWriter.Color16Pattern on big-endian architectures,
219 as suggested by Etienne Mollier: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1041813
220 * Prevent the leak of the full path of the source files in the binaries
221 * Fix loading of DCMTK dictionary in the MultitenantDicom plugin when built dynamically:
222 https://discourse.orthanc-server.org/t/dimse-failure-using-multitenant-plugin/3665
223 * Support multiple values in SpecificCharacterSet in C-Find answers:
224 https://discourse.orthanc-server.org/t/c-find-fails-on-unknown-specific-character-set-iso-2022-ir-6-iso-2022-ir-100/3947
225 * When exporting a study archive, make sure to use the PatientName from the study and not from the patient
226 in case of PatientID collision.
227 * DICOM C-Store:
228 - Avoid some unnecessary renegotiation of DICOM association.
229 - Force renegotiation in case no presentation context were accepted in previous association (we have
230 observed PACS that were not consistent in the accepted presentation contexts)
231 - Improved logging
232 * Solved a deadlock related to the Job Engine events and plugins. Job events are now pushed
233 into a queue to be handled asynchronously by plugins.
234 * ZIP of studies whose PatientName and PatientID did not contain any ASCII character are now valid.
235 * Upgraded minizip library to stay away from CVE-2023-45853 although Orthanc is likely not affected since ZIP
236 filenames are based on DICOM Tag values whose length is limited in size.
237 Great thanks to James Addison for notifying us about the vulnerability and patch to apply !
238 * Fix XSS in Orthanc error reporting (as reported by Sébastien Doria, Vumetric Cybersecurity) by:
239 - always including a "Content-Type" header in HTTP responses with a body.
240 - always including "X-Content-Type-Options: nosniff"
241 * Upgraded dependencies for static builds:
242 - boost 1.83.0
243
244
245 Version 1.12.1 (2023-07-04)
246 ===========================
247
248 General
249 -------
250
251 * Orthanc now anonymizes according to Basic Profile of PS 3.15-2023b Table E.1-1
252 * Added metrics:
253 - "orthanc_storage_read_bytes"
254 - "orthanc_storage_written_bytes"
255 - "orthanc_memory_trimming_duration_ms"
256
257 REST API
258 --------
259
260 * API version upgraded to 21
261 * "/tools/create-dicom" can now be used to create Encapsulated 3D
262 Manufacturing Model IODs (MTL, OBJ, or STL)
263 * Added a route to delete the output of an asynchronous job (right now
264 only for archive jobs): e.g. DELETE /jobs/../archive
265
266 Plugins
267 -------
268
269 * Added "OrthancPluginLoadDicomInstance()" to load DICOM instances from the database
270 * Added "OrthancPluginSetMetricsIntegerValue()" to track metrics with integer values
271
272 Maintenance
273 -----------
274
275 * Fix decoding of YBR_FULL RLE images for which the "Planar Configuration"
276 tag (0028,0006) equals 1
277 * Made Orthanc more resilient to common spelling errors in SpecificCharacterSet
278 * Modality worklists plugin: Allow searching on private tags (exact match only)
279 * Fix orphan files remaining in storage when working with MaximumStorageSize
280 (https://discourse.orthanc-server.org/t/issue-with-deleting-incoming-dicoms-when-maximumstoragesize-is-reached/3510)
281 * When deleting a resource, the "LastUpdate" metadata of its parents are now updated
282 * Reduced the memory usage when downloading archives when "ZipLoaderThreads" > 0
283 * Metrics can be stored either as floating-point numbers, or as integers
284 * Reduce the frequency of memory trimming from 100ms to 30s to avoid high idle
285 CPU load (https://discourse.orthanc-server.org/t/onchange-callbacks-and-cpu-loads/3534).
286 * Upgraded dependencies for static builds:
287 - boost 1.82.0
288
289
290 Version 1.12.0 (2023-04-14)
291 ===========================
292
293 General
294 -------
295
296 * Support for labels associated with patients, studies, series, and instances
297 * Added a sample plugin bringing multitenant DICOM support through labels
298
299 REST API
300 --------
301
302 * API version upgraded to 20
303 * New URIs "/.../{id}/labels/{label}" to test/set/remove labels
304 * "/patients/{id}", "/studies/{id}", "/series/{id}" and "/instances/{id}"
305 contain the "Labels" field
306 * "/tools/find" now accepts the "Labels" and "LabelsConstraint" arguments
307 * "/tools/labels" lists all the labels that are associated with any resource
308 * "/system": added "UserMetadata" and "HasLabels"
309 * Added option "?numeric" if listing metadata
310
311 Plugins
312 -------
313
314 * Added "OrthancPluginRegisterDatabaseBackendV4()" to communicate using Google
315 Protocol Buffers between the Orthanc core and database plugins
316
317 Orthanc Explorer
318 ----------------
319
320 * Added support for labels
321 * Added buttons to copy the URL of ZIP archives and DICOM files to the clipboard
322
323 Maintenance
324 -----------
325
326 * Enforce the existence of the patient/study/instance while creating its archive
327 * Security: New configuration option "RestApiWriteToFileSystemEnabled"
328 to allow "/instances/../export" (the latter is now disabled by default)
329 * Fix issue 214: VOILUTSequence is not returned in Wado-RS
330 * Fix /tools/reset crashing when ExtraMainDicomTags were defined
331 * Fix Housekeeper plugin infinite loop if Orthanc is empty.
332 * Fix a crash in /tools/reconstruct triggered by the Housekeeper plugin
333 when only changing the StorageCompression.
334 * Avoid the use of "externalproject_add()" to build the sample plugins
335 * Upgraded dependencies for static builds:
336 - openssl 3.1.0
337
338
339 Version 1.11.3 (2023-02-03)
340 ===========================
341
342 General
343 -------
344
345 * C-Store SCU now gives priority to the preferred TransferSyntax
346 proposed by the receiving SCP instead of Orthanc own
347 AcceptedTransferSyntaxes.
348 * Made the default SQLite DB more robust wrt future updates like
349 adding new columns in DB.
350 * Made the HTTP Client errors more verbose by including the URL in the logs.
351 * Optimization: now using multiple threads to transcode files for
352 asynchronous download of studies archive.
353 * New configuration "KeepAliveTimeout" with a default value of 1 second.
354 * ResourceModification jobs (/modify + /anonymize) can now use multiple threads to speed up processing
355 - New configuration "JobsEngineThreadsCount.ResourceModification" to configure the number of threads.
356 * For systems using glibc > 2.8 (most of Linux systems except LSB
357 binaries): Introduced a new thread for to trim memory in Orthanc (different
358 from the Housekeeper sample plugin). This thread regularly try to
359 give back memory that Orthanc no longer uses to the system. This
360 reduces the overall memory consumption. More information in
361 OrthancServer/Resources/ImplementationNotes/memory_consumption.txt.
362
363 REST API
364 --------
365
366 * API version upgraded to 19
367 * Loosen the sanity checks for DICOM modifications, if "Force" option is given:
368 - allow modification of PatientID at study level
369 - allow modification of PatientID, StudyInstanceUID at series level
370 - allow modification of PatientID, StudyInstanceUID, SeriesInstanceUID at instance level
371 - allow modification of a patient without changing her PatientID
372 Added sanity checks for modifications to make sure the user preserves the DICOM model when modifying high level tags.
373 E.g. if you modify the PatientID at study level, also make sure to modify all other Patient related
374 tags (PatientName, PatientBirthDate, ...)
375 * Automatically reconstruct the modified resources at the end of the DICOM modifications job to ensure
376 improved consistency of the DICOM model.
377 * If specifying 'Transcode' option to /modify or /anonymize, this value will take over the 'IngestTranscoding'
378 global configuration
379 * Allow the HTTP server to return responses > 2GB (fixes asynchronous download of zip studies > 2GB)
380 * /modalities/.../store now accepts "CalledAet", "Host", "Port" to override the modality configuration
381 from the configuration file for a specific operation.
382 * /tools/metrics-prometheus: added orthanc_last_change and orthanc_up_time_s
383 * Tolerance for "image/jpg" MIME type instead of "image/jpeg" in /tools/create-dicom
384 * /system: added MaximumStorageMode and MaximumStorageSize
385
386 Plugins
387 -------
388
389 * Added a "header" argument to all OrthancPeers::DoPost, DoPut, ... in the "OrthancPluginCppWrapper"
390 * Added "OrthancPluginCreateJob2()" in the plugin SDK to avoid
391 possible crashes when "OrthancPluginJobGetContent()" or
392 "OrthancPluginJobGetSerialized()" get called
393
394 Maintenance
395 -----------
396
397 * Fix decoding of RLE images for which the "Planar Configuration" tag (0028,0006) equals 1
398 * Fix issue #212 (Anonymization process transcodes data and loses resource link).
399
400
401 Version 1.11.2 (2022-08-30)
402 >>>>>>> merge rev
21 =========================== 403 ===========================
22 404
23 General 405 General
24 ------- 406 -------
25 407
75 ----------- 457 -----------
76 458
77 * Housekeeper plugin: Fix resume of previous processing 459 * Housekeeper plugin: Fix resume of previous processing
78 * Added missing MOVEPatientRootQueryRetrieveInformationModel in 460 * Added missing MOVEPatientRootQueryRetrieveInformationModel in
79 DicomControlUserConnection::SetupPresentationContexts() 461 DicomControlUserConnection::SetupPresentationContexts()
80 * Improved HttpClient error logging (add method + url) 462 * Improved HttpClient error logging (add method + URL)
81 463
82 REST API 464 REST API
83 -------- 465 --------
84 466
85 * API version upgraded to 18 467 * API version upgraded to 18