2861 lines
108 KiB
Plaintext
2861 lines
108 KiB
Plaintext
Pending changes in the mainline
|
|
===============================
|
|
|
|
|
|
Version 1.12.8 (2025-06-13)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* The default SQLite database engine now supports metadata and attachment revisions.
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 29
|
|
* If the database backend provides the "HasExtendedFind" primitive, the
|
|
value "IsProtected" can be included in the "ResponseContent" field of
|
|
"/tools/find" to request the "IsProtected" status of patient resources.
|
|
|
|
Plugin SDK
|
|
----------
|
|
|
|
* Added new functions (available to all plugins) to access key-value
|
|
stores and queues stored as a part of the Orthanc database.
|
|
* New SDK to create storage area plugins (V3) that associate custom data with
|
|
attachments. The built-in SQLite database engine supports such custom data.
|
|
* New SDK to handle custom data for attachments, key-value stores, and queues
|
|
by custom database backends (cf. "OrthancDatabasePlugin.proto").
|
|
* Added OrthancPluginAdoptDicomInstance() to adopt DICOM instances stored elsewhere
|
|
than in the storage area (to be used by "orthanc-advanced-storage" plugin).
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New sample plugins: "CppSkeleton" and "AdoptDicomInstance"
|
|
* Housekeeper plugin:
|
|
- If "LimitMainDicomTagsReconstructLevel" was set, files were not transcoded
|
|
if they had to. The "LimitMainDicomTagsReconstructLevel" configuration is now
|
|
ignored when a full processing is required.
|
|
* Delayed Deletion plugin:
|
|
- Added an index in the delayed-deletion SQLite external DB to speed up delayed
|
|
deletions. This new index will only apply to new databases. If you want to speed
|
|
up an existing installation, run "CREATE INDEX PendingIndex ON Pending(uuid)"
|
|
manually in the plugin SQLite DB. With this patch, we observed a 100 fold
|
|
performance improvement when the "Pending" table contains 1-2 millions files.
|
|
Contribution by Yurii (George) from ivtech.dev.
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* In verbose logs, the elapsed time spent in each HTTP call is now reported.
|
|
* Fix computation of MD5 hashes for memory buffers whose size is larger than 2^31 bytes.
|
|
* Configuration options "RejectSopClasses" and "RejectedSopClasses" are taken as synonyms.
|
|
In Orthanc 1.12.6 and 1.12.7, "RejectSopClasses" was used instead of the expected
|
|
"RejectedSopClasses" spelling.
|
|
* Fix the re-encoding of DICOM files larger than 4GB.
|
|
* Improved translations of HTTP error codes when a plugin calls the core REST API.
|
|
In particular, a plugin could receive an error OrthancPluginErrorCode_UnknownResource (code 17)
|
|
when the underlying REST handler was actually returning an HTTP error 415. The plugin will
|
|
now receive an error OrthancPluginErrorCode_UnsupportedMediaType (code 3000).
|
|
|
|
|
|
Version 1.12.7 (2025-04-07)
|
|
===========================
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 28
|
|
* POST "/tools/create-dicom" accepts new argument "Encapsulate" to encapsulate a raw JPEG
|
|
image into a DICOM envelope without transcoding, using 1.2.840.10008.1.2.4.50 transfer syntax.
|
|
* GET "/studies/../archive" and sibling routes now all accept a "filename" GET argument.
|
|
* POST "/studies/../archive" and sibling routes now all accept a "Filename" query argument.
|
|
* GET "/instances/../file" and sibling "../attachments/../data" routes now all accept a "filename" GET argument.
|
|
* All routes accepting a "transcode" URL argument or a "Transcode" field in the payload now also
|
|
accept a "lossy-quality" URL argument or a "LossyQuality" field to define the compression quality factor.
|
|
If not specified, the "DicomLossyTranscodingQuality" configuration is taken into account.
|
|
* GET "/series/../study" now also contain LastUpdate field:
|
|
https://discourse.orthanc-server.org/t/lastupdate-coherency/5524
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* In the "ExtendedFind" mode:
|
|
- optimized "tools/find" if "StorageAccessMode" is set to "Never".
|
|
- "tools/find" now returns results if e.g, ordering instances against a metadata they don't have.
|
|
- Get SOPClassUID from metadata if available -> this fixes display of PDF files in Stone if
|
|
"StorageAccessOnFind" is set to "Never".
|
|
* Fixed OpenAPI documentation for "/modalities/../get".
|
|
* Fixed interpretation of "returnUnsupportedImage" in "/preview" route.
|
|
* Recovered compatibility with Windows XP that was broken because of DCMTK 3.6.9
|
|
* Enabled support of the 1.2.840.10008.1.2.1.99 transfer syntax
|
|
(Deflated Explicit VR Little Endian) in static builds, and fix length of saved files.
|
|
https://discourse.orthanc-server.org/t/transcoding-to-deflated-transfer-syntax-fails/5489
|
|
* When anonymizing a resource while forcing some value with the "Replace" fields, the tag
|
|
0012,0063 was cleared out because the DICOM anonymization profile was not strictly followed.
|
|
From now on:
|
|
- 0012,0063 will contain "Orthanc {version} - {Anonymization profile}" if no "Replace" is used.
|
|
- 0012,0063 will contain "Orthanc {version}" if "Replace" is used.
|
|
https://orthanc.uclouvain.be/bugs/show_bug.cgi?id=240
|
|
* Housekeeper plugin:
|
|
- If encountering an error, the housekeeper now skips the resource and continues processing.
|
|
* Orthanc Explorer:
|
|
- Allow "-" and "_" in labels.
|
|
* Upgraded dependencies for static builds:
|
|
- lua 5.4.7
|
|
|
|
|
|
Version 1.12.6 (2025-01-22)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* DICOM: Added support for C-GET SCU.
|
|
* Added new configuration options:
|
|
- "AcceptedSopClasses" and "RejectedSopClasses" to limit the SOP classes
|
|
accepted by Orthanc when acting as C-STORE SCP.
|
|
- "DicomDefaultRetrieveMethod" to define whether Orthanc uses C-MOVE or
|
|
C-GET to retrieve a resource after a C-FIND (if calling "/queries/.../retrieve").
|
|
This configuration can be overridden for each DICOM modality by setting
|
|
the "RetrieveMethod" field in the "DicomModalities" section.
|
|
Default value: "C-MOVE" to preserve backward compatibility.
|
|
- "MaximumConcurrentDcmtkTranscoders" to reduce CPU and memory usage by limiting
|
|
the number of concurrent DCMTK transcoders that are simultaneously running
|
|
at any given time.
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 27
|
|
* C-GET SCU requests can be triggered through the new route "/modalities/{id}/get"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* SDK: Added "OrthancPluginStartStreamAnswer()" and "OrthancPluginSendStreamChunk()"
|
|
to allow the sending of HTTP responses by chunks.
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Fix: In the "ExtendedFind" mode, using "tools/find" while querying against
|
|
"ModalitiesInStudy" was not compatible with pagination. This notably prevented
|
|
the use of the modality filter in Orthanc Explorer 2.
|
|
* If the "HttpsCACertificates" configuration is empty, Orthanc now uses the
|
|
operating system native CA store (if any). This is equivalent to the "--ca-native"
|
|
curl option.
|
|
* Housekeeper plugin:
|
|
- Fix the "Force" configuration that was ineffective.
|
|
- Allow transcoding to lossy transfer syntax. Orthanc will leave
|
|
the "SOPInstanceUID" DICOM tag untouched in this case.
|
|
* In the "/archive" routes:
|
|
- The numbers in the filenames now match the "InstanceNumber" tag whenever possible.
|
|
When not, the files are ordered in the same order as the instances in the series.
|
|
- Added optimization to use the "ExtendedFind" extension, hereby reducing the number
|
|
of SQL queries.
|
|
* DICOM negotiation:
|
|
- When opening a DICOM SCU connection, Orthanc now only proposes the contexts that it is
|
|
going to use in the connection, and not all the contexts as in previous versions
|
|
(e.g., if performing a C-ECHO, Orthanc will not propose C-MOVE or C-FIND).
|
|
* DICOM C-GET SCP: Orthanc will not refuse anymore to send, for instance, a
|
|
LittleEndianExplicit file, if the accepted transfer syntax is a compressed one.
|
|
* By default, DCMTK now uses its own "oficonv" library for character set conversion.
|
|
This can be tuned using the new CMake option "-DDCMTK_LOCALE_BACKEND=oficonv".
|
|
* Improved progress reporting for DicomMoveScu jobs.
|
|
* Upgraded dependencies for static builds:
|
|
- dcmtk 3.6.9
|
|
|
|
|
|
Version 1.12.5 (2024-12-17)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Database:
|
|
- 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 modification to the index database or to the storage area.
|
|
|
|
|
|
REST API
|
|
--------
|
|
|
|
* 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
|
|
https://discourse.orthanc-server.org/t/qido-includefield-with-sequences/4746/6
|
|
* 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
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* DICOM TLS: "DicomTlsTrustedCertificates" is not required anymore when issuing
|
|
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" 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:
|
|
https://discourse.orthanc-server.org/t/decoding-displaying-jpeg2000-lossy-images/5117
|
|
* Added new warnings that can be disabled in the configuration:
|
|
- W003_DecoderFailure
|
|
- W004_NoMainDicomTagsSignature
|
|
- W005_RequestingTagFromLowerResourceLevel
|
|
- W006_RequestingTagFromMetaHeader
|
|
- W007_MissingRequestedTagsNotReadFromDisk
|
|
* New default MainDicomTags are now stored in the DB:
|
|
- At Study Level:
|
|
- TimezoneOffsetFromUTC (used in QIDO-RS default queries)
|
|
- At Series Level:
|
|
- TimezoneOffsetFromUTC (used in QIDO-RS default queries)
|
|
- 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)
|
|
===========================
|
|
|
|
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 updated 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)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Added support for RGBA64 images in tools/create-dicom and /preview
|
|
* New configuration "MaximumStorageMode" to choose between recyling of
|
|
old patients (default behavior) and rejection of new incoming data when
|
|
the MaximumStorageSize has been reached.
|
|
|
|
Bug Fixes
|
|
---------
|
|
|
|
* Fix the "Never" option of the "StorageAccessOnFind" that was sill accessing
|
|
files (bug introduced in 1.11.0).
|
|
* Fix the Storage Cache for compressed files (bug introduced in 1.11.1).
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* DelayedDeletion plugin: Fix leaking of symbols
|
|
* SQLite now closes and deletes WAL and SHM files on exit. This should improve
|
|
handling of SQLite DB over network drives.
|
|
* Fix static compilation of boost 1.69 on Ubuntu 22.04
|
|
* Upgraded dependencies for static builds:
|
|
- boost 1.80.0
|
|
- dcmtk 3.6.7 (fixes CVE-2022-2119 and CVE-2022-2120)
|
|
- openssl 3.0.5
|
|
|
|
|
|
Version 1.11.1 (2022-06-30)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New sample plugin: "DelayedDeletion" that will delete files from disk
|
|
asynchronously to speed up deletion of large studies.
|
|
* Lua: new "SetHttpTimeout" function
|
|
* Lua: new "OnHeartBeat" callback called at regular interval provided that
|
|
you have configured "LuaHeartBeatPeriod" > 0.
|
|
* "ExtraMainDicomTags" configuration now accepts Dicom Sequences. Sequences are
|
|
stored in a dedicated new metadata "MainDicomSequences". This should improve
|
|
DicomWeb QIDO-RS and avoid warnings like "Accessing Dicom tags from storage when
|
|
accessing series : 0040,0275".
|
|
Main dicom sequences can now be returned in "MainDicomTags" and in "RequestedTags".
|
|
|
|
Bug Fixes
|
|
---------
|
|
|
|
* Fix the storage cache that was not used by the Plugin SDK. This fixes the
|
|
DicomWeb plugin "/rendered" route performance issues.
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Housekeeper plugin: Fix resume of previous processing
|
|
* Added missing MOVEPatientRootQueryRetrieveInformationModel in
|
|
DicomControlUserConnection::SetupPresentationContexts()
|
|
* Improved HttpClient error logging (add method + URL)
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 18
|
|
* /system is now reporting "DatabaseServerIdentifier"
|
|
* Added an Asynchronous mode to /modalities/../move.
|
|
* "RequestedTags" option can now include DICOM sequences.
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New function in the SDK: "OrthancPluginGetDatabaseServerIdentifier"
|
|
|
|
OrthancFramework (C++)
|
|
----------------------
|
|
|
|
* DicomMap::ParseMainDicomTags has been deprecated -> retrieve "full" tags
|
|
and use DicomMap::FromDicomAsJson instead
|
|
|
|
|
|
Version 1.11.0 (2022-05-09)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration "ExtraMainDicomTags" to store more tags in the Index DB
|
|
to speed up, e.g, building C-Find, dicom-web or tools/find answers
|
|
* New sample plugin: "Housekeeper" that will re-construct the DB/Storage
|
|
when it detects there is room for improvements, e.g:
|
|
- if files were stored with a version of Orthanc prior to 1.9.1,
|
|
the storage might still contain dicom-as-json files that are not needed
|
|
anymore -> it will remove them
|
|
- if "ExtraMainDicomTags" has changed.
|
|
- if "StorageCompression" or "IngestTranscoding" has chagned.
|
|
* New configuration "Warnings" to enable/disable individual warnings that can
|
|
be identified by a W0XX prefix in the logs.
|
|
These warnings have been added:
|
|
- W001_TagsBeingReadFromStorage
|
|
- W002_InconsistentDicomTagsInDb
|
|
* C-Find and QIDO-RS can now return the InstanceAvailability tag. Value is
|
|
always "ONLINE"
|
|
* Improved decoding of US Images with Implicit VR.
|
|
* Speed-up handling of DicomModalitiesInStudy in C-Find and tools/find queries.
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 17
|
|
* new options in tools/find:
|
|
- "RequestedTags" (to use together with "Expand": true) contains a list of tags
|
|
that you'll receive in the "RequestedTags" field in the answers. These tags
|
|
may be tags from the MainDicomTags in DB, from the DICOM file or 'computed'
|
|
like ModalitiesInStudy. Check the new configuration "ExtraMainDicomTags" and
|
|
"Warnings" to optimize your queries.
|
|
* new query argument "requestedTags" in all API routes listing resources:
|
|
- /patients, /patients/../studies, /patients/../series, /patients/../instances
|
|
- /studies, /studies/../series, /studies/../instances
|
|
- /series, /series/../instances
|
|
- /instances
|
|
ex:
|
|
- /studies/c27857df-4078c84c-1a79ea78-ac357bb2-9dadc119?requestedTags=ModalitiesInStudy
|
|
- /studies?expand&since=0&limit=10&requestedTags=ModalitiesInStudy
|
|
|
|
* /reconstruct routes:
|
|
- new options "ReconstructFiles" (false by default to keep backward compatibility) to
|
|
potentialy compress/uncompress the files or transcode them if "StorageCompression"
|
|
or "IngestTranscoding" has changed since the file has been ingested.
|
|
POSSIBLE BREAKING-CHANGES:
|
|
- the /reconstruct routes now preserve all metadata
|
|
- the /reconstruct routes now skip the IncomingInstanceFilter
|
|
- the /reconstruct routes won't generate new events like NewStudy, StableStudy, ...
|
|
therefore, the corresponding callbacks won't be called anymore
|
|
- the /reconstruct routes won't affect the patient recycling anymore
|
|
* new fields reported in the /system route:
|
|
- "MainDicomTags" to list the tags that are saved in DB
|
|
- "StorageCompression", "OverwriteInstances", "IngestTranscoding" reported from the
|
|
configuration file
|
|
* New option "filename" in "/.../{id}/archive" and "/.../{id}/media" to
|
|
manually set the filename in the "Content-Disposition" HTTP header
|
|
|
|
|
|
Version 1.10.1 (2022-03-23)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Improved DICOM authorization checks when multiple modalities are
|
|
declared with the same AET.
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New function in the SDK: "OrthancPluginRegisterWebDavCollection()"
|
|
to map a WebDAV virtual filesystem into the REST API of Orthanc.
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
* Removed the "LimitJobs" configuration that is not used anymore since
|
|
the new JobEngine has been introduced (in Orthanc 1.4.0). The
|
|
pending list of jobs is unlimited.
|
|
|
|
|
|
Version 1.10.0 (2022-02-23)
|
|
===========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration "DicomAlwaysAllowFindWorklist" to complement the existing
|
|
"DicomAlwaysAllowFind" configuration. "DicomAlwaysAllowFind" applies now
|
|
only to C-Find for Patients/Studies/Series/Instances while C-Find for worklists are
|
|
covered by "DicomAlwaysAllowFindWorklist". The same changes applies to new
|
|
configurations in "DicomModalities": "AllowFind" is now complemented by
|
|
"AllowFindWorklist".
|
|
This new option allows improved security management. E.g: a modality might have
|
|
only "AllowStore" and "AllowFindWorklist" enabled but might have "AllowFind"
|
|
disabled to prevent listing past patient studies.
|
|
Possible BREAKING-CHANGE: if you relied on "DicomAlwaysAllowFind" or "AllowFind"
|
|
to specifically authorize C-Find for worklist, you now need to explicitly enable
|
|
"DicomAlwaysAllowFindWorklist" and/or "AllowFindWorklist"
|
|
* Added a storage cache in RAM to avoid reading the same files multiple times from
|
|
the storage. This greatly improves, among other things, the performance of WADO-RS
|
|
retrieval of individual frames of multiframe instances.
|
|
* New configuration option "MaximumStorageCacheSize" to configure the size of
|
|
the new storage cache.
|
|
* New experimental configuration option "ZipLoaderThreads" to configure the number of
|
|
threads used to read instances from storage when creating a Zip archive/media.
|
|
* Support decoding of black-and-white images (with 1 bit per pixel), notably DICOM SEG
|
|
* Added links to download attachments from the Orthanc Explorer
|
|
* Fix XSS inside DICOM in Orthanc Explorer (as reported by Stuart Kurutac, NCC Group).
|
|
XSS Issues were re-introduced in Orthanc 1.9.4.
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 16
|
|
* If an image can not be decoded, "../preview" and "../rendered" routes
|
|
are now returning "unsupported.png" only if the
|
|
"?returnUnsupportedImage" option is specified; otherwise, it raises
|
|
a 415 HTTP error code.
|
|
* Archive jobs response now contains a header Content-Disposition:filename='archive.zip'
|
|
* "/instances/{...}/frames/{...}/numpy": Download the frame as a Python numpy array
|
|
* "/instances/{...}/numpy": Download the instance as a Python numpy array
|
|
* "/series/{...}/numpy": Download the series as a Python numpy array
|
|
* Added a "?full" option to "/patients|studies|series|instances/{...}/attachments" route
|
|
to show the mapping alias<->numerical id.
|
|
* Added "/patients|studies|series|instances/{...}/attachments/{...}/info" route to retrieve
|
|
the full information about an attachment (size, type, MD5 and UUID)
|
|
|
|
Lua
|
|
---
|
|
|
|
* New "ReceivedCStoreInstanceFilter" Lua callback to filter instances received
|
|
through C-Store and return a specific C-Store status code.
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions in the SDK:
|
|
- OrthancPluginRegisterIncomingCStoreInstanceFilter()
|
|
- OrthancPluginRegisterReceivedInstanceCallback()
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Removed the OpenSSL license exception, as binary versions of Orthanc are now
|
|
designed to use OpenSSL 3.x, that was re-licensed under Apache 2.0, making
|
|
it compatible with the GPL/AGPL licenses used by the Orthanc project:
|
|
https://en.wikipedia.org/wiki/OpenSSL#Licensing
|
|
https://people.gnome.org/~markmc/openssl-and-the-gpl.html
|
|
* Fix handling of option "DeidentifyLogs", notably for tags (0010,0010) and (0010,0020)
|
|
* New configuration options:
|
|
- "DicomThreadsCount" to set the number of threads in the embedded DICOM server
|
|
* Fix instances accumulating in DB while their attachments were not stored because of
|
|
MaximumStorageSize limit reached with a single patient in DB.
|
|
* Dropped support for static compilation of OpenSSL 1.0.2
|
|
* Upgraded dependencies for static builds (notably on Windows and LSB):
|
|
- openssl 3.0.1
|
|
|
|
|
|
Version 1.9.7 (2021-08-31)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration option "DicomAlwaysAllowMove" to disable verification of
|
|
the remote modality in C-MOVE SCP
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 15
|
|
* Added "Level" option to POST /tools/bulk-modify
|
|
* Added missing OpenAPI documentation of "KeepSource" in ".../modify" and ".../anonymize"
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Added file CITATION.cff
|
|
* Linux Standard Base (LSB) builds of Orthanc can load non-LSB builds of plugins
|
|
* Fix upload of ZIP archives containing a DICOMDIR file
|
|
* Fix computation of the estimated time of arrival in jobs
|
|
* Support detection of windowing and rescale in Philips multiframe images
|
|
|
|
|
|
Version 1.9.6 (2021-07-21)
|
|
==========================
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* In lookup and query/retrieve, possibility to provide a specific study date
|
|
* Clicking on "Send to remote modality" displays the job information to monitor progress
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Fix orphaned attachments if bad revision number is provided
|
|
|
|
|
|
Version 1.9.5 (2021-07-08)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Anonymization is applied recursively to nested tags
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 14
|
|
* Added "Short", "Simplify" and/or "Full" options to control the format of DICOM tags in:
|
|
- POST /modalities/{id}/find-worklist
|
|
- POST /queries/{id}/answers/{index}/retrieve
|
|
- POST /queries/{id}/retrieve
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Fix broken "Do lookup" button in Orthanc Explorer
|
|
* Error code and description of jobs are now saved into the Orthanc database
|
|
|
|
|
|
Version 1.9.4 (2021-06-24)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Orthanc now anonymizes according to Basic Profile of PS 3.15-2021b Table E.1-1
|
|
* New configuration options:
|
|
- "ExternalDictionaries" to load external DICOM dictionaries (useful for DICONDE)
|
|
- "SynchronousZipStream" to disable streaming of ZIP
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* Orthanc Explorer supports the DICONDE dictionary
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 13
|
|
* New routes to handle groups of multiple, unrelated DICOM resources at once:
|
|
- "/tools/bulk-anonymize" to anonymize a set of resources
|
|
- "/tools/bulk-content" to get the content of a set of resources
|
|
- "/tools/bulk-delete" to delete a set of resources
|
|
- "/tools/bulk-modify" to modify a set of resources
|
|
* ZIP archive/media generated in synchronous mode are now streamed by default
|
|
* "Replace" tags in "/modify" and "/anonymize" now supports value representation AT
|
|
* "/jobs/..." has new field "ErrorDetails" to help identify the cause of an error
|
|
* "Replace", "Keep" and "Remove" in "/modify" and "/anonymize" accept paths to subsequences
|
|
using the syntax of the dcmodify command-line tool (wildcards are supported as well)
|
|
* Added "short", "simplify" and/or "full" options to control the format of DICOM tags in:
|
|
- GET /patients, GET /studies, GET /series, GET /instances (together with "&expand")
|
|
- GET /patients/{id}, GET /studies/{id}, GET /series/{id}, GET /instances/{id}
|
|
- GET /patients/{id}/studies, GET /patients/{id}/series, GET /patients/{id}/instances
|
|
- GET /studies/{id}/patient, GET /studies/{id}/series, GET /studies/{id}/instances
|
|
- GET /series/{id}/patient, GET /series/{id}/study, GET /series/{id}/instances
|
|
- GET /instances/{id}/patient, GET /instances/{id}/study, GET /instances/{id}/series
|
|
- GET /patients/{id}/instances-tags, GET /patients/{id}/shared-tags
|
|
- GET /studies/{id}/instances-tags, GET /series/{id}/shared-tags
|
|
- GET /series/{id}/instances-tags, GET /studies/{id}/shared-tags
|
|
- GET /patients/{id}/module, GET /patients/{id}/patient-module
|
|
- GET /series/{id}/module, GET /studies/{id}/module, GET /instances/{id}/module
|
|
- GET /queries/{id}/answers&expand, GET /queries/{id}/answers/{index}/content
|
|
- POST /tools/find
|
|
* "/studies/{id}/split" accepts "Instances" parameter to split instances instead of series
|
|
* "/studies/{id}/merge" accepts instances inside its "Resources" parameter
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Full support of hierarchical relationships in tags whose VR is UI during anonymization
|
|
* C-MOVE SCP: added possible DIMSE status "Sub-operations Complete - One or more Failures"
|
|
* Fix issue #146 (Update Anonyization to 2019c) - was actually updated to 2021b
|
|
* Upgraded dependencies for static builds (notably on Windows):
|
|
- curl 7.77.0
|
|
|
|
|
|
Version 1.9.3 (2021-05-07)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration option: "DicomTlsRemoteCertificateRequired" to allow secure DICOM TLS
|
|
connections without certificate
|
|
|
|
REST API
|
|
--------
|
|
|
|
* "ETag" headers for metadata and attachments now allow strong comparison (MD5 is included)
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* New CMake option: "ORTHANC_LUA_VERSION" to use a specific version of system-wide Lua
|
|
* Fix the lifetime of temporary files associated with jobs that create ZIP archive/media:
|
|
- In synchronous mode, their number could grow up to "JobsHistorySize" in Orthanc <= 1.9.2
|
|
- In asynchronous mode, the temporary files are removed as soon as their job gets canceled
|
|
* Fix regression in the handling of "DicomCheckModalityHost" configuration option
|
|
introduced by changeset 4182 in Orthanc 1.7.4
|
|
* Reduced memory consumption of "OrthancPluginHttpClient()", "OrthancPluginHttpClient2()" and
|
|
"OrthancPluginCallPeerApi()" on POST/PUT if chunked transfer is disabled
|
|
* Fix issue #195 (No need for BulkDataURI when Data Element is empty)
|
|
|
|
|
|
Version 1.9.2 (2021-04-22)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration options related to multiple readers/writers:
|
|
- "DatabaseServerIdentifier" identifies the server in the DB among a pool of Orthanc servers
|
|
- "CheckRevisions" to protect against concurrent modifications of metadata and attachments
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 12
|
|
* "/system" reports the value of the "CheckRevisions" global option
|
|
* "/.../{id}/metadata/{name}" and "/.../{id}/attachments/{name}/..." URIs handle the
|
|
HTTP headers "If-Match", "If-None-Match" and "ETag" to cope with revisions
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New function in the SDK: OrthancPluginCallRestApi()
|
|
* Full refactoring of the database plugin SDK to handle multiple readers/writers,
|
|
which notably implies the handling of retries in the case of collisions
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Use the local timezone for query/retrieve in the Orthanc Explorer interface (was UTC before)
|
|
* Fix "OrthancServer/Resources/Samples/Python/Replicate.py" for Python 3.x
|
|
* Fix issue #83 (ServerIndex shall implement retries for DB temporary errors)
|
|
* Upgraded dependencies for static builds (notably on Windows and LSB):
|
|
- civetweb 1.14
|
|
- openssl 1.1.1k
|
|
|
|
|
|
Version 1.9.1 (2021-02-25)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* The "dicom-as-json" attachments are not explicitly stored anymore to improve performance
|
|
* If the storage area doesn't support range reading, or if "StorageCompression"
|
|
is enabled, a new type of attachment "dicom-until-pixel-data" is generated
|
|
* New metadata automatically computed at the instance level: "PixelDataOffset"
|
|
* New configuration option related to networking:
|
|
- "Timeout" in "DicomModalities" to set DICOM SCU timeout on a per-modality basis
|
|
- "Timeout" in "OrthancPeers" to set HTTP client timeout on a per-peer basis
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 11
|
|
* BREAKING CHANGES:
|
|
- External applications should not call "/instances/.../attachments/dicom-as-json" anymore,
|
|
and should use "/instances/.../tags" instead
|
|
- "/instances/.../tags" route does not report the tags after "Pixel Data" (7fe0,0010) anymore
|
|
* "/peers/{id}/store-straight": Synchronously send the DICOM instance in POST body to the peer
|
|
* New arguments in the REST API:
|
|
- "Timeout" in "/modalities/.../query"
|
|
- "Timeout" in "/modalities/.../storage-commitment"
|
|
- "Timeout" in "/queries/.../answers/.../query-{studies|series|instances}"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New value in enumeration: OrthancPluginDicomToJsonFlags_StopAfterPixelData
|
|
* New value in enumeration: OrthancPluginDicomToJsonFlags_SkipGroupLengths
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Improved precision of floating-point numbers in DICOM-as-JSON and DICOM summary
|
|
* Optimization in C-STORE SCP by avoiding an unnecessary DICOM parsing
|
|
* Fix build on big-endian architectures
|
|
* Handle public tags with "UN" value representation and containing a string (cf. DICOM CP 246)
|
|
* The numbering of sequences in Orthanc Explorer now uses the DICOM convention (starts at 1)
|
|
* Possibility to generate a static library containing the Orthanc Framework
|
|
|
|
|
|
Version 1.9.0 (2021-01-29)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Support of DICOM TLS
|
|
* New configuration options related to DICOM networking:
|
|
- "DicomTlsEnabled" to enable DICOM TLS in Orthanc SCP
|
|
- "DicomTlsCertificate" to provide the TLS certificate to be used in both Orthanc SCU and SCP
|
|
- "DicomTlsPrivateKey" to provide the private key of the TLS certificate
|
|
- "DicomTlsTrustedCertificates" to provide the list of TLS certificates to be trusted by Orthanc
|
|
- "UseDicomTls" in "DicomModalities" to enable DICOM TLS in outgoing SCU on a per-modality basis
|
|
- "MaximumPduLength" to tune the maximum PDU length (Protocol Data Unit)
|
|
- "LocalAet" in "DicomModalities" to overwrite global "DicomAet" for SCU on a per-modality basis
|
|
- "AcceptedTransferSyntaxes" to set the transfer syntax UIDs accepted by Orthanc C-STORE SCP
|
|
- "H265TransferSyntaxAccepted" to enable/disable all the transfer syntaxes related to H.265
|
|
- "DicomAlwaysAllowFind" to disable verification of the remote modality in C-FIND SCP
|
|
- "DicomAlwaysAllowGet" to disable verification of the remote modality in C-GET SCP
|
|
* New configuration option: "DicomScuPreferredTransferSyntax" to control transcoding in C-STORE SCU
|
|
* New command-line option: "--openapi" to write the OpenAPI documentation of the REST API to a file
|
|
* New metadata automatically computed at the series level: "RemoteAET"
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* The DICOM meta-header and the transfer syntax are displayed at the "Instance" level
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 10
|
|
* "/tools/accepted-transfer-syntaxes": Get/set transfer syntaxes accepted by Orthanc C-STORE SCP
|
|
* "/tools/unknown-sop-class-accepted": Get/set whether C-STORE SCP accepts unknown SOP class UID
|
|
* "/modalities/{...}/query": New string argument "LocalAet"
|
|
* "/tools/create-dicom": New flag "Force" to bypass consistency checks for the DICOM tags
|
|
|
|
Lua
|
|
---
|
|
|
|
* BREAKING CHANGE: All the Lua callbacks "IsXXXTransferSyntaxAccepted()" and
|
|
"IsUnknownSopClassAccepted()" have been removed
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions in the SDK:
|
|
- OrthancPluginCreateMemoryBuffer64()
|
|
- OrthancPluginRegisterStorageArea2()
|
|
- OrthancPluginCreateDicom2()
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Refactoring and improvements to the cache of DICOM files (it can now hold many files)
|
|
* New Prometheus metrics "orthanc_dicom_cache_count" and "orthanc_dicom_cache_size"
|
|
* Fix upload of multiple DICOM files using one single POST call to "multipart/form-data"
|
|
Could be the final resolution of issue #21 (DICOM files missing after uploading with Firefox)
|
|
* Partial fix of issue #48 (Windows service not stopped properly), cf. comments 4 and 5
|
|
* Explicitly use little-endian to encode uncompressed file size with zlib compression
|
|
* Upgraded dependencies for static builds (notably on Windows):
|
|
- dcmtk 3.6.6
|
|
- jsoncpp 1.9.4
|
|
|
|
|
|
Version 1.8.2 (2020-12-18)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* ZIP archives containing DICOM files can be uploaded using WebDAV
|
|
* New config option "MallocArenaMax" to control memory usage on GNU/Linux
|
|
* Explicit error log if trying to load a 32bit (resp. 64bit) plugin into
|
|
a 64bit (resp. 32bit) version of Orthanc
|
|
* New configuration options contributed by Varian Medical Systems:
|
|
- "DeidentifyLogs" to remove patient identification from the logs (C-GET, C-MOVE, C-FIND)
|
|
- "DeidentifyLogsDicomVersion" to specify the deidentification rules for the logs
|
|
- "OrthancExplorerEnabled" to enable/disable the Orthanc Explorer Web user interface
|
|
- "SslMinimumProtocolVersion" to set the minimal SSL protocol version (now defaults to SSL 1.2)
|
|
- "SslCiphersAccepted" to set the accepted ciphers over SSL (now defaults to FIPS 140-2)
|
|
* New configuration options related to ingest transcoding:
|
|
- "IngestTranscodingOfUncompressed" to control whether uncompressed transfer syntaxes are transcoded
|
|
- "IngestTranscodingOfCompressed" to control whether compressed transfer syntaxes are transcoded
|
|
|
|
REST API
|
|
--------
|
|
|
|
* "/instances" can be used to import ZIP archives provided in the POST body
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Allow concurrency on the OrthancPluginRegisterIncomingHttpRequestFilter() callbacks
|
|
* Allow empty request body in "/modalities/{id}/echo"
|
|
* If meta-header is missing, best-effort to extract "TransferSyntax" in "/instances/{id}/metadata"
|
|
|
|
|
|
Version 1.8.1 (2020-12-07)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New sample tool "OrthancImport.py" to easily import compressed archives (ZIP) into Orthanc
|
|
* Logging categories (cf. command-line options starting with "--verbose-" and "--trace=")
|
|
* New command-line option "--trace-dicom" to access full debug information from DCMTK
|
|
* New config option "DicomEchoChecksFind" to automatically complement C-GET SCU with C-FIND SCU
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 9
|
|
* "/tools/dicom-echo": Execute C-Echo SCU to a modality that is not registered in "/modalities"
|
|
* "/tools/log-level-*": Dynamically access and/or change the verbosity of logging categories
|
|
* "/peers/{id}/configuration": Get the configuration of one peer (cf. "/peers?expand")
|
|
* "/modalities/{id}/configuration": Get the configuration of one modality (cf. "/modalities?expand")
|
|
* "/tools/dicom-echo" and "/modalities/{id}/echo" now accept the field "CheckFind" in their JSON
|
|
body to complement C-GET SCU with C-FIND SCU ("DicomEchoChecksFind" on a per-connection basis)
|
|
* Archive/media jobs report the size of the created ZIP file in content field "ArchiveSizeMB"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New function in the SDK: OrthancPluginGenerateRestApiAuthorizationToken()
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* C-GET SCP: Fix responses and handling of cancel
|
|
* Fix decoding sequence if "BuiltinDecoderTranscoderOrder" is "Before"
|
|
* Fix keep-alive in the embedded HTTP server by setting the "Keep-Alive" HTTP header
|
|
* Fix access to videos as a single raw frame (feature broken since Orthanc 1.6.0)
|
|
* REST API now returns 404 error if deleting an inexistent peer or modality
|
|
* Improved forward ABI compatibility of Orthanc Framework (notably, no inline methods anymore)
|
|
* Upgraded dependencies for static builds (notably on Windows and LSB):
|
|
- civetweb 1.13
|
|
|
|
|
|
Version 1.8.0 (2020-10-16)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Serving the content of Orthanc as a WebDAV network share
|
|
* New config options: "WebDavEnabled", "WebDavDeleteAllowed" and "WebDavUploadAllowed"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New available origin for a DICOM instance: "OrthancPluginInstanceOrigin_WebDav"
|
|
|
|
|
|
Version 1.7.4 (2020-09-18)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration options to enable HTTP peers identification through certificates:
|
|
"SslVerifyPeers" and "SslTrustedClientCertificates"
|
|
* New configuration option "SyncStorageArea" to immediately commit the files onto the disk
|
|
(through fsync()), so as to avoid discrepencies between DB and filesystem in case of hard
|
|
shutdown of the machine running Orthanc. This slows down adding new files into Orthanc.
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Underscores are now allowed in peers/modalities symbolic names
|
|
* Fix compatibility with C-MOVE SCU requests issued by Ambra
|
|
* Fix transcoding in C-MOVE SCP, in the case where "SynchronousCMove" is "true"
|
|
* When checking DICOM allowed methods, if there are multiple modalities with the same AET,
|
|
differentiate them from the calling IP
|
|
* Enable the access to raw frames in Philips ELSCINT1 proprietary compression
|
|
* Support empty key passwords when using HTTP client certificates
|
|
* Fix handling of "ModalitiesInStudy" (0008,0061) in C-FIND and "/tools/find"
|
|
|
|
|
|
Version 1.7.3 (2020-08-24)
|
|
==========================
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 8
|
|
* "/peers/{id}/store": New option "Compress" to compress DICOM data using gzip
|
|
* "OrthancPeerStore" jobs now report the transmitted size in their public content
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New config option "Worklist.LimitAnswers" for the sample modality worklist plugin
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Add missing tag "Retrieve AE Title (0008,0054)" in C-FIND SCP responses
|
|
* Fix DICOM SCP filters if some query tag has > 256 characters (list of UIDs matching)
|
|
* "/series/.../ordered-slices" supports spaces in Image Position/Orientation Patient tags
|
|
* Fix possible crash in HttpClient if sending multipart body (can occur in STOW-RS)
|
|
* Support receiving multipart messages larger than 2GB in the embedded HTTP server
|
|
|
|
|
|
Version 1.7.2 (2020-07-08)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* C-FIND SCP now returns private tags (cf. option "DefaultPrivateCreator")
|
|
* Packaging of the Orthanc framework as a shared library
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New change types in the SDK: JobSubmitted, JobSuccess, JobFailure
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Issue #182: Better reporting of errors in plugins reading chunked HTTP body
|
|
* Fix issue #183 (C-ECHO always fails in Orthanc Explorer, regression from 1.6.1 to 1.7.0)
|
|
|
|
|
|
Version 1.7.1 (2020-05-27)
|
|
==========================
|
|
|
|
* Fix decoding of DICOM images for plugins (for compatibility with
|
|
Orthanc Web Viewer 2.6)
|
|
|
|
|
|
Version 1.7.0 (2020-05-22)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Support of DICOM C-GET SCP (contribution by Varian Medical Systems)
|
|
* DICOM transcoding over the REST API
|
|
* Transcoding from compressed to uncompressed transfer syntaxes over DICOM
|
|
C-STORE SCU (if the remote modality doesn't support compressed syntaxes)
|
|
* New configuration options related to transcoding:
|
|
"TranscodeDicomProtocol", "BuiltinDecoderTranscoderOrder",
|
|
"IngestTranscoding" and "DicomLossyTranscodingQuality"
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version upgraded to 7
|
|
* Improved:
|
|
- "/instances/../modify": it is now possible to "Keep" the "SOPInstanceUID".
|
|
Note that it was already possible to "Replace" it.
|
|
- added "Timeout" parameter to every DICOM operation
|
|
- "/queries/.../answers/../retrieve": "TargetAet" not mandatory anymore
|
|
(defaults to the local AET)
|
|
* Changes:
|
|
- "/{patients|studies|series}/.../modify": New option "KeepSource"
|
|
- "/{patients|studies|series|instances}/.../modify": New option "Transcode"
|
|
- "/peers/{id}/store": New option "Transcode"
|
|
- ".../archive", ".../media", "/tools/create-media" and
|
|
"/tools/create-archive": New option "Transcode"
|
|
- "/ordered-slices": reverted the change introduced in 1.5.8 and go-back
|
|
to 1.5.7 behaviour.
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions in the SDK:
|
|
- OrthancPluginCreateDicomInstance()
|
|
- OrthancPluginCreateMemoryBuffer()
|
|
- OrthancPluginEncodeDicomWebJson2()
|
|
- OrthancPluginEncodeDicomWebXml2()
|
|
- OrthancPluginFreeDicomInstance()
|
|
- OrthancPluginGetInstanceAdvancedJson()
|
|
- OrthancPluginGetInstanceDecodedFrame()
|
|
- OrthancPluginGetInstanceDicomWebJson()
|
|
- OrthancPluginGetInstanceDicomWebXml()
|
|
- OrthancPluginGetInstanceFramesCount()
|
|
- OrthancPluginGetInstanceRawFrame()
|
|
- OrthancPluginRegisterTranscoderCallback()
|
|
- OrthancPluginSerializeDicomInstance()
|
|
- OrthancPluginTranscodeDicomInstance()
|
|
* "OrthancPluginDicomInstance" structure wrapped in "OrthancPluginCppWrapper.h"
|
|
* Allow concurrent calls to the custom image decoders provided by the plugins
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Moved the GDCM sample plugin out of the Orthanc repository as a separate plugin
|
|
* Fix missing body in "OrthancPluginHttpPost()" and "OrthancPluginHttpPut()"
|
|
* Fix issue #169 (TransferSyntaxUID change from Explicit to Implicit during C-STORE SCU)
|
|
* Fix issue #179 (deadlock in Python plugins)
|
|
* Upgraded dependencies for static builds (notably on Windows and LSB):
|
|
- openssl 1.1.1g
|
|
|
|
|
|
Version 1.6.1 (2020-04-21)
|
|
==========================
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 6
|
|
* Added:
|
|
- "/modalities/{id}/store-straight": Synchronously send the DICOM instance in POST
|
|
body to another modality (alternative to command-line tools such as "storescu")
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions in the SDK:
|
|
- OrthancPluginRegisterIncomingDicomInstanceFilter()
|
|
- OrthancPluginGetInstanceTransferSyntaxUid()
|
|
- OrthancPluginHasInstancePixelData()
|
|
|
|
Lua
|
|
---
|
|
|
|
* New "info" field in "ReceivedInstanceFilter()" callback, containing
|
|
"HasPixelData" and "TransferSyntaxUID" information
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Source code repository moved from BitBucket to self-hosted server
|
|
* Fix OpenSSL initialization on Linux Standard Base
|
|
* Fix lookup form in Orthanc Explorer (wildcards not allowed in StudyDate)
|
|
* Fix signature of "OrthancPluginRegisterStorageCommitmentScpCallback()" in plugins SDK
|
|
* Error reporting on failure while initializing SSL
|
|
* Fix unit test ParsedDicomFile.ToJsonFlags2 on big-endian architectures
|
|
* Avoid one memcpy of the DICOM buffer on "POST /instances"
|
|
* Upgraded dependencies for static builds (notably on Windows):
|
|
- civetweb 1.12
|
|
- openssl 1.1.1f
|
|
|
|
|
|
Version 1.6.0 (2020-03-18)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Support of DICOM storage commitment
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 5
|
|
* Added:
|
|
- "/peers/{id}/system": Test the connectivity with a remote peer
|
|
(and also retrieve its version number)
|
|
- "/tools/log-level": Access and/or change the log level without restarting Orthanc
|
|
- "/instances/{id}/frames/{frame}/rendered" and "/instances/{id}/rendered":
|
|
Render frames, taking windowing and resizing into account
|
|
- "/modalities/{...}/storage-commitment": Trigger storage commitment SCU
|
|
- "/storage-commitment/{...}": Access storage commitment reports
|
|
- "/storage-commitment/{...}/remove": Remove instances from storage commitment reports
|
|
* Improved:
|
|
- "/changes": Allow the "limit" argument to be greater than 100
|
|
- "/instances": Support "Content-Encoding: gzip" to upload gzip-compressed DICOM files
|
|
- ".../modify" and "/tools/create-dicom": New option "PrivateCreator" for private tags
|
|
- "/modalities/{...}/store": New Boolean argument "StorageCommitment"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New sample plugin: "ConnectivityChecks"
|
|
* New primitives to handle storage commitment SCP by plugins
|
|
|
|
Lua
|
|
---
|
|
|
|
* New events:
|
|
- "OnDeletedPatient", "OnDeletedStudy", "OnDeletedSeries", "OnDeletedInstance":
|
|
triggered when a resource is deleted
|
|
- "OnUpdatedPatient", "OnUpdatedStudy", "OnUpdatedSeries", "OnUpdatedInstance":
|
|
triggered when an attachment or a metadata is updated
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* New configuration options: "DefaultPrivateCreator" and "StorageCommitmentReportsSize"
|
|
* Support of MPEG4 transfer syntaxes in C-Store SCP
|
|
* C-FIND SCU at Instance level now sets the 0008,0052 tag to IMAGE per default (was INSTANCE).
|
|
Therefore, the "ClearCanvas" and "Dcm4Chee" modality manufacturer have now been deprecated.
|
|
* More strict C-FIND SCP wrt. the DICOM standard: Forbid wildcard
|
|
matching on some VRs, ignore main tags below the queried level
|
|
* Fix issue #65 (Logging improvements)
|
|
* Fix issue #103 ("queries/.../retrieve" API returns HTTP code 200 even on server errors)
|
|
* Fix issue #140 (Modifying private tags with REST API changes VR from LO to UN)
|
|
* Fix issue #154 (Matching against list of UID-s by C-MOVE)
|
|
* Fix issue #156 (Chunked Dicom-web transfer uses 100% CPU)
|
|
* Fix issue #165 (Boundary parameter in multipart Content-Type is too long)
|
|
* Fix issue #166 (CMake find_boost version is now broken with newer boost/cmake)
|
|
* Fix issue #167 (Job can't be cancelled - Handling of timeouts after established association)
|
|
* Fix issue #168 (Plugins can't read private tags from the configuration file)
|
|
* Upgraded dependencies for static builds (notably on Windows):
|
|
- dcmtk 3.6.5
|
|
- openssl 1.1.1d
|
|
- jsoncpp 0.10.7 for pre-C++11 compilers
|
|
|
|
|
|
Version 1.5.8 (2019-10-16)
|
|
==========================
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 4
|
|
* In /ordered-slices route, ignore instances without position/normal/seriesIndex,
|
|
unless there are only such instances in the series
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Security: If remote access is enabled, HTTP authentication is also
|
|
enabled by default. This modification was done to mitigate security
|
|
risks reported by independant security researcher Amitay Dan.
|
|
* Security: New configuration option "ExecuteLuaEnabled" to allow "/tools/execute-script"
|
|
* New configuration option: "HttpRequestTimeout"
|
|
* Log an explicit error if uploading an empty DICOM file using REST API
|
|
* Name of temporary files now include the process ID to ease design of scripts cleaning /tmp
|
|
* Fix compatibility of LSB binaries with Ubuntu >= 18.04
|
|
* Fix generation of "SOP Instance UID" on split and merge
|
|
* Orthanc Explorer: include the URL search params into HTTP headers to
|
|
the REST API to ease usage of the Authorization plugin. Note that
|
|
only the 'token', 'auth-token' & 'authorization' search params are
|
|
transmitted into HTTP headers.
|
|
* Fix lost relationships between CT and RT-STRUCT during anonymization
|
|
|
|
|
|
Version 1.5.7 (2019-06-25)
|
|
==========================
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 3
|
|
* "/modalities/{id}/query": New argument "Normalize" can be set to "false"
|
|
to bypass the automated correction of outgoing C-FIND queries
|
|
* Reporting of "ParentResources" in "DicomModalityStore" and "DicomModalityStore" jobs
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions in the SDK:
|
|
- OrthancPluginHttpClientChunkedBody(): HTTP client for POST/PUT with a chunked body
|
|
- OrthancPluginRegisterMultipartRestCallback(): HTTP server for POST/PUT with multipart body
|
|
- OrthancPluginGetTagName(): Retrieve the name of a DICOM tag from its group and element
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Orthanc now accepts "-H 'Transfer-Encoding: chunked'" option from curl
|
|
* Size of the Orthanc static binaries are reduced by compressing ICU data
|
|
* Anonymization: Preserve hierarchical relationships in (0008,1115) [] (0020,000e)
|
|
* Allow the serialization of signed 16bpp images in PAM format
|
|
* HTTP header "Accept-Encoding" is honored for streams without built-in support for compression
|
|
* The default HTTP timeout is now 60 seconds (instead of 10 seconds in previous versions)
|
|
* Allow anonymizing/modifying instances without the PatientID tag
|
|
* Fix issue #106 (Unable to export preview as jpeg from Lua script)
|
|
* Fix issue #136 (C-FIND request fails when found DICOM file does not have certain tags)
|
|
* Fix issue #137 (C-STORE fails for unknown SOP Class although server is configured to accept any)
|
|
* Fix issue #138 (POST to modalities/{name} accepts invalid characters)
|
|
* Fix issue #141 (/tools/create-dicom removes non-ASCII characters from study description)
|
|
|
|
|
|
Version 1.5.6 (2019-03-01)
|
|
==========================
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* If performing a Query/Retrieve operation, the default value for the
|
|
tags is set to an empty string instead of '*', which allows one to match
|
|
even if the tag is not present. This allows malformed DICOM files to
|
|
be matched, even though they lack required tags such as "PatientSex"
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Enlarge the support of JSON-to-XML conversion in the REST API
|
|
* Fix missing DB transactions in some write operations
|
|
* Fix performance issue in DICOM protocol by disabling Nagle's algorithm
|
|
|
|
|
|
Version 1.5.5 (2019-02-25)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Support of the following multi-byte specific character sets:
|
|
- Japanese Kanji (ISO 2022 IR 87)
|
|
- Korean (ISO 2022 IR 149)
|
|
- Simplified Chinese (ISO 2022 IR 58)
|
|
* Basic support for character sets with code extensions (ISO 2022 escape sequences)
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 2
|
|
* "DicomMoveScu" jobs provide the associated C-FIND answer in their "Query" public field
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* Separation of ideographic and phonetic characters in DICOMweb JSON and XML
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Accept SOP classes: BreastProjectionXRayImageStorageForProcessing/Presentation
|
|
* More tolerance wrt. missing DICOM tags that must be returned by Orthanc C-FIND SCP
|
|
* Orthanc now interprets the "DCMDICTPATH" environment variable the same way as DCMTK
|
|
* New CMake option: "-DMSVC_MULTIPLE_PROCESSES=ON" for parallel build with Visual Studio
|
|
* Fix issue #126 (Orthanc and DCMDICTPATH)
|
|
* Fix issue #131 (C-MOVE failure due to duplicate StudyInstanceUID in the database)
|
|
* Fix issue #134 (/patient/modify gives 500, should really be 400)
|
|
* Upgraded dependencies for static builds (notably on Windows):
|
|
- boost 1.69.0
|
|
- curl 7.64.0
|
|
- dcmtk 3.6.4
|
|
- e2fsprogs 1.44.5 (libuuid)
|
|
- googletest 1.8.1
|
|
- libjpeg 9c
|
|
- libpng 1.6.36
|
|
- openssl 1.0.2p
|
|
- pugixml 1.9
|
|
- sqlite amalgamation 3.27.1
|
|
|
|
|
|
Version 1.5.4 (2019-02-08)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration options:
|
|
- "MetricsEnabled" to enable the tracking of the metrics of Orthanc
|
|
- "HttpThreadsCount" to set the number of threads in the embedded HTTP server
|
|
- "TemporaryDirectory" to set the folder containing the temporary files
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 1.4
|
|
* URI "/instances/.../file" can return DICOMweb JSON or XML, depending
|
|
on the content of the "Accept" HTTP header
|
|
* New URI "/tools/metrics" to dynamically enable/disable the collection of metrics
|
|
* New URI "/tools/metrics-prometheus" to retrieve metrics using Prometheus text format
|
|
* URI "/peers?expand" provides more information about the peers
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions in the SDK:
|
|
- OrthancPluginSetMetricsValue() to set the value of a metrics
|
|
- OrthancPluginRegisterRefreshMetricsCallback() to ask to refresh metrics
|
|
- OrthancPluginEncodeDicomWebJson() to convert DICOM to "application/dicom+json"
|
|
- OrthancPluginEncodeDicomWebXml() to convert DICOM to "application/dicom+xml"
|
|
* New extensions in the database SDK: LookupResourceAndParent and GetAllMetadata
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Fix regression if calling "/tools/find" with the tag "ModalitiesInStudy"
|
|
* Fix build with unpatched versions of Civetweb (missing "mg_disable_keep_alive()")
|
|
* Fix issue #130 (Orthanc failed to start when /tmp partition was full)
|
|
|
|
|
|
Version 1.5.3 (2019-01-25)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New configuration option: "SaveJobs" to specify whether jobs are stored in the database
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Don't return tags whose group is below 0x0008 in C-FIND SCP answers
|
|
* Fix compatibility with DICOMweb plugin (allow multipart answers over HTTP Keep-Alive)
|
|
* Fix issue #73 (/modalities/{modalityId}/store raises 500 errors instead of 404)
|
|
* Fix issue #90 (C-Find shall match missing tags to null/empty string)
|
|
* Fix issue #119 (/patients/.../archive returns a 500 when JobsHistorySize is 0)
|
|
* Fix issue #128 (Asynchronous C-MOVE: invalid number of remaining sub-operations)
|
|
|
|
|
|
Version 1.5.2 (2019-01-18)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* CivetWeb is now the default embedded HTTP server (instead of Mongoose)
|
|
* New configuration option: "TcpNoDelay" to disable Nagle's algorithm in HTTP server
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 1.3
|
|
* More consistent handling of the "Last" field returned by the "/changes" URI
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New primitives to speed up databases (custom index plugins)
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Ignore tags whose group is below 0x0008 in C-FIND SCP requests
|
|
* Compatibility with DCMTK 3.6.4
|
|
* Fix issue #21 (DICOM files missing after uploading with Firefox)
|
|
* Fix issue #32 (HTTP keep-alive is now enabled by default)
|
|
* Fix issue #58 (Patient recycling order should be defined by their received last instance)
|
|
* Fix issue #118 (Wording in Configuration.json regarding SynchronousCMove)
|
|
* Fix issue #124 (GET /studies/ID/media fails for certain dicom file)
|
|
* Fix issue #125 (Mongoose: /instances/{id} returns 500 on invalid HTTP Method)
|
|
* Fixed Orthanc Explorer on IE and Firefox: Explorer always show "too many results"
|
|
and it's therefore impossible to browse the content
|
|
* Upgraded dependencies for static and Windows builds:
|
|
- civetweb 1.11
|
|
|
|
|
|
Version 1.5.1 (2018-12-20)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Optimization: On C-FIND, avoid accessing the storage area whenever possible
|
|
* New configuration option:
|
|
- "StorageAccessOnFind" to rule the access to the storage area during C-FIND
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Removal of the "AllowFindSopClassesInStudy" old configuration option
|
|
* "/tools/create-dicom" is more tolerant wrt. invalid specific character set
|
|
|
|
|
|
Version 1.5.0 (2018-12-10)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Possibility to restrict the allowed DICOM commands for each modality
|
|
* The Orthanc configuration file can use environment variables
|
|
* New configuration options:
|
|
- "DicomModalitiesInDatabase" to store the definitions of modalities in the database
|
|
- "OrthancPeersInDatabase" to store the definitions of Orthanc peers in the database
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* The first screen of Orthanc Explorer is now a form to do studies lookups
|
|
* Support of large databases, by limiting the results to 100 patients or studies
|
|
|
|
REST API
|
|
--------
|
|
|
|
* API version has been upgraded to 1.2
|
|
* Asynchronous generation of ZIP archives and DICOM medias
|
|
* New URI: "/studies/.../merge" to merge a study
|
|
* New URI: "/studies/.../split" to split a study
|
|
* POST-ing a DICOM file to "/instances" also answers the patient/study/series ID
|
|
* GET "/modalities/?expand" now returns a JSON object instead of a JSON array
|
|
* New "Details" field in HTTP answers on error (cf. "HttpDescribeErrors" option)
|
|
* New options to URI "/queries/.../answers": "?expand" and "?simplify"
|
|
* New URIs to launch new C-FIND to explore the hierarchy of a C-FIND answer:
|
|
- "/queries/.../answers/.../query-instances" to C-FIND child instances
|
|
- "/queries/.../answers/.../query-series" to C-FIND child series
|
|
- "/queries/.../answers/.../query-studies" to C-FIND child studies
|
|
* New "DicomDiskSize" and "DicomUncompressedSize" fields in statistics about resources
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions in the SDK:
|
|
- "OrthancPluginSetHttpErrorDetails()"
|
|
- "OrthancPluginAutodetectMimeType()"
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* "SynchronousCMove" is now "true" by default
|
|
* New modality manufacturer: "GE" for GE Healthcare EA and AW
|
|
* Executing a query/retrieve from the REST API now creates a job
|
|
* Fix: Closing DICOM associations after running query/retrieve from REST API
|
|
* Fix: Allow creation of MONOCHROME1 grayscale images in tools/create-dicom
|
|
* Remove invalid characters from badly-encoded UTF-8 strings (impacts PostgreSQL)
|
|
* Orthanc starts even if jobs from a previous execution cannot be unserialized
|
|
* New CMake option "ENABLE_DCMTK_LOG" to disable logging internal to DCMTK
|
|
* Fix issue 114 (Boost 1.68 doesn't support SHA-1 anymore)
|
|
* Support of "JobsHistorySize" set to zero
|
|
* Upgraded dependencies for static and Windows builds:
|
|
- boost 1.68.0
|
|
- lua 5.3.5
|
|
|
|
|
|
Version 1.4.2 (2018-09-20)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* "OrthancPeers" configuration option now allows one to specify HTTP headers
|
|
* New main DICOM tag: "ImageOrientationPatient" at the instance level
|
|
* New configuration options:
|
|
- "HttpVerbose" to debug outgoing HTTP connections
|
|
- "OverwriteInstances" to choose how duplicate SOPInstanceUID are handled
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* Query/retrieve: Added button for "DX" modality
|
|
|
|
REST API
|
|
--------
|
|
|
|
* "/tools/reconstruct" to reconstruct the main DICOM tags, the JSON summary and
|
|
the metadata of all the instances stored in Orthanc. This is a slow operation!
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New primitives to access Orthanc peers from plugins
|
|
* New events in change callbacks: "UpdatedPeers" and "UpdatedModalities"
|
|
* New primitives to handle jobs from plugins: "OrthancPluginSubmitJob()"
|
|
and "OrthancPluginRegisterJobsUnserializer()"
|
|
|
|
Lua
|
|
---
|
|
|
|
* IncomingWorklistRequestFilter() to filter incoming C-FIND worklist queries
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Fix "/series/.../ordered-slices" in the presence of non-parallel slices
|
|
* Fix incoming DICOM C-Store filtering for JPEG-LS transfer syntaxes
|
|
* Fix OrthancPluginHttpClient() to return the HTTP status on errors
|
|
* Fix HTTPS requests to sites using a certificate encrypted with ECDSA
|
|
* Fix handling of incoming C-FIND queries containing Generic Group Length (*, 0x0000)
|
|
* Fix issue 54 (quoting multipart answers), for OsiriX compatibility through DICOMweb
|
|
* Fix issue 98 (DCMTK configuration fails with GCC 6.4.0 on Alpine)
|
|
* Fix issue 99 (PamWriter test segfaults on alpine linux with gcc 6.4.0)
|
|
|
|
|
|
Version 1.4.1 (2018-07-17)
|
|
==========================
|
|
|
|
* Fix deadlock in Lua scripting
|
|
* Simplification to the "DatabaseWrapper" class
|
|
|
|
|
|
Version 1.4.0 (2018-07-13)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* New advanced job engine
|
|
* New configuration options:
|
|
- "ConcurrentJobs": Max number of jobs that are simultaneously running
|
|
- "SynchronousCMove": Whether to run DICOM C-Move operations synchronously
|
|
- "JobsHistorySize": Max number of completed jobs that are kept in memory
|
|
* New metadata automatically computed at the instance level:
|
|
"RemoteIp", "CalledAet" and "HttpUsername"
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* New screen listing all the available studies
|
|
|
|
REST API
|
|
--------
|
|
|
|
* "/jobs/..." to manage the jobs from the REST API
|
|
* New option "?short" to list DICOM tags using their hexadecimal ID in:
|
|
- "/instances/.../tags?short"
|
|
- "/instances/.../header?short"
|
|
- "/{patients|studies|series}/.../instances-tags?short"
|
|
- "/{patients|studies|series}/.../shared-tags?short"
|
|
- "/{patients|studies|series|instances}/.../module?short"
|
|
- "/studies/.../module-patient?short"
|
|
* "/instances/.../tags" URI was returning only the first value of
|
|
DicomTags containing multiple numerical value. It now returns all
|
|
values in a string separated by \\ (i.e.: "1\\2\\3"). Note that,
|
|
for data already in Orthanc, you'll need to reconstruct the data by
|
|
sending a POST request to the ".../reconstruct" URI. This change
|
|
triggered an update of ORTHANC_API_VERSION from 1.0 to 1.1
|
|
* "/instances/.../frame/../image-uint8 and friends now accepts a
|
|
"image/pam" MIME type to retrieve images in PAM format
|
|
(https://en.wikipedia.org/wiki/Netpbm#PAM_graphics_format)
|
|
* New option "?expand" to "/instances/.../metadata"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New primitive in database SDK: "lookupIdentifierRange" to speed up range searches
|
|
* New function in the SDK: "OrthancPluginCheckVersionAdvanced()"
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Configuration option "LogExportedResources" is now "false" by default
|
|
* Header "OrthancCppDatabasePlugin.h" is now part of the "orthanc-databases" project
|
|
* Fix generation of DICOMDIR if PatientID is empty
|
|
* Fix issue 25 (Deadlock with Lua scripts): The event queue is now implemented for Lua
|
|
* Fix issue 94 (Instance modification should not modify FrameOfReferenceUID)
|
|
* Fix issue 77 (Lua access to REST-API is null terminated)
|
|
* Fix memory leak introduced by changeset #99116ed6f38c in Orthanc 1.3.2
|
|
* Upgraded dependencies for static and Windows builds:
|
|
- boost 1.67.0
|
|
- openssl 1.0.2o
|
|
|
|
|
|
Version 1.3.2 (2018-04-18)
|
|
==========================
|
|
|
|
REST API
|
|
--------
|
|
|
|
* "/system" URI returns the version of the Orthanc REST API
|
|
* "/tools/now" returns the current UTC (universal) time
|
|
* "/tools/now-local" returns the curent local time.
|
|
This was the behavior of "/tools/now" until release 1.3.1.
|
|
* Added "?expand" GET argument to "/peers" and "/modalities" routes
|
|
* New URI: "/tools/create-media-extended" to generate a DICOMDIR
|
|
archive from several resources, including additional type-3 tags
|
|
* Preservation of UID relationships while anonymizing
|
|
|
|
Lua
|
|
---
|
|
|
|
* New CMake option: "-DENABLE_LUA_MODULES=ON" to enable support for
|
|
loading external Lua modules if the Lua engine is statically linked
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New error code: DatabaseUnavailable
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Orthanc now uses UTC (universal time) instead of local time in its database
|
|
* Fix to allow creating DICOM instances with empty Specific Character Set (0008,0005)
|
|
* Support of Linux Standard Base
|
|
* Static linking against libuuid (from e2fsprogs)
|
|
* Fix static build on CentOS 6
|
|
* Possibility of using JsonCpp 0.10.6 if the compiler does not support C++11
|
|
with the "-DUSE_LEGACY_JSONCPP=ON" CMake option
|
|
* Upgraded dependencies for static and Windows builds:
|
|
- boost 1.66.0
|
|
- curl 7.57.0
|
|
- jsoncpp 1.8.4
|
|
- zlib 1.2.11
|
|
|
|
|
|
Version 1.3.1 (2017-11-29)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Built-in decoding of palette images
|
|
|
|
REST API
|
|
--------
|
|
|
|
* New URI: "/instances/.../frames/.../raw.gz" to compress raw frames using gzip
|
|
* New argument "ignore-length" to force the inclusion of too long tags in JSON
|
|
* New argument "/.../media?extended" to include additional type-3 tags in DICOMDIR
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New pixel formats exposed in SDK: BGRA32, Float32, Grayscale32, RGB48
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Creation of ./Resources/CMake/OrthancFramework*.cmake to reuse the Orthanc
|
|
C++ framework in other projects
|
|
* New security-related options: "DicomAlwaysAllowEcho"
|
|
* Use "GBK" (frequently used in China) as an alias for "GB18030"
|
|
* Experimental support of actively maintained Civetweb to replace Mongoose 3.8
|
|
* Fix issue 31 for good (create new modality types for Philips ADW, GE Xeleris, GE AWServer)
|
|
* Fix issue 64 (OpenBSD support)
|
|
* Fix static compilation of DCMTK 3.6.2 on Fedora
|
|
* Upgrade to Boost 1.65.1 in static builds
|
|
* Upgrade to SQLite amalgamation 3.21.0 in static builds
|
|
|
|
|
|
Version 1.3.0 (2017-07-19)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Orthanc now anonymizes according to Basic Profile of PS 3.15-2017c Table E.1-1
|
|
* In the "DicomModalities" configuration:
|
|
- Manufacturer type MedInria is now obsolete
|
|
- Manufacturer types AgfaImpax and SyngoVia are obsolete too
|
|
(use GenericNoWildcardInDates instead)
|
|
- Obsolete manufacturers are still accepted but might disappear in the future
|
|
- Added new manufacturer: GenericNoUniversalWildcard to replace all '*' by '' in
|
|
outgoing C-Find requests
|
|
* New security-related options: "DicomAlwaysAllowStore" and "DicomCheckModalityHost"
|
|
|
|
REST API
|
|
--------
|
|
|
|
* Argument "Since" in URI "/tools/find" (related to issue 53)
|
|
* Argument "DicomVersion" in URIs "/{...}/{...}/anonymization"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New function: "OrthancPluginRegisterIncomingHttpRequestFilter2()"
|
|
|
|
Lua
|
|
---
|
|
|
|
* Added HTTP headers support for Lua HttpPost/HttpGet/HttpPut/HttpDelete
|
|
|
|
Orthanc Explorer
|
|
----------------
|
|
|
|
* Query/retrieve: Added button for "DR" modality
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Ability to retrieve raw frames encoded as unsigned 32-bits integers
|
|
* Fix issue 29 (more consistent handling of the "--upgrade" argument)
|
|
* Fix issue 31 (create new modality types for Philips ADW, GE Xeleris, GE AWServer)
|
|
* Fix issue 35 (AET name is not transferred to Orthanc using DCMTK 3.6.0)
|
|
* Fix issue 44 (bad interpretation of photometric interpretation MONOCHROME1)
|
|
* Fix issue 45 (crash when providing a folder to "--config" command-line option)
|
|
* Fix issue 46 (PHI remaining after anonymization)
|
|
* Fix issue 49 (worklists: accentuated characters are removed from C-Find responses)
|
|
* Fix issue 52 (DICOM level security association problems)
|
|
* Fix issue 55 (modification/anonymization of tags that might break the database
|
|
model now requires the "Force" parameter to be set to "true" in the query)
|
|
* Fix issue 56 (case-insensitive matching over accents)
|
|
* Fix Debian #865606 (orthanc FTBFS with libdcmtk-dev 3.6.1~20170228-2)
|
|
* Fix XSS inside DICOM in Orthanc Explorer (as reported by Victor Pasnkel, Morphus Labs)
|
|
* Upgrade to DCMTK 3.6.2 in static builds (released on 2017-07-17)
|
|
* Upgrade to Boost 1.64.0 in static builds
|
|
* New advanced "Locale" configuration option
|
|
* Removed configuration option "USE_DCMTK_361_PRIVATE_DIC"
|
|
|
|
|
|
Version 1.2.0 (2016/12/13)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Handling of private tags/creators in the "Dictionary" configuration option
|
|
* New configuration options: "LoadPrivateDictionary", "DicomScuTimeout" and "DicomScpTimeout"
|
|
* New metadata automatically computed at the instance level: "TransferSyntax" and "SopClassUid"
|
|
|
|
REST API
|
|
--------
|
|
|
|
* "/tools/invalidate-tags" to invalidate the JSON summary of all the DICOM files
|
|
(useful if private tags are registered, or if changing the default encoding)
|
|
* "Permissive" flag for URI "/modalities/{...}/store" to ignore C-STORE transfer errors
|
|
* "Asynchronous" flag for URIs "/modalities/{...}/store" and "/peers/{...}/store"
|
|
to avoid waiting for the completion of image transfers
|
|
* Possibility to DELETE "dicom-as-json" attachments to reconstruct the JSON summaries
|
|
(useful if "Dictionary" has changed)
|
|
* "Keep" option for modifications to keep original DICOM identifiers (advanced feature)
|
|
* "/tools/default-encoding" to get or temporarily change the default encoding
|
|
* "/{resource}/{id}/reconstruct" to reconstruct the main DICOM tags, the JSON summary and
|
|
the metadata of a resource (useful to compute new metadata, or if using "Keep" above)
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New function: "OrthancPluginRegisterPrivateDictionaryTag()" to register private tags
|
|
* More control over client cache in the ServeFolders plugin
|
|
* New C++ help wrappers in "Plugins/Samples/Common/" to read DICOM datasets from REST API
|
|
* New data structure: "OrthancPluginFindMatcher" to match DICOM against C-FIND queries
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Fix handling of encodings in C-FIND requests (including for worklists)
|
|
* Use of DCMTK 3.6.1 dictionary of private tags in standalone builds
|
|
* Avoid hard crash if not enough memory (handling of std::bad_alloc)
|
|
* Improved robustness of Orthanc Explorer wrt. query/retrieve (maybe fix issue 24)
|
|
* Fix serious performance issue with C-FIND
|
|
* Fix extraction of the symbolic name of the private tags
|
|
* Performance warning if runtime debug assertions are turned on
|
|
* Improved robustness against files with no PatientID
|
|
* Upgrade to curl 7.50.3 for static and Windows builds
|
|
* Content-Type for JSON documents is now "application/json; charset=utf-8"
|
|
* Ignore "Group Length" tags in C-FIND queries
|
|
* Fix handling of worklist SCP with ReferencedStudySequence and ReferencedPatientSequence
|
|
* Fix handling of Move Originator AET and ID in C-MOVE SCP
|
|
* Fix vulnerability ZSL-2016-5379 "Unquoted Service Path Privilege Escalation" in the
|
|
Windows service
|
|
* Fix vulnerability ZSL-2016-5380 "Remote Memory Corruption Vulnerability" in DCMTK 3.6.0
|
|
|
|
|
|
Version 1.1.0 (2016/06/27)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* HTTPS client certificates can be associated with Orthanc peers to enhance security over Internet
|
|
* Possibility to use PKCS#11 authentication for hardware security modules with Orthanc peers
|
|
* New command-line option "--logfile" to output the Orthanc log to the given file
|
|
* Support of SIGHUP signal (restart Orthanc only if the configuration files have changed)
|
|
|
|
REST API
|
|
--------
|
|
|
|
* New URI: "/instances/.../frames/.../raw" to access the raw frames (bypass image decoding)
|
|
* New URI "/modalities/.../move" to issue C-MOVE SCU requests
|
|
* "MoveOriginatorID" can be specified for "/modalities/.../store"
|
|
|
|
Dicom protocol
|
|
--------------
|
|
|
|
* Support of optional tags for counting resources in C-FIND:
|
|
0008-0061, 0008-0062, 0020-1200, 0020-1202, 0020-1204, 0020-1206, 0020-1208, 0020-1209
|
|
* Support of Move Originator Message ID (0000,1031) in C-STORE responses driven by C-MOVE
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* Speedup in plugins by removing unnecessary locks
|
|
* New callback to filter incoming HTTP requests: OrthancPluginRegisterIncomingHttpRequestFilter()
|
|
* New callback to handle non-worklists C-FIND requests: OrthancPluginRegisterFindCallback()
|
|
* New callback to handle C-MOVE requests: OrthancPluginRegisterMoveCallback()
|
|
* New function: "OrthancPluginHttpClient()" to do HTTP requests with full control
|
|
* New function: "OrthancPluginGenerateUuid()" to generate a UUID
|
|
* More than one custom image decoder can be installed (e.g. to handle different transfer syntaxes)
|
|
|
|
Lua
|
|
---
|
|
|
|
* Possibility to dynamically fix outgoing C-FIND requests using "OutgoingFindRequestFilter()"
|
|
* Access to the HTTP headers in the "IncomingHttpRequestFilter()" callback
|
|
|
|
Image decoding
|
|
--------------
|
|
|
|
* Huge speedup if decoding the family of JPEG transfer syntaxes
|
|
* Refactoring leading to speedups with custom image decoders (including Web viewer plugin)
|
|
* Support decoding of RLE Lossless transfer syntax
|
|
* Support of signed 16bpp images in ParsedDicomFile
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* New logo of Orthanc
|
|
* Fix issue 11 (is_regular_file() fails for FILE_ATTRIBUTE_REPARSE_POINT)
|
|
* Fix issue 16 ("Limit" parameter error in REST API /tools/find method)
|
|
* Fix of Debian bug #818512 ("FTBFS: Please install libdcmtk*-dev")
|
|
* Fix of Debian bug #823139 ("orthanc: Please provide RecoverCompressedFile.cpp")
|
|
* Replaced "localhost" by "127.0.0.1", as it might impact performance on Windows
|
|
* Compatibility with CMake >= 3.5.0
|
|
* Possibility to use forthcoming DCMTK 3.6.1 in static builds (instead of 3.6.0)
|
|
* Upgrade to Boost 1.60.0 for static builds
|
|
* Use of HTTP status 403 Forbidden (instead of 401) if access to a REST resource is disallowed
|
|
* Option "HttpsVerifyPeers" can be used to connect against self-signed HTTPS certificates
|
|
* New configuration option "AllowFindSopClassesInStudy"
|
|
* Macro "__linux" (now obsolete) replaced by macro "__linux__" (maybe solves Debian bug #821011)
|
|
* Modification of instances can now replace PixelData (resp. EncapsulatedDocument) with
|
|
provided a PNG/JPEG image (resp. PDF file) if it is encoded using Data URI Scheme
|
|
* Dropped support of Google Log
|
|
|
|
|
|
Version 1.0.0 (2015/12/15)
|
|
==========================
|
|
|
|
* Lua: "IncomingFindRequestFilter()" to apply filters to incoming C-FIND requests
|
|
* New function in plugin SDK: "OrthancPluginSendMultipartItem2()"
|
|
* Fix of DICOMDIR generation with DCMTK 3.6.1, support of encodings
|
|
* Fix range search if the lower or upper limit is absent
|
|
* Fix modality worklists lookups if tags with UN (unknown) VR are present
|
|
* Warn about badly formatted modality/peer definitions in configuration file at startup
|
|
|
|
|
|
Version 0.9.6 (2015/12/08)
|
|
==========================
|
|
|
|
* Promiscuous mode (accept unknown SOP class UID) is now turned off by default
|
|
* Fix serialization of DICOM buffers that might contain garbage trailing
|
|
* Fix modality worklists server if some fields are null
|
|
* More tolerant "/series/.../ordered-slices" with broken series
|
|
* Improved logging information if upgrade fails
|
|
* Fix formatting of multipart HTTP answers (bis)
|
|
|
|
|
|
Version 0.9.5 (2015/12/02)
|
|
==========================
|
|
|
|
Major
|
|
-----
|
|
|
|
* Experimental support of DICOM C-FIND SCP for modality worklists through plugins
|
|
* Support of DICOM C-FIND SCU for modality worklists ("/modalities/{dicom}/find-worklist")
|
|
|
|
REST API
|
|
--------
|
|
|
|
* New URIs:
|
|
- "/series/.../ordered-slices" to order the slices of a 2D+t or 3D series
|
|
- "/tools/shutdown" to stop Orthanc from the REST API
|
|
- ".../compress", ".../uncompress" and ".../is-compressed" for attachments
|
|
- "/tools/create-archive" to create ZIP from a set of resources
|
|
- "/tools/create-media" to create ZIP+DICOMDIR from a set of resources
|
|
- "/instances/.../header" to get the meta information (header) of the DICOM instance
|
|
* "/tools/create-dicom":
|
|
- Support of binary tags encoded using data URI scheme
|
|
- Support of hierarchical structures (creation of sequences)
|
|
- Create tags with unknown VR
|
|
* "/modify" can insert/modify sequences
|
|
* ".../preview" and ".../image-uint8" can return JPEG images if the HTTP Accept Header asks so
|
|
* "Origin" metadata for the instances
|
|
|
|
Minor
|
|
-----
|
|
|
|
* New configuration options:
|
|
- "UnknownSopClassAccepted" to disable promiscuous mode (accept unknown SOP class UID)
|
|
- New configuration option: "Dictionary" to declare custom DICOM tags
|
|
* Add ".dcm" suffix to files in ZIP archives (cf. URI ".../archive")
|
|
* MIME content type can be associated to custom attachments (cf. "UserContentType")
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions:
|
|
- "OrthancPluginRegisterDecodeImageCallback()" to replace the built-in image decoder
|
|
- "OrthancPluginDicomInstanceToJson()" to convert DICOM to JSON
|
|
- "OrthancPluginDicomBufferToJson()" to convert DICOM to JSON
|
|
- "OrthancPluginRegisterErrorCode()" to declare custom error codes
|
|
- "OrthancPluginRegisterDictionaryTag()" to declare custom DICOM tags
|
|
- "OrthancPluginLookupDictionary()" to get information about some DICOM tag
|
|
- "OrthancPluginRestApiGet2()" to provide HTTP headers when calling Orthanc API
|
|
- "OrthancPluginGetInstanceOrigin()" to know through which mechanism an instance was received
|
|
- "OrthancPluginCreateImage()" and "OrthancPluginCreateImageAccessor()" to create images
|
|
- "OrthancPluginDecodeDicomImage()" to decode DICOM images
|
|
- "OrthancPluginComputeMd5()" and "OrthancPluginComputeSha1()" to compute MD5/SHA-1 hash
|
|
* New events in change callbacks:
|
|
- "OrthancStarted"
|
|
- "OrthancStopped"
|
|
- "UpdatedAttachment"
|
|
- "UpdatedMetadata"
|
|
* "/system" URI gives information about the plugins used for storage area and DB back-end
|
|
* Plugin callbacks must now return explicit "OrthancPluginErrorCode" (instead of integers)
|
|
|
|
Lua
|
|
---
|
|
|
|
* Optional argument "keepStrings" in "DumpJson()"
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Full indexation of the patient/study tags to speed up searches and C-FIND
|
|
* Many refactorings, notably of the searching features and of the image decoding
|
|
* C-MOVE SCP for studies using AccessionNumber tag
|
|
* Fix issue 4 (C-STORE Association not renegotiated on Specific-to-specific transfer syntax change)
|
|
* Fix formatting of multipart HTTP answers
|
|
* "--logdir" flag creates a single log file instead of 3 separate files for errors/warnings/infos
|
|
* "--errors" flag lists the error codes that could be returned by Orthanc
|
|
* Under Windows, the exit status of Orthanc corresponds to the encountered error code
|
|
* New "AgfaImpax", "EFilm2" and "Vitrea" modality manufacturers
|
|
* C-FIND SCP will return tags with sequence value representation
|
|
* Upgrade to Boost 1.59.0 for static builds
|
|
|
|
|
|
Version 0.9.4 (2015/09/16)
|
|
==========================
|
|
|
|
* Preview of PDF files encapsulated in DICOM from Orthanc Explorer
|
|
* Creation of DICOM files with encapsulated PDF through "/tools/create-dicom"
|
|
* "limit" and "since" arguments while retrieving DICOM resources in the REST API
|
|
* Support of "deflate" and "gzip" content-types in HTTP requests
|
|
* Options to validate peers against CA certificates in HTTPS requests
|
|
* New configuration option: "HttpTimeout" to set the default timeout for HTTP requests
|
|
|
|
Lua
|
|
---
|
|
|
|
* More information about the origin request in the "OnStoredInstance()" and
|
|
"ReceivedInstanceFilter()" callbacks. WARNING: This can result in
|
|
incompatibilities wrt. previous versions of Orthanc.
|
|
* New function "GetOrthancConfiguration()" to get the Orthanc configuration
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* New functions to compress/uncompress images using PNG and JPEG
|
|
* New functions to issue HTTP requests from plugins
|
|
* New function "OrthancPluginBufferCompression()" to (un)compress memory buffers
|
|
* New function "OrthancPluginReadFile()" to read files from the filesystem
|
|
* New function "OrthancPluginWriteFile()" to write files to the filesystem
|
|
* New function "OrthancPluginGetErrorDescription()" to convert error codes to strings
|
|
* New function "OrthancPluginSendHttpStatus()" to send HTTP status with a body
|
|
* New function "OrthancPluginRegisterRestCallbackNoLock()" for high-performance plugins
|
|
* Plugins have access to explicit error codes
|
|
* Improvements to the sample "ServeFolders" plugin
|
|
* Primitives to upgrade the database version in plugins
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Many code refactorings
|
|
* Improved error codes (no more custom descriptions in exceptions)
|
|
* If error while calling the REST API, the answer body contains description of the error
|
|
(this feature can be disabled with the "HttpDescribeErrors" option)
|
|
* Upgrade to curl 7.44.0 for static and Windows builds
|
|
* Upgrade to openssl 1.0.2d for static and Windows builds
|
|
* Depends on libjpeg 9a
|
|
* Bypass zlib uncompression if "StorageCompression" is enabled and HTTP client supports deflate
|
|
|
|
|
|
Version 0.9.3 (2015/08/07)
|
|
==========================
|
|
|
|
* C-Echo testing can be triggered from Orthanc Explorer (in the query/retrieve page)
|
|
* Removal of the dependency upon Google Log, Orthanc now uses its internal logger
|
|
(use -DENABLE_GOOGLE_LOG=ON to re-enable Google Log)
|
|
* Upgrade to JsonCpp 0.10.5 for static and Windows builds
|
|
|
|
|
|
Version 0.9.2 (2015/08/02)
|
|
==========================
|
|
|
|
* Upgrade to Boost 1.58.0 for static and Windows builds
|
|
* Source code repository moved from Google Code to BitBucket
|
|
* Inject version information into Windows binaries
|
|
* Fix access to binary data in HTTP/REST requests by Lua scripts
|
|
* Fix potential deadlock in the callbacks of plugins
|
|
|
|
|
|
Version 0.9.1 (2015/07/02)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* The configuration can be splitted into several files stored inside the same folder
|
|
* Custom setting of the local AET during C-STORE SCU (both in Lua and in the REST API)
|
|
* Many code refactorings
|
|
|
|
Lua
|
|
---
|
|
|
|
* Access to the REST API of Orthanc (RestApiGet, RestApiPost, RestApiPut, RestApiDelete)
|
|
* Functions to convert between Lua values and JSON strings: "ParseJson" and "DumpJson"
|
|
* New events: "OnStablePatient", "OnStableStudy", "OnStableSeries", "Initialize", "Finalize"
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* Plugins can retrieve the configuration file directly as a JSON string
|
|
* Plugins can send answers as multipart messages
|
|
|
|
Fixes
|
|
-----
|
|
|
|
* Fix compatibility issues for C-FIND SCU to Siemens Syngo.Via modalities SCP
|
|
* Fix issue 15 (Lua scripts making HTTP requests)
|
|
* Fix issue 35 (Characters in PatientID string are not protected for C-FIND)
|
|
* Fix issue 37 (Hyphens trigger range query even if datatype does not support ranges)
|
|
|
|
|
|
Version 0.9.0 (2015/06/03)
|
|
==========================
|
|
|
|
Major
|
|
-----
|
|
|
|
* DICOM Query/Retrieve available from Orthanc Explorer
|
|
* C-MOVE SCU and C-FIND SCU are accessible through the REST API
|
|
* "?expand" flag for URIs "/patients", "/studies" and "/series"
|
|
* "/tools/find" URI to search for DICOM resources from REST
|
|
* Support of FreeBSD
|
|
* The "Orthanc Client" SDK is now a separate project
|
|
|
|
Minor
|
|
-----
|
|
|
|
* Speed-up in Orthanc Explorer for large amount of images
|
|
* Speed-up of the C-FIND SCP server of Orthanc
|
|
* Allow replacing PatientID/StudyInstanceUID/SeriesInstanceUID from Lua scripts
|
|
* Option "CaseSensitivePN" to enable case-insensitive C-FIND SCP
|
|
|
|
Fixes
|
|
-----
|
|
|
|
* Prevent freeze on C-FIND if no DICOM tag is to be returned
|
|
* Fix slow C-STORE SCP on recent versions of GNU/Linux, if
|
|
USE_SYSTEM_DCMTK is set to OFF (http://forum.dcmtk.org/viewtopic.php?f=1&t=4009)
|
|
* Fix issue 30 (QR response missing "Query/Retrieve Level" (008,0052))
|
|
* Fix issue 32 (Cyrillic symbols): Introduction of the "Windows1251" encoding
|
|
* Plugins now receive duplicated GET arguments in their REST callbacks
|
|
|
|
|
|
Version 0.8.6 (2015/02/12)
|
|
==========================
|
|
|
|
Major
|
|
-----
|
|
|
|
* URIs to get all the parents of a given resource in a single REST call
|
|
* Instances without PatientID are now allowed
|
|
* Support of HTTP proxy to access Orthanc peers
|
|
|
|
Minor
|
|
-----
|
|
|
|
* Support of Tudor DICOM in Query/Retrieve
|
|
* More flexible "/modify" and "/anonymize" for single instance
|
|
* Access to called AET and remote AET from Lua scripts ("OnStoredInstance")
|
|
* Option "DicomAssociationCloseDelay" to set delay before closing DICOM association
|
|
* ZIP archives now display the accession number of the studies
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* Introspection of plugins (cf. the "/plugins" URI)
|
|
* Plugins can access the command-line arguments used to launch Orthanc
|
|
* Plugins can extend Orthanc Explorer with custom JavaScript
|
|
* Plugins can get/set global properties to save their configuration
|
|
* Plugins can do REST calls to other plugins (cf. "xxxAfterPlugins()")
|
|
* Scan of folders for plugins
|
|
|
|
Fixes
|
|
-----
|
|
|
|
* Code refactorings
|
|
* Fix issue 25 (AET with underscore not allowed)
|
|
* Fix replacement and insertion of private DICOM tags
|
|
* Fix anonymization generating non-portable DICOM files
|
|
|
|
|
|
Version 0.8.5 (2014/11/04)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Major speed-up thanks to a new database schema
|
|
* Plugins can monitor changes through callbacks
|
|
* Download ZIP + DICOMDIR from Orthanc Explorer
|
|
* Sample plugin framework to serve static resources (./Plugins/Samples/WebSkeleton/)
|
|
|
|
Fixes
|
|
-----
|
|
|
|
* Fix issue 19 (YBR_FULL are decoded incorrectly)
|
|
* Fix issue 21 (Microsoft Visual Studio precompiled headers)
|
|
* Fix issue 22 (Error decoding multi-frame instances)
|
|
* Fix issue 24 (Build fails on OSX when directory has .DS_Store files)
|
|
* Fix crash when bad HTTP credentials are provided
|
|
|
|
|
|
Version 0.8.4 (2014/09/19)
|
|
==========================
|
|
|
|
* "/instances-tags" to get the tags of all the child instances of a
|
|
patient/study/series with a single REST call (bulk tags retrieval)
|
|
* Configuration/Lua to select the accepted C-STORE SCP transfer syntaxes
|
|
* Fix reporting of errors in Orthanc Explorer when sending images to peers/modalities
|
|
* Installation of plugin SDK in CMake
|
|
|
|
|
|
Version 0.8.3 (2014/09/11)
|
|
==========================
|
|
|
|
Major
|
|
-----
|
|
|
|
* Creation of ZIP archives for media storage, with DICOMDIR
|
|
* URIs to get all the children of a given resource in a single REST call
|
|
* "/tools/lookup" URI to map DICOM UIDs to Orthanc identifiers
|
|
* Support of index-only mode (using the "StoreDicom" option)
|
|
* Plugins can implement a custom storage area
|
|
|
|
Minor
|
|
-----
|
|
|
|
* Configuration option to enable HTTP Keep-Alive
|
|
* Configuration option to disable the logging of exported resources in "/exports"
|
|
* Plugins can retrieve the path to Orthanc and to its configuration file
|
|
* "/tools/create-dicom" now accepts the "PatientID" DICOM tag (+ updated sample)
|
|
* Possibility to set HTTP headers from plugins
|
|
* "LastUpdate" metadata is now always returned for patients, studies and series
|
|
|
|
Maintenance
|
|
-----------
|
|
|
|
* Refactoring of HttpOutput ("Content-Length" header is now always sent)
|
|
* Upgrade to Mongoose 3.8
|
|
* Fixes for Visual Studio 2013 and Windows 64bit
|
|
* Fix issue 16: Handling of "AT" value representations in JSON
|
|
* Fix issue 17
|
|
|
|
|
|
Version 0.8.2 (2014/08/07)
|
|
==========================
|
|
|
|
* Support of the standard text encodings
|
|
* Hot restart of Orthanc by posting to "/tools/reset"
|
|
* More fault-tolerant commands in Lua scripts
|
|
* Parameter to set the default encoding for DICOM files without SpecificCharacterSet
|
|
* Fix of issue #14 (support of XCode 5.1)
|
|
* Upgrade to Google Test 1.7.0
|
|
|
|
|
|
Version 0.8.1 (2014/07/29)
|
|
==========================
|
|
|
|
General
|
|
-------
|
|
|
|
* Access patient module at the study level to cope with PatientID collisions
|
|
* On-the-fly conversion of JSON to XML according to the HTTP Accept header
|
|
* C-Echo SCU in the REST API
|
|
* DICOM conformance statement available at URI "/tools/dicom-conformance"
|
|
|
|
Lua scripts
|
|
-----------
|
|
|
|
* Lua scripts can do HTTP requests, and thus can call Web services
|
|
* Lua scripts can invoke system commands, with CallSystem()
|
|
|
|
Plugins
|
|
-------
|
|
|
|
* Lookup for DICOM UIDs in the plugin SDK
|
|
* Plugins have access to the HTTP headers and can answer with HTTP status codes
|
|
* Callback to react to the incoming of DICOM instances
|
|
|
|
Fixes
|
|
-----
|
|
|
|
* Fix build of Google Log with Visual Studio >= 11.0
|
|
* Fix automated generation of the list of resource children in the REST API
|
|
|
|
|
|
Version 0.8.0 (2014/07/10)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* Routing images with Lua scripts
|
|
* Introduction of the Orthanc Plugin SDK
|
|
* Official support of OS X (Darwin) 10.8
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* Extraction of tags for the patient/study/series/instance DICOM modules
|
|
* Extraction of the tags shared by all the instances of a patient/study/series
|
|
* Options to limit the number of results for an incoming C-FIND query
|
|
* Support of kFreeBSD
|
|
* Several code refactorings
|
|
* Fix OrthancCppClient::GetVoxelSizeZ()
|
|
|
|
|
|
Version 0.7.6 (2014/06/11)
|
|
==========================
|
|
|
|
* Support of JPEG and JPEG-LS decompression
|
|
* Download DICOM images as Matlab/Octave arrays
|
|
* Precompiled headers for Microsoft Visual Studio
|
|
|
|
|
|
Version 0.7.5 (2014/05/08)
|
|
==========================
|
|
|
|
* Dynamic negotiation of SOP classes for C-STORE SCU
|
|
* Creation of DICOM instances using the REST API
|
|
* Embedding of images within DICOM instances
|
|
* Adding/removal/modification of remote modalities/peers through REST
|
|
* Reuse of the previous SCU connection to avoid unnecessary handshakes
|
|
* Fix problems with anonymization and modification
|
|
* Fix missing licensing terms about reuse of some code from DCMTK
|
|
* Various code refactorings
|
|
|
|
|
|
Version 0.7.4 (2014/04/16)
|
|
==========================
|
|
|
|
* Switch to openssl-1.0.1g in static builds (cf. Heartbleed exploit)
|
|
* Switch to boost 1.55.0 in static builds (to solve compiling errors)
|
|
* Better logging about nonexistent tags
|
|
* Dcm4Chee manufacturer
|
|
* Automatic discovering of the path to the DICOM dictionaries
|
|
* In the "DicomModalities" config, the port number can be a string
|
|
|
|
|
|
Version 0.7.3 (2014/02/14)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* Fixes in the implementation of the C-FIND handler for Query/Retrieve
|
|
* Custom attachment of files to patients, studies, series or instances
|
|
* Access to lowlevel info about the attached files through the REST API
|
|
* Recover pixel data for more transfer syntaxes (notably JPEG)
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* AET comparison is now case-insensitive by default
|
|
* Possibility to disable the HTTP server or the DICOM server
|
|
* Automatic computation of MD5 hashes for the stored DICOM files
|
|
* Maintenance tool to recover DICOM files compressed by Orthanc
|
|
* The newline characters in the configuration file are fixed for GNU/Linux
|
|
* Capture of the SIGTERM signal in GNU/Linux
|
|
|
|
|
|
Version 0.7.2 (2013/11/08)
|
|
==========================
|
|
|
|
* Support of Query/Retrieve from medInria
|
|
* Accept more transfer syntaxes for C-STORE SCP and SCU (notably JPEG)
|
|
* Create the meta-header when receiving files through C-STORE SCP
|
|
* Fixes and improvements thanks to the static analyzer cppcheck
|
|
|
|
|
|
Version 0.7.1 (2013/10/30)
|
|
==========================
|
|
|
|
* Use ZIP64 only when required to improve compatibility (cf. issue #7)
|
|
* Refactoring of the CMake options
|
|
* Fix for big-endian architectures (RedHat bug #985748)
|
|
* Use filenames with 8 characters in ZIP files for maximum compatibility
|
|
* Possibility to build Orthanc inplace (in the source directory)
|
|
|
|
|
|
Version 0.7.0 (2013/10/25)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* DICOM Query/Retrieve is supported
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* Possibility to keep the PatientID during an anonymization
|
|
* Check whether "unzip", "tar" and/or "7-zip" are installed from CMake
|
|
|
|
|
|
Version 0.6.2 (2013/10/04)
|
|
==========================
|
|
|
|
* Build of the C++ client as a shared library
|
|
* Improvements and documentation of the C++ client API
|
|
* Fix of Debian bug #724947 (licensing issue with the SHA-1 library)
|
|
* Switch to Boost 1.54.0 (cf. issue #9)
|
|
* "make uninstall" is now possible
|
|
|
|
|
|
Version 0.6.1 (2013/09/16)
|
|
==========================
|
|
|
|
* Detection of stable patients/studies/series
|
|
* C-FIND SCU at the instance level
|
|
* Link from modified to original resource in Orthanc Explorer
|
|
* Fix of issue #8
|
|
* Anonymization of the medical alerts tag (0010,2000)
|
|
|
|
|
|
Version 0.6.0 (2013/07/16)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* Introduction of the C++ client
|
|
* Send DICOM resources to other Orthanc instances through HTTP
|
|
* Access to signed images (instances/.../image-int16)
|
|
(Closes: Debian #716958)
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* Export of DICOM files to the host filesystem (instances/.../export)
|
|
* Statistics about patients, studies, series and instances
|
|
* Link from anonymized to original resource in Orthanc Explorer
|
|
* Fixes for Red Hat and Debian packaging
|
|
* Fixes for history in Orthanc Explorer
|
|
* Fixes for boost::thread, as reported by Cyril Paulus
|
|
* Fix licensing (Closes: Debian #712038)
|
|
|
|
Metadata
|
|
--------
|
|
|
|
* Access to the metadata through the REST API (.../metadata)
|
|
* Support of user-defined metadata
|
|
* "LastUpdate" metadata for patients, studies and series
|
|
* "/tools/now" to be used in combination with "LastUpdate"
|
|
* Improved support of series with temporal positions
|
|
|
|
|
|
Version 0.5.2 (2013/05/07)
|
|
==========================
|
|
|
|
* "Bulk" Store-SCU (send several DICOM instances with the same
|
|
DICOM connection)
|
|
* Store-SCU for patients and studies in Orthanc Explorer
|
|
* Filtering of incoming DICOM instances (through Lua scripting)
|
|
* Filtering of incoming HTTP requests (through Lua scripting)
|
|
* Clearing of "/exports" and "/changes"
|
|
* Check MD5 of third party downloads
|
|
* Faking of the HTTP methods PUT and DELETE
|
|
|
|
|
|
Version 0.5.1 (2013/04/17)
|
|
==========================
|
|
|
|
* Support of RGB images
|
|
* Fix of store SCU in release builds
|
|
* Possibility to store the SQLite index at another place than the
|
|
DICOM instances (for performance)
|
|
|
|
|
|
Version 0.5.0 (2013/01/31)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* Download of modified or anonymized DICOM instances
|
|
* Inplace modification and anonymization of DICOM series, studies and patients
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* Support of private tags
|
|
* Implementation of the PMSCT_RLE1 image decoding for Philips modalities
|
|
* Generation of random DICOM UID through the REST API (/tools/generate-uid)
|
|
|
|
|
|
Version 0.4.0 (2012/12/14)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* Recycling of disk space
|
|
* Raw access to the value of the DICOM tags in the REST API
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* Protection of patients against recycling (also in Orthanc Explorer)
|
|
* The DICOM dictionaries are embedded in Windows builds
|
|
|
|
|
|
Version 0.3.1 (2012/12/05)
|
|
==========================
|
|
|
|
* Download archives of patients, studies and series as ZIP files
|
|
* Orthanc now checks the version of its database schema before starting
|
|
|
|
|
|
Version 0.3.0 (2012/11/30)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* Transparent compression of the DICOM instances on the disk
|
|
* The patient/study/series/instances are now indexed by SHA-1 digests
|
|
of their DICOM Instance IDs (and not by UUIDs anymore): The same
|
|
DICOM objects are thus always identified by the same Orthanc IDs
|
|
* Log of exported instances through DICOM C-STORE SCU ("/exported" URI)
|
|
* Full refactoring of the DB schema and of the REST API
|
|
* Introduction of generic classes for REST APIs (in Core/RestApi)
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* "/statistics" URI
|
|
* "last" flag to retrieve the last change from the "/changes" URI
|
|
* Generate a sample configuration file from command line
|
|
* "CompletedSeries" event in the changes API
|
|
* Thread to continuously flush DB to disk (SQLite checkpoints for
|
|
improved robustness)
|
|
|
|
|
|
Version 0.2.3 (2012/10/26)
|
|
==========================
|
|
|
|
* Use HTTP Content-Disposition to set a filename when downloading JSON/DCM
|
|
* URI "/system" for general information about Orthanc
|
|
* Versioning info and help on the command line
|
|
* Improved logging
|
|
* Possibility of dynamic linking against jsoncpp, sqlite, boost and dmctk
|
|
for Debian packaging
|
|
* Fix some bugs
|
|
* Switch to default 8042 port for HTTP
|
|
|
|
|
|
Version 0.2.2 (2012/10/04)
|
|
==========================
|
|
|
|
* Switch to Google Log
|
|
* Fixes to Debian packaging
|
|
|
|
|
|
Version 0.2.1 (2012/09/28)
|
|
==========================
|
|
|
|
* Status of series
|
|
* Continuous Integration Server is up and running
|
|
* Ready for Debian packaging
|
|
|
|
|
|
Version 0.2.0 (2012/09/16)
|
|
==========================
|
|
|
|
Major changes
|
|
-------------
|
|
|
|
* Renaming to "Orthanc"
|
|
* Focus on security: Support of SSL, HTTP Basic Authentication and
|
|
interdiction of remote access
|
|
* Access to multi-frame images (for nuclear medicine)
|
|
* Access to the raw PNG images (in 8bpp and 16bpp)
|
|
|
|
Minor changes
|
|
-------------
|
|
|
|
* Change of the licensing of the "Core/SQLite" folder to BSD (to
|
|
reflect the original licensing terms of Chromium, from which the
|
|
code derives)
|
|
* Standalone build for cross-compilation
|
|
|
|
|
|
Version 0.1.1 (2012/07/20)
|
|
==========================
|
|
|
|
* Fix Windows version
|
|
* Native Windows build with Microsoft Visual Studio 2005
|
|
* Add path to storage in Configuration.json
|
|
|
|
|
|
Version 0.1.0 (2012/07/19)
|
|
==========================
|
|
|
|
* Initial release
|