# HG changeset patch # User Alain Mazy # Date 1720071658 -7200 # Node ID 3765085693e5bb02c4973154702933bc061cff82 # Parent 28cc06e4859a60bc40860c7fb6eca4725e3af8e1# Parent d77292629430ef79d7c44108d2d7e0ec161d42f8 merge default -> large-queries diff -r 28cc06e4859a -r 3765085693e5 AUTHORS --- a/AUTHORS Thu Apr 11 19:02:20 2024 +0200 +++ b/AUTHORS Thu Jul 04 07:40:58 2024 +0200 @@ -14,13 +14,19 @@ 4000 Liege Belgium -* Osimis S.A. +* Osimis S.A. Quai Banning 6 4000 Liege Belgium - http://www.osimis.io/ + +* Orthanc Team SRL + Rue Joseph Marchal 14 + 4910 Theux + Belgium + https://orthanc.team/ * ICTEAM, UCLouvain Place de l'Universite 1 1348 Ottignies-Louvain-la-Neuve Belgium + https://uclouvain.be/icteam diff -r 28cc06e4859a -r 3765085693e5 CITATION.cff --- a/CITATION.cff Thu Apr 11 19:02:20 2024 +0200 +++ b/CITATION.cff Thu Jul 04 07:40:58 2024 +0200 @@ -10,5 +10,5 @@ doi: "10.1007/s10278-018-0082-y" license: "GPL-3.0-or-later" repository-code: "https://orthanc.uclouvain.be/hg/orthanc/" -version: 1.12.3 -date-released: 2024-01-31 +version: 1.12.4 +date-released: 2024-06-05 diff -r 28cc06e4859a -r 3765085693e5 NEWS --- a/NEWS Thu Apr 11 19:02:20 2024 +0200 +++ b/NEWS Thu Jul 04 07:40:58 2024 +0200 @@ -1,32 +1,96 @@ Pending changes in the mainline =============================== +REST API +----------- + +* Improved parsing of multiple numerical values in DICOM tags. + https://discourse.orthanc-server.org/t/qido-includefield-with-sequences/4746/6 +* Added "ExtendedApiV1" if you have a DB that supports it (the default SQLite DB + or PostgreSQL vX.X, MySQL vX.X, ODBC vX.X). + - /extended-api-v1/changes now supports 2 more options: 'type' to filter + the changes returned by the query and 'to' to potentially cycle through + changes in reverse order. + example: /extended-api-v1/changes?type=StableStudy&to=7584&limit=100 + + Maintenance ----------- -* 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). +* DICOM TLS: "DicomTlsTrustedCertificates" is not required anymore when issuing + an outgoing SCU connexion when "DicomTlsRemoteCertificateRequired" is set to false. +* Introduced a new thread to update the statistics at regular interval for the + DB plugins that are implementing the UpdateAndGetStatistics function (currently only + PostgreSQL). This avoids very long update times in case you don't call /statistics + for a long period. + + +Version 1.12.4 (2024-06-05) +=========================== REST API -------- * API version upgraded to 24 * Added "MaximumPatientCount" in /system -* Added "ExtendedApiV1" if you have a DB that supports it (the default SQLite DB - or PostgreSQL vX.X, MySQL vX.X, ODBC vX.X). - - /extended-api-v1/changes now supports 2 more options: 'type' to filter - the changes returned by the query and 'to' to potentially cycle through - changes in reverse order. - example: /extended-api-v1/changes?type=StableStudy&to=7584&limit=100 +* 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 +* Multitenant DICOM plugin: added support for locales. +* Housekeeper plugin: + - Added an option "LimitMainDicomTagsReconstructLevel" + (allowed values: "Patient", "Study", "Series", "Instance"). This can greatly speed + up the housekeeper process, e.g. if you have only update the Study level ExtraMainDicomTags. + - Fixed broken /instances/../tags route after running the Housekeeper + after having changed the "IngestTranscoding". +* SDK: added OrthancPluginLogMessage() as a new primitive for plugins + to log messages. This new primitive will display the plugin name, + the plugin file name, and the plugin line number in the logs. If + they are not using the LOG() facilities provided by the + OrthancFramework, plugins should now use ORTHANC_PLUGINS_LOG_INFO(), + ORTHANC_PLUGINS_LOG_WARNING(), and ORTHANC_PLUGINS_LOG_ERROR(). + +Maintenance +----------- + +* C-Find queries: + - In C-Find queries including "GenericGroupLength" tags, Orthanc was still + extracting these tags from the storage although they were already ignored + and not returned in the response. + They are now removed from the query earlier to avoid this disk access that + could slow down the response time. Note that this seems to happen mainly + when the query originates from some GE devices (AWS). + - "TimezoneOffsetFromUTC" is now ignored for matching. +* The 0x0111 DIMSE Status is now considered as a warning instead of an error + when received as a response to a C-Store. + See https://discourse.orthanc-server.org/t/ignore-dimse-status-0x0111-when-sending-partial-duplicate-studies/4555/3 +* Removed potential PHI from the logs when Orthanc encounters an error while + creating a ZIP archive. +* Monitoring of stable resources now also takes into consideration the + resource type, not only the resource identifier identifier. +* DICOM TLS: + - In prior versions, when "DicomTlsRemoteCertificateRequired" was set to false, Orthanc + was still sending a client certificate request during the TLS handshake but was not + triggering and error if the client certificate was not trusted (equivalent to the + "--verify-peer-cert" DCMTK option). Starting with Orthanc 1.12.4, if this option is + set to "false", Orthanc will not send a client certificate request during the TLS + handshake anymore (equivalent to the "--ignore-peer-cert" DCMTK option). + - When working with "DicomTlsEnabled": true and "DicomTlsRemoteCertificateRequired": false, + Orthanc was refusing to start if no "DicomTlsTrustedCertificates" was provided. + - New configuration options: + - "DicomTlsMinimumProtocolVersion" to select the minimum TLS protocol version + - "DicomTlsCiphersAccepted" to fine tune the list of accepted ciphers +* Fixed broken /instances/../tags route after calling of + /studies/../reconstruct after having changed the "IngestTranscoding". +* Upgraded dependencies for static builds: + - boost 1.85.0 Version 1.12.3 (2024-01-31) diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/AutoGeneratedCode.cmake --- a/OrthancFramework/Resources/CMake/AutoGeneratedCode.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/AutoGeneratedCode.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/BoostConfiguration.cmake --- a/OrthancFramework/Resources/CMake/BoostConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/BoostConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or @@ -90,10 +91,10 @@ ## Parameters for static compilation of Boost ## - set(BOOST_NAME boost_1_84_0) - set(BOOST_VERSION 1.84.0) - set(BOOST_BCP_SUFFIX bcpdigest-1.12.3) - set(BOOST_MD5 "af64830e570249076a0f024ae4654b59") + set(BOOST_NAME boost_1_85_0) + set(BOOST_VERSION 1.85.0) + set(BOOST_BCP_SUFFIX bcpdigest-1.12.4) + set(BOOST_MD5 "1017e9c8383efdea01c059a8d3cc4dda") set(BOOST_URL "https://orthanc.uclouvain.be/downloads/third-party-downloads/${BOOST_NAME}_${BOOST_BCP_SUFFIX}.tar.gz") set(BOOST_SOURCES_DIR ${CMAKE_BINARY_DIR}/${BOOST_NAME}) @@ -114,7 +115,7 @@ if (FirstRun) execute_process( COMMAND ${PATCH_EXECUTABLE} -p0 -N -i - ${CMAKE_CURRENT_LIST_DIR}/../Patches/boost-1.84.0-emscripten.patch + ${CMAKE_CURRENT_LIST_DIR}/../Patches/boost-1.85.0-emscripten.patch WORKING_DIRECTORY ${CMAKE_BINARY_DIR} RESULT_VARIABLE Failure ) diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/BoostConfiguration.sh --- a/OrthancFramework/Resources/CMake/BoostConfiguration.sh Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/BoostConfiguration.sh Thu Jul 04 07:40:58 2024 +0200 @@ -25,10 +25,11 @@ ## - Orthanc between 1.11.2 and 1.12.0: Boost 1.80.0 ## - Orthanc 1.12.1: Boost 1.82.0 ## - Orthanc 1.12.2: Boost 1.83.0 -## - Orthanc > 1.12.3: Boost 1.84.0 +## - Orthanc 1.12.3: Boost 1.84.0 +## - Orthanc > 1.12.3: Boost 1.85.0 -BOOST_VERSION=1_84_0 -ORTHANC_VERSION=1.12.3 +BOOST_VERSION=1_85_0 +ORTHANC_VERSION=1.12.4 rm -rf /tmp/boost_${BOOST_VERSION} rm -rf /tmp/bcp/boost_${BOOST_VERSION} diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/BoostConfigurationStatic-1.69.0.cmake --- a/OrthancFramework/Resources/CMake/BoostConfigurationStatic-1.69.0.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/BoostConfigurationStatic-1.69.0.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake --- a/OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/Compiler.cmake --- a/OrthancFramework/Resources/CMake/Compiler.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/Compiler.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.0.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.0.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.0.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.2.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.2.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.2.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.4.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.4.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.4.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.5.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.5.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.5.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.6.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.6.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.6.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.7.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.7.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.7.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.8.cmake --- a/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.8.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DcmtkConfigurationStatic-3.6.8.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DownloadOrthancFramework.cmake --- a/OrthancFramework/Resources/CMake/DownloadOrthancFramework.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DownloadOrthancFramework.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or @@ -162,6 +163,8 @@ set(ORTHANC_FRAMEWORK_MD5 "d2476b9e796e339ac320b5333489bdb3") elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.12.3") set(ORTHANC_FRAMEWORK_MD5 "975f5bf2142c22cb1777b4f6a0a614c5") + elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.12.4") + set(ORTHANC_FRAMEWORK_MD5 "1e61779ea4a7cd705720bdcfed8a6a73") # Below this point are development snapshots that were used to # release some plugin, before an official release of the Orthanc diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/DownloadPackage.cmake --- a/OrthancFramework/Resources/CMake/DownloadPackage.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/DownloadPackage.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/EmscriptenParameters.cmake --- a/OrthancFramework/Resources/CMake/EmscriptenParameters.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/EmscriptenParameters.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/GoogleTestConfiguration.cmake --- a/OrthancFramework/Resources/CMake/GoogleTestConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/GoogleTestConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/JsonCppConfiguration.cmake --- a/OrthancFramework/Resources/CMake/JsonCppConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/JsonCppConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/LibCurlConfiguration.cmake --- a/OrthancFramework/Resources/CMake/LibCurlConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/LibCurlConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/LibIconvConfiguration.cmake --- a/OrthancFramework/Resources/CMake/LibIconvConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/LibIconvConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/LibIcuConfiguration.cmake --- a/OrthancFramework/Resources/CMake/LibIcuConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/LibIcuConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/LibJpegConfiguration.cmake --- a/OrthancFramework/Resources/CMake/LibJpegConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/LibJpegConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/LibP11Configuration.cmake --- a/OrthancFramework/Resources/CMake/LibP11Configuration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/LibP11Configuration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/LibPngConfiguration.cmake --- a/OrthancFramework/Resources/CMake/LibPngConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/LibPngConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/LuaConfiguration.cmake --- a/OrthancFramework/Resources/CMake/LuaConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/LuaConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/MongooseConfiguration.cmake --- a/OrthancFramework/Resources/CMake/MongooseConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/MongooseConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/OpenSslConfiguration.cmake --- a/OrthancFramework/Resources/CMake/OpenSslConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/OpenSslConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/OpenSslConfigurationStatic-1.1.1.cmake --- a/OrthancFramework/Resources/CMake/OpenSslConfigurationStatic-1.1.1.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/OpenSslConfigurationStatic-1.1.1.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/OpenSslConfigurationStatic-3.0.cmake --- a/OrthancFramework/Resources/CMake/OpenSslConfigurationStatic-3.0.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/OpenSslConfigurationStatic-3.0.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,8 +1,9 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2021 Osimis S.A., Belgium -# Copyright (C) 2021-2021 Sebastien Jodogne, ICTEAM UCLouvain, Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium +# Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake --- a/OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/OrthancFrameworkConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/OrthancFrameworkParameters.cmake --- a/OrthancFramework/Resources/CMake/OrthancFrameworkParameters.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/OrthancFrameworkParameters.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake --- a/OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/PugixmlConfiguration.cmake --- a/OrthancFramework/Resources/CMake/PugixmlConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/PugixmlConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/SQLiteConfiguration.cmake --- a/OrthancFramework/Resources/CMake/SQLiteConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/SQLiteConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/UuidConfiguration.cmake --- a/OrthancFramework/Resources/CMake/UuidConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/UuidConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/VisualStudioPrecompiledHeaders.cmake --- a/OrthancFramework/Resources/CMake/VisualStudioPrecompiledHeaders.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/VisualStudioPrecompiledHeaders.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/WebAssembly/ArithmeticTests/CMakeLists.txt --- a/OrthancFramework/Resources/CMake/WebAssembly/ArithmeticTests/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/WebAssembly/ArithmeticTests/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CMake/ZlibConfiguration.cmake --- a/OrthancFramework/Resources/CMake/ZlibConfiguration.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CMake/ZlibConfiguration.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CheckOrthancFrameworkSymbols.py --- a/OrthancFramework/Resources/CheckOrthancFrameworkSymbols.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CheckOrthancFrameworkSymbols.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CodeGeneration/CheckDcmtkTransferSyntaxes.py --- a/OrthancFramework/Resources/CodeGeneration/CheckDcmtkTransferSyntaxes.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CodeGeneration/CheckDcmtkTransferSyntaxes.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CodeGeneration/GenerateErrorCodes.py --- a/OrthancFramework/Resources/CodeGeneration/GenerateErrorCodes.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CodeGeneration/GenerateErrorCodes.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxes.py --- a/OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxes.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxes.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxesDcmtk.mustache --- a/OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxesDcmtk.mustache Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxesDcmtk.mustache Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxesEnumerations.mustache --- a/OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxesEnumerations.mustache Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/CodeGeneration/GenerateTransferSyntaxesEnumerations.mustache Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/DcmtkTools/CMakeLists.txt --- a/OrthancFramework/Resources/DcmtkTools/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/DcmtkTools/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/DcmtkTools/dummy.cpp --- a/OrthancFramework/Resources/DcmtkTools/dummy.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/DcmtkTools/dummy.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/EmbedResources.py --- a/OrthancFramework/Resources/EmbedResources.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/EmbedResources.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/FromDcmtkBridge.cpp --- a/OrthancFramework/Resources/Graveyard/FromDcmtkBridge.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/FromDcmtkBridge.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasks.h --- a/OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasks.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasks.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasksProcessor.cpp --- a/OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasksProcessor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasksProcessor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasksProcessor.h --- a/OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasksProcessor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/BagOfTasksProcessor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/ICommand.h --- a/OrthancFramework/Resources/Graveyard/Multithreading/ICommand.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/ICommand.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/ILockable.h --- a/OrthancFramework/Resources/Graveyard/Multithreading/ILockable.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/ILockable.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/Locker.h --- a/OrthancFramework/Resources/Graveyard/Multithreading/Locker.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/Locker.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/Mutex.cpp --- a/OrthancFramework/Resources/Graveyard/Multithreading/Mutex.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/Mutex.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/Mutex.h --- a/OrthancFramework/Resources/Graveyard/Multithreading/Mutex.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/Mutex.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/ReaderWriterLock.cpp --- a/OrthancFramework/Resources/Graveyard/Multithreading/ReaderWriterLock.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/ReaderWriterLock.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/Multithreading/ReaderWriterLock.h --- a/OrthancFramework/Resources/Graveyard/Multithreading/ReaderWriterLock.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/Multithreading/ReaderWriterLock.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Graveyard/TestTranscoding.cpp --- a/OrthancFramework/Resources/Graveyard/TestTranscoding.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Graveyard/TestTranscoding.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Patches/OpenSSL-ConfigureHeaders.py --- a/OrthancFramework/Resources/Patches/OpenSSL-ConfigureHeaders.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Patches/OpenSSL-ConfigureHeaders.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,8 +3,9 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2021 Osimis S.A., Belgium -# Copyright (C) 2021-2021 Sebastien Jodogne, ICTEAM UCLouvain, Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium +# Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Patches/OpenSSL-ExtractProvidersOIDs.py --- a/OrthancFramework/Resources/Patches/OpenSSL-ExtractProvidersOIDs.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Patches/OpenSSL-ExtractProvidersOIDs.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,8 +3,9 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2021 Osimis S.A., Belgium -# Copyright (C) 2021-2021 Sebastien Jodogne, ICTEAM UCLouvain, Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium +# Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Patches/boost-1.84.0-emscripten.patch --- a/OrthancFramework/Resources/Patches/boost-1.84.0-emscripten.patch Thu Apr 11 19:02:20 2024 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -diff -urEb boost_1_84_0.orig/libs/locale/src/boost/locale/shared/date_time.cpp boost_1_84_0/libs/locale/src/boost/locale/shared/date_time.cpp ---- boost_1_84_0.orig/libs/locale/src/boost/locale/shared/date_time.cpp 2024-01-24 16:33:34.349801130 +0100 -+++ boost_1_84_0/libs/locale/src/boost/locale/shared/date_time.cpp 2024-01-24 16:35:29.516750122 +0100 -@@ -12,8 +12,10 @@ - #include - #include - #include --#include --#include -+#if !defined(__EMSCRIPTEN__) -+# include -+# include -+#endif - #include - - namespace boost { namespace locale { -@@ -400,6 +402,7 @@ - return impl_->get_option(abstract_calendar::is_dst) != 0; - } - -+#if !defined(__EMSCRIPTEN__) - namespace time_zone { - boost::mutex& tz_mutex() - { -@@ -422,6 +425,7 @@ - return boost::exchange(tz_id(), new_id); - } - } // namespace time_zone -+#endif - - }} // namespace boost::locale - -diff -urEb boost_1_84_0.orig/libs/locale/src/boost/locale/shared/generator.cpp boost_1_84_0/libs/locale/src/boost/locale/shared/generator.cpp ---- boost_1_84_0.orig/libs/locale/src/boost/locale/shared/generator.cpp 2024-01-24 16:33:34.349801130 +0100 -+++ boost_1_84_0/libs/locale/src/boost/locale/shared/generator.cpp 2024-01-24 16:36:33.212167880 +0100 -@@ -7,8 +7,10 @@ - #include - #include - #include --#include --#include -+#if !defined(__EMSCRIPTEN__) -+# include -+# include -+#endif - #include - #include - #include -@@ -21,7 +23,9 @@ - {} - - mutable std::map cached; -+#if !defined(__EMSCRIPTEN__) - mutable boost::mutex cached_lock; -+#endif - - category_t cats; - char_facet_t chars; -@@ -101,7 +105,9 @@ - std::locale generator::generate(const std::locale& base, const std::string& id) const - { - if(d->caching_enabled) { -+#if !defined(__EMSCRIPTEN__) - boost::unique_lock guard(d->cached_lock); -+#endif - const auto p = d->cached.find(id); - if(p != d->cached.end()) - return p->second; -@@ -126,7 +132,9 @@ - result = backend->install(result, facet, char_facet_t::nochar); - } - if(d->caching_enabled) { -+#if !defined(__EMSCRIPTEN__) - boost::unique_lock guard(d->cached_lock); -+#endif - const auto p = d->cached.find(id); - if(p == d->cached.end()) - d->cached[id] = result; -diff -urEb boost_1_84_0.orig/libs/locale/src/boost/locale/shared/localization_backend.cpp boost_1_84_0/libs/locale/src/boost/locale/shared/localization_backend.cpp ---- boost_1_84_0.orig/libs/locale/src/boost/locale/shared/localization_backend.cpp 2024-01-24 16:33:34.349801130 +0100 -+++ boost_1_84_0/libs/locale/src/boost/locale/shared/localization_backend.cpp 2024-01-24 16:40:12.134162584 +0100 -@@ -5,8 +5,10 @@ - // https://www.boost.org/LICENSE_1_0.txt - - #include --#include --#include -+#if !defined(__EMSCRIPTEN__) -+# include -+# include -+#endif - #include - #include - #include -@@ -211,11 +213,13 @@ - return mgr; - } - -+#if !defined(__EMSCRIPTEN__) - boost::mutex& localization_backend_manager_mutex() - { - static boost::mutex the_mutex; - return the_mutex; - } -+#endif - localization_backend_manager& localization_backend_manager_global() - { - static localization_backend_manager the_manager = make_default_backend_mgr(); -@@ -225,12 +229,16 @@ - - localization_backend_manager localization_backend_manager::global() - { -+#if !defined(__EMSCRIPTEN__) - boost::unique_lock lock(localization_backend_manager_mutex()); -+#endif - return localization_backend_manager_global(); - } - localization_backend_manager localization_backend_manager::global(const localization_backend_manager& in) - { -+#if !defined(__EMSCRIPTEN__) - boost::unique_lock lock(localization_backend_manager_mutex()); -+#endif - return exchange(localization_backend_manager_global(), in); - } - diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Patches/boost-1.85.0-emscripten.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OrthancFramework/Resources/Patches/boost-1.85.0-emscripten.patch Thu Jul 04 07:40:58 2024 +0200 @@ -0,0 +1,125 @@ +diff -urEb boost_1_85_0.orig/libs/locale/src/boost/locale/shared/date_time.cpp boost_1_85_0/libs/locale/src/boost/locale/shared/date_time.cpp +--- boost_1_85_0.orig/libs/locale/src/boost/locale/shared/date_time.cpp 2024-05-16 20:54:25.516816710 +0200 ++++ boost_1_85_0/libs/locale/src/boost/locale/shared/date_time.cpp 2024-05-16 20:55:09.144319528 +0200 +@@ -12,8 +12,10 @@ + #include + #include + #include +-#include +-#include ++#if !defined(__EMSCRIPTEN__) ++# include ++# include ++#endif + #include + + namespace boost { namespace locale { +@@ -400,6 +402,7 @@ + return impl_->get_option(abstract_calendar::is_dst) != 0; + } + ++#if !defined(__EMSCRIPTEN__) + namespace time_zone { + boost::mutex& tz_mutex() + { +@@ -422,6 +425,7 @@ + return boost::exchange(tz_id(), new_id); + } + } // namespace time_zone ++#endif + + }} // namespace boost::locale + +diff -urEb boost_1_85_0.orig/libs/locale/src/boost/locale/shared/generator.cpp boost_1_85_0/libs/locale/src/boost/locale/shared/generator.cpp +--- boost_1_85_0.orig/libs/locale/src/boost/locale/shared/generator.cpp 2024-05-16 20:54:25.516816710 +0200 ++++ boost_1_85_0/libs/locale/src/boost/locale/shared/generator.cpp 2024-05-16 20:56:20.231509636 +0200 +@@ -7,8 +7,10 @@ + #include + #include + #include +-#include +-#include ++#if !defined(__EMSCRIPTEN__) ++# include ++# include ++#endif + #include + #include + #include +@@ -21,7 +23,9 @@ + {} + + mutable std::map cached; ++#if !defined(__EMSCRIPTEN__) + mutable boost::mutex cached_lock; ++#endif + + category_t cats; + char_facet_t chars; +@@ -101,7 +105,9 @@ + std::locale generator::generate(const std::locale& base, const std::string& id) const + { + if(d->caching_enabled) { ++#if !defined(__EMSCRIPTEN__) + boost::unique_lock guard(d->cached_lock); ++#endif + const auto p = d->cached.find(id); + if(p != d->cached.end()) + return p->second; +@@ -126,7 +132,9 @@ + result = backend->install(result, facet, char_facet_t::nochar); + } + if(d->caching_enabled) { ++#if !defined(__EMSCRIPTEN__) + boost::unique_lock guard(d->cached_lock); ++#endif + const auto p = d->cached.find(id); + if(p == d->cached.end()) + d->cached[id] = result; +diff -urEb boost_1_85_0.orig/libs/locale/src/boost/locale/shared/localization_backend.cpp boost_1_85_0/libs/locale/src/boost/locale/shared/localization_backend.cpp +--- boost_1_85_0.orig/libs/locale/src/boost/locale/shared/localization_backend.cpp 2024-05-16 20:54:25.516816710 +0200 ++++ boost_1_85_0/libs/locale/src/boost/locale/shared/localization_backend.cpp 2024-05-16 20:56:58.823070064 +0200 +@@ -5,8 +5,10 @@ + // https://www.boost.org/LICENSE_1_0.txt + + #include +-#include +-#include ++#if !defined(__EMSCRIPTEN__) ++# include ++# include ++#endif + #include + #include + #include +@@ -211,11 +213,13 @@ + return mgr; + } + ++#if !defined(__EMSCRIPTEN__) + boost::mutex& localization_backend_manager_mutex() + { + static boost::mutex the_mutex; + return the_mutex; + } ++#endif + localization_backend_manager& localization_backend_manager_global() + { + static localization_backend_manager the_manager = make_default_backend_mgr(); +@@ -225,12 +229,16 @@ + + localization_backend_manager localization_backend_manager::global() + { ++#if !defined(__EMSCRIPTEN__) + boost::unique_lock lock(localization_backend_manager_mutex()); ++#endif + return localization_backend_manager_global(); + } + localization_backend_manager localization_backend_manager::global(const localization_backend_manager& in) + { ++#if !defined(__EMSCRIPTEN__) + boost::unique_lock lock(localization_backend_manager_mutex()); ++#endif + return exchange(localization_backend_manager_global(), in); + } + diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/ProtocolBuffers/CMakeLists.txt --- a/OrthancFramework/Resources/ProtocolBuffers/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/ProtocolBuffers/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/ProtocolBuffers/ProtobufLibrary.cmake --- a/OrthancFramework/Resources/ProtocolBuffers/ProtobufLibrary.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/ProtocolBuffers/ProtobufLibrary.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/RetrieveCACertificates.py --- a/OrthancFramework/Resources/RetrieveCACertificates.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/RetrieveCACertificates.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Samples/MicroService/CMakeLists.txt --- a/OrthancFramework/Resources/Samples/MicroService/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Samples/MicroService/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Samples/MicroService/Sample.cpp --- a/OrthancFramework/Resources/Samples/MicroService/Sample.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Samples/MicroService/Sample.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/ThirdParty/icu/CMakeLists.txt --- a/OrthancFramework/Resources/ThirdParty/icu/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/ThirdParty/icu/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/ThirdParty/icu/Version.cmake --- a/OrthancFramework/Resources/ThirdParty/icu/Version.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/ThirdParty/icu/Version.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Toolchains/CrossToolchain.cmake --- a/OrthancFramework/Resources/Toolchains/CrossToolchain.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Toolchains/CrossToolchain.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Toolchains/LinuxStandardBaseToolchain.cmake --- a/OrthancFramework/Resources/Toolchains/LinuxStandardBaseToolchain.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Toolchains/LinuxStandardBaseToolchain.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain32.cmake --- a/OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain32.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain32.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain64.cmake --- a/OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain64.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Toolchains/MinGW-W64-Toolchain64.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/Toolchains/MinGWToolchain.cmake --- a/OrthancFramework/Resources/Toolchains/MinGWToolchain.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/Toolchains/MinGWToolchain.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/WindowsResources.py --- a/OrthancFramework/Resources/WindowsResources.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/WindowsResources.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Resources/WindowsResources.rc --- a/OrthancFramework/Resources/WindowsResources.rc Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Resources/WindowsResources.rc Thu Jul 04 07:40:58 2024 +0200 @@ -15,7 +15,7 @@ VALUE "FileDescription", "${DESCRIPTION}" VALUE "FileVersion", "${VERSION_MAJOR}.${VERSION_MINOR}.0.${VERSION_PATCH}" VALUE "InternalName", "${PRODUCT}" - VALUE "LegalCopyright", "(c) 2012-${YEAR}, Sebastien Jodogne, University Hospital of Liege, Osimis S.A., and ICTEAM UCLouvain" + VALUE "LegalCopyright", "(c) 2012-${YEAR}, Sebastien Jodogne, University Hospital of Liege, Osimis S.A., Orthanc Team SRL, and ICTEAM UCLouvain" VALUE "LegalTrademarks", "Licensing information is available at https://orthanc.uclouvain.be/book/faq/licensing.html" VALUE "OriginalFilename", "${FILENAME}" VALUE "ProductName", "${PRODUCT}" diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/SharedLibrary/CMakeLists.txt --- a/OrthancFramework/SharedLibrary/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/SharedLibrary/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/SharedLibrary/DllMain.cpp --- a/OrthancFramework/SharedLibrary/DllMain.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/SharedLibrary/DllMain.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/SharedLibrary/OrthancFramework.h.in --- a/OrthancFramework/SharedLibrary/OrthancFramework.h.in Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/SharedLibrary/OrthancFramework.h.in Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/ICachePageProvider.h --- a/OrthancFramework/Sources/Cache/ICachePageProvider.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/ICachePageProvider.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/ICacheable.h --- a/OrthancFramework/Sources/Cache/ICacheable.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/ICacheable.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/LeastRecentlyUsedIndex.h --- a/OrthancFramework/Sources/Cache/LeastRecentlyUsedIndex.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/LeastRecentlyUsedIndex.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/MemoryCache.cpp --- a/OrthancFramework/Sources/Cache/MemoryCache.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/MemoryCache.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/MemoryCache.h --- a/OrthancFramework/Sources/Cache/MemoryCache.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/MemoryCache.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/MemoryObjectCache.cpp --- a/OrthancFramework/Sources/Cache/MemoryObjectCache.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/MemoryObjectCache.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/MemoryObjectCache.h --- a/OrthancFramework/Sources/Cache/MemoryObjectCache.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/MemoryObjectCache.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/MemoryStringCache.cpp --- a/OrthancFramework/Sources/Cache/MemoryStringCache.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/MemoryStringCache.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/MemoryStringCache.h --- a/OrthancFramework/Sources/Cache/MemoryStringCache.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/MemoryStringCache.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/SharedArchive.cpp --- a/OrthancFramework/Sources/Cache/SharedArchive.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/SharedArchive.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Cache/SharedArchive.h --- a/OrthancFramework/Sources/Cache/SharedArchive.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Cache/SharedArchive.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/ChunkedBuffer.cpp --- a/OrthancFramework/Sources/ChunkedBuffer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/ChunkedBuffer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/ChunkedBuffer.h --- a/OrthancFramework/Sources/ChunkedBuffer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/ChunkedBuffer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compatibility.h --- a/OrthancFramework/Sources/Compatibility.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compatibility.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/DeflateBaseCompressor.cpp --- a/OrthancFramework/Sources/Compression/DeflateBaseCompressor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/DeflateBaseCompressor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/DeflateBaseCompressor.h --- a/OrthancFramework/Sources/Compression/DeflateBaseCompressor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/DeflateBaseCompressor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/GzipCompressor.cpp --- a/OrthancFramework/Sources/Compression/GzipCompressor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/GzipCompressor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/GzipCompressor.h --- a/OrthancFramework/Sources/Compression/GzipCompressor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/GzipCompressor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/HierarchicalZipWriter.cpp --- a/OrthancFramework/Sources/Compression/HierarchicalZipWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/HierarchicalZipWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/HierarchicalZipWriter.h --- a/OrthancFramework/Sources/Compression/HierarchicalZipWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/HierarchicalZipWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/IBufferCompressor.cpp --- a/OrthancFramework/Sources/Compression/IBufferCompressor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/IBufferCompressor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/IBufferCompressor.h --- a/OrthancFramework/Sources/Compression/IBufferCompressor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/IBufferCompressor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/ZipReader.cpp --- a/OrthancFramework/Sources/Compression/ZipReader.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/ZipReader.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/ZipReader.h --- a/OrthancFramework/Sources/Compression/ZipReader.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/ZipReader.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/ZipWriter.cpp --- a/OrthancFramework/Sources/Compression/ZipWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/ZipWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -553,7 +554,7 @@ if (!pimpl_->file_) { throw OrthancException(ErrorCode_CannotWriteFile, - "Cannot create new ZIP archive: " + path_); + "Cannot create new ZIP archive"); // we do not log the path anymore since it can contain PHI } } } @@ -632,10 +633,10 @@ compressionLevel_); } - if (result != 0) + if (result != ZIP_OK) { throw OrthancException(ErrorCode_CannotWriteFile, - "Cannot add new file inside ZIP archive: " + std::string(path)); + "Cannot add new file inside ZIP archive - error code = " + boost::lexical_cast(result)); // we do not log the path anymore since it can contain PHI } hasFileInZip_ = true; @@ -666,10 +667,11 @@ { int bytes = static_cast(length <= maxBytesInAStep ? length : maxBytesInAStep); - if (zipWriteInFileInZip(pimpl_->file_, p, bytes)) + int result = zipWriteInFileInZip(pimpl_->file_, p, bytes); + if (result != ZIP_OK) { throw OrthancException(ErrorCode_CannotWriteFile, - "Cannot write data to ZIP archive: " + path_); + "Cannot write data to ZIP archive - error code =" + boost::lexical_cast(result)); // we do not log the path anymore since it can contain PHI } p += bytes; diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/ZipWriter.h --- a/OrthancFramework/Sources/Compression/ZipWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/ZipWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/ZlibCompressor.cpp --- a/OrthancFramework/Sources/Compression/ZlibCompressor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/ZlibCompressor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Compression/ZlibCompressor.h --- a/OrthancFramework/Sources/Compression/ZlibCompressor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Compression/ZlibCompressor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomArray.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomArray.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomArray.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomArray.h --- a/OrthancFramework/Sources/DicomFormat/DicomArray.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomArray.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomElement.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomElement.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomElement.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomElement.h --- a/OrthancFramework/Sources/DicomFormat/DicomElement.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomElement.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomImageInformation.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomImageInformation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomImageInformation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomImageInformation.h --- a/OrthancFramework/Sources/DicomFormat/DicomImageInformation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomImageInformation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomInstanceHasher.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomInstanceHasher.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomInstanceHasher.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomInstanceHasher.h --- a/OrthancFramework/Sources/DicomFormat/DicomInstanceHasher.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomInstanceHasher.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomIntegerPixelAccessor.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomIntegerPixelAccessor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomIntegerPixelAccessor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomIntegerPixelAccessor.h --- a/OrthancFramework/Sources/DicomFormat/DicomIntegerPixelAccessor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomIntegerPixelAccessor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomMap.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomMap.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomMap.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomMap.h --- a/OrthancFramework/Sources/DicomFormat/DicomMap.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomMap.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomPath.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomPath.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomPath.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomPath.h --- a/OrthancFramework/Sources/DicomFormat/DicomPath.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomPath.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomStreamReader.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomStreamReader.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomStreamReader.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomStreamReader.h --- a/OrthancFramework/Sources/DicomFormat/DicomStreamReader.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomStreamReader.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomTag.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomTag.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomTag.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomTag.h --- a/OrthancFramework/Sources/DicomFormat/DicomTag.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomTag.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -147,6 +148,7 @@ static const DicomTag DICOM_TAG_SERIES_TIME(0x0008, 0x0031); static const DicomTag DICOM_TAG_STUDY_DATE(0x0008, 0x0020); static const DicomTag DICOM_TAG_STUDY_TIME(0x0008, 0x0030); + static const DicomTag DICOM_TAG_TIMEZONE_OFFSET_FROM_UTC(0x0008, 0x0201); // Various tags static const DicomTag DICOM_TAG_SERIES_TYPE(0x0054, 0x1000); diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomValue.cpp --- a/OrthancFramework/Sources/DicomFormat/DicomValue.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomValue.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/DicomValue.h --- a/OrthancFramework/Sources/DicomFormat/DicomValue.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/DicomValue.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/StreamBlockReader.cpp --- a/OrthancFramework/Sources/DicomFormat/StreamBlockReader.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/StreamBlockReader.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomFormat/StreamBlockReader.h --- a/OrthancFramework/Sources/DicomFormat/StreamBlockReader.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomFormat/StreamBlockReader.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomAssociation.cpp --- a/OrthancFramework/Sources/DicomNetworking/DicomAssociation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomAssociation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -299,11 +300,12 @@ { assert(net_ != NULL && params_ != NULL); - tls_.reset(Internals::InitializeDicomTls(net_, NET_REQUESTOR, parameters.GetOwnPrivateKeyPath(), parameters.GetOwnCertificatePath(), parameters.GetTrustedCertificatesPath(), - parameters.IsRemoteCertificateRequired())); + parameters.IsRemoteCertificateRequired(), + parameters.GetMinimumTlsVersion(), + parameters.GetAcceptedCiphers())); } catch (OrthancException&) { diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomAssociation.h --- a/OrthancFramework/Sources/DicomNetworking/DicomAssociation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomAssociation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomAssociationParameters.cpp --- a/OrthancFramework/Sources/DicomNetworking/DicomAssociationParameters.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomAssociationParameters.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -43,7 +44,8 @@ static std::string defaultTrustedCertificatesPath_; static unsigned int defaultMaximumPduLength_ = ASC_DEFAULTMAXPDU; static bool defaultRemoteCertificateRequired_ = true; - +static unsigned int minimumTlsVersion_ = 0; +static std::set acceptedCiphers_; namespace Orthanc { @@ -193,7 +195,7 @@ throw OrthancException(ErrorCode_BadSequenceOfCalls, "DICOM TLS - No path to the local certificate was provided"); } - else if (trustedCertificatesPath_.empty()) + else if (remoteCertificateRequired_ && trustedCertificatesPath_.empty()) { throw OrthancException(ErrorCode_BadSequenceOfCalls, "DICOM TLS - No path to the trusted remote certificates was provided"); @@ -251,7 +253,26 @@ return remoteCertificateRequired_; } + unsigned int DicomAssociationParameters::GetMinimumTlsVersion() + { + return minimumTlsVersion_; + } + void DicomAssociationParameters::SetMinimumTlsVersion(unsigned int version) + { + minimumTlsVersion_ = version; + } + + void DicomAssociationParameters::SetAcceptedCiphers(const std::set& acceptedCiphers) + { + acceptedCiphers_ = acceptedCiphers; + } + + const std::set& DicomAssociationParameters::GetAcceptedCiphers() + { + return acceptedCiphers_; + } + static const char* const LOCAL_AET = "LocalAet"; static const char* const REMOTE = "Remote"; diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomAssociationParameters.h --- a/OrthancFramework/Sources/DicomNetworking/DicomAssociationParameters.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomAssociationParameters.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -127,5 +128,13 @@ static void SetDefaultRemoteCertificateRequired(bool required); static bool GetDefaultRemoteCertificateRequired(); + + static void SetMinimumTlsVersion(unsigned int version); + + static unsigned int GetMinimumTlsVersion(); + + static void SetAcceptedCiphers(const std::set& acceptedCiphers); + + static const std::set& GetAcceptedCiphers(); }; } diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomControlUserConnection.cpp --- a/OrthancFramework/Sources/DicomNetworking/DicomControlUserConnection.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomControlUserConnection.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomControlUserConnection.h --- a/OrthancFramework/Sources/DicomNetworking/DicomControlUserConnection.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomControlUserConnection.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomFindAnswers.cpp --- a/OrthancFramework/Sources/DicomNetworking/DicomFindAnswers.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomFindAnswers.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomFindAnswers.h --- a/OrthancFramework/Sources/DicomNetworking/DicomFindAnswers.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomFindAnswers.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomServer.cpp --- a/OrthancFramework/Sources/DicomNetworking/DicomServer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomServer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -106,7 +107,8 @@ applicationEntityFilter_(NULL), useDicomTls_(false), maximumPduLength_(ASC_DEFAULTMAXPDU), - remoteCertificateRequired_(true) + remoteCertificateRequired_(true), + minimumTlsVersion_(0) { } @@ -410,7 +412,7 @@ { pimpl_->tls_.reset(Internals::InitializeDicomTls( pimpl_->network_, NET_ACCEPTOR, ownPrivateKeyPath_, ownCertificatePath_, - trustedCertificatesPath_, remoteCertificateRequired_)); + trustedCertificatesPath_, remoteCertificateRequired_, minimumTlsVersion_, acceptedCiphers_)); } catch (OrthancException&) { @@ -493,6 +495,18 @@ return useDicomTls_; } + void DicomServer::SetMinimumTlsVersion(unsigned int version) + { + minimumTlsVersion_ = version; + DicomAssociationParameters::SetMinimumTlsVersion(version); + } + + void DicomServer::SetAcceptedCiphers(const std::set& ciphers) + { + acceptedCiphers_ = ciphers; + DicomAssociationParameters::SetAcceptedCiphers(ciphers); + } + void DicomServer::SetOwnCertificatePath(const std::string& privateKeyPath, const std::string& certificatePath) { diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomServer.h --- a/OrthancFramework/Sources/DicomNetworking/DicomServer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomServer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -90,6 +91,8 @@ std::string trustedCertificatesPath_; unsigned int maximumPduLength_; bool remoteCertificateRequired_; // New in 1.9.3 + unsigned int minimumTlsVersion_; // New in 1.12.4 + std::set acceptedCiphers_; // New in 1.12.4 static void ServerThread(DicomServer* server, @@ -153,6 +156,9 @@ void SetDicomTlsEnabled(bool enabled); bool IsDicomTlsEnabled() const; + void SetMinimumTlsVersion(unsigned int version); + void SetAcceptedCiphers(const std::set& ciphers); + void SetOwnCertificatePath(const std::string& privateKeyPath, const std::string& certificatePath); const std::string& GetOwnPrivateKeyPath() const; diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomStoreUserConnection.cpp --- a/OrthancFramework/Sources/DicomNetworking/DicomStoreUserConnection.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomStoreUserConnection.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -449,7 +450,8 @@ if (response.DimseStatus != 0x0000 && // Success response.DimseStatus != 0xB000 && // Warning - Coercion of Data Elements response.DimseStatus != 0xB007 && // Warning - Data Set does not match SOP Class - response.DimseStatus != 0xB006) // Warning - Elements Discarded + response.DimseStatus != 0xB006 && // Warning - Elements Discarded + response.DimseStatus != 0x0111) // Warning - Duplicate SOPInstanceUID (https://discourse.orthanc-server.org/t/ignore-dimse-status-0x0111-when-sending-partial-duplicate-studies/4555/3) { char buf[16]; sprintf(buf, "%04X", response.DimseStatus); diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/DicomStoreUserConnection.h --- a/OrthancFramework/Sources/DicomNetworking/DicomStoreUserConnection.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/DicomStoreUserConnection.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IApplicationEntityFilter.h --- a/OrthancFramework/Sources/DicomNetworking/IApplicationEntityFilter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IApplicationEntityFilter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IFindRequestHandler.h --- a/OrthancFramework/Sources/DicomNetworking/IFindRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IFindRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IFindRequestHandlerFactory.h --- a/OrthancFramework/Sources/DicomNetworking/IFindRequestHandlerFactory.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IFindRequestHandlerFactory.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IGetRequestHandler.h --- a/OrthancFramework/Sources/DicomNetworking/IGetRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IGetRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IGetRequestHandlerFactory.h --- a/OrthancFramework/Sources/DicomNetworking/IGetRequestHandlerFactory.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IGetRequestHandlerFactory.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IMoveRequestHandler.h --- a/OrthancFramework/Sources/DicomNetworking/IMoveRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IMoveRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IMoveRequestHandlerFactory.h --- a/OrthancFramework/Sources/DicomNetworking/IMoveRequestHandlerFactory.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IMoveRequestHandlerFactory.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IStorageCommitmentRequestHandler.h --- a/OrthancFramework/Sources/DicomNetworking/IStorageCommitmentRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IStorageCommitmentRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IStorageCommitmentRequestHandlerFactory.h --- a/OrthancFramework/Sources/DicomNetworking/IStorageCommitmentRequestHandlerFactory.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IStorageCommitmentRequestHandlerFactory.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IStoreRequestHandler.h --- a/OrthancFramework/Sources/DicomNetworking/IStoreRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IStoreRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IStoreRequestHandlerFactory.h --- a/OrthancFramework/Sources/DicomNetworking/IStoreRequestHandlerFactory.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IStoreRequestHandlerFactory.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IWorklistRequestHandler.h --- a/OrthancFramework/Sources/DicomNetworking/IWorklistRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IWorklistRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/IWorklistRequestHandlerFactory.h --- a/OrthancFramework/Sources/DicomNetworking/IWorklistRequestHandlerFactory.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/IWorklistRequestHandlerFactory.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.cpp --- a/OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.h --- a/OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/DicomTls.cpp --- a/OrthancFramework/Sources/DicomNetworking/Internals/DicomTls.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/DicomTls.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -27,7 +28,9 @@ #include "../../Logging.h" #include "../../OrthancException.h" #include "../../SystemToolbox.h" - +#include "../../Toolbox.h" +#include +#include #if DCMTK_VERSION_NUMBER < 364 # define DCF_Filetype_PEM SSL_FILETYPE_PEM @@ -58,12 +61,47 @@ #endif +#if DCMTK_VERSION_NUMBER >= 367 + static OFCondition MyConvertOpenSSLError(unsigned long errorCode, OFBool logAsError) + { + return DcmTLSTransportLayer::convertOpenSSLError(errorCode, logAsError); + } +#else + static OFCondition MyConvertOpenSSLError(unsigned long errorCode, OFBool logAsError) + { + if (errorCode == 0) + { + return EC_Normal; + } + else + { + const char *err = ERR_reason_error_string(errorCode); + if (err == NULL) + { + err = "OpenSSL error"; + } + + if (logAsError) + { + DCMTLS_ERROR("OpenSSL error " << STD_NAMESPACE hex << STD_NAMESPACE setfill('0') + << STD_NAMESPACE setw(8) << errorCode << ": " << err); + } + + // The "2" below corresponds to the same error code as "DCMTLS_EC_FailedToSetCiphersuites" + return OFCondition(OFM_dcmtls, 2, OF_error, err); + } + } +#endif + + DcmTLSTransportLayer* InitializeDicomTls(T_ASC_Network *network, T_ASC_NetworkRole role, const std::string& ownPrivateKeyPath, const std::string& ownCertificatePath, const std::string& trustedCertificatesPath, - bool requireRemoteCertificate) + bool requireRemoteCertificate, + unsigned int minimalTlsVersion, + const std::set& ciphers) { if (network == NULL) { @@ -76,7 +114,7 @@ throw OrthancException(ErrorCode_ParameterOutOfRange, "Unknown role"); } - if (!SystemToolbox::IsRegularFile(trustedCertificatesPath)) + if (requireRemoteCertificate && !SystemToolbox::IsRegularFile(trustedCertificatesPath)) { throw OrthancException(ErrorCode_InexistentFile, "Cannot read file with trusted certificates for DICOM TLS: " + trustedCertificatesPath); @@ -120,7 +158,7 @@ new DcmTLSTransportLayer(tmpRole /*opt_networkRole*/, NULL /*opt_readSeedFile*/, OFFalse /*initializeOpenSSL, done by Orthanc::Toolbox::InitializeOpenSsl()*/)); - if (IsFailure(tls->addTrustedCertificateFile(trustedCertificatesPath.c_str(), DCF_Filetype_PEM /*opt_keyFileFormat*/))) + if (requireRemoteCertificate && IsFailure(tls->addTrustedCertificateFile(trustedCertificatesPath.c_str(), DCF_Filetype_PEM /*opt_keyFileFormat*/))) { throw OrthancException(ErrorCode_BadFileFormat, "Cannot parse PEM file with trusted certificates for DICOM TLS: " + trustedCertificatesPath); @@ -156,14 +194,94 @@ } #if DCMTK_VERSION_NUMBER >= 364 - if (IsFailure(tls->setTLSProfile(TSP_Profile_BCP195 /*opt_tlsProfile*/))) + if (minimalTlsVersion == 0) // use the default values (same behavior as before 1.12.4) { - throw OrthancException(ErrorCode_InternalError, "Cannot set the DICOM TLS profile"); + if (ciphers.size() > 0) + { + throw OrthancException(ErrorCode_BadFileFormat, "The cipher suites can not be specified when using the default BCP profile"); + } + + if (IsFailure(tls->setTLSProfile(TSP_Profile_BCP195 /*opt_tlsProfile*/))) + { + throw OrthancException(ErrorCode_InternalError, "Cannot set the DICOM TLS profile"); + } + + if (IsFailure(tls->activateCipherSuites())) + { + throw OrthancException(ErrorCode_InternalError, "Cannot activate the cipher suites for DICOM TLS"); + } } - - if (IsFailure(tls->activateCipherSuites())) + else { - throw OrthancException(ErrorCode_InternalError, "Cannot activate the cipher suites for DICOM TLS"); + // Fine tune the SSL context + if (IsFailure(tls->setTLSProfile(TSP_Profile_None))) + { + throw OrthancException(ErrorCode_InternalError, "Cannot set the DICOM TLS profile"); + } + + DcmTLSTransportLayer::native_handle_type sslNativeHandle = tls->getNativeHandle(); + SSL_CTX_clear_options(sslNativeHandle, SSL_OP_NO_SSL_MASK); + if (minimalTlsVersion > 1) + { + SSL_CTX_set_options(sslNativeHandle, SSL_OP_NO_SSLv3); + } + if (minimalTlsVersion > 2) + { + SSL_CTX_set_options(sslNativeHandle, SSL_OP_NO_TLSv1); + } + if (minimalTlsVersion > 3) + { + SSL_CTX_set_options(sslNativeHandle, SSL_OP_NO_TLSv1_1); + } + if (minimalTlsVersion > 4) + { + SSL_CTX_set_options(sslNativeHandle, SSL_OP_NO_TLSv1_2); + } + + std::set ciphersTls; + std::set ciphersTls13; + + // DCMTK 3.8 is missing a method to add TLS13 cipher suite in the DcmTLSTransportLayer interface. + // And, anyway, since we do not run dcmtkPrepare.cmake, DCMTK is not aware of TLS v1.3 cipher suite names. + for (std::set::const_iterator it = ciphers.begin(); it != ciphers.end(); ++it) + { + bool isValid = false; + if (DcmTLSCiphersuiteHandler::lookupCiphersuiteByOpenSSLName(it->c_str()) != DcmTLSCiphersuiteHandler::unknownCipherSuiteIndex) + { + ciphersTls.insert(it->c_str()); + isValid = true; + } + + // list of TLS v1.3 ciphers according to https://www.openssl.org/docs/man3.3/man1/openssl-ciphers.html + if (strstr("TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_CCM_SHA256:TLS_AES_128_CCM_8_SHA256", it->c_str()) != NULL) + { + ciphersTls13.insert(it->c_str()); + isValid = true; + } + + if (!isValid) + { + throw OrthancException(ErrorCode_BadFileFormat, "The cipher suite " + *it + " is not recognized as valid cipher suite by OpenSSL "); + } + } + + std::string joinedCiphersTls; + std::string joinedCiphersTls13; + Toolbox::JoinStrings(joinedCiphersTls, ciphersTls, ":"); + Toolbox::JoinStrings(joinedCiphersTls13, ciphersTls13, ":"); + + if (joinedCiphersTls.size() > 0 && SSL_CTX_set_cipher_list(sslNativeHandle, joinedCiphersTls.c_str()) != 1) + { + OFCondition cond = MyConvertOpenSSLError(ERR_get_error(), OFTrue); + throw OrthancException(ErrorCode_InternalError, "Unable to configure cipher suite. OpenSSL error: " + boost::lexical_cast(cond.code()) + " - " + cond.text()); + } + + if (joinedCiphersTls13.size() > 0 && SSL_CTX_set_ciphersuites(sslNativeHandle, joinedCiphersTls13.c_str()) != 1) + { + OFCondition cond = MyConvertOpenSSLError(ERR_get_error(), OFTrue); + throw OrthancException(ErrorCode_InternalError, "Unable to configure cipher suite for TLS 1.3. OpenSSL error: " + boost::lexical_cast(cond.code()) + " - " + cond.text()); + } + } #else CLOG(INFO, DICOM) << "Using the following cipher suites for DICOM TLS: " << opt_ciphersuites; @@ -180,8 +298,8 @@ } else { - // Check remote certificate if present, succeed if no certificate is present - tls->setCertificateVerification(DCV_checkCertificate /*opt_certVerification*/); + // From 1.12.4, do not even request remote certificate (prior to 1.12.4, we were requesting a certificates, checking it if present and succeeding if not present) + tls->setCertificateVerification(DCV_ignoreCertificate /*opt_certVerification*/); } if (ASC_setTransportLayer(network, tls.get(), 0).bad()) diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/DicomTls.h --- a/OrthancFramework/Sources/DicomNetworking/Internals/DicomTls.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/DicomTls.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -38,7 +39,7 @@ #include #include - +#include namespace Orthanc { @@ -50,6 +51,9 @@ const std::string& ownPrivateKeyPath, // This is the first argument of "+tls" option from DCMTK command-line tools const std::string& ownCertificatePath, // This is the second argument of "+tls" option const std::string& trustedCertificatesPath, // This is the "--add-cert-file" ("+cf") option - bool requireRemoteCertificate); // "true" means "--require-peer-cert", "false" means "--verify-peer-cert" + bool requireRemoteCertificate, // "true" means "--require-peer-cert", "false" means "--ignore-peer-cert" + unsigned int minimalTlsVersion, // 0 = default BCP195, 5 = TLS1.3 only + const std::set& acceptedCiphers + ); } } diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/FindScp.cpp --- a/OrthancFramework/Sources/DicomNetworking/Internals/FindScp.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/FindScp.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/FindScp.h --- a/OrthancFramework/Sources/DicomNetworking/Internals/FindScp.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/FindScp.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/GetScp.cpp --- a/OrthancFramework/Sources/DicomNetworking/Internals/GetScp.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/GetScp.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/GetScp.h --- a/OrthancFramework/Sources/DicomNetworking/Internals/GetScp.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/GetScp.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/MoveScp.cpp --- a/OrthancFramework/Sources/DicomNetworking/Internals/MoveScp.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/MoveScp.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/MoveScp.h --- a/OrthancFramework/Sources/DicomNetworking/Internals/MoveScp.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/MoveScp.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/StoreScp.cpp --- a/OrthancFramework/Sources/DicomNetworking/Internals/StoreScp.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/StoreScp.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/Internals/StoreScp.h --- a/OrthancFramework/Sources/DicomNetworking/Internals/StoreScp.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/Internals/StoreScp.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/NetworkingCompatibility.h --- a/OrthancFramework/Sources/DicomNetworking/NetworkingCompatibility.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/NetworkingCompatibility.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.cpp --- a/OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.h --- a/OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/RemoteModalityParameters.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/TimeoutDicomConnectionManager.cpp --- a/OrthancFramework/Sources/DicomNetworking/TimeoutDicomConnectionManager.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/TimeoutDicomConnectionManager.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomNetworking/TimeoutDicomConnectionManager.h --- a/OrthancFramework/Sources/DicomNetworking/TimeoutDicomConnectionManager.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomNetworking/TimeoutDicomConnectionManager.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.cpp --- a/OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.h --- a/OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DcmtkTranscoder.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DicomDirWriter.cpp --- a/OrthancFramework/Sources/DicomParsing/DicomDirWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DicomDirWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DicomDirWriter.h --- a/OrthancFramework/Sources/DicomParsing/DicomDirWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DicomDirWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DicomModification.cpp --- a/OrthancFramework/Sources/DicomParsing/DicomModification.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DicomModification.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DicomModification.h --- a/OrthancFramework/Sources/DicomParsing/DicomModification.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DicomModification.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DicomWebJsonVisitor.cpp --- a/OrthancFramework/Sources/DicomParsing/DicomWebJsonVisitor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DicomWebJsonVisitor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/DicomWebJsonVisitor.h --- a/OrthancFramework/Sources/DicomParsing/DicomWebJsonVisitor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/DicomWebJsonVisitor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp --- a/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -1977,13 +1978,27 @@ case EVR_SL: // signed long { - ok = element.putSint32(boost::lexical_cast(*decoded)).good(); + if (decoded->find('\\') != std::string::npos) + { + ok = element.putString(decoded->c_str()).good(); + } + else + { + ok = element.putSint32(boost::lexical_cast(*decoded)).good(); + } break; } case EVR_SS: // signed short { - ok = element.putSint16(boost::lexical_cast(*decoded)).good(); + if (decoded->find('\\') != std::string::npos) + { + ok = element.putString(decoded->c_str()).good(); + } + else + { + ok = element.putSint16(boost::lexical_cast(*decoded)).good(); + } break; } @@ -2022,14 +2037,28 @@ case EVR_US: // unsigned short { - ok = element.putUint16(boost::lexical_cast(*decoded)).good(); + if (decoded->find('\\') != std::string::npos) + { + ok = element.putString(decoded->c_str()).good(); + } + else + { + ok = element.putUint16(boost::lexical_cast(*decoded)).good(); + } break; } case EVR_FL: // float single-precision case EVR_OF: // other float (requires byte swapping) { - ok = element.putFloat32(boost::lexical_cast(*decoded)).good(); + if (decoded->find('\\') != std::string::npos) + { + ok = element.putString(decoded->c_str()).good(); + } + else + { + ok = element.putFloat32(boost::lexical_cast(*decoded)).good(); + } break; } @@ -2038,7 +2067,14 @@ case EVR_OD: // other double (requires byte-swapping) #endif { - ok = element.putFloat64(boost::lexical_cast(*decoded)).good(); + if (decoded->find('\\') != std::string::npos) + { + ok = element.putString(decoded->c_str()).good(); + } + else + { + ok = element.putFloat64(boost::lexical_cast(*decoded)).good(); + } break; } diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h --- a/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/FromDcmtkBridge_TransferSyntaxes.impl.h --- a/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge_TransferSyntaxes.impl.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge_TransferSyntaxes.impl.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/IDicomTranscoder.cpp --- a/OrthancFramework/Sources/DicomParsing/IDicomTranscoder.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/IDicomTranscoder.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/IDicomTranscoder.h --- a/OrthancFramework/Sources/DicomParsing/IDicomTranscoder.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/IDicomTranscoder.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ITagVisitor.h --- a/OrthancFramework/Sources/DicomParsing/ITagVisitor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ITagVisitor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/Internals/DicomFrameIndex.cpp --- a/OrthancFramework/Sources/DicomParsing/Internals/DicomFrameIndex.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/Internals/DicomFrameIndex.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/Internals/DicomFrameIndex.h --- a/OrthancFramework/Sources/DicomParsing/Internals/DicomFrameIndex.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/Internals/DicomFrameIndex.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.cpp --- a/OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.h --- a/OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/Internals/DicomImageDecoder.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/MemoryBufferTranscoder.cpp --- a/OrthancFramework/Sources/DicomParsing/MemoryBufferTranscoder.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/MemoryBufferTranscoder.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/MemoryBufferTranscoder.h --- a/OrthancFramework/Sources/DicomParsing/MemoryBufferTranscoder.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/MemoryBufferTranscoder.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ParsedDicomCache.cpp --- a/OrthancFramework/Sources/DicomParsing/ParsedDicomCache.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ParsedDicomCache.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ParsedDicomCache.h --- a/OrthancFramework/Sources/DicomParsing/ParsedDicomCache.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ParsedDicomCache.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ParsedDicomDir.cpp --- a/OrthancFramework/Sources/DicomParsing/ParsedDicomDir.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ParsedDicomDir.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ParsedDicomDir.h --- a/OrthancFramework/Sources/DicomParsing/ParsedDicomDir.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ParsedDicomDir.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ParsedDicomFile.cpp --- a/OrthancFramework/Sources/DicomParsing/ParsedDicomFile.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ParsedDicomFile.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ParsedDicomFile.h --- a/OrthancFramework/Sources/DicomParsing/ParsedDicomFile.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ParsedDicomFile.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ToDcmtkBridge.cpp --- a/OrthancFramework/Sources/DicomParsing/ToDcmtkBridge.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ToDcmtkBridge.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/DicomParsing/ToDcmtkBridge.h --- a/OrthancFramework/Sources/DicomParsing/ToDcmtkBridge.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/DicomParsing/ToDcmtkBridge.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Endianness.h --- a/OrthancFramework/Sources/Endianness.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Endianness.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/EnumerationDictionary.h --- a/OrthancFramework/Sources/EnumerationDictionary.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/EnumerationDictionary.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Enumerations.cpp --- a/OrthancFramework/Sources/Enumerations.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Enumerations.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Enumerations.h --- a/OrthancFramework/Sources/Enumerations.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Enumerations.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Enumerations_TransferSyntaxes.impl.h --- a/OrthancFramework/Sources/Enumerations_TransferSyntaxes.impl.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Enumerations_TransferSyntaxes.impl.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileBuffer.cpp --- a/OrthancFramework/Sources/FileBuffer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileBuffer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileBuffer.h --- a/OrthancFramework/Sources/FileBuffer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileBuffer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/FileInfo.cpp --- a/OrthancFramework/Sources/FileStorage/FileInfo.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/FileInfo.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/FileInfo.h --- a/OrthancFramework/Sources/FileStorage/FileInfo.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/FileInfo.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/FilesystemStorage.cpp --- a/OrthancFramework/Sources/FileStorage/FilesystemStorage.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/FilesystemStorage.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/FilesystemStorage.h --- a/OrthancFramework/Sources/FileStorage/FilesystemStorage.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/FilesystemStorage.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/IStorageArea.h --- a/OrthancFramework/Sources/FileStorage/IStorageArea.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/IStorageArea.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/MemoryStorageArea.cpp --- a/OrthancFramework/Sources/FileStorage/MemoryStorageArea.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/MemoryStorageArea.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/MemoryStorageArea.h --- a/OrthancFramework/Sources/FileStorage/MemoryStorageArea.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/MemoryStorageArea.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/StorageAccessor.cpp --- a/OrthancFramework/Sources/FileStorage/StorageAccessor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/StorageAccessor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/StorageAccessor.h --- a/OrthancFramework/Sources/FileStorage/StorageAccessor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/StorageAccessor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/StorageCache.cpp --- a/OrthancFramework/Sources/FileStorage/StorageCache.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/StorageCache.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/FileStorage/StorageCache.h --- a/OrthancFramework/Sources/FileStorage/StorageCache.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/FileStorage/StorageCache.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpClient.cpp --- a/OrthancFramework/Sources/HttpClient.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpClient.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpClient.h --- a/OrthancFramework/Sources/HttpClient.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpClient.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/BufferHttpSender.cpp --- a/OrthancFramework/Sources/HttpServer/BufferHttpSender.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/BufferHttpSender.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/BufferHttpSender.h --- a/OrthancFramework/Sources/HttpServer/BufferHttpSender.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/BufferHttpSender.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/CStringMatcher.cpp --- a/OrthancFramework/Sources/HttpServer/CStringMatcher.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/CStringMatcher.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/CStringMatcher.h --- a/OrthancFramework/Sources/HttpServer/CStringMatcher.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/CStringMatcher.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/FilesystemHttpHandler.cpp --- a/OrthancFramework/Sources/HttpServer/FilesystemHttpHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/FilesystemHttpHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/FilesystemHttpHandler.h --- a/OrthancFramework/Sources/HttpServer/FilesystemHttpHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/FilesystemHttpHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/FilesystemHttpSender.cpp --- a/OrthancFramework/Sources/HttpServer/FilesystemHttpSender.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/FilesystemHttpSender.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/FilesystemHttpSender.h --- a/OrthancFramework/Sources/HttpServer/FilesystemHttpSender.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/FilesystemHttpSender.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpContentNegociation.cpp --- a/OrthancFramework/Sources/HttpServer/HttpContentNegociation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpContentNegociation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpContentNegociation.h --- a/OrthancFramework/Sources/HttpServer/HttpContentNegociation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpContentNegociation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpFileSender.cpp --- a/OrthancFramework/Sources/HttpServer/HttpFileSender.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpFileSender.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpFileSender.h --- a/OrthancFramework/Sources/HttpServer/HttpFileSender.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpFileSender.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpOutput.cpp --- a/OrthancFramework/Sources/HttpServer/HttpOutput.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpOutput.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -428,8 +429,13 @@ void HttpOutput::Redirect(const std::string& path) { + /** + * "HttpStatus_301_MovedPermanently" was used in Orthanc <= + * 1.12.3. This caused issues on changes in the configuration of + * Orthanc. + **/ stateMachine_.ClearHeaders(); - stateMachine_.SetHttpStatus(HttpStatus_301_MovedPermanently); + stateMachine_.SetHttpStatus(HttpStatus_307_TemporaryRedirect); stateMachine_.AddHeader("Location", path); stateMachine_.SendBody(NULL, 0); } diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpOutput.h --- a/OrthancFramework/Sources/HttpServer/HttpOutput.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpOutput.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpServer.cpp --- a/OrthancFramework/Sources/HttpServer/HttpServer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpServer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpServer.h --- a/OrthancFramework/Sources/HttpServer/HttpServer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpServer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpStreamTranscoder.cpp --- a/OrthancFramework/Sources/HttpServer/HttpStreamTranscoder.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpStreamTranscoder.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpStreamTranscoder.h --- a/OrthancFramework/Sources/HttpServer/HttpStreamTranscoder.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpStreamTranscoder.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpToolbox.cpp --- a/OrthancFramework/Sources/HttpServer/HttpToolbox.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpToolbox.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/HttpToolbox.h --- a/OrthancFramework/Sources/HttpServer/HttpToolbox.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/HttpToolbox.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/IHttpHandler.cpp --- a/OrthancFramework/Sources/HttpServer/IHttpHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/IHttpHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/IHttpHandler.h --- a/OrthancFramework/Sources/HttpServer/IHttpHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/IHttpHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/IHttpOutputStream.h --- a/OrthancFramework/Sources/HttpServer/IHttpOutputStream.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/IHttpOutputStream.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/IHttpStreamAnswer.h --- a/OrthancFramework/Sources/HttpServer/IHttpStreamAnswer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/IHttpStreamAnswer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/IIncomingHttpRequestFilter.h --- a/OrthancFramework/Sources/HttpServer/IIncomingHttpRequestFilter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/IIncomingHttpRequestFilter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/IWebDavBucket.cpp --- a/OrthancFramework/Sources/HttpServer/IWebDavBucket.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/IWebDavBucket.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/IWebDavBucket.h --- a/OrthancFramework/Sources/HttpServer/IWebDavBucket.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/IWebDavBucket.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/MultipartStreamReader.cpp --- a/OrthancFramework/Sources/HttpServer/MultipartStreamReader.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/MultipartStreamReader.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/MultipartStreamReader.h --- a/OrthancFramework/Sources/HttpServer/MultipartStreamReader.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/MultipartStreamReader.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/StringHttpOutput.cpp --- a/OrthancFramework/Sources/HttpServer/StringHttpOutput.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/StringHttpOutput.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/StringHttpOutput.h --- a/OrthancFramework/Sources/HttpServer/StringHttpOutput.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/StringHttpOutput.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/StringMatcher.cpp --- a/OrthancFramework/Sources/HttpServer/StringMatcher.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/StringMatcher.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/StringMatcher.h --- a/OrthancFramework/Sources/HttpServer/StringMatcher.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/StringMatcher.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/WebDavStorage.cpp --- a/OrthancFramework/Sources/HttpServer/WebDavStorage.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/WebDavStorage.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/HttpServer/WebDavStorage.h --- a/OrthancFramework/Sources/HttpServer/WebDavStorage.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/HttpServer/WebDavStorage.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/IDynamicObject.h --- a/OrthancFramework/Sources/IDynamicObject.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/IDynamicObject.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/IMemoryBuffer.h --- a/OrthancFramework/Sources/IMemoryBuffer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/IMemoryBuffer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/Font.cpp --- a/OrthancFramework/Sources/Images/Font.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/Font.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/Font.h --- a/OrthancFramework/Sources/Images/Font.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/Font.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/FontRegistry.cpp --- a/OrthancFramework/Sources/Images/FontRegistry.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/FontRegistry.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/FontRegistry.h --- a/OrthancFramework/Sources/Images/FontRegistry.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/FontRegistry.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/IImageWriter.cpp --- a/OrthancFramework/Sources/Images/IImageWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/IImageWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/IImageWriter.h --- a/OrthancFramework/Sources/Images/IImageWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/IImageWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/Image.cpp --- a/OrthancFramework/Sources/Images/Image.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/Image.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/Image.h --- a/OrthancFramework/Sources/Images/Image.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/Image.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/ImageAccessor.cpp --- a/OrthancFramework/Sources/Images/ImageAccessor.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageAccessor.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/ImageAccessor.h --- a/OrthancFramework/Sources/Images/ImageAccessor.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageAccessor.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/ImageBuffer.cpp --- a/OrthancFramework/Sources/Images/ImageBuffer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageBuffer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/ImageBuffer.h --- a/OrthancFramework/Sources/Images/ImageBuffer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageBuffer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/ImageProcessing.cpp --- a/OrthancFramework/Sources/Images/ImageProcessing.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageProcessing.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/ImageProcessing.h --- a/OrthancFramework/Sources/Images/ImageProcessing.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageProcessing.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/ImageTraits.h --- a/OrthancFramework/Sources/Images/ImageTraits.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/ImageTraits.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/JpegErrorManager.cpp --- a/OrthancFramework/Sources/Images/JpegErrorManager.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/JpegErrorManager.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/JpegErrorManager.h --- a/OrthancFramework/Sources/Images/JpegErrorManager.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/JpegErrorManager.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/JpegReader.cpp --- a/OrthancFramework/Sources/Images/JpegReader.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/JpegReader.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/JpegReader.h --- a/OrthancFramework/Sources/Images/JpegReader.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/JpegReader.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/JpegWriter.cpp --- a/OrthancFramework/Sources/Images/JpegWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/JpegWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/JpegWriter.h --- a/OrthancFramework/Sources/Images/JpegWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/JpegWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/NumpyWriter.cpp --- a/OrthancFramework/Sources/Images/NumpyWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/NumpyWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/NumpyWriter.h --- a/OrthancFramework/Sources/Images/NumpyWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/NumpyWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PamReader.cpp --- a/OrthancFramework/Sources/Images/PamReader.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PamReader.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PamReader.h --- a/OrthancFramework/Sources/Images/PamReader.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PamReader.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PamWriter.cpp --- a/OrthancFramework/Sources/Images/PamWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PamWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PamWriter.h --- a/OrthancFramework/Sources/Images/PamWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PamWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PixelTraits.h --- a/OrthancFramework/Sources/Images/PixelTraits.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PixelTraits.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PngReader.cpp --- a/OrthancFramework/Sources/Images/PngReader.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PngReader.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PngReader.h --- a/OrthancFramework/Sources/Images/PngReader.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PngReader.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PngWriter.cpp --- a/OrthancFramework/Sources/Images/PngWriter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PngWriter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Images/PngWriter.h --- a/OrthancFramework/Sources/Images/PngWriter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Images/PngWriter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/GenericJobUnserializer.cpp --- a/OrthancFramework/Sources/JobsEngine/GenericJobUnserializer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/GenericJobUnserializer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/GenericJobUnserializer.h --- a/OrthancFramework/Sources/JobsEngine/GenericJobUnserializer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/GenericJobUnserializer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/IJob.h --- a/OrthancFramework/Sources/JobsEngine/IJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/IJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/IJobUnserializer.h --- a/OrthancFramework/Sources/JobsEngine/IJobUnserializer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/IJobUnserializer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobInfo.cpp --- a/OrthancFramework/Sources/JobsEngine/JobInfo.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobInfo.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobInfo.h --- a/OrthancFramework/Sources/JobsEngine/JobInfo.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobInfo.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobStatus.cpp --- a/OrthancFramework/Sources/JobsEngine/JobStatus.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobStatus.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobStatus.h --- a/OrthancFramework/Sources/JobsEngine/JobStatus.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobStatus.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobStepResult.cpp --- a/OrthancFramework/Sources/JobsEngine/JobStepResult.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobStepResult.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobStepResult.h --- a/OrthancFramework/Sources/JobsEngine/JobStepResult.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobStepResult.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobsEngine.cpp --- a/OrthancFramework/Sources/JobsEngine/JobsEngine.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobsEngine.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobsEngine.h --- a/OrthancFramework/Sources/JobsEngine/JobsEngine.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobsEngine.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobsRegistry.cpp --- a/OrthancFramework/Sources/JobsEngine/JobsRegistry.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobsRegistry.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/JobsRegistry.h --- a/OrthancFramework/Sources/JobsEngine/JobsRegistry.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/JobsRegistry.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/IJobOperation.h --- a/OrthancFramework/Sources/JobsEngine/Operations/IJobOperation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/IJobOperation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/IJobOperationValue.h --- a/OrthancFramework/Sources/JobsEngine/Operations/IJobOperationValue.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/IJobOperationValue.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/JobOperationValues.cpp --- a/OrthancFramework/Sources/JobsEngine/Operations/JobOperationValues.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/JobOperationValues.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/JobOperationValues.h --- a/OrthancFramework/Sources/JobsEngine/Operations/JobOperationValues.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/JobOperationValues.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/LogJobOperation.cpp --- a/OrthancFramework/Sources/JobsEngine/Operations/LogJobOperation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/LogJobOperation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/LogJobOperation.h --- a/OrthancFramework/Sources/JobsEngine/Operations/LogJobOperation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/LogJobOperation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/NullOperationValue.cpp --- a/OrthancFramework/Sources/JobsEngine/Operations/NullOperationValue.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/NullOperationValue.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/NullOperationValue.h --- a/OrthancFramework/Sources/JobsEngine/Operations/NullOperationValue.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/NullOperationValue.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/SequenceOfOperationsJob.cpp --- a/OrthancFramework/Sources/JobsEngine/Operations/SequenceOfOperationsJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/SequenceOfOperationsJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/SequenceOfOperationsJob.h --- a/OrthancFramework/Sources/JobsEngine/Operations/SequenceOfOperationsJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/SequenceOfOperationsJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/StringOperationValue.cpp --- a/OrthancFramework/Sources/JobsEngine/Operations/StringOperationValue.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/StringOperationValue.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/Operations/StringOperationValue.h --- a/OrthancFramework/Sources/JobsEngine/Operations/StringOperationValue.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/Operations/StringOperationValue.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/SetOfCommandsJob.cpp --- a/OrthancFramework/Sources/JobsEngine/SetOfCommandsJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/SetOfCommandsJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/SetOfCommandsJob.h --- a/OrthancFramework/Sources/JobsEngine/SetOfCommandsJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/SetOfCommandsJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/SetOfInstancesJob.cpp --- a/OrthancFramework/Sources/JobsEngine/SetOfInstancesJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/SetOfInstancesJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/JobsEngine/SetOfInstancesJob.h --- a/OrthancFramework/Sources/JobsEngine/SetOfInstancesJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/JobsEngine/SetOfInstancesJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Logging.cpp --- a/OrthancFramework/Sources/Logging.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Logging.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -311,6 +312,10 @@ { } + void InitializePluginContext(void* pluginContext, const char* pluginName) + { + } + void Initialize() { } @@ -439,6 +444,10 @@ { } + void InitializePluginContext(void* pluginContext, const char* pluginName) + { + } + void Initialize() { } @@ -488,6 +497,7 @@ _OrthancPluginService_LogInfo = 1, _OrthancPluginService_LogWarning = 2, _OrthancPluginService_LogError = 3, + _OrthancPluginService_LogMessage = 45, _OrthancPluginService_INTERNAL = 0x7fffffff } _OrthancPluginService; @@ -500,11 +510,23 @@ _OrthancPluginService service, const void* params); } OrthancPluginContext; + + typedef struct + { + const char* message; + const char* plugin; + const char* file; + uint32_t line; + uint32_t category; // can be a LogCategory or a OrthancPluginLogCategory + uint32_t level; // can be a LogLevel or a OrthancPluginLogLevel + } _OrthancPluginLogMessage; + } #include "Enumerations.h" #include "SystemToolbox.h" +#include "Toolbox.h" #include #include @@ -539,7 +561,9 @@ static std::unique_ptr loggingStreamsContext_; static boost::mutex loggingStreamsMutex_; static Orthanc::Logging::NullStream nullStream_; -static OrthancPluginContext* pluginContext_ = NULL; +static OrthancPluginContext* pluginContext_ = NULL; // this is != NULL only when running from a plugin +static std::string pluginName_; // this string can only be non-empty if running from a plugin +static bool hasOrthancAdvancedLogging_ = false; // Whether the Orthanc runtime is >= 1.12.4 static boost::recursive_mutex threadNamesMutex_; static std::map threadNames_; static bool enableThreadNames_ = true; @@ -667,6 +691,7 @@ static void GetLinePrefix(std::string& prefix, LogLevel level, + const char* pluginName, // when logging in the core but coming from a plugin, pluginName_ is NULL but this argument is != NULL const char* file, int line, LogCategory category) @@ -740,7 +765,13 @@ threadName[0] = '\0'; } - prefix = (std::string(date) + threadName + path.filename().string() + ":" + + std::string internalPluginName = ""; + if (pluginName != NULL) + { + internalPluginName = std::string(pluginName) + ":/"; + } + + prefix = (std::string(date) + threadName + internalPluginName + path.filename().string() + ":" + boost::lexical_cast(line) + "] "); if (level != LogLevel_ERROR && @@ -756,14 +787,29 @@ { assert(sizeof(_OrthancPluginService) == sizeof(int32_t)); + if (pluginContext == NULL) + { + throw OrthancException(ErrorCode_NullPointer); + } + boost::mutex::scoped_lock lock(loggingStreamsMutex_); loggingStreamsContext_.reset(NULL); pluginContext_ = reinterpret_cast(pluginContext); + // The value "hasOrthancAdvancedLogging_" is cached to avoid computing it on every logged message + hasOrthancAdvancedLogging_ = Toolbox::IsVersionAbove(pluginContext_->orthancVersion, 1, 12, 4); + EnableInfoLevel(true); // allow the plugin to log at info level (but the Orthanc Core still decides of the level) } + void InitializePluginContext(void* pluginContext, const std::string& pluginName) + { + InitializePluginContext(pluginContext); + pluginName_ = pluginName; + } + + void Initialize() { boost::mutex::scoped_lock lock(loggingStreamsMutex_); @@ -836,9 +882,17 @@ } - void InternalLogger::Setup(LogCategory category, - const char* file, - int line) + InternalLogger::InternalLogger(LogLevel level, + LogCategory category, + const char* pluginName, + const char* file, + int line) : + lock_(loggingStreamsMutex_, boost::defer_lock_t()), + level_(level), + stream_(&nullStream_), // By default, logging to "/dev/null" is simulated + category_(category), + file_(file), + line_(line) { if (pluginContext_ != NULL) { @@ -869,7 +923,7 @@ } std::string prefix; - GetLinePrefix(prefix, level_, file, line, category); + GetLinePrefix(prefix, level_, pluginName, file, line, category); { // We lock the global mutex. The mutex is locked until the @@ -878,7 +932,9 @@ if (loggingStreamsContext_.get() == NULL) { - fprintf(stderr, "ERROR: Trying to log a message after the finalization of the logging engine\n"); + // Have you called Orthanc::Logging::InitializePluginContext()? + fprintf(stderr, "ERROR: Trying to log a message after the finalization of the logging engine " + "(or did you forgot to initialize it?)\n"); lock_.unlock(); return; } @@ -928,28 +984,6 @@ } - InternalLogger::InternalLogger(LogLevel level, - LogCategory category, - const char* file, - int line) : - lock_(loggingStreamsMutex_, boost::defer_lock_t()), - level_(level), - stream_(&nullStream_) // By default, logging to "/dev/null" is simulated - { - Setup(category, file, line); - } - - - InternalLogger::InternalLogger(LogLevel level, - const char* file, - int line) : - lock_(loggingStreamsMutex_, boost::defer_lock_t()), - level_(level), - stream_(&nullStream_) // By default, logging to "/dev/null" is simulated - { - Setup(LogCategory_GENERIC, file, line); - } - InternalLogger::~InternalLogger() { @@ -961,22 +995,37 @@ if (pluginContext_ != NULL) { - switch (level_) + if (!pluginName_.empty() && + hasOrthancAdvancedLogging_) { - case LogLevel_ERROR: - pluginContext_->InvokeService(pluginContext_, _OrthancPluginService_LogError, message.c_str()); - break; + _OrthancPluginLogMessage m; + m.category = category_; + m.level = level_; + m.file = file_; + m.line = line_; + m.plugin = pluginName_.c_str(); + m.message = message.c_str(); + pluginContext_->InvokeService(pluginContext_, _OrthancPluginService_LogMessage, &m); + } + else + { + switch (level_) + { + case LogLevel_ERROR: + pluginContext_->InvokeService(pluginContext_, _OrthancPluginService_LogError, message.c_str()); + break; - case LogLevel_WARNING: - pluginContext_->InvokeService(pluginContext_, _OrthancPluginService_LogWarning, message.c_str()); - break; + case LogLevel_WARNING: + pluginContext_->InvokeService(pluginContext_, _OrthancPluginService_LogWarning, message.c_str()); + break; - case LogLevel_INFO: - pluginContext_->InvokeService(pluginContext_, _OrthancPluginService_LogInfo, message.c_str()); - break; + case LogLevel_INFO: + pluginContext_->InvokeService(pluginContext_, _OrthancPluginService_LogInfo, message.c_str()); + break; - default: - break; + default: + break; + } } } } diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Logging.h --- a/OrthancFramework/Sources/Logging.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Logging.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -28,6 +29,7 @@ #include "Compatibility.h" #include +#include #if !defined(ORTHANC_ENABLE_LOGGING) # error The macro ORTHANC_ENABLE_LOGGING must be defined @@ -46,12 +48,13 @@ { namespace Logging { + // Note: these values must match the ones in OrthancCPlugin.h enum LogLevel { - LogLevel_ERROR, - LogLevel_WARNING, - LogLevel_INFO, - LogLevel_TRACE + LogLevel_ERROR = 0, + LogLevel_WARNING = 1, + LogLevel_INFO = 2, + LogLevel_TRACE = 3 }; /** @@ -59,6 +62,7 @@ * mask. As a consequence, there can be up to 31 log categories * (not 32, as the value GENERIC is reserved for the log commands * that don't fall in a specific category). + * Note: these values must match the ones in OrthancCPlugin.h **/ enum LogCategory { @@ -78,6 +82,9 @@ // "pluginContext" must be of type "OrthancPluginContext" ORTHANC_PUBLIC void InitializePluginContext(void* pluginContext); + ORTHANC_PUBLIC void InitializePluginContext(void* pluginContext, + const std::string& pluginName); + ORTHANC_PUBLIC void Initialize(); ORTHANC_PUBLIC void Finalize(); @@ -162,6 +169,7 @@ # define LOG(level) ::Orthanc::Logging::NullStream() # define VLOG(unused) ::Orthanc::Logging::NullStream() # define CLOG(level, category) ::Orthanc::Logging::NullStream() +# define LOG_FROM_PLUGIN(level, category, pluginName, file, line) ::Orthanc::Logging::NullStream() #else /* ORTHANC_ENABLE_LOGGING == 1 */ #if !defined(__ORTHANC_FILE__) @@ -175,13 +183,22 @@ # define LOG(level) ::Orthanc::Logging::InternalLogger \ (::Orthanc::Logging::LogLevel_ ## level, \ - ::Orthanc::Logging::LogCategory_GENERIC, __ORTHANC_FILE__, __LINE__) + ::Orthanc::Logging::LogCategory_GENERIC, NULL /* no plugin */, \ + __ORTHANC_FILE__, __LINE__) + # define VLOG(unused) ::Orthanc::Logging::InternalLogger \ (::Orthanc::Logging::LogLevel_TRACE, \ - ::Orthanc::Logging::LogCategory_GENERIC, __ORTHANC_FILE__, __LINE__) + ::Orthanc::Logging::LogCategory_GENERIC, NULL /* no plugin */, \ + __ORTHANC_FILE__, __LINE__) + # define CLOG(level, category) ::Orthanc::Logging::InternalLogger \ (::Orthanc::Logging::LogLevel_ ## level, \ - ::Orthanc::Logging::LogCategory_ ## category, __ORTHANC_FILE__, __LINE__) + ::Orthanc::Logging::LogCategory_ ## category, NULL /* no plugin */, \ + __ORTHANC_FILE__, __LINE__) + +# define LOG_FROM_PLUGIN(level, category, pluginName, file, line) \ + ::Orthanc::Logging::InternalLogger(level, category, pluginName, file, line) + #endif @@ -208,6 +225,7 @@ public: InternalLogger(LogLevel level, LogCategory category, + const char* pluginName /* ignored */, const char* file /* ignored */, int line /* ignored */) : level_(level), @@ -215,15 +233,6 @@ { } - // For backward binary compatibility with Orthanc Framework <= 1.8.0 - InternalLogger(LogLevel level, - const char* file /* ignored */, - int line /* ignored */) : - level_(level), - category_(LogCategory_GENERIC) - { - } - ~InternalLogger(); template @@ -258,19 +267,14 @@ LogLevel level_; std::unique_ptr pluginStream_; std::ostream* stream_; - - void Setup(LogCategory category, - const char* file, - int line); + LogCategory category_; + const char* file_; + uint32_t line_; public: InternalLogger(LogLevel level, LogCategory category, - const char* file, - int line); - - // For backward binary compatibility with Orthanc Framework <= 1.8.0 - InternalLogger(LogLevel level, + const char* pluginName, const char* file, int line); diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Lua/LuaContext.cpp --- a/OrthancFramework/Sources/Lua/LuaContext.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Lua/LuaContext.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Lua/LuaContext.h --- a/OrthancFramework/Sources/Lua/LuaContext.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Lua/LuaContext.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Lua/LuaFunctionCall.cpp --- a/OrthancFramework/Sources/Lua/LuaFunctionCall.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Lua/LuaFunctionCall.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Lua/LuaFunctionCall.h --- a/OrthancFramework/Sources/Lua/LuaFunctionCall.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Lua/LuaFunctionCall.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MallocMemoryBuffer.cpp --- a/OrthancFramework/Sources/MallocMemoryBuffer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MallocMemoryBuffer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MallocMemoryBuffer.h --- a/OrthancFramework/Sources/MallocMemoryBuffer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MallocMemoryBuffer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MetricsRegistry.cpp --- a/OrthancFramework/Sources/MetricsRegistry.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MetricsRegistry.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MetricsRegistry.h --- a/OrthancFramework/Sources/MetricsRegistry.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MetricsRegistry.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/IRunnableBySteps.h --- a/OrthancFramework/Sources/MultiThreading/IRunnableBySteps.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/IRunnableBySteps.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/Mutex.h --- a/OrthancFramework/Sources/MultiThreading/Mutex.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/Mutex.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/RunnableWorkersPool.cpp --- a/OrthancFramework/Sources/MultiThreading/RunnableWorkersPool.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/RunnableWorkersPool.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/RunnableWorkersPool.h --- a/OrthancFramework/Sources/MultiThreading/RunnableWorkersPool.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/RunnableWorkersPool.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/Semaphore.cpp --- a/OrthancFramework/Sources/MultiThreading/Semaphore.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/Semaphore.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/Semaphore.h --- a/OrthancFramework/Sources/MultiThreading/Semaphore.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/Semaphore.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/SharedMessageQueue.cpp --- a/OrthancFramework/Sources/MultiThreading/SharedMessageQueue.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/SharedMessageQueue.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/MultiThreading/SharedMessageQueue.h --- a/OrthancFramework/Sources/MultiThreading/SharedMessageQueue.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/MultiThreading/SharedMessageQueue.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/OrthancException.cpp --- a/OrthancFramework/Sources/OrthancException.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/OrthancException.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/OrthancException.h --- a/OrthancFramework/Sources/OrthancException.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/OrthancException.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/OrthancFramework.cpp --- a/OrthancFramework/Sources/OrthancFramework.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/OrthancFramework.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/OrthancFramework.h --- a/OrthancFramework/Sources/OrthancFramework.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/OrthancFramework.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Pkcs11.cpp --- a/OrthancFramework/Sources/Pkcs11.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Pkcs11.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Pkcs11.h --- a/OrthancFramework/Sources/Pkcs11.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Pkcs11.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/PrecompiledHeaders.cpp --- a/OrthancFramework/Sources/PrecompiledHeaders.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/PrecompiledHeaders.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/PrecompiledHeaders.h --- a/OrthancFramework/Sources/PrecompiledHeaders.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/PrecompiledHeaders.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApi.cpp --- a/OrthancFramework/Sources/RestApi/RestApi.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApi.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApi.h --- a/OrthancFramework/Sources/RestApi/RestApi.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApi.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiCall.cpp --- a/OrthancFramework/Sources/RestApi/RestApiCall.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiCall.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiCall.h --- a/OrthancFramework/Sources/RestApi/RestApiCall.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiCall.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp --- a/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiCallDocumentation.h --- a/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiCallDocumentation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiDeleteCall.h --- a/OrthancFramework/Sources/RestApi/RestApiDeleteCall.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiDeleteCall.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiGetCall.cpp --- a/OrthancFramework/Sources/RestApi/RestApiGetCall.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiGetCall.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiGetCall.h --- a/OrthancFramework/Sources/RestApi/RestApiGetCall.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiGetCall.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiHierarchy.cpp --- a/OrthancFramework/Sources/RestApi/RestApiHierarchy.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiHierarchy.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiHierarchy.h --- a/OrthancFramework/Sources/RestApi/RestApiHierarchy.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiHierarchy.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiOutput.cpp --- a/OrthancFramework/Sources/RestApi/RestApiOutput.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiOutput.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiOutput.h --- a/OrthancFramework/Sources/RestApi/RestApiOutput.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiOutput.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiPath.cpp --- a/OrthancFramework/Sources/RestApi/RestApiPath.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiPath.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiPath.h --- a/OrthancFramework/Sources/RestApi/RestApiPath.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiPath.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiPostCall.h --- a/OrthancFramework/Sources/RestApi/RestApiPostCall.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiPostCall.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/RestApi/RestApiPutCall.h --- a/OrthancFramework/Sources/RestApi/RestApiPutCall.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/RestApi/RestApiPutCall.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/Connection.cpp --- a/OrthancFramework/Sources/SQLite/Connection.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/Connection.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/Connection.h --- a/OrthancFramework/Sources/SQLite/Connection.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/Connection.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/FunctionContext.cpp --- a/OrthancFramework/Sources/SQLite/FunctionContext.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/FunctionContext.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Redistribution and use in source and binary forms, with or without diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/FunctionContext.h --- a/OrthancFramework/Sources/SQLite/FunctionContext.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/FunctionContext.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Redistribution and use in source and binary forms, with or without diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/IScalarFunction.h --- a/OrthancFramework/Sources/SQLite/IScalarFunction.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/IScalarFunction.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Redistribution and use in source and binary forms, with or without diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/ITransaction.h --- a/OrthancFramework/Sources/SQLite/ITransaction.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/ITransaction.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/NonCopyable.h --- a/OrthancFramework/Sources/SQLite/NonCopyable.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/NonCopyable.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Redistribution and use in source and binary forms, with or without diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/OrthancSQLiteException.h --- a/OrthancFramework/Sources/SQLite/OrthancSQLiteException.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/OrthancSQLiteException.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/SQLiteTypes.h --- a/OrthancFramework/Sources/SQLite/SQLiteTypes.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/SQLiteTypes.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Redistribution and use in source and binary forms, with or without diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/Statement.cpp --- a/OrthancFramework/Sources/SQLite/Statement.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/Statement.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/Statement.h --- a/OrthancFramework/Sources/SQLite/Statement.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/Statement.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/StatementId.cpp --- a/OrthancFramework/Sources/SQLite/StatementId.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/StatementId.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/StatementId.h --- a/OrthancFramework/Sources/SQLite/StatementId.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/StatementId.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/StatementReference.cpp --- a/OrthancFramework/Sources/SQLite/StatementReference.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/StatementReference.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/StatementReference.h --- a/OrthancFramework/Sources/SQLite/StatementReference.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/StatementReference.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/Transaction.cpp --- a/OrthancFramework/Sources/SQLite/Transaction.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/Transaction.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SQLite/Transaction.h --- a/OrthancFramework/Sources/SQLite/Transaction.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SQLite/Transaction.h Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ * * Copyright (C) 2012-2016 Sebastien Jodogne , * Medical Physics Department, CHU of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * Copyright (c) 2012 The Chromium Authors. All rights reserved. diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SerializationToolbox.cpp --- a/OrthancFramework/Sources/SerializationToolbox.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SerializationToolbox.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SerializationToolbox.h --- a/OrthancFramework/Sources/SerializationToolbox.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SerializationToolbox.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SharedLibrary.cpp --- a/OrthancFramework/Sources/SharedLibrary.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SharedLibrary.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SharedLibrary.h --- a/OrthancFramework/Sources/SharedLibrary.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SharedLibrary.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/StringMemoryBuffer.cpp --- a/OrthancFramework/Sources/StringMemoryBuffer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/StringMemoryBuffer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/StringMemoryBuffer.h --- a/OrthancFramework/Sources/StringMemoryBuffer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/StringMemoryBuffer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SystemToolbox.cpp --- a/OrthancFramework/Sources/SystemToolbox.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SystemToolbox.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -774,7 +775,7 @@ MimeType SystemToolbox::AutodetectMimeType(const std::string& path) { - std::string extension = boost::filesystem::extension(path); + std::string extension = boost::filesystem::path(path).extension().string(); Toolbox::ToLowerCase(extension); // http://en.wikipedia.org/wiki/Mime_types diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/SystemToolbox.h --- a/OrthancFramework/Sources/SystemToolbox.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/SystemToolbox.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/TemporaryFile.cpp --- a/OrthancFramework/Sources/TemporaryFile.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/TemporaryFile.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/TemporaryFile.h --- a/OrthancFramework/Sources/TemporaryFile.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/TemporaryFile.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Toolbox.cpp --- a/OrthancFramework/Sources/Toolbox.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Toolbox.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -1884,7 +1885,7 @@ std::string Toolbox::GenerateUuid() { -#ifdef WIN32 +#ifdef _WIN32 UUID uuid; UuidCreate ( &uuid ); @@ -2676,6 +2677,139 @@ } + bool Toolbox::ParseVersion(unsigned int& major, + unsigned int& minor, + unsigned int& revision, + const char* version) + { + if (version == NULL) + { + throw OrthancException(ErrorCode_NullPointer); + } + +#ifdef _MSC_VER +#define ORTHANC_SCANF sscanf_s +#else +#define ORTHANC_SCANF sscanf +#endif + + int a, b, c; + if (ORTHANC_SCANF(version, "%4d.%4d.%4d", &a, &b, &c) == 3) + { + if (a >= 0 && + b >= 0 && + c >= 0) + { + major = static_cast(a); + minor = static_cast(b); + revision = static_cast(c); + return true; + } + else + { + return false; + } + } + else if (ORTHANC_SCANF(version, "%4d.%4d", &a, &b) == 2) + { + if (a >= 0 && + b >= 0) + { + major = static_cast(a); + minor = static_cast(b); + revision = 0; + return true; + } + else + { + return false; + } + } + else if (ORTHANC_SCANF(version, "%4d", &a) == 1 && + a >= 0) + { + if (a >= 0) + { + major = static_cast(a); + minor = 0; + revision = 0; + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + + + bool Toolbox::IsVersionAbove(const char* version, + unsigned int major, + unsigned int minor, + unsigned int revision) + { + /** + * Note: Similar standalone functions are implemented in + * "OrthancCPlugin.h" and "OrthancPluginCppWrapper.cpp". + **/ + + unsigned int actualMajor, actualMinor, actualRevision; + + if (version == NULL) + { + throw OrthancException(ErrorCode_NullPointer); + } + else if (!strcmp(version, "mainline")) + { + // Assume compatibility with the mainline + return true; + } + else if (ParseVersion(actualMajor, actualMinor, actualRevision, version)) + { + if (actualMajor > major) + { + return true; + } + + if (actualMajor < major) + { + return false; + } + + // Check the minor version number + assert(actualMajor == major); + + if (actualMinor > minor) + { + return true; + } + + if (actualMinor < minor) + { + return false; + } + + // Check the patch level version number + assert(actualMajor == major); + + if (actualRevision >= revision) + { + return true; + } + else + { + return false; + } + } + else + { + throw OrthancException(ErrorCode_ParameterOutOfRange, "Not a valid version: " + std::string(version)); + } + } } diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/Toolbox.h --- a/OrthancFramework/Sources/Toolbox.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/Toolbox.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -416,6 +417,15 @@ static std::string GetHumanTransferSpeed(bool full, uint64_t sizeInBytes, uint64_t durationInNanoseconds); + static bool ParseVersion(unsigned int& major, + unsigned int& minor, + unsigned int& revision, + const char* version); + + static bool IsVersionAbove(const char* version, + unsigned int major, + unsigned int minor, + unsigned int revision); }; } diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/WebServiceParameters.cpp --- a/OrthancFramework/Sources/WebServiceParameters.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/WebServiceParameters.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/Sources/WebServiceParameters.h --- a/OrthancFramework/Sources/WebServiceParameters.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/Sources/WebServiceParameters.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/CMakeLists.txt --- a/OrthancFramework/UnitTestsSources/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/DicomMapTests.cpp --- a/OrthancFramework/UnitTestsSources/DicomMapTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/DicomMapTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/FileStorageTests.cpp --- a/OrthancFramework/UnitTestsSources/FileStorageTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/FileStorageTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/FrameworkTests.cpp --- a/OrthancFramework/UnitTestsSources/FrameworkTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/FrameworkTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -1602,3 +1603,53 @@ } } #endif + + +TEST(Toolbox, IsVersionAbove) +{ + unsigned int a, b, c; + ASSERT_FALSE(Toolbox::ParseVersion(a, b, c, "nope")); + ASSERT_FALSE(Toolbox::ParseVersion(a, b, c, "mainline")); + ASSERT_FALSE(Toolbox::ParseVersion(a, b, c, "")); + ASSERT_FALSE(Toolbox::ParseVersion(a, b, c, "-1")); + ASSERT_FALSE(Toolbox::ParseVersion(a, b, c, "1.-1")); + ASSERT_FALSE(Toolbox::ParseVersion(a, b, c, "1.1.-1")); + + ASSERT_TRUE(Toolbox::ParseVersion(a, b, c, "14.17.20")); + ASSERT_EQ(14u, a); + ASSERT_EQ(17u, b); + ASSERT_EQ(20u, c); + + ASSERT_TRUE(Toolbox::ParseVersion(a, b, c, "18.19")); + ASSERT_EQ(18u, a); + ASSERT_EQ(19u, b); + ASSERT_EQ(0u, c); + + ASSERT_TRUE(Toolbox::ParseVersion(a, b, c, "78")); + ASSERT_EQ(78u, a); + ASSERT_EQ(0u, b); + ASSERT_EQ(0u, c); + + ASSERT_TRUE(Toolbox::IsVersionAbove("mainline", 99, 99, 99)); + + ASSERT_TRUE(Toolbox::IsVersionAbove("18", 17, 99, 99)); + ASSERT_TRUE(Toolbox::IsVersionAbove("18", 18, 0, 0)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18", 18, 0, 1)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18", 18, 1, 0)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18", 19, 0, 0)); + + ASSERT_TRUE(Toolbox::IsVersionAbove("18.19", 17, 99, 99)); + ASSERT_TRUE(Toolbox::IsVersionAbove("18.19", 18, 18, 99)); + ASSERT_TRUE(Toolbox::IsVersionAbove("18.19", 18, 19, 0)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18.19", 18, 19, 1)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18.19", 18, 20, 0)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18.19", 19, 0, 0)); + + ASSERT_TRUE(Toolbox::IsVersionAbove("18.19.20", 17, 99, 99)); + ASSERT_TRUE(Toolbox::IsVersionAbove("18.19.20", 18, 18, 99)); + ASSERT_TRUE(Toolbox::IsVersionAbove("18.19.20", 18, 19, 19)); + ASSERT_TRUE(Toolbox::IsVersionAbove("18.19.20", 18, 19, 20)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18.19.20", 18, 19, 21)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18.19.20", 18, 20, 0)); + ASSERT_FALSE(Toolbox::IsVersionAbove("18.19.20", 19, 0, 0)); +} diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp --- a/OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -3091,6 +3092,21 @@ } +TEST(ParsedDicomFile, MultipleFloatValue) +{ + // from https://discourse.orthanc-server.org/t/qido-includefield-with-sequences/4746/6 + Json::Value v = Json::objectValue; + v["4010,1001"][0]["4010,1004"] = "30\\20\\10"; + std::unique_ptr dicom(ParsedDicomFile::CreateFromJson(v, DicomFromJsonFlags_None, "")); + ASSERT_TRUE(dicom->HasTag(Orthanc::DicomTag(0x4010, 0x1001))); + + DicomMap m; + ASSERT_TRUE(dicom->LookupSequenceItem(m, DicomPath(DicomTag(0x4010, 0x1001)), 0)); + ASSERT_EQ(1u, m.GetSize()); + std::string value = m.GetStringValue(DicomTag(0x4010, 0x1004), "", false); + ASSERT_EQ("30\\20\\10", value); +} + TEST(ParsedDicomFile, ImageInformation) { diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/ImageProcessingTests.cpp --- a/OrthancFramework/UnitTestsSources/ImageProcessingTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/ImageProcessingTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/ImageTests.cpp --- a/OrthancFramework/UnitTestsSources/ImageTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/ImageTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/JobsTests.cpp --- a/OrthancFramework/UnitTestsSources/JobsTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/JobsTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/JpegLosslessTests.cpp --- a/OrthancFramework/UnitTestsSources/JpegLosslessTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/JpegLosslessTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/LoggingTests.cpp --- a/OrthancFramework/UnitTestsSources/LoggingTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/LoggingTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/LuaTests.cpp --- a/OrthancFramework/UnitTestsSources/LuaTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/LuaTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/MemoryCacheTests.cpp --- a/OrthancFramework/UnitTestsSources/MemoryCacheTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/MemoryCacheTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/RestApiTests.cpp --- a/OrthancFramework/UnitTestsSources/RestApiTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/RestApiTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/SQLiteChromiumTests.cpp --- a/OrthancFramework/UnitTestsSources/SQLiteChromiumTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/SQLiteChromiumTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/SQLiteTests.cpp --- a/OrthancFramework/UnitTestsSources/SQLiteTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/SQLiteTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/SharedLibraryUnitTests.cpp --- a/OrthancFramework/UnitTestsSources/SharedLibraryUnitTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/SharedLibraryUnitTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/StreamTests.cpp --- a/OrthancFramework/UnitTestsSources/StreamTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/StreamTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/ToolboxTests.cpp --- a/OrthancFramework/UnitTestsSources/ToolboxTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/ToolboxTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancFramework/UnitTestsSources/ZipTests.cpp --- a/OrthancFramework/UnitTestsSources/ZipTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancFramework/UnitTestsSources/ZipTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/CMakeLists.txt --- a/OrthancServer/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/OrthancExplorer/explorer.css --- a/OrthancServer/OrthancExplorer/explorer.css Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/OrthancExplorer/explorer.css Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/OrthancExplorer/explorer.js --- a/OrthancServer/OrthancExplorer/explorer.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/OrthancExplorer/explorer.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/OrthancExplorer/file-upload.js --- a/OrthancServer/OrthancExplorer/file-upload.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/OrthancExplorer/file-upload.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/OrthancExplorer/query-retrieve.js --- a/OrthancServer/OrthancExplorer/query-retrieve.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/OrthancExplorer/query-retrieve.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/IPluginServiceProvider.h --- a/OrthancServer/Plugins/Engine/IPluginServiceProvider.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/IPluginServiceProvider.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp --- a/OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPluginDatabase.h --- a/OrthancServer/Plugins/Engine/OrthancPluginDatabase.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabase.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.cpp --- a/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.h --- a/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp --- a/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.h --- a/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPlugins.cpp --- a/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -2090,6 +2091,8 @@ sizeof(int32_t) != sizeof(OrthancPluginStorageCommitmentFailureReason) || sizeof(int32_t) != sizeof(OrthancPluginReceivedInstanceAction) || sizeof(int32_t) != sizeof(OrthancPluginLoadDicomInstanceMode) || + sizeof(int32_t) != sizeof(OrthancPluginLogLevel) || + sizeof(int32_t) != sizeof(OrthancPluginLogCategory) || static_cast(OrthancPluginDicomToJsonFlags_IncludeBinary) != static_cast(DicomToJsonFlags_IncludeBinary) || static_cast(OrthancPluginDicomToJsonFlags_IncludePrivateTags) != static_cast(DicomToJsonFlags_IncludePrivateTags) || static_cast(OrthancPluginDicomToJsonFlags_IncludeUnknownTags) != static_cast(DicomToJsonFlags_IncludeUnknownTags) || diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/OrthancPlugins.h --- a/OrthancServer/Plugins/Engine/OrthancPlugins.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/OrthancPlugins.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsEnumerations.cpp --- a/OrthancServer/Plugins/Engine/PluginsEnumerations.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsEnumerations.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsEnumerations.h --- a/OrthancServer/Plugins/Engine/PluginsEnumerations.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsEnumerations.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsErrorDictionary.cpp --- a/OrthancServer/Plugins/Engine/PluginsErrorDictionary.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsErrorDictionary.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsErrorDictionary.h --- a/OrthancServer/Plugins/Engine/PluginsErrorDictionary.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsErrorDictionary.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsJob.cpp --- a/OrthancServer/Plugins/Engine/PluginsJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsJob.h --- a/OrthancServer/Plugins/Engine/PluginsJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsManager.cpp --- a/OrthancServer/Plugins/Engine/PluginsManager.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsManager.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -36,7 +37,7 @@ #include #include -#ifdef WIN32 +#ifdef _WIN32 #define PLUGIN_EXTENSION ".dll" #elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) || defined(__OpenBSD__) #define PLUGIN_EXTENSION ".so" @@ -161,6 +162,18 @@ CLOG(INFO, PLUGINS) << reinterpret_cast(params); return OrthancPluginErrorCode_Success; + case _OrthancPluginService_LogMessage: + { + const _OrthancPluginLogMessage& m = *reinterpret_cast(params); + // We can convert directly from OrthancPluginLogLevel to LogLevel (and category) because the enum values must be identical + // for Orthanc::Logging to work both in the core and in the plugins + Orthanc::Logging::LogLevel level = static_cast(m.level); + Orthanc::Logging::LogCategory category = static_cast(m.category); + + LOG_FROM_PLUGIN(level, category, m.plugin, m.file, m.line) << m.message; + return OrthancPluginErrorCode_Success; + } + default: break; } @@ -295,7 +308,7 @@ } else { - std::string extension = boost::filesystem::extension(it->path()); + std::string extension = it->path().extension().string(); Toolbox::ToLowerCase(extension); if (extension == PLUGIN_EXTENSION) diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Engine/PluginsManager.h --- a/OrthancServer/Plugins/Engine/PluginsManager.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsManager.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Include/orthanc/OrthancCDatabasePlugin.h --- a/OrthancServer/Plugins/Include/orthanc/OrthancCDatabasePlugin.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Include/orthanc/OrthancCDatabasePlugin.h Thu Jul 04 07:40:58 2024 +0200 @@ -6,7 +6,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h --- a/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h Thu Jul 04 07:40:58 2024 +0200 @@ -85,7 +85,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -110,7 +111,7 @@ #include #include -#ifdef WIN32 +#ifdef _WIN32 # define ORTHANC_PLUGINS_API __declspec(dllexport) #elif __GNUC__ >= 4 # define ORTHANC_PLUGINS_API __attribute__ ((visibility ("default"))) @@ -465,6 +466,7 @@ _OrthancPluginService_GetDatabaseServerIdentifier = 42, /* New in Orthanc 1.11.1 */ _OrthancPluginService_SetMetricsIntegerValue = 43, /* New in Orthanc 1.12.1 */ _OrthancPluginService_SetCurrentThreadName = 44, /* New in Orthanc 1.12.2 */ + _OrthancPluginService_LogMessage = 45, /* New in Orthanc 1.12.4 */ /* Registration of callbacks */ @@ -1088,6 +1090,43 @@ /** + * The log levels supported by Orthanc. + * + * These values must match those of enumeration "LogLevel" in the + * Orthanc Core. + **/ + typedef enum + { + OrthancPluginLogLevel_Error = 0, /*!< Error log level */ + OrthancPluginLogLevel_Warning = 1, /*!< Warning log level */ + OrthancPluginLogLevel_Info = 2, /*!< Info log level */ + OrthancPluginLogLevel_Trace = 3, /*!< Trace log level */ + + _OrthancPluginLogLevel_INTERNAL = 0x7fffffff + } OrthancPluginLogLevel; + + + /** + * The log categories supported by Orthanc. + * + * These values must match those of enumeration "LogCategory" in the + * Orthanc Core. + **/ + typedef enum + { + OrthancPluginLogCategory_Generic = (1 << 0), /*!< Generic (default) category */ + OrthancPluginLogCategory_Plugins = (1 << 1), /*!< Plugin engine related logs (shall not be used by plugins) */ + OrthancPluginLogCategory_Http = (1 << 2), /*!< HTTP related logs */ + OrthancPluginLogCategory_Sqlite = (1 << 3), /*!< SQLite related logs (shall not be used by plugins) */ + OrthancPluginLogCategory_Dicom = (1 << 4), /*!< DICOM related logs */ + OrthancPluginLogCategory_Jobs = (1 << 5), /*!< jobs related logs */ + OrthancPluginLogCategory_Lua = (1 << 6), /*!< Lua related logs (shall not be used by plugins) */ + + _OrthancPluginLogCategory_INTERNAL = 0x7fffffff + } OrthancPluginLogCategory; + + + /** * @brief A 32-bit memory buffer allocated by the core system of Orthanc. * * A memory buffer allocated by the core system of Orthanc. When the @@ -1972,7 +2011,9 @@ sizeof(int32_t) != sizeof(OrthancPluginMetricsType) || sizeof(int32_t) != sizeof(OrthancPluginDicomWebBinaryMode) || sizeof(int32_t) != sizeof(OrthancPluginStorageCommitmentFailureReason) || - sizeof(int32_t) != sizeof(OrthancPluginLoadDicomInstanceMode)) + sizeof(int32_t) != sizeof(OrthancPluginLoadDicomInstanceMode) || + sizeof(int32_t) != sizeof(OrthancPluginLogLevel) || + sizeof(int32_t) != sizeof(OrthancPluginLogCategory)) { /* Mismatch in the size of the enumerations */ return 0; @@ -9481,6 +9522,52 @@ return context->InvokeService(context, _OrthancPluginService_SetCurrentThreadName, threadName); } + + typedef struct + { + /* Note: This structure is also defined in Logging.h and it must be binary compatible */ + const char* message; + const char* plugin; + const char* file; + uint32_t line; + OrthancPluginLogCategory category; + OrthancPluginLogLevel level; + } _OrthancPluginLogMessage; + + + /** + * @brief Log a message. + * + * Log a message using the Orthanc logging system. + * + * @param context The Orthanc plugin context, as received by OrthancPluginInitialize(). + * @param message The message to be logged. + * @param plugin The plugin name. + * @param file The filename in the plugin code. + * @param line The file line in the plugin code. + * @param category The category. + * @param level The level of the message. + **/ + ORTHANC_PLUGIN_INLINE void OrthancPluginLogMessage( + OrthancPluginContext* context, + const char* message, + const char* plugin, + const char* file, + uint32_t line, + OrthancPluginLogCategory category, + OrthancPluginLogLevel level) + { + _OrthancPluginLogMessage m; + m.message = message; + m.plugin = plugin; + m.file = file; + m.line = line; + m.category = category; + m.level = level; + context->InvokeService(context, _OrthancPluginService_LogMessage, &m); + } + + #ifdef __cplusplus } #endif diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Include/orthanc/OrthancDatabasePlugin.proto --- a/OrthancServer/Plugins/Include/orthanc/OrthancDatabasePlugin.proto Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Include/orthanc/OrthancDatabasePlugin.proto Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/AutomatedJpeg2kCompression/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/AutomatedJpeg2kCompression/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/AutomatedJpeg2kCompression/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/AutomatedJpeg2kCompression/Plugin.cpp --- a/OrthancServer/Plugins/Samples/AutomatedJpeg2kCompression/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/AutomatedJpeg2kCompression/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Basic/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/Basic/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Basic/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Basic/Plugin.c --- a/OrthancServer/Plugins/Samples/Basic/Plugin.c Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Basic/Plugin.c Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp --- a/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -61,6 +62,7 @@ namespace OrthancPlugins { static OrthancPluginContext* globalContext_ = NULL; + static std::string pluginName_; void SetGlobalContext(OrthancPluginContext* context) @@ -79,9 +81,19 @@ } } + + void SetGlobalContext(OrthancPluginContext* context, + const char* pluginName) + { + SetGlobalContext(context); + pluginName_ = pluginName; + } + + void ResetGlobalContext() { globalContext_ = NULL; + pluginName_.clear(); } bool HasGlobalContext() @@ -103,6 +115,66 @@ } +#if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 + void LogMessage(OrthancPluginLogLevel level, + const char* file, + uint32_t line, + const std::string& message) + { + if (HasGlobalContext()) + { +#if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 + const char* pluginName = (pluginName_.empty() ? NULL : pluginName_.c_str()); + OrthancPluginLogMessage(GetGlobalContext(), message.c_str(), pluginName, file, line, OrthancPluginLogCategory_Generic, level); +#else + switch (level) + { + case OrthancPluginLogLevel_Error: + OrthancPluginLogError(GetGlobalContext(), message.c_str()); + break; + + case OrthancPluginLogLevel_Warning: + OrthancPluginLogWarning(GetGlobalContext(), message.c_str()); + break; + + case OrthancPluginLogLevel_Info: + OrthancPluginLogInfo(GetGlobalContext(), message.c_str()); + break; + + default: + ORTHANC_PLUGINS_THROW_EXCEPTION(ParameterOutOfRange); + } +#endif + } + } +#endif + + + void LogError(const std::string& message) + { + if (HasGlobalContext()) + { + OrthancPluginLogError(GetGlobalContext(), message.c_str()); + } + } + + void LogWarning(const std::string& message) + { + if (HasGlobalContext()) + { + OrthancPluginLogWarning(GetGlobalContext(), message.c_str()); + } + } + + void LogInfo(const std::string& message) + { + if (HasGlobalContext()) + { + OrthancPluginLogInfo(GetGlobalContext(), message.c_str()); + } + } + + void MemoryBuffer::Check(OrthancPluginErrorCode code) { if (code != OrthancPluginErrorCode_Success) @@ -233,7 +305,7 @@ if (!ReadJson(target, buffer_.data, buffer_.size)) { - LogError("Cannot convert some memory buffer to JSON"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot convert some memory buffer to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } } @@ -265,7 +337,7 @@ explicit PluginHttpHeaders(const std::map& httpHeaders) { for (std::map::const_iterator - it = httpHeaders.begin(); it != httpHeaders.end(); ++it) + it = httpHeaders.begin(); it != httpHeaders.end(); ++it) { headersKeys_.push_back(it->first.c_str()); headersValues_.push_back(it->second.c_str()); @@ -404,7 +476,7 @@ } else { - LogError("Cannot parse JSON: " + std::string(err)); + ORTHANC_PLUGINS_LOG_ERROR("Cannot parse JSON: " + std::string(err)); return false; } #endif @@ -565,13 +637,13 @@ { if (str_ == NULL) { - LogError("Cannot convert an empty memory buffer to JSON"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot convert an empty memory buffer to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } if (!ReadJson(target, str_)) { - LogError("Cannot convert some memory buffer to JSON"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot convert some memory buffer to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } } @@ -581,13 +653,13 @@ { if (str_ == NULL) { - LogError("Cannot convert an empty memory buffer to JSON"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot convert an empty memory buffer to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } if (!ReadJsonWithoutComments(target, str_)) { - LogError("Cannot convert some memory buffer to JSON"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot convert some memory buffer to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } } @@ -625,7 +697,7 @@ if (body.size() > 0xffffffffu) { - LogError("Cannot handle body size > 4GB"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot handle body size > 4GB"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } @@ -645,7 +717,7 @@ if (body.size() > 0xffffffffu) { - LogError("Cannot handle body size > 4GB"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot handle body size > 4GB"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } @@ -688,34 +760,6 @@ } } - - void LogError(const std::string& message) - { - if (HasGlobalContext()) - { - OrthancPluginLogError(GetGlobalContext(), message.c_str()); - } - } - - - void LogWarning(const std::string& message) - { - if (HasGlobalContext()) - { - OrthancPluginLogWarning(GetGlobalContext(), message.c_str()); - } - } - - - void LogInfo(const std::string& message) - { - if (HasGlobalContext()) - { - OrthancPluginLogInfo(GetGlobalContext(), message.c_str()); - } - } - - void OrthancConfiguration::LoadConfiguration() { OrthancString str; @@ -723,7 +767,7 @@ if (str.GetContent() == NULL) { - LogError("Cannot access the Orthanc configuration"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot access the Orthanc configuration"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } @@ -731,7 +775,7 @@ if (configuration_.type() != Json::objectValue) { - LogError("Unable to read the Orthanc configuration"); + ORTHANC_PLUGINS_LOG_ERROR("Unable to read the Orthanc configuration"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } } @@ -799,8 +843,8 @@ { if (configuration_[key].type() != Json::objectValue) { - LogError("The configuration section \"" + target.path_ + - "\" is not an associative array as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration section \"" + target.path_ + + "\" is not an associative array as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -822,8 +866,8 @@ if (configuration_[key].type() != Json::stringValue) { - LogError("The configuration option \"" + GetPath(key) + - "\" is not a string as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not a string as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -854,8 +898,8 @@ return true; default: - LogError("The configuration option \"" + GetPath(key) + - "\" is not an integer as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not an integer as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -873,8 +917,8 @@ if (tmp < 0) { - LogError("The configuration option \"" + GetPath(key) + - "\" is not a positive integer as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not a positive integer as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -898,8 +942,8 @@ if (configuration_[key].type() != Json::booleanValue) { - LogError("The configuration option \"" + GetPath(key) + - "\" is not a Boolean as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not a Boolean as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -934,8 +978,8 @@ return true; default: - LogError("The configuration option \"" + GetPath(key) + - "\" is not an integer as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not an integer as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -994,8 +1038,8 @@ break; } - LogError("The configuration option \"" + GetPath(key) + - "\" is not a list of strings as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not a list of strings as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -1115,8 +1159,8 @@ if (configuration_[key].type() != Json::objectValue) { - LogError("The configuration option \"" + GetPath(key) + - "\" is not an object as expected"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not an object as expected"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -1133,8 +1177,8 @@ } else { - LogError("The configuration option \"" + GetPath(key) + - "\" is not a dictionary mapping strings to strings"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"" + GetPath(key) + + "\" is not a dictionary mapping strings to strings"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -1156,7 +1200,7 @@ { if (image_ == NULL) { - LogError("Trying to access a NULL image"); + ORTHANC_PLUGINS_LOG_ERROR("Trying to access a NULL image"); ORTHANC_PLUGINS_THROW_EXCEPTION(ParameterOutOfRange); } } @@ -1182,7 +1226,7 @@ if (image_ == NULL) { - LogError("Cannot create an image"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot create an image"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } } @@ -1199,7 +1243,7 @@ if (image_ == NULL) { - LogError("Cannot create an image accessor"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot create an image accessor"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } } @@ -1213,7 +1257,7 @@ if (image_ == NULL) { - LogError("Cannot uncompress a PNG image"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot uncompress a PNG image"); ORTHANC_PLUGINS_THROW_EXCEPTION(ParameterOutOfRange); } } @@ -1226,7 +1270,7 @@ image_ = OrthancPluginUncompressImage(GetGlobalContext(), data, size, OrthancPluginImageFormat_Jpeg); if (image_ == NULL) { - LogError("Cannot uncompress a JPEG image"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot uncompress a JPEG image"); ORTHANC_PLUGINS_THROW_EXCEPTION(ParameterOutOfRange); } } @@ -1240,7 +1284,7 @@ image_ = OrthancPluginDecodeDicomImage(GetGlobalContext(), data, size, frame); if (image_ == NULL) { - LogError("Cannot uncompress a DICOM image"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot uncompress a DICOM image"); ORTHANC_PLUGINS_THROW_EXCEPTION(ParameterOutOfRange); } } @@ -1654,13 +1698,13 @@ unsigned int minor, unsigned int revision) { - LogError("Your version of the Orthanc core (" + - std::string(GetGlobalContext()->orthancVersion) + - ") is too old to run this plugin (version " + - boost::lexical_cast(major) + "." + - boost::lexical_cast(minor) + "." + - boost::lexical_cast(revision) + - " is required)"); + ORTHANC_PLUGINS_LOG_ERROR("Your version of the Orthanc core (" + + std::string(GetGlobalContext()->orthancVersion) + + ") is too old to run this plugin (version " + + boost::lexical_cast(major) + "." + + boost::lexical_cast(minor) + "." + + boost::lexical_cast(revision) + + " is required)"); } bool CheckMinimalVersion(const char* version, @@ -1684,9 +1728,9 @@ int aa, bb, cc = 0; if ((ORTHANC_SCANF(version, "%4d.%4d.%4d", &aa, &bb, &cc) != 3 && ORTHANC_SCANF(version, "%4d.%4d", &aa, &bb) != 2) || - aa < 0 || - bb < 0 || - cc < 0) + aa < 0 || + bb < 0 || + cc < 0) { return false; } @@ -1740,7 +1784,7 @@ { if (!HasGlobalContext()) { - LogError("Bad Orthanc context in the plugin"); + ORTHANC_PLUGINS_LOG_ERROR("Bad Orthanc context in the plugin"); return false; } @@ -1777,7 +1821,7 @@ } else { - LogError("Inexistent peer: " + name); + ORTHANC_PLUGINS_LOG_ERROR("Inexistent peer: " + name); ORTHANC_PLUGINS_THROW_EXCEPTION(UnknownResource); } } @@ -2061,7 +2105,7 @@ if (body.size() > 0xffffffffu) { - LogError("Cannot handle body size > 4GB"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot handle body size > 4GB"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } @@ -2098,7 +2142,7 @@ if (body.size() > 0xffffffffu) { - LogError("Cannot handle body size > 4GB"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot handle body size > 4GB"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } @@ -2464,7 +2508,7 @@ if (id == NULL) { - LogError("Plugin cannot submit job"); + ORTHANC_PLUGINS_LOG_ERROR("Plugin cannot submit job"); OrthancPluginFreeJob(GetGlobalContext(), orthanc); ORTHANC_PLUGINS_THROW_PLUGIN_ERROR_CODE(OrthancPluginErrorCode_Plugin); } @@ -2533,7 +2577,7 @@ throw Orthanc::OrthancException(static_cast(status["ErrorCode"].asInt()), status["ErrorDescription"].asString()); #else - LogError("Exception while executing the job: " + status["ErrorDescription"].asString()); + ORTHANC_PLUGINS_LOG_ERROR("Exception while executing the job: " + status["ErrorDescription"].asString()); ORTHANC_PLUGINS_THROW_PLUGIN_ERROR_CODE(status["ErrorCode"].asInt()); #endif } @@ -2558,7 +2602,7 @@ throw Orthanc::OrthancException(Orthanc::ErrorCode_BadFileFormat, "Expected a JSON object in the body"); #else - LogError("Expected a JSON object in the body"); + ORTHANC_PLUGINS_LOG_ERROR("Expected a JSON object in the body"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); #endif } @@ -2574,7 +2618,7 @@ "Option \"" + std::string(KEY_SYNCHRONOUS) + "\" must be Boolean"); #else - LogError("Option \"" + std::string(KEY_SYNCHRONOUS) + "\" must be Boolean"); + ORTHANC_PLUGINS_LOG_ERROR("Option \"" + std::string(KEY_SYNCHRONOUS) + "\" must be Boolean"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); #endif } @@ -2593,7 +2637,7 @@ "Option \"" + std::string(KEY_ASYNCHRONOUS) + "\" must be Boolean"); #else - LogError("Option \"" + std::string(KEY_ASYNCHRONOUS) + "\" must be Boolean"); + ORTHANC_PLUGINS_LOG_ERROR("Option \"" + std::string(KEY_ASYNCHRONOUS) + "\" must be Boolean"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); #endif } @@ -2614,7 +2658,7 @@ "Option \"" + std::string(KEY_PRIORITY) + "\" must be an integer"); #else - LogError("Option \"" + std::string(KEY_PRIORITY) + "\" must be an integer"); + ORTHANC_PLUGINS_LOG_ERROR("Option \"" + std::string(KEY_PRIORITY) + "\" must be an integer"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); #endif } @@ -3135,7 +3179,7 @@ if (body.size() > 0xffffffffu) { - LogError("Cannot handle body size > 4GB"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot handle body size > 4GB"); ORTHANC_PLUGINS_THROW_EXCEPTION(InternalError); } @@ -3280,7 +3324,7 @@ if (!ReadJson(answerBody, body)) { - LogError("Cannot convert HTTP answer body to JSON"); + ORTHANC_PLUGINS_LOG_ERROR("Cannot convert HTTP answer body to JSON"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h --- a/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Common/OrthancPluginCppWrapper.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -127,6 +128,44 @@ # define HAS_ORTHANC_PLUGIN_WEBDAV 0 #endif +#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 4) +# define HAS_ORTHANC_PLUGIN_LOG_MESSAGE 1 +#else +# define HAS_ORTHANC_PLUGIN_LOG_MESSAGE 0 +#endif + + +// Macro to tag a function as having been deprecated +#if (__cplusplus >= 201402L) // C++14 +# define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(f) [[deprecated]] f +#elif defined(__GNUC__) || defined(__clang__) +# define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(f) f __attribute__((deprecated)) +#elif defined(_MSC_VER) +# define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(f) __declspec(deprecated) f +#else +# define ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED +#endif + + +#if !defined(__ORTHANC_FILE__) +# if defined(_MSC_VER) +# pragma message("Warning: Macro __ORTHANC_FILE__ is not defined, this will leak the full path of the source files in the binaries") +# else +# warning Warning: Macro __ORTHANC_FILE__ is not defined, this will leak the full path of the source files in the binaries +# endif +# define __ORTHANC_FILE__ __FILE__ +#endif + + +#if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 +# define ORTHANC_PLUGINS_LOG_ERROR(msg) ::OrthancPlugins::LogMessage(OrthancPluginLogLevel_Error, __ORTHANC_FILE__, __LINE__, msg) +# define ORTHANC_PLUGINS_LOG_WARNING(msg) ::OrthancPlugins::LogMessage(OrthancPluginLogLevel_Warning, __ORTHANC_FILE__, __LINE__, msg) +# define ORTHANC_PLUGINS_LOG_INFO(msg) ::OrthancPlugins::LogMessage(OrthancPluginLogLevel_Info, __ORTHANC_FILE__, __LINE__, msg) +#else +# define ORTHANC_PLUGINS_LOG_ERROR(msg) ::OrthancPlugins::LogError(msg) +# define ORTHANC_PLUGINS_LOG_WARNING(msg) ::OrthancPlugins::LogWarning(msg) +# define ORTHANC_PLUGINS_LOG_INFO(msg) ::OrthancPlugins::LogInfo(msg) +#endif namespace OrthancPlugins @@ -137,6 +176,9 @@ void SetGlobalContext(OrthancPluginContext* context); + void SetGlobalContext(OrthancPluginContext* context, + const char* pluginName); + void ResetGlobalContext(); bool HasGlobalContext(); @@ -637,11 +679,33 @@ const char* AutodetectMimeType(const std::string& path); #endif +#if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 + void LogMessage(OrthancPluginLogLevel level, + const char* file, + uint32_t line, + const std::string& message); +#endif + +#if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 + // Use macro ORTHANC_PLUGINS_LOG_ERROR() instead + ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(void LogError(const std::string& message)); +#else void LogError(const std::string& message); +#endif +#if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 + // Use macro ORTHANC_PLUGINS_LOG_WARNING() instead + ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(void LogWarning(const std::string& message)); +#else void LogWarning(const std::string& message); +#endif +#if HAS_ORTHANC_PLUGIN_LOG_MESSAGE == 1 + // Use macro ORTHANC_PLUGINS_LOG_INFO() instead + ORTHANC_PLUGIN_CPP_WRAPPER_DEPRECATED(void LogInfo(const std::string& message)); +#else void LogInfo(const std::string& message); +#endif void ReportMinimalOrthancVersion(unsigned int major, unsigned int minor, diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Common/OrthancPluginException.h --- a/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Common/OrthancPluginException.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Common/OrthancPlugins.cmake --- a/OrthancServer/Plugins/Samples/Common/OrthancPlugins.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Common/OrthancPlugins.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake --- a/OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Common/OrthancPluginsExports.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ConnectivityChecks/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/ConnectivityChecks/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ConnectivityChecks/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ConnectivityChecks/JavaScriptLibraries.cmake --- a/OrthancServer/Plugins/Samples/ConnectivityChecks/JavaScriptLibraries.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ConnectivityChecks/JavaScriptLibraries.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ConnectivityChecks/OrthancFrameworkDependencies.cpp --- a/OrthancServer/Plugins/Samples/ConnectivityChecks/OrthancFrameworkDependencies.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ConnectivityChecks/OrthancFrameworkDependencies.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ConnectivityChecks/Plugin.cpp --- a/OrthancServer/Plugins/Samples/ConnectivityChecks/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ConnectivityChecks/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ConnectivityChecks/WebResources/app.js --- a/OrthancServer/Plugins/Samples/ConnectivityChecks/WebResources/app.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ConnectivityChecks/WebResources/app.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/CustomImageDecoder/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/CustomImageDecoder/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/CustomImageDecoder/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/CustomImageDecoder/Plugin.cpp --- a/OrthancServer/Plugins/Samples/CustomImageDecoder/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/CustomImageDecoder/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/DelayedDeletion/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/DelayedDeletion/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.cpp --- a/OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.h --- a/OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/DelayedDeletion/OrthancFrameworkDependencies.cpp --- a/OrthancServer/Plugins/Samples/DelayedDeletion/OrthancFrameworkDependencies.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/OrthancFrameworkDependencies.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/DelayedDeletion/PendingDeletionsDatabase.cpp --- a/OrthancServer/Plugins/Samples/DelayedDeletion/PendingDeletionsDatabase.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/PendingDeletionsDatabase.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/DelayedDeletion/PendingDeletionsDatabase.h --- a/OrthancServer/Plugins/Samples/DelayedDeletion/PendingDeletionsDatabase.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/PendingDeletionsDatabase.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/DelayedDeletion/Plugin.cpp --- a/OrthancServer/Plugins/Samples/DelayedDeletion/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -117,7 +118,7 @@ // copy from a buffer allocated on plugin's heap into a buffer allocated on core's heap if (OrthancPluginCreateMemoryBuffer64(OrthancPlugins::GetGlobalContext(), target, buffer->GetSize()) != OrthancPluginErrorCode_Success) { - OrthancPlugins::LogError("Delayed deletion plugin: error while reading object " + std::string(uuid) + ", cannot allocate memory of size " + boost::lexical_cast(buffer->GetSize()) + " bytes"); + LOG(ERROR) << "Delayed deletion plugin: error while reading object " << uuid << ", cannot allocate memory of size " << buffer->GetSize() << " bytes"; return OrthancPluginErrorCode_StorageAreaPlugin; } @@ -289,8 +290,8 @@ { ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* context) { - OrthancPlugins::SetGlobalContext(context); - Orthanc::Logging::InitializePluginContext(context); + OrthancPlugins::SetGlobalContext(context, ORTHANC_PLUGIN_NAME); + Orthanc::Logging::InitializePluginContext(context, ORTHANC_PLUGIN_NAME); /* Check the version of the Orthanc core */ diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Housekeeper/Plugin.cpp --- a/OrthancServer/Plugins/Samples/Housekeeper/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Housekeeper/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -22,8 +23,8 @@ #define HOUSEKEEPER_NAME "housekeeper" +#include "../Common/OrthancPluginCppWrapper.h" #include "../../../../OrthancFramework/Sources/Compatibility.h" -#include "../Common/OrthancPluginCppWrapper.h" #include #include @@ -48,6 +49,10 @@ static bool triggerOnUnnecessaryDicomAsJsonFiles_ = true; static bool triggerOnIngestTranscodingChange_ = true; static bool triggerOnDicomWebCacheChange_ = true; +static std::string limitMainDicomTagsReconstructLevel_ = ""; +static std::string limitToChange_ = ""; +static std::string limitToUrl_ = ""; + struct RunningPeriod { @@ -87,7 +92,7 @@ } else { - OrthancPlugins::LogWarning("Housekeeper: invalid schedule: unknown 'day': " + weekday); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: invalid schedule: unknown 'day': " + weekday); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -399,12 +404,12 @@ { if (triggerOnUnnecessaryDicomAsJsonFiles_) { - OrthancPlugins::LogWarning("Housekeeper: your storage might still contain some dicom-as-json files -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: your storage might still contain some dicom-as-json files -> will perform housekeeping"); needsReconstruct = true; // the default reconstruct removes the dicom-as-json } else { - OrthancPlugins::LogWarning("Housekeeper: your storage might still contain some dicom-as-json files but the trigger has been disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: your storage might still contain some dicom-as-json files but the trigger has been disabled"); } } @@ -412,12 +417,12 @@ { if (triggerOnMainDicomTagsChange_) { - OrthancPlugins::LogWarning("Housekeeper: Patient main dicom tags have changed, -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Patient main dicom tags have changed, -> will perform housekeeping"); needsReconstruct = true; } else { - OrthancPlugins::LogWarning("Housekeeper: Patient main dicom tags have changed but the trigger is disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Patient main dicom tags have changed but the trigger is disabled"); } } @@ -425,12 +430,12 @@ { if (triggerOnMainDicomTagsChange_) { - OrthancPlugins::LogWarning("Housekeeper: Study main dicom tags have changed, -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Study main dicom tags have changed, -> will perform housekeeping"); needsReconstruct = true; } else { - OrthancPlugins::LogWarning("Housekeeper: Study main dicom tags have changed but the trigger is disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Study main dicom tags have changed but the trigger is disabled"); } } @@ -438,12 +443,12 @@ { if (triggerOnMainDicomTagsChange_) { - OrthancPlugins::LogWarning("Housekeeper: Series main dicom tags have changed, -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Series main dicom tags have changed, -> will perform housekeeping"); needsReconstruct = true; } else { - OrthancPlugins::LogWarning("Housekeeper: Series main dicom tags have changed but the trigger is disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Series main dicom tags have changed but the trigger is disabled"); } } @@ -451,12 +456,12 @@ { if (triggerOnMainDicomTagsChange_) { - OrthancPlugins::LogWarning("Housekeeper: Instance main dicom tags have changed, -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Instance main dicom tags have changed, -> will perform housekeeping"); needsReconstruct = true; } else { - OrthancPlugins::LogWarning("Housekeeper: Instance main dicom tags have changed but the trigger is disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: Instance main dicom tags have changed but the trigger is disabled"); } } @@ -466,18 +471,18 @@ { if (current.storageCompressionEnabled) { - OrthancPlugins::LogWarning("Housekeeper: storage compression is now enabled -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: storage compression is now enabled -> will perform housekeeping"); } else { - OrthancPlugins::LogWarning("Housekeeper: storage compression is now disabled -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: storage compression is now disabled -> will perform housekeeping"); } needsReingest = true; } else { - OrthancPlugins::LogWarning("Housekeeper: storage compression has changed but the trigger is disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: storage compression has changed but the trigger is disabled"); } } @@ -485,13 +490,13 @@ { if (triggerOnIngestTranscodingChange_) { - OrthancPlugins::LogWarning("Housekeeper: ingest transcoding has changed -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: ingest transcoding has changed -> will perform housekeeping"); needsReingest = true; } else { - OrthancPlugins::LogWarning("Housekeeper: ingest transcoding has changed but the trigger is disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: ingest transcoding has changed but the trigger is disabled"); } } @@ -501,7 +506,7 @@ { if (triggerOnDicomWebCacheChange_) { - OrthancPlugins::LogWarning("Housekeeper: DicomWEB plugin is enabled and the housekeeper has never run, you might miss series metadata cache -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: DicomWEB plugin is enabled and the housekeeper has never run, you might miss series metadata cache -> will perform housekeeping"); } needsDicomWebCaching = triggerOnDicomWebCacheChange_; } @@ -513,12 +518,12 @@ { if (triggerOnDicomWebCacheChange_) { - OrthancPlugins::LogWarning("Housekeeper: DicomWEB plugin might miss series metadata cache -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: DicomWEB plugin might miss series metadata cache -> will perform housekeeping"); needsDicomWebCaching = true; } else { - OrthancPlugins::LogWarning("Housekeeper: DicomWEB plugin might miss series metadata cache but the trigger has been disabled"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: DicomWEB plugin might miss series metadata cache but the trigger has been disabled"); } } } @@ -544,24 +549,38 @@ const Json::Value& change = changes["Changes"][i]; int64_t seq = change["Seq"].asInt64(); - if (change["ChangeType"] == "NewStudy") // some StableStudy might be missing if orthanc was shutdown during a StableAge -> consider only the NewStudy events that can not be missed + if (!limitToChange_.empty()) // if updating only maindicomtags for a single level { - Json::Value result; + if (change["ChangeType"] == limitToChange_) + { + Json::Value result; + Json::Value request; + request["ReconstructFiles"] = false; + request["LimitToThisLevelMainDicomTags"] = true; + OrthancPlugins::RestApiPost(result, "/" + limitToUrl_ + "/" + change["ID"].asString() + "/reconstruct", request, false); + } + } + else + { + if (change["ChangeType"] == "NewStudy") // some StableStudy might be missing if orthanc was shutdown during a StableAge -> consider only the NewStudy events that can not be missed + { + Json::Value result; - if (needsReconstruct) - { - Json::Value request; - if (needsReingest) + if (needsReconstruct || needsReingest) { - request["ReconstructFiles"] = true; + Json::Value request; + if (needsReingest) + { + request["ReconstructFiles"] = true; + } + OrthancPlugins::RestApiPost(result, "/studies/" + change["ID"].asString() + "/reconstruct", request, false); } - OrthancPlugins::RestApiPost(result, "/studies/" + change["ID"].asString() + "/reconstruct", request, false); - } - if (needsDicomWebCaching) - { - Json::Value request; - OrthancPlugins::RestApiPost(result, "/studies/" + change["ID"].asString() + "/update-dicomweb-cache", request, true); + if (needsDicomWebCaching) + { + Json::Value request; + OrthancPlugins::RestApiPost(result, "/studies/" + change["ID"].asString() + "/update-dicomweb-cache", request, true); + } } } @@ -639,9 +658,9 @@ } } - if (!needsProcessing) + if (!needsProcessing && !force_) { - OrthancPlugins::LogWarning("Housekeeper: everything has been processed already !"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: everything has been processed already !"); return; } @@ -649,11 +668,11 @@ { if (force_) { - OrthancPlugins::LogWarning("Housekeeper: forcing execution -> will perform housekeeping"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: forcing execution -> will perform housekeeping"); } else { - OrthancPlugins::LogWarning("Housekeeper: the DB configuration has changed since last run, will reprocess the whole DB !"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: the DB configuration has changed since last run, will reprocess the whole DB !"); } Json::Value changes; @@ -669,7 +688,7 @@ } else { - OrthancPlugins::LogWarning("Housekeeper: the DB configuration has not changed since last run, will continue processing changes"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper: the DB configuration has not changed since last run, will continue processing changes"); } bool completed = false; @@ -691,9 +710,8 @@ { boost::recursive_mutex::scoped_lock lock(pluginStatusMutex_); - OrthancPlugins::LogInfo("Housekeeper: processed changes " + - boost::lexical_cast(pluginStatus_.lastProcessedChange) + - " / " + boost::lexical_cast(pluginStatus_.lastChangeToProcess)); + ORTHANC_PLUGINS_LOG_INFO("Housekeeper: processed changes " + boost::lexical_cast(pluginStatus_.lastProcessedChange) + + " / " + boost::lexical_cast(pluginStatus_.lastChangeToProcess)); boost::this_thread::sleep(boost::posix_time::milliseconds(throttleDelay_ * 100)); // wait 1/10 of the delay between changes } @@ -704,7 +722,7 @@ { if (!loggedNotRightPeriodChangeMessage) { - OrthancPlugins::LogInfo("Housekeeper: entering quiet period"); + ORTHANC_PLUGINS_LOG_INFO("Housekeeper: entering quiet period"); loggedNotRightPeriodChangeMessage = true; } @@ -778,7 +796,7 @@ ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c) { - OrthancPlugins::SetGlobalContext(c); + OrthancPlugins::SetGlobalContext(c, HOUSEKEEPER_NAME); /* Check the version of the Orthanc core */ if (OrthancPluginCheckVersion(c) == 0) @@ -789,7 +807,7 @@ return -1; } - OrthancPlugins::LogWarning("Housekeeper plugin is initializing"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper plugin is initializing"); OrthancPluginSetDescription2(c, HOUSEKEEPER_NAME, "Optimizes your DB and storage."); OrthancPlugins::OrthancConfiguration orthancConfiguration; @@ -842,7 +860,11 @@ "MainDicomTagsChange": true, "UnnecessaryDicomAsJsonFiles": true, "DicomWebCacheChange": true // new in 1.12.2 - } + }, + + // When rebuilding MainDicomTags, limit to a single level of resource. + // Allowed values: "Patient", "Study", "Series", "Instance" + "LimitMainDicomTagsReconstructLevel": "Study" } } @@ -865,6 +887,33 @@ triggerOnDicomWebCacheChange_ = triggers.GetBooleanValue("DicomWebCacheChange", true); } + limitMainDicomTagsReconstructLevel_ = housekeeper.GetStringValue("LimitMainDicomTagsReconstructLevel", ""); + if (limitMainDicomTagsReconstructLevel_ != "Patient" && limitMainDicomTagsReconstructLevel_ != "Study" + && limitMainDicomTagsReconstructLevel_ != "Series" && limitMainDicomTagsReconstructLevel_ != "Instance") + { + ORTHANC_PLUGINS_LOG_ERROR("Housekeeper invalid value for 'LimitMainDicomTagsReconstructLevel': '" + limitMainDicomTagsReconstructLevel_ + "'"); + } + else if (limitMainDicomTagsReconstructLevel_ == "Patient") + { + limitToChange_ = "NewPatient"; + limitToUrl_ = "patients"; + } + else if (limitMainDicomTagsReconstructLevel_ == "Study") + { + limitToChange_ = "NewStudy"; + limitToUrl_ = "studies"; + } + else if (limitMainDicomTagsReconstructLevel_ == "Series") + { + limitToChange_ = "NewSeries"; + limitToUrl_ = "series"; + } + else if (limitMainDicomTagsReconstructLevel_ == "Instance") + { + limitToChange_ = "NewInstance"; + limitToUrl_ = "instances"; + } + if (housekeeper.GetJson().isMember("Schedule")) { runningPeriods_.load(housekeeper.GetJson()["Schedule"]); @@ -876,7 +925,7 @@ } else { - OrthancPlugins::LogWarning("Housekeeper plugin is disabled by the configuration file"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper plugin is disabled by the configuration file"); } return 0; @@ -885,7 +934,7 @@ ORTHANC_PLUGINS_API void OrthancPluginFinalize() { - OrthancPlugins::LogWarning("Housekeeper plugin is finalizing"); + ORTHANC_PLUGINS_LOG_WARNING("Housekeeper plugin is finalizing"); } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ModalityWorklists/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/ModalityWorklists/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ModalityWorklists/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or @@ -40,6 +41,8 @@ ${BOOST_SOURCES} ) +DefineSourceBasenameForTarget(ModalityWorklists) + message("Setting the version of the plugin to ${MODALITY_WORKLISTS_VERSION}") add_definitions( -DMODALITY_WORKLISTS_VERSION="${MODALITY_WORKLISTS_VERSION}" diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ModalityWorklists/Plugin.cpp --- a/OrthancServer/Plugins/Samples/ModalityWorklists/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ModalityWorklists/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -54,7 +55,7 @@ if (code != OrthancPluginErrorCode_Success) { - OrthancPlugins::LogError("Error while adding an answer to a worklist request"); + ORTHANC_PLUGINS_LOG_ERROR("Error while adding an answer to a worklist request"); ORTHANC_PLUGINS_THROW_PLUGIN_ERROR_CODE(code); } @@ -77,8 +78,8 @@ dicom.DicomToJson(json, OrthancPluginDicomToJsonFormat_Short, static_cast(0), 0); - OrthancPlugins::LogInfo("Received worklist query from remote modality " + - std::string(issuerAet) + ":\n" + json.toStyledString()); + ORTHANC_PLUGINS_LOG_INFO("Received worklist query from remote modality " + + std::string(issuerAet) + ":\n" + json.toStyledString()); if (!filterIssuerAet_) { @@ -166,7 +167,7 @@ if (type == fs::regular_file || type == fs::reparse_file) // cf. BitBucket issue #11 { - std::string extension = fs::extension(it->path()); + std::string extension = it->path().extension().string(); std::transform(extension.begin(), extension.end(), extension.begin(), tolower); // Convert to lowercase if (extension == ".wl") @@ -185,21 +186,19 @@ return OrthancPluginErrorCode_Success; } - OrthancPlugins::LogInfo("Worklist matched: " + it->path().string()); + ORTHANC_PLUGINS_LOG_INFO("Worklist matched: " + it->path().string()); matchedWorklistCount++; } } } } - std::ostringstream message; - message << "Worklist C-Find: parsed " << parsedFilesCount - << " files, found " << matchedWorklistCount << " match(es)"; - OrthancPlugins::LogInfo(message.str()); + ORTHANC_PLUGINS_LOG_INFO("Worklist C-Find: parsed " + boost::lexical_cast(parsedFilesCount) + + " files, found " + boost::lexical_cast(matchedWorklistCount) + " match(es)"); } catch (fs::filesystem_error&) { - OrthancPlugins::LogError("Inexistent folder while scanning for worklists: " + source.string()); + ORTHANC_PLUGINS_LOG_ERROR("Inexistent folder while scanning for worklists: " + source.string()); return OrthancPluginErrorCode_DirectoryExpected; } @@ -216,7 +215,7 @@ { ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* c) { - OrthancPlugins::SetGlobalContext(c); + OrthancPlugins::SetGlobalContext(c, MODALITY_WORKLISTS_NAME); /* Check the version of the Orthanc core */ if (OrthancPluginCheckVersion(c) == 0) @@ -227,7 +226,7 @@ return -1; } - OrthancPlugins::LogWarning("Sample worklist plugin is initializing"); + ORTHANC_PLUGINS_LOG_WARNING("Sample worklist plugin is initializing"); OrthancPluginSetDescription2(c, MODALITY_WORKLISTS_NAME, "Serve DICOM modality worklists from a folder with Orthanc."); OrthancPlugins::OrthancConfiguration configuration; @@ -240,12 +239,12 @@ { if (worklists.LookupStringValue(folder_, "Database")) { - OrthancPlugins::LogWarning("The database of worklists will be read from folder: " + folder_); + ORTHANC_PLUGINS_LOG_WARNING("The database of worklists will be read from folder: " + folder_); OrthancPluginRegisterWorklistCallback(OrthancPlugins::GetGlobalContext(), Callback); } else { - OrthancPlugins::LogError("The configuration option \"Worklists.Database\" must contain a path"); + ORTHANC_PLUGINS_LOG_ERROR("The configuration option \"Worklists.Database\" must contain a path"); return -1; } @@ -254,7 +253,7 @@ } else { - OrthancPlugins::LogWarning("Worklist server is disabled by the configuration file"); + ORTHANC_PLUGINS_LOG_WARNING("Worklist server is disabled by the configuration file"); } return 0; @@ -263,7 +262,7 @@ ORTHANC_PLUGINS_API void OrthancPluginFinalize() { - OrthancPlugins::LogWarning("Sample worklist plugin is finalizing"); + ORTHANC_PLUGINS_LOG_WARNING("Sample worklist plugin is finalizing"); } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/MultitenantDicom/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/DicomFilter.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/DicomFilter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/DicomFilter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/DicomFilter.h --- a/OrthancServer/Plugins/Samples/MultitenantDicom/DicomFilter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/DicomFilter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/FindRequestHandler.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/FindRequestHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/FindRequestHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/FindRequestHandler.h --- a/OrthancServer/Plugins/Samples/MultitenantDicom/FindRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/FindRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/MoveRequestHandler.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/MoveRequestHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/MoveRequestHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/MoveRequestHandler.h --- a/OrthancServer/Plugins/Samples/MultitenantDicom/MoveRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/MoveRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/MultitenantDicomServer.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/MultitenantDicomServer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/MultitenantDicomServer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/MultitenantDicomServer.h --- a/OrthancServer/Plugins/Samples/MultitenantDicom/MultitenantDicomServer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/MultitenantDicomServer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/OrthancFrameworkDependencies.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/OrthancFrameworkDependencies.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/OrthancFrameworkDependencies.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/Plugin.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -120,7 +121,8 @@ { ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* context) { - OrthancPlugins::SetGlobalContext(context); + OrthancPlugins::SetGlobalContext(context, ORTHANC_PLUGIN_NAME); + Orthanc::Logging::InitializePluginContext(context, ORTHANC_PLUGIN_NAME); /* Check the version of the Orthanc core */ if (OrthancPluginCheckVersion(OrthancPlugins::GetGlobalContext()) == 0) @@ -135,18 +137,6 @@ return -1; } -#if ORTHANC_FRAMEWORK_VERSION_IS_ABOVE(1, 7, 2) - Orthanc::Logging::InitializePluginContext(context); -#else - Orthanc::Logging::Initialize(context); -#endif - - if (!OrthancPlugins::CheckMinimalOrthancVersion(1, 12, 0)) - { - OrthancPlugins::ReportMinimalOrthancVersion(1, 12, 0); - return -1; - } - OrthancPluginSetDescription2(context, ORTHANC_PLUGIN_NAME, "Multitenant plugin for Orthanc."); OrthancPluginRegisterOnChangeCallback(context, OnChangeCallback); diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/PluginEnumerations.h --- a/OrthancServer/Plugins/Samples/MultitenantDicom/PluginEnumerations.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/PluginEnumerations.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/PluginToolbox.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/PluginToolbox.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/PluginToolbox.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/PluginToolbox.h --- a/OrthancServer/Plugins/Samples/MultitenantDicom/PluginToolbox.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/PluginToolbox.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.cpp --- a/OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -38,10 +39,11 @@ const std::string& calledAet) { std::string buffer; + std::string errorMessage; - if (!Orthanc::FromDcmtkBridge::SaveToMemoryBuffer(buffer, dicom)) + if (!Orthanc::FromDcmtkBridge::SaveToMemoryBuffer(buffer, dicom, errorMessage)) { - LOG(ERROR) << "Cannot write DICOM file to memory"; + LOG(ERROR) << "Cannot write DICOM file to memory: " << errorMessage; return STATUS_STORE_Error_CannotUnderstand; } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.h --- a/OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Sanitizer/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/Sanitizer/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Sanitizer/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/Sanitizer/Plugin.cpp --- a/OrthancServer/Plugins/Samples/Sanitizer/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/Sanitizer/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -70,7 +71,7 @@ return -1; } - OrthancPlugins::LogWarning("Sanitizer plugin is initializing"); + ORTHANC_PLUGINS_LOG_WARNING("Sanitizer plugin is initializing"); OrthancPlugins::SetDescription(ORTHANC_PLUGIN_NAME, "Sample plugin to sanitize incoming DICOM instances."); OrthancPluginRegisterReceivedInstanceCallback(c, ReceivedInstanceCallback); @@ -81,7 +82,7 @@ ORTHANC_PLUGINS_API void OrthancPluginFinalize() { - OrthancPlugins::LogWarning("Sanitizer plugin is finalizing"); + ORTHANC_PLUGINS_LOG_WARNING("Sanitizer plugin is finalizing"); Orthanc::FinalizeFramework(); } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ServeFolders/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/ServeFolders/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ServeFolders/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or @@ -40,6 +41,8 @@ ${BOOST_SOURCES} ) +DefineSourceBasenameForTarget(ServeFolders) + add_definitions(-DHAS_ORTHANC_EXCEPTION=0) message("Setting the version of the plugin to ${SERVE_FOLDERS_VERSION}") diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/ServeFolders/Plugin.cpp --- a/OrthancServer/Plugins/Samples/ServeFolders/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ServeFolders/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -94,7 +95,7 @@ } else { - OrthancPlugins::LogWarning("ServeFolders: Unknown MIME type for extension \"" + extension + "\""); + ORTHANC_PLUGINS_LOG_WARNING("ServeFolders: Unknown MIME type for extension \"" + extension + "\""); return "application/octet-stream"; } } @@ -109,7 +110,7 @@ std::map::const_iterator found = folders_.find(uri); if (found == folders_.end()) { - OrthancPlugins::LogError("Unknown URI in plugin server-folders: " + uri); + ORTHANC_PLUGINS_LOG_ERROR("Unknown URI in plugin server-folders: " + uri); OrthancPluginSendHttpStatusCode(OrthancPlugins::GetGlobalContext(), output, 404); return false; } @@ -265,7 +266,7 @@ { if (folders.type() != Json::objectValue) { - OrthancPlugins::LogError("The list of folders to be served is badly formatted (must be a JSON object)"); + ORTHANC_PLUGINS_LOG_ERROR("The list of folders to be served is badly formatted (must be a JSON object)"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -277,8 +278,8 @@ { if (folders[*it].type() != Json::stringValue) { - OrthancPlugins::LogError("The folder to be served \"" + *it + - "\" must be associated with a string value (its mapped URI)"); + ORTHANC_PLUGINS_LOG_ERROR("The folder to be served \"" + *it + + "\" must be associated with a string value (its mapped URI)"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -299,7 +300,7 @@ if (baseUri.empty()) { - OrthancPlugins::LogError("The URI of a folder to be served cannot be empty"); + ORTHANC_PLUGINS_LOG_ERROR("The URI of a folder to be served cannot be empty"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -307,7 +308,7 @@ const std::string folder = folders[*it].asString(); if (!boost::filesystem::is_directory(folder)) { - OrthancPlugins::LogError("Trying to serve an inexistent folder: " + folder); + ORTHANC_PLUGINS_LOG_ERROR("Trying to serve an inexistent folder: " + folder); ORTHANC_PLUGINS_THROW_EXCEPTION(InexistentFile); } @@ -326,7 +327,7 @@ { if (extensions.type() != Json::objectValue) { - OrthancPlugins::LogError("The list of extensions is badly formatted (must be a JSON object)"); + ORTHANC_PLUGINS_LOG_ERROR("The list of extensions is badly formatted (must be a JSON object)"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -337,8 +338,8 @@ { if (extensions[*it].type() != Json::stringValue) { - OrthancPlugins::LogError("The file extension \"" + *it + - "\" must be associated with a string value (its MIME type)"); + ORTHANC_PLUGINS_LOG_ERROR("The file extension \"" + *it + + "\" must be associated with a string value (its MIME type)"); ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); } @@ -356,13 +357,13 @@ if (mime.empty()) { - OrthancPlugins::LogWarning("ServeFolders: Removing MIME type for file extension \"." + - name + "\""); + ORTHANC_PLUGINS_LOG_WARNING("ServeFolders: Removing MIME type for file extension \"." + + name + "\""); } else { - OrthancPlugins::LogWarning("ServeFolders: Associating file extension \"." + name + - "\" with MIME type \"" + mime + "\""); + ORTHANC_PLUGINS_LOG_WARNING("ServeFolders: Associating file extension \"." + name + + "\" with MIME type \"" + mime + "\""); } } } @@ -392,17 +393,16 @@ if (configuration.LookupBooleanValue(tmp, "AllowCache")) { allowCache_ = tmp; - OrthancPlugins::LogWarning("ServeFolders: Requesting the HTTP client to " + - std::string(tmp ? "enable" : "disable") + - " its caching mechanism"); + ORTHANC_PLUGINS_LOG_WARNING("ServeFolders: Requesting the HTTP client to " + + std::string(tmp ? "enable" : "disable") + + " its caching mechanism"); } if (configuration.LookupBooleanValue(tmp, "GenerateETag")) { generateETag_ = tmp; - OrthancPlugins::LogWarning("ServeFolders: The computation of an ETag for the " - "served resources is " + - std::string(tmp ? "enabled" : "disabled")); + ORTHANC_PLUGINS_LOG_WARNING("ServeFolders: The computation of an ETag for the served resources is " + + std::string(tmp ? "enabled" : "disabled")); } OrthancPlugins::OrthancConfiguration extensions; @@ -412,8 +412,7 @@ if (folders_.empty()) { - OrthancPlugins::LogWarning("ServeFolders: Empty configuration file: " - "No additional folder will be served!"); + ORTHANC_PLUGINS_LOG_WARNING("ServeFolders: Empty configuration file: No additional folder will be served!"); } } @@ -422,7 +421,7 @@ { ORTHANC_PLUGINS_API int32_t OrthancPluginInitialize(OrthancPluginContext* context) { - OrthancPlugins::SetGlobalContext(context); + OrthancPlugins::SetGlobalContext(context, SERVE_FOLDERS_NAME); /* Check the version of the Orthanc core */ if (OrthancPluginCheckVersion(context) == 0) @@ -444,8 +443,8 @@ } catch (OrthancPlugins::PluginException& e) { - OrthancPlugins::LogError("Error while initializing the ServeFolders plugin: " + - std::string(e.What(context))); + ORTHANC_PLUGINS_LOG_ERROR("Error while initializing the ServeFolders plugin: " + + std::string(e.What(context))); } return 0; diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/StorageArea/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/StorageArea/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/StorageArea/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/StorageArea/Plugin.cpp --- a/OrthancServer/Plugins/Samples/StorageArea/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/StorageArea/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/StorageCommitmentScp/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/StorageCommitmentScp/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/StorageCommitmentScp/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or @@ -40,6 +41,8 @@ ${BOOST_SOURCES} ) +DefineSourceBasenameForTarget(StorageCommitmentScp) + message("Setting the version of the plugin to ${PLUGIN_VERSION}") add_definitions( -DPLUGIN_VERSION="${PLUGIN_VERSION}" diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/StorageCommitmentScp/Plugin.cpp --- a/OrthancServer/Plugins/Samples/StorageCommitmentScp/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/StorageCommitmentScp/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/WebDavFilesystem/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/WebDavFilesystem/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/WebDavFilesystem/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or @@ -40,3 +41,5 @@ ${JSONCPP_SOURCES} ${BOOST_SOURCES} ) + +DefineSourceBasenameForTarget(WebDavFilesystem) diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/WebDavFilesystem/Plugin.cpp --- a/OrthancServer/Plugins/Samples/WebDavFilesystem/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/WebDavFilesystem/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -164,7 +165,7 @@ if (content_.find(name) != content_.end()) { - OrthancPlugins::LogError("Already existing: " + name); + ORTHANC_PLUGINS_LOG_ERROR("Already existing: " + name); ORTHANC_PLUGINS_THROW_EXCEPTION(BadRequest); } else @@ -177,7 +178,7 @@ { if (content_.find(name) != content_.end()) { - OrthancPlugins::LogError("Already existing: " + name); + ORTHANC_PLUGINS_LOG_ERROR("Already existing: " + name); ORTHANC_PLUGINS_THROW_EXCEPTION(BadRequest); } else @@ -192,7 +193,7 @@ if (found == content_.end()) { - OrthancPlugins::LogError("Cannot delete inexistent path: " + name); + ORTHANC_PLUGINS_LOG_ERROR("Cannot delete inexistent path: " + name); ORTHANC_PLUGINS_THROW_EXCEPTION(InexistentItem); } else @@ -215,7 +216,7 @@ { if (path.empty()) { - OrthancPlugins::LogError("Empty path"); + ORTHANC_PLUGINS_LOG_ERROR("Empty path"); ORTHANC_PLUGINS_THROW_EXCEPTION(ParameterOutOfRange); } else diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/WebSkeleton/CMakeLists.txt --- a/OrthancServer/Plugins/Samples/WebSkeleton/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/WebSkeleton/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/WebSkeleton/Configuration.h --- a/OrthancServer/Plugins/Samples/WebSkeleton/Configuration.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/WebSkeleton/Configuration.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/WebSkeleton/Framework/EmbedResources.py --- a/OrthancServer/Plugins/Samples/WebSkeleton/Framework/EmbedResources.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/WebSkeleton/Framework/EmbedResources.py Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/WebSkeleton/Framework/Framework.cmake --- a/OrthancServer/Plugins/Samples/WebSkeleton/Framework/Framework.cmake Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/WebSkeleton/Framework/Framework.cmake Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Plugins/Samples/WebSkeleton/Framework/Plugin.cpp --- a/OrthancServer/Plugins/Samples/WebSkeleton/Framework/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Plugins/Samples/WebSkeleton/Framework/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Configuration.json --- a/OrthancServer/Resources/Configuration.json Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Configuration.json Thu Jul 04 07:40:58 2024 +0200 @@ -225,23 +225,24 @@ // if "SslEnabled" is true. "SslCertificate" : "certificate.pem", - // Sets the minimum accepted SSL protocol version + // Sets the minimum accepted SSL protocol version for the HTTP server // (cf. "ssl_protocol_version" option of civetweb). By default, - // require SSL 1.2. This option is only meaningful if "SslEnabled" + // require TLS 1.2 or 1.3. This option is only meaningful if "SslEnabled" // is true. (new in Orthanc 1.8.2) // // Value => Protocols - // 0 SSL2+SSL3+TLS1.0+TLS1.1+TLS1.2 - // 1 SSL3+TLS1.0+TLS1.1+TLS1.2 - // 2 TLS1.0+TLS1.1+TLS1.2 - // 3 TLS1.1+TLS1.2 - // 4 TLS1.2 + // 0 SSL2+SSL3+TLS1.0+TLS1.1+TLS1.2+TLS1.3 + // 1 SSL3+TLS1.0+TLS1.1+TLS1.2+TLS1.3 + // 2 TLS1.0+TLS1.1+TLS1.2+TLS1.3 + // 3 TLS1.1+TLS1.2+TLS1.3 + // 4 TLS1.2+TLS1.3 + // 5 TLS1.3 "SslMinimumProtocolVersion" : 4, - // Set the accepted ciphers for SSL connections. The ciphers must be - // provided as a list of strings. If not set, this will default to - // FIPS 140-2 ciphers. This option is only meaningful if - // "SslEnabled" is true. (new in Orthanc 1.8.2) + // Set the accepted ciphers for SSL connections for the HTTP server. + // The ciphers must be provided as a list of strings. If not set, + // this will default to FIPS 140-2 ciphers. This option is only + // meaningful if "SslEnabled" is true. (new in Orthanc 1.8.2) /** "SslCiphersAccepted" : [ "AES128-GCM-SHA256" ], **/ @@ -308,10 +309,41 @@ // Whether Orthanc rejects DICOM TLS connections to/from remote // modalities that do not provide a certificate. Setting this option // to "true" (resp. "false") corresponds to "--require-peer-cert" - // (resp. "--verify-peer-cert") in the DCMTK command-line + // (resp. "--ignore-peer-cert") in the DCMTK command-line // tools. (new in Orthanc 1.9.3) + // Once you set this configuration to true, you must provide a list of + // trusted certificates in DicomTlsTrustedCertificates. "DicomTlsRemoteCertificateRequired" : true, + // Sets the minimum accepted TLS protocol version for the DICOM server + // By default, require TLS 1.2 or 1.3. This option is only meaningful + // if "DicomTlsEnabled" is true (new in Orthanc 1.12.4). + // Note that, internally, Orthanc is configured to use the BCP195 profile + // by default. As soon as you switch to another protocol version, you + // must also provide the list of supported cipher suites. + // This configuration applies to Orthanc acting both as SCU and SCP. + // Value => Protocols + // 0 use default BCP 195 profile and default cipher suites + // 1 SSL3+TLS1.0+TLS1.1+TLS1.2+TLS1.3 + // 2 TLS1.0+TLS1.1+TLS1.2+TLS1.3 + // 3 TLS1.1+TLS1.2+TLS1.3 + // 4 TLS1.2+TLS1.3 + // 5 TLS1.3 + "DicomTlsMinimumProtocolVersion" : 0, + + // Set the accepted ciphers for TLS connections for the DICOM server. + // The ciphers must be provided as a list of strings. If not set, + // this will default to BCP195 ciphers if DicomTlsMinimumProtocolVersion is 0 + // or to an empty list for other values. This option is only + // meaningful if "DicomTlsEnabled" is true. (new in Orthanc 1.12.4). + // This configuration must be provided if DicomTlsMinimumProtocolVersion != 0. + // The list of valid cipher names are available in + // https://www.openssl.org/docs/man3.3/man1/openssl-ciphers.html + // The OpenSSL names are used. + /** + "DicomTlsCiphersAccepted" : [] + **/ + // Whether the Orthanc SCP allows incoming C-ECHO requests, even // from SCU modalities it does not know about (i.e. that are not // listed in the "DicomModalities" option above). Orthanc 1.3.0 @@ -475,11 +507,15 @@ // Number of threads that are used by the embedded DICOM server. // This defines the number of concurrent DICOM operations that can - // be run. Note: This is not limiting the number of concurrent - // connections. With a single thread, if a C-Find is received during - // e.g the transcoding of an incoming C-Store, it will have to wait - // until the end of the C-Store before being processed. (new in - // Orthanc 1.10.0, before this version, the value was fixed to 4) + // be run when Orthanc is acting as SCP. + // Note: This is not limiting the number of concurrent connections + // but the number of concurrent DICOM operations. + // E.g, with a single thread, if a C-Find is received during + // e.g the transcoding of an incoming C-Store, the C-Find will + // be processed only at the end of the C-Store operation but both + // DICOM assocations will remain active. + // (new in Orthanc 1.10.0, before this version, the value was + // fixed to 4) "DicomThreadsCount" : 4, // The list of the known Orthanc peers. This option is ignored if diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/DicomConformanceStatement.py --- a/OrthancServer/Resources/DicomConformanceStatement.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/DicomConformanceStatement.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Fonts/GenerateFont.py --- a/OrthancServer/Resources/Fonts/GenerateFont.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Fonts/GenerateFont.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/GenerateAnonymizationProfile.py --- a/OrthancServer/Resources/GenerateAnonymizationProfile.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/GenerateAnonymizationProfile.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupIdentifierQuery.cpp --- a/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupIdentifierQuery.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupIdentifierQuery.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupIdentifierQuery.h --- a/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupIdentifierQuery.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupIdentifierQuery.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupResource.cpp --- a/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupResource.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupResource.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupResource.h --- a/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupResource.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabaseOptimizations/LookupResource.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabasePluginSample/Database.cpp --- a/OrthancServer/Resources/Graveyard/DatabasePluginSample/Database.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabasePluginSample/Database.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabasePluginSample/Database.h --- a/OrthancServer/Resources/Graveyard/DatabasePluginSample/Database.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabasePluginSample/Database.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabasePluginSample/DatabaseWrapperBase.cpp --- a/OrthancServer/Resources/Graveyard/DatabasePluginSample/DatabaseWrapperBase.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabasePluginSample/DatabaseWrapperBase.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabasePluginSample/DatabaseWrapperBase.h --- a/OrthancServer/Resources/Graveyard/DatabasePluginSample/DatabaseWrapperBase.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabasePluginSample/DatabaseWrapperBase.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Graveyard/DatabasePluginSample/Plugin.cpp --- a/OrthancServer/Resources/Graveyard/DatabasePluginSample/Plugin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Graveyard/DatabasePluginSample/Plugin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/OrthancPlugin.doxygen --- a/OrthancServer/Resources/OrthancPlugin.doxygen Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/OrthancPlugin.doxygen Thu Jul 04 07:40:58 2024 +0200 @@ -1944,7 +1944,8 @@ # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = ORTHANC_PLUGIN_INLINE= +PREDEFINED = ORTHANC_PLUGIN_INLINE= \ + ORTHANC_PLUGIN_DEPRECATED= # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/PreventProtobufDirectoryLeaks.py --- a/OrthancServer/Resources/PreventProtobufDirectoryLeaks.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/PreventProtobufDirectoryLeaks.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/RunCppCheck.sh --- a/OrthancServer/Resources/RunCppCheck.sh Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/RunCppCheck.sh Thu Jul 04 07:40:58 2024 +0200 @@ -12,33 +12,33 @@ constParameter:../../OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp knownArgument:../../OrthancFramework/UnitTestsSources/ImageTests.cpp knownConditionTrueFalse:../../OrthancServer/Plugins/Engine/OrthancPlugins.cpp -nullPointer:../../OrthancFramework/UnitTestsSources/RestApiTests.cpp:315 -stlFindInsert:../../OrthancFramework/Sources/DicomFormat/DicomMap.cpp:1476 -stlFindInsert:../../OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp:165 -stlFindInsert:../../OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp:73 -stlFindInsert:../../OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp:373 -stlFindInsert:../../OrthancServer/Sources/OrthancWebDav.cpp:377 -stlFindInsert:../../OrthancServer/Sources/ServerJobs/MergeStudyJob.cpp:40 -stlFindInsert:../../OrthancServer/Sources/ServerJobs/SplitStudyJob.cpp:190 -stlFindInsert:../../OrthancServer/Sources/ServerJobs/ResourceModificationJob.cpp:360 -syntaxError:../../OrthancFramework/Sources/SQLite/FunctionContext.h:52 -syntaxError:../../OrthancFramework/UnitTestsSources/DicomMapTests.cpp:73 -syntaxError:../../OrthancFramework/UnitTestsSources/ZipTests.cpp:132 -syntaxError:../../OrthancServer/UnitTestsSources/UnitTestsMain.cpp:310 -uninitMemberVar:../../OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp:416 +nullPointer:../../OrthancFramework/UnitTestsSources/RestApiTests.cpp:316 +stlFindInsert:../../OrthancFramework/Sources/DicomFormat/DicomMap.cpp:1477 +stlFindInsert:../../OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp:166 +stlFindInsert:../../OrthancFramework/Sources/RestApi/RestApiCallDocumentation.cpp:74 +stlFindInsert:../../OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp:374 +stlFindInsert:../../OrthancServer/Sources/OrthancWebDav.cpp:378 +stlFindInsert:../../OrthancServer/Sources/ServerJobs/MergeStudyJob.cpp:41 +stlFindInsert:../../OrthancServer/Sources/ServerJobs/SplitStudyJob.cpp:191 +stlFindInsert:../../OrthancServer/Sources/ServerJobs/ResourceModificationJob.cpp:361 +syntaxError:../../OrthancFramework/Sources/SQLite/FunctionContext.h:53 +syntaxError:../../OrthancFramework/UnitTestsSources/DicomMapTests.cpp:74 +syntaxError:../../OrthancFramework/UnitTestsSources/ZipTests.cpp:133 +syntaxError:../../OrthancServer/UnitTestsSources/UnitTestsMain.cpp:322 +uninitMemberVar:../../OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp:417 unreadVariable:../../OrthancFramework/Sources/FileStorage/StorageAccessor.cpp -unreadVariable:../../OrthancServer/Sources/OrthancRestApi/OrthancRestModalities.cpp:1118 +unreadVariable:../../OrthancServer/Sources/OrthancRestApi/OrthancRestModalities.cpp:1123 unusedFunction -useInitializationList:../../OrthancFramework/Sources/Images/PngReader.cpp:90 -useInitializationList:../../OrthancFramework/Sources/Images/PngWriter.cpp:98 -useInitializationList:../../OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.cpp:274 -assertWithSideEffect:../../OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp:276 -assertWithSideEffect:../../OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp:1025 -assertWithSideEffect:../../OrthancServer/Sources/Database/Compatibility/DatabaseLookup.cpp:289 -assertWithSideEffect:../../OrthancServer/Sources/Database/Compatibility/DatabaseLookup.cpp:388 -assertWithSideEffect:../../OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp:3630 -assertWithSideEffect:../../OrthancServer/Sources/ServerJobs/ResourceModificationJob.cpp:285 -assertWithSideEffect:../../OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.cpp:453 +useInitializationList:../../OrthancFramework/Sources/Images/PngReader.cpp:91 +useInitializationList:../../OrthancFramework/Sources/Images/PngWriter.cpp:99 +useInitializationList:../../OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.cpp:275 +assertWithSideEffect:../../OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp:277 +assertWithSideEffect:../../OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp:1026 +assertWithSideEffect:../../OrthancServer/Sources/Database/Compatibility/DatabaseLookup.cpp:290 +assertWithSideEffect:../../OrthancServer/Sources/Database/Compatibility/DatabaseLookup.cpp:389 +assertWithSideEffect:../../OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp:3663 +assertWithSideEffect:../../OrthancServer/Sources/ServerJobs/ResourceModificationJob.cpp:286 +assertWithSideEffect:../../OrthancFramework/Sources/DicomNetworking/Internals/CommandDispatcher.cpp:454 EOF ${CPPCHECK} --enable=all --quiet --std=c++11 \ diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/CppHelpers/Logging/ILogger.h --- a/OrthancServer/Resources/Samples/CppHelpers/Logging/ILogger.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/CppHelpers/Logging/ILogger.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/CppHelpers/Logging/NullLogger.h --- a/OrthancServer/Resources/Samples/CppHelpers/Logging/NullLogger.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/CppHelpers/Logging/NullLogger.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancLogger.cpp --- a/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancLogger.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancLogger.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancLogger.h --- a/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancLogger.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancLogger.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancPluginLogger.cpp --- a/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancPluginLogger.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancPluginLogger.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancPluginLogger.h --- a/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancPluginLogger.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/CppHelpers/Logging/OrthancPluginLogger.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py --- a/OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/ImportDicomFiles/ImportDicomFiles.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py --- a/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/ImportDicomFiles/OrthancImport.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Lua/CallWebService.js --- a/OrthancServer/Resources/Samples/Lua/CallWebService.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Lua/CallWebService.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/AnonymizeAllPatients.py --- a/OrthancServer/Resources/Samples/Python/AnonymizeAllPatients.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/AnonymizeAllPatients.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/ArchiveAllPatients.py --- a/OrthancServer/Resources/Samples/Python/ArchiveAllPatients.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/ArchiveAllPatients.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/ArchiveStudiesInTimeRange.py --- a/OrthancServer/Resources/Samples/Python/ArchiveStudiesInTimeRange.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/ArchiveStudiesInTimeRange.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/AutoClassify.py --- a/OrthancServer/Resources/Samples/Python/AutoClassify.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/AutoClassify.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/ChangesLoop.py --- a/OrthancServer/Resources/Samples/Python/ChangesLoop.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/ChangesLoop.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/ContinuousPatientAnonymization.py --- a/OrthancServer/Resources/Samples/Python/ContinuousPatientAnonymization.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/ContinuousPatientAnonymization.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/DeleteAllStudies.py --- a/OrthancServer/Resources/Samples/Python/DeleteAllStudies.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/DeleteAllStudies.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/DicomizeImage.py --- a/OrthancServer/Resources/Samples/Python/DicomizeImage.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/DicomizeImage.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/DownloadAnonymized.py --- a/OrthancServer/Resources/Samples/Python/DownloadAnonymized.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/DownloadAnonymized.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/HighPerformanceAutoRouting.py --- a/OrthancServer/Resources/Samples/Python/HighPerformanceAutoRouting.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/HighPerformanceAutoRouting.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/ManualModification.py --- a/OrthancServer/Resources/Samples/Python/ManualModification.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/ManualModification.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/MicroCTDicomization.py --- a/OrthancServer/Resources/Samples/Python/MicroCTDicomization.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/MicroCTDicomization.py Thu Jul 04 07:40:58 2024 +0200 @@ -4,7 +4,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/Replicate.py --- a/OrthancServer/Resources/Samples/Python/Replicate.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/Replicate.py Thu Jul 04 07:40:58 2024 +0200 @@ -3,7 +3,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Python/RestToolbox.py --- a/OrthancServer/Resources/Samples/Python/RestToolbox.py Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Python/RestToolbox.py Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Tools/CMakeLists.txt --- a/OrthancServer/Resources/Samples/Tools/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Tools/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/Tools/RecoverCompressedFile.cpp --- a/OrthancServer/Resources/Samples/Tools/RecoverCompressedFile.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/Tools/RecoverCompressedFile.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/WebApplications/DrawingDicomizer.js --- a/OrthancServer/Resources/Samples/WebApplications/DrawingDicomizer.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/WebApplications/DrawingDicomizer.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/WebApplications/DrawingDicomizer/orthanc.js --- a/OrthancServer/Resources/Samples/WebApplications/DrawingDicomizer/orthanc.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/WebApplications/DrawingDicomizer/orthanc.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Samples/WebApplications/NodeToolbox.js --- a/OrthancServer/Resources/Samples/WebApplications/NodeToolbox.js Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Samples/WebApplications/NodeToolbox.js Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Resources/Testing/Issue32/Cpp/CMakeLists.txt --- a/OrthancServer/Resources/Testing/Issue32/Cpp/CMakeLists.txt Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Resources/Testing/Issue32/Cpp/CMakeLists.txt Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ # Orthanc - A Lightweight, RESTful DICOM Store # Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics # Department, University Hospital of Liege, Belgium -# Copyright (C) 2017-2024 Osimis S.A., Belgium +# Copyright (C) 2017-2023 Osimis S.A., Belgium +# Copyright (C) 2024-2024 Orthanc Team SRL, Belgium # Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium # # This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/BaseDatabaseWrapper.cpp --- a/OrthancServer/Sources/Database/BaseDatabaseWrapper.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/BaseDatabaseWrapper.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/BaseDatabaseWrapper.h --- a/OrthancServer/Sources/Database/BaseDatabaseWrapper.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/BaseDatabaseWrapper.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/DatabaseLookup.cpp --- a/OrthancServer/Sources/Database/Compatibility/DatabaseLookup.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/DatabaseLookup.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/DatabaseLookup.h --- a/OrthancServer/Sources/Database/Compatibility/DatabaseLookup.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/DatabaseLookup.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/ICreateInstance.cpp --- a/OrthancServer/Sources/Database/Compatibility/ICreateInstance.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/ICreateInstance.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/ICreateInstance.h --- a/OrthancServer/Sources/Database/Compatibility/ICreateInstance.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/ICreateInstance.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/IGetChildrenMetadata.cpp --- a/OrthancServer/Sources/Database/Compatibility/IGetChildrenMetadata.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/IGetChildrenMetadata.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/IGetChildrenMetadata.h --- a/OrthancServer/Sources/Database/Compatibility/IGetChildrenMetadata.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/IGetChildrenMetadata.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/ILookupResourceAndParent.cpp --- a/OrthancServer/Sources/Database/Compatibility/ILookupResourceAndParent.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/ILookupResourceAndParent.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/ILookupResourceAndParent.h --- a/OrthancServer/Sources/Database/Compatibility/ILookupResourceAndParent.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/ILookupResourceAndParent.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/ILookupResources.cpp --- a/OrthancServer/Sources/Database/Compatibility/ILookupResources.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/ILookupResources.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/ILookupResources.h --- a/OrthancServer/Sources/Database/Compatibility/ILookupResources.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/ILookupResources.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/ISetResourcesContent.h --- a/OrthancServer/Sources/Database/Compatibility/ISetResourcesContent.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/ISetResourcesContent.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/SetOfResources.cpp --- a/OrthancServer/Sources/Database/Compatibility/SetOfResources.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/SetOfResources.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Compatibility/SetOfResources.h --- a/OrthancServer/Sources/Database/Compatibility/SetOfResources.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Compatibility/SetOfResources.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/IDatabaseListener.h --- a/OrthancServer/Sources/Database/IDatabaseListener.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/IDatabaseListener.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/IDatabaseWrapper.h --- a/OrthancServer/Sources/Database/IDatabaseWrapper.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/IDatabaseWrapper.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/InstallLabelsTable.sql --- a/OrthancServer/Sources/Database/InstallLabelsTable.sql Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/InstallLabelsTable.sql Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ -- Orthanc - A Lightweight, RESTful DICOM Store -- Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics -- Department, University Hospital of Liege, Belgium --- Copyright (C) 2017-2024 Osimis S.A., Belgium +-- Copyright (C) 2017-2023 Osimis S.A., Belgium +-- Copyright (C) 2024-2024 Orthanc Team SRL, Belgium -- Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium -- -- This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql --- a/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/InstallTrackAttachmentsSize.sql Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ -- Orthanc - A Lightweight, RESTful DICOM Store -- Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics -- Department, University Hospital of Liege, Belgium --- Copyright (C) 2017-2024 Osimis S.A., Belgium +-- Copyright (C) 2017-2023 Osimis S.A., Belgium +-- Copyright (C) 2024-2024 Orthanc Team SRL, Belgium -- Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium -- -- This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/PrepareDatabase.sql --- a/OrthancServer/Sources/Database/PrepareDatabase.sql Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/PrepareDatabase.sql Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ -- Orthanc - A Lightweight, RESTful DICOM Store -- Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics -- Department, University Hospital of Liege, Belgium --- Copyright (C) 2017-2024 Osimis S.A., Belgium +-- Copyright (C) 2017-2023 Osimis S.A., Belgium +-- Copyright (C) 2024-2024 Orthanc Team SRL, Belgium -- Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium -- -- This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/ResourcesContent.cpp --- a/OrthancServer/Sources/Database/ResourcesContent.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/ResourcesContent.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/ResourcesContent.h --- a/OrthancServer/Sources/Database/ResourcesContent.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/ResourcesContent.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp --- a/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/SQLiteDatabaseWrapper.h --- a/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp --- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -966,7 +967,7 @@ type == ResourceType_Study || type == ResourceType_Series) { - target.isStable_ = !transaction.GetTransactionContext().IsUnstableResource(internalId); + target.isStable_ = !transaction.GetTransactionContext().IsUnstableResource(type, internalId); if (LookupStringMetadata(tmp, target.metadata_, MetadataType_LastUpdate)) { @@ -2797,13 +2798,15 @@ } - void StatelessDatabaseOperations::ReconstructInstance(const ParsedDicomFile& dicom) + void StatelessDatabaseOperations::ReconstructInstance(const ParsedDicomFile& dicom, bool limitToThisLevelDicomTags, ResourceType limitToLevel) { class Operations : public IReadWriteOperations { private: DicomMap summary_; std::unique_ptr hasher_; + bool limitToThisLevelDicomTags_; + ResourceType limitToLevel_; bool hasTransferSyntax_; DicomTransferSyntax transferSyntax_; @@ -2845,7 +2848,9 @@ } public: - explicit Operations(const ParsedDicomFile& dicom) + explicit Operations(const ParsedDicomFile& dicom, bool limitToThisLevelDicomTags, ResourceType limitToLevel) + : limitToThisLevelDicomTags_(limitToThisLevelDicomTags), + limitToLevel_(limitToLevel) { OrthancConfiguration::DefaultExtractDicomSummary(summary_, dicom); hasher_.reset(new DicomInstanceHasher(summary_)); @@ -2873,48 +2878,76 @@ throw OrthancException(ErrorCode_InternalError); } - transaction.ClearMainDicomTags(patient); - transaction.ClearMainDicomTags(study); - transaction.ClearMainDicomTags(series); - transaction.ClearMainDicomTags(instance); - + if (limitToThisLevelDicomTags_) { ResourcesContent content(false /* prevent the setting of metadata */); - content.AddResource(patient, ResourceType_Patient, summary_); - content.AddResource(study, ResourceType_Study, summary_); - content.AddResource(series, ResourceType_Series, summary_); - content.AddResource(instance, ResourceType_Instance, summary_); - + int64_t resource = -1; + if (limitToLevel_ == ResourceType_Patient) + { + resource = patient; + } + else if (limitToLevel_ == ResourceType_Study) + { + resource = study; + } + else if (limitToLevel_ == ResourceType_Series) + { + resource = series; + } + else if (limitToLevel_ == ResourceType_Instance) + { + resource = instance; + } + + transaction.ClearMainDicomTags(resource); + content.AddResource(resource, limitToLevel_, summary_); transaction.SetResourcesContent(content); - - ReplaceMetadata(transaction, patient, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Patient)); // New in Orthanc 1.11.0 - ReplaceMetadata(transaction, study, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Study)); // New in Orthanc 1.11.0 - ReplaceMetadata(transaction, series, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Series)); // New in Orthanc 1.11.0 - ReplaceMetadata(transaction, instance, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Instance)); // New in Orthanc 1.11.0 - - SetMainDicomSequenceMetadata(transaction, patient, summary_, ResourceType_Patient); - SetMainDicomSequenceMetadata(transaction, study, summary_, ResourceType_Study); - SetMainDicomSequenceMetadata(transaction, series, summary_, ResourceType_Series); - SetMainDicomSequenceMetadata(transaction, instance, summary_, ResourceType_Instance); + ReplaceMetadata(transaction, resource, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(limitToLevel_)); } - - if (hasTransferSyntax_) + else { - ReplaceMetadata(transaction, instance, MetadataType_Instance_TransferSyntax, GetTransferSyntaxUid(transferSyntax_)); + transaction.ClearMainDicomTags(patient); + transaction.ClearMainDicomTags(study); + transaction.ClearMainDicomTags(series); + transaction.ClearMainDicomTags(instance); + + { + ResourcesContent content(false /* prevent the setting of metadata */); + content.AddResource(patient, ResourceType_Patient, summary_); + content.AddResource(study, ResourceType_Study, summary_); + content.AddResource(series, ResourceType_Series, summary_); + content.AddResource(instance, ResourceType_Instance, summary_); + + transaction.SetResourcesContent(content); + + ReplaceMetadata(transaction, patient, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Patient)); // New in Orthanc 1.11.0 + ReplaceMetadata(transaction, study, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Study)); // New in Orthanc 1.11.0 + ReplaceMetadata(transaction, series, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Series)); // New in Orthanc 1.11.0 + ReplaceMetadata(transaction, instance, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Instance)); // New in Orthanc 1.11.0 + + SetMainDicomSequenceMetadata(transaction, patient, summary_, ResourceType_Patient); + SetMainDicomSequenceMetadata(transaction, study, summary_, ResourceType_Study); + SetMainDicomSequenceMetadata(transaction, series, summary_, ResourceType_Series); + SetMainDicomSequenceMetadata(transaction, instance, summary_, ResourceType_Instance); + } + + if (hasTransferSyntax_) + { + ReplaceMetadata(transaction, instance, MetadataType_Instance_TransferSyntax, GetTransferSyntaxUid(transferSyntax_)); + } + + const DicomValue* value; + if ((value = summary_.TestAndGetValue(DICOM_TAG_SOP_CLASS_UID)) != NULL && + !value->IsNull() && + !value->IsBinary()) + { + ReplaceMetadata(transaction, instance, MetadataType_Instance_SopClassUid, value->GetContent()); + } } - - const DicomValue* value; - if ((value = summary_.TestAndGetValue(DICOM_TAG_SOP_CLASS_UID)) != NULL && - !value->IsNull() && - !value->IsBinary()) - { - ReplaceMetadata(transaction, instance, MetadataType_Instance_SopClassUid, value->GetContent()); - } - } }; - Operations operations(dicom); + Operations operations(dicom, limitToThisLevelDicomTags, limitToLevel); Apply(operations); } @@ -3343,193 +3376,193 @@ transaction.AddAttachment(instanceId, *it, 0 /* this is the first revision */); } + ResourcesContent content(true /* new resource, metadata can be set */); + + // Attach the user-specified metadata (in case of reconstruction, metadata_ contains all past metadata, including the system ones we want to keep) + for (MetadataMap::const_iterator + it = metadata_.begin(); it != metadata_.end(); ++it) + { + switch (it->first.first) + { + case ResourceType_Patient: + content.AddMetadata(status.patientId_, it->first.second, it->second); + break; + + case ResourceType_Study: + content.AddMetadata(status.studyId_, it->first.second, it->second); + break; + + case ResourceType_Series: + content.AddMetadata(status.seriesId_, it->first.second, it->second); + break; + + case ResourceType_Instance: + SetInstanceMetadata(content, instanceMetadata_, instanceId, + it->first.second, it->second); + break; + + default: + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + } + if (!isReconstruct_) { - ResourcesContent content(true /* new resource, metadata can be set */); - - // Attach the user-specified metadata (in case of reconstruction, metadata_ contains all past metadata, including the system ones we want to keep) - for (MetadataMap::const_iterator - it = metadata_.begin(); it != metadata_.end(); ++it) + // Populate the tags of the newly-created resources + content.AddResource(instanceId, ResourceType_Instance, dicomSummary_); + SetInstanceMetadata(content, instanceMetadata_, instanceId, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Instance)); // New in Orthanc 1.11.0 + SetMainDicomSequenceMetadata(content, instanceId, dicomSummary_, ResourceType_Instance); // new in Orthanc 1.11.1 + + if (status.isNewSeries_) { - switch (it->first.first) - { - case ResourceType_Patient: - content.AddMetadata(status.patientId_, it->first.second, it->second); - break; - - case ResourceType_Study: - content.AddMetadata(status.studyId_, it->first.second, it->second); - break; - - case ResourceType_Series: - content.AddMetadata(status.seriesId_, it->first.second, it->second); - break; - - case ResourceType_Instance: - SetInstanceMetadata(content, instanceMetadata_, instanceId, - it->first.second, it->second); - break; - - default: - throw OrthancException(ErrorCode_ParameterOutOfRange); - } + content.AddResource(status.seriesId_, ResourceType_Series, dicomSummary_); + content.AddMetadata(status.seriesId_, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Series)); // New in Orthanc 1.11.0 + SetMainDicomSequenceMetadata(content, status.seriesId_, dicomSummary_, ResourceType_Series); // new in Orthanc 1.11.1 } - if (!isReconstruct_) + if (status.isNewStudy_) { - // Populate the tags of the newly-created resources - content.AddResource(instanceId, ResourceType_Instance, dicomSummary_); - SetInstanceMetadata(content, instanceMetadata_, instanceId, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Instance)); // New in Orthanc 1.11.0 - SetMainDicomSequenceMetadata(content, instanceId, dicomSummary_, ResourceType_Instance); // new in Orthanc 1.11.1 - - if (status.isNewSeries_) - { - content.AddResource(status.seriesId_, ResourceType_Series, dicomSummary_); - content.AddMetadata(status.seriesId_, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Series)); // New in Orthanc 1.11.0 - SetMainDicomSequenceMetadata(content, status.seriesId_, dicomSummary_, ResourceType_Series); // new in Orthanc 1.11.1 - } - - if (status.isNewStudy_) - { - content.AddResource(status.studyId_, ResourceType_Study, dicomSummary_); - content.AddMetadata(status.studyId_, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Study)); // New in Orthanc 1.11.0 - SetMainDicomSequenceMetadata(content, status.studyId_, dicomSummary_, ResourceType_Study); // new in Orthanc 1.11.1 - } - - if (status.isNewPatient_) - { - content.AddResource(status.patientId_, ResourceType_Patient, dicomSummary_); - content.AddMetadata(status.patientId_, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Patient)); // New in Orthanc 1.11.0 - SetMainDicomSequenceMetadata(content, status.patientId_, dicomSummary_, ResourceType_Patient); // new in Orthanc 1.11.1 - } - - // Attach the auto-computed metadata for the patient/study/series levels - std::string now = SystemToolbox::GetNowIsoString(true /* use UTC time (not local time) */); - content.AddMetadata(status.seriesId_, MetadataType_LastUpdate, now); - content.AddMetadata(status.studyId_, MetadataType_LastUpdate, now); - content.AddMetadata(status.patientId_, MetadataType_LastUpdate, now); - - if (status.isNewSeries_) + content.AddResource(status.studyId_, ResourceType_Study, dicomSummary_); + content.AddMetadata(status.studyId_, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Study)); // New in Orthanc 1.11.0 + SetMainDicomSequenceMetadata(content, status.studyId_, dicomSummary_, ResourceType_Study); // new in Orthanc 1.11.1 + } + + if (status.isNewPatient_) + { + content.AddResource(status.patientId_, ResourceType_Patient, dicomSummary_); + content.AddMetadata(status.patientId_, MetadataType_MainDicomTagsSignature, DicomMap::GetMainDicomTagsSignature(ResourceType_Patient)); // New in Orthanc 1.11.0 + SetMainDicomSequenceMetadata(content, status.patientId_, dicomSummary_, ResourceType_Patient); // new in Orthanc 1.11.1 + } + + // Attach the auto-computed metadata for the patient/study/series levels + std::string now = SystemToolbox::GetNowIsoString(true /* use UTC time (not local time) */); + content.AddMetadata(status.seriesId_, MetadataType_LastUpdate, now); + content.AddMetadata(status.studyId_, MetadataType_LastUpdate, now); + content.AddMetadata(status.patientId_, MetadataType_LastUpdate, now); + + if (status.isNewSeries_) + { + if (hasExpectedInstances_) { - if (hasExpectedInstances_) - { - content.AddMetadata(status.seriesId_, MetadataType_Series_ExpectedNumberOfInstances, - boost::lexical_cast(expectedInstances_)); - } - - // New in Orthanc 1.9.0 - content.AddMetadata(status.seriesId_, MetadataType_RemoteAet, - origin_.GetRemoteAetC()); - } - // Attach the auto-computed metadata for the instance level, - // reflecting these additions into the input metadata map - SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_ReceptionDate, now); - SetInstanceMetadata(content, instanceMetadata_, instanceId, MetadataType_RemoteAet, - origin_.GetRemoteAetC()); - SetInstanceMetadata(content, instanceMetadata_, instanceId, MetadataType_Instance_Origin, - EnumerationToString(origin_.GetRequestOrigin())); - - std::string s; - - if (origin_.LookupRemoteIp(s)) - { - // New in Orthanc 1.4.0 - SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_RemoteIp, s); - } - - if (origin_.LookupCalledAet(s)) - { - // New in Orthanc 1.4.0 - SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_CalledAet, s); + content.AddMetadata(status.seriesId_, MetadataType_Series_ExpectedNumberOfInstances, + boost::lexical_cast(expectedInstances_)); } - if (origin_.LookupHttpUsername(s)) - { - // New in Orthanc 1.4.0 - SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_HttpUsername, s); - } + // New in Orthanc 1.9.0 + content.AddMetadata(status.seriesId_, MetadataType_RemoteAet, + origin_.GetRemoteAetC()); } - - // Following metadatas are also updated if reconstructing the instance. - // They might be missing since they have been introduced along Orthanc versions. - - if (hasTransferSyntax_) + // Attach the auto-computed metadata for the instance level, + // reflecting these additions into the input metadata map + SetInstanceMetadata(content, instanceMetadata_, instanceId, + MetadataType_Instance_ReceptionDate, now); + SetInstanceMetadata(content, instanceMetadata_, instanceId, MetadataType_RemoteAet, + origin_.GetRemoteAetC()); + SetInstanceMetadata(content, instanceMetadata_, instanceId, MetadataType_Instance_Origin, + EnumerationToString(origin_.GetRequestOrigin())); + + std::string s; + + if (origin_.LookupRemoteIp(s)) { - // New in Orthanc 1.2.0 + // New in Orthanc 1.4.0 + SetInstanceMetadata(content, instanceMetadata_, instanceId, + MetadataType_Instance_RemoteIp, s); + } + + if (origin_.LookupCalledAet(s)) + { + // New in Orthanc 1.4.0 SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_TransferSyntax, - GetTransferSyntaxUid(transferSyntax_)); + MetadataType_Instance_CalledAet, s); + } + + if (origin_.LookupHttpUsername(s)) + { + // New in Orthanc 1.4.0 + SetInstanceMetadata(content, instanceMetadata_, instanceId, + MetadataType_Instance_HttpUsername, s); } - - if (hasPixelDataOffset_) + } + + // Following metadatas are also updated if reconstructing the instance. + // They might be missing since they have been introduced along Orthanc versions. + + if (hasTransferSyntax_) + { + // New in Orthanc 1.2.0 + SetInstanceMetadata(content, instanceMetadata_, instanceId, + MetadataType_Instance_TransferSyntax, + GetTransferSyntaxUid(transferSyntax_)); + } + + if (hasPixelDataOffset_) + { + // New in Orthanc 1.9.1 + SetInstanceMetadata(content, instanceMetadata_, instanceId, + MetadataType_Instance_PixelDataOffset, + boost::lexical_cast(pixelDataOffset_)); + + // New in Orthanc 1.12.1 + if (dicomSummary_.GuessPixelDataValueRepresentation(transferSyntax_) != pixelDataVR_) { - // New in Orthanc 1.9.1 + // Store the VR of pixel data if it doesn't comply with the standard SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_PixelDataOffset, - boost::lexical_cast(pixelDataOffset_)); - - // New in Orthanc 1.12.1 - if (dicomSummary_.GuessPixelDataValueRepresentation(transferSyntax_) != pixelDataVR_) - { - // Store the VR of pixel data if it doesn't comply with the standard - SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_PixelDataVR, - EnumerationToString(pixelDataVR_)); - } + MetadataType_Instance_PixelDataVR, + EnumerationToString(pixelDataVR_)); } - - const DicomValue* value; - if ((value = dicomSummary_.TestAndGetValue(DICOM_TAG_SOP_CLASS_UID)) != NULL && - !value->IsNull() && + } + + const DicomValue* value; + if ((value = dicomSummary_.TestAndGetValue(DICOM_TAG_SOP_CLASS_UID)) != NULL && + !value->IsNull() && + !value->IsBinary()) + { + SetInstanceMetadata(content, instanceMetadata_, instanceId, + MetadataType_Instance_SopClassUid, value->GetContent()); + } + + + if ((value = dicomSummary_.TestAndGetValue(DICOM_TAG_INSTANCE_NUMBER)) != NULL || + (value = dicomSummary_.TestAndGetValue(DICOM_TAG_IMAGE_INDEX)) != NULL) + { + if (!value->IsNull() && !value->IsBinary()) { SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_SopClassUid, value->GetContent()); + MetadataType_Instance_IndexInSeries, Toolbox::StripSpaces(value->GetContent())); } - - - if ((value = dicomSummary_.TestAndGetValue(DICOM_TAG_INSTANCE_NUMBER)) != NULL || - (value = dicomSummary_.TestAndGetValue(DICOM_TAG_IMAGE_INDEX)) != NULL) + } + + + transaction.SetResourcesContent(content); + + + if (!isReconstruct_) // a reconstruct shall not trigger any events + { + // Check whether the series of this new instance is now completed + int64_t expectedNumberOfInstances; + if (ComputeExpectedNumberOfInstances(expectedNumberOfInstances, dicomSummary_)) { - if (!value->IsNull() && - !value->IsBinary()) + SeriesStatus seriesStatus = transaction.GetSeriesStatus(status.seriesId_, expectedNumberOfInstances); + if (seriesStatus == SeriesStatus_Complete) { - SetInstanceMetadata(content, instanceMetadata_, instanceId, - MetadataType_Instance_IndexInSeries, Toolbox::StripSpaces(value->GetContent())); + transaction.LogChange(status.seriesId_, ChangeType_CompletedSeries, ResourceType_Series, hashSeries_); } } - - - transaction.SetResourcesContent(content); + + transaction.LogChange(status.seriesId_, ChangeType_NewChildInstance, ResourceType_Series, hashSeries_); + transaction.LogChange(status.studyId_, ChangeType_NewChildInstance, ResourceType_Study, hashStudy_); + transaction.LogChange(status.patientId_, ChangeType_NewChildInstance, ResourceType_Patient, hashPatient_); + + // Mark the parent resources of this instance as unstable + transaction.GetTransactionContext().MarkAsUnstable(ResourceType_Series, status.seriesId_, hashSeries_); + transaction.GetTransactionContext().MarkAsUnstable(ResourceType_Study, status.studyId_, hashStudy_); + transaction.GetTransactionContext().MarkAsUnstable(ResourceType_Patient, status.patientId_, hashPatient_); } - - // Check whether the series of this new instance is now completed - int64_t expectedNumberOfInstances; - if (ComputeExpectedNumberOfInstances(expectedNumberOfInstances, dicomSummary_)) - { - SeriesStatus seriesStatus = transaction.GetSeriesStatus(status.seriesId_, expectedNumberOfInstances); - if (seriesStatus == SeriesStatus_Complete) - { - transaction.LogChange(status.seriesId_, ChangeType_CompletedSeries, ResourceType_Series, hashSeries_); - } - } - - transaction.LogChange(status.seriesId_, ChangeType_NewChildInstance, ResourceType_Series, hashSeries_); - transaction.LogChange(status.studyId_, ChangeType_NewChildInstance, ResourceType_Study, hashStudy_); - transaction.LogChange(status.patientId_, ChangeType_NewChildInstance, ResourceType_Patient, hashPatient_); - - // Mark the parent resources of this instance as unstable - transaction.GetTransactionContext().MarkAsUnstable(status.seriesId_, ResourceType_Series, hashSeries_); - transaction.GetTransactionContext().MarkAsUnstable(status.studyId_, ResourceType_Study, hashStudy_); - transaction.GetTransactionContext().MarkAsUnstable(status.patientId_, ResourceType_Patient, hashPatient_); transaction.GetTransactionContext().SignalAttachmentsAdded(instanceSize); - - storeStatus_ = StoreStatus_Success; + storeStatus_ = StoreStatus_Success; } }; diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/StatelessDatabaseOperations.h --- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -145,13 +146,14 @@ virtual int64_t GetCompressedSizeDelta() = 0; - virtual bool IsUnstableResource(int64_t id) = 0; + virtual bool IsUnstableResource(Orthanc::ResourceType type, + int64_t id) = 0; virtual bool LookupRemainingLevel(std::string& remainingPublicId /* out */, ResourceType& remainingLevel /* out */) = 0; - virtual void MarkAsUnstable(int64_t id, - Orthanc::ResourceType type, + virtual void MarkAsUnstable(Orthanc::ResourceType type, + int64_t id, const std::string& publicId) = 0; virtual void SignalAttachmentsAdded(uint64_t compressedSize) = 0; @@ -773,7 +775,9 @@ const std::string& publicId, ResourceType level); - void ReconstructInstance(const ParsedDicomFile& dicom); + void ReconstructInstance(const ParsedDicomFile& dicom, + bool limitToThisLevelDicomTags, + ResourceType limitToLevel_); StoreStatus Store(std::map& instanceMetadata, const DicomMap& dicomSummary, diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Upgrade3To4.sql --- a/OrthancServer/Sources/Database/Upgrade3To4.sql Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Upgrade3To4.sql Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ -- Orthanc - A Lightweight, RESTful DICOM Store -- Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics -- Department, University Hospital of Liege, Belgium --- Copyright (C) 2017-2024 Osimis S.A., Belgium +-- Copyright (C) 2017-2023 Osimis S.A., Belgium +-- Copyright (C) 2024-2024 Orthanc Team SRL, Belgium -- Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium -- -- This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/Upgrade4To5.sql --- a/OrthancServer/Sources/Database/Upgrade4To5.sql Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/Upgrade4To5.sql Thu Jul 04 07:40:58 2024 +0200 @@ -1,7 +1,8 @@ -- Orthanc - A Lightweight, RESTful DICOM Store -- Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics -- Department, University Hospital of Liege, Belgium --- Copyright (C) 2017-2024 Osimis S.A., Belgium +-- Copyright (C) 2017-2023 Osimis S.A., Belgium +-- Copyright (C) 2024-2024 Orthanc Team SRL, Belgium -- Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium -- -- This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/VoidDatabaseListener.cpp --- a/OrthancServer/Sources/Database/VoidDatabaseListener.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/VoidDatabaseListener.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Database/VoidDatabaseListener.h --- a/OrthancServer/Sources/Database/VoidDatabaseListener.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Database/VoidDatabaseListener.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/DicomInstanceOrigin.cpp --- a/OrthancServer/Sources/DicomInstanceOrigin.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/DicomInstanceOrigin.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/DicomInstanceOrigin.h --- a/OrthancServer/Sources/DicomInstanceOrigin.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/DicomInstanceOrigin.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/DicomInstanceToStore.cpp --- a/OrthancServer/Sources/DicomInstanceToStore.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/DicomInstanceToStore.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -132,9 +133,10 @@ { buffer_.reset(new std::string); - if (!FromDcmtkBridge::SaveToMemoryBuffer(*buffer_, dataset_)) + std::string errorMessage; + if (!FromDcmtkBridge::SaveToMemoryBuffer(*buffer_, dataset_, errorMessage)) { - throw OrthancException(ErrorCode_InternalError, "Cannot write DICOM file to memory"); + throw OrthancException(ErrorCode_InternalError, "Cannot write DICOM file to memory: " + errorMessage); } } } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/DicomInstanceToStore.h --- a/OrthancServer/Sources/DicomInstanceToStore.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/DicomInstanceToStore.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/EmbeddedResourceHttpHandler.cpp --- a/OrthancServer/Sources/EmbeddedResourceHttpHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/EmbeddedResourceHttpHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/EmbeddedResourceHttpHandler.h --- a/OrthancServer/Sources/EmbeddedResourceHttpHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/EmbeddedResourceHttpHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ExportedResource.cpp --- a/OrthancServer/Sources/ExportedResource.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ExportedResource.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ExportedResource.h --- a/OrthancServer/Sources/ExportedResource.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ExportedResource.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/IDicomImageDecoder.h --- a/OrthancServer/Sources/IDicomImageDecoder.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/IDicomImageDecoder.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/IServerListener.h --- a/OrthancServer/Sources/IServerListener.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/IServerListener.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/JobEvent.h --- a/OrthancServer/Sources/JobEvent.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/JobEvent.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/LuaScripting.cpp --- a/OrthancServer/Sources/LuaScripting.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/LuaScripting.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/LuaScripting.h --- a/OrthancServer/Sources/LuaScripting.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/LuaScripting.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancConfiguration.cpp --- a/OrthancServer/Sources/OrthancConfiguration.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancConfiguration.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -114,7 +115,7 @@ { if (!is_directory(it->status())) { - std::string extension = boost::filesystem::extension(it->path()); + std::string extension = it->path().extension().string(); Toolbox::ToLowerCase(extension); if (extension == ".json") @@ -750,7 +751,7 @@ if (lst.type() != Json::arrayValue) { - throw OrthancException(ErrorCode_BadFileFormat, "Badly formatted list of strings"); + throw OrthancException(ErrorCode_BadFileFormat, "Badly formatted list of strings: " + key); } for (Json::Value::ArrayIndex i = 0; i < lst.size(); i++) @@ -759,7 +760,31 @@ } } - + + void OrthancConfiguration::GetSetOfStringsParameter(std::set& target, + const std::string& key) const + { + target.clear(); + + if (!json_.isMember(key)) + { + return; + } + + const Json::Value& lst = json_[key]; + + if (lst.type() != Json::arrayValue) + { + throw OrthancException(ErrorCode_BadFileFormat, "Badly formatted set of strings: " + key); + } + + for (Json::Value::ArrayIndex i = 0; i < lst.size(); i++) + { + target.insert(lst[i].asString()); + } + } + + bool OrthancConfiguration::IsSameAETitle(const std::string& aet1, const std::string& aet2) const { diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancConfiguration.h --- a/OrthancServer/Sources/OrthancConfiguration.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancConfiguration.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -203,7 +204,10 @@ void GetListOfStringsParameter(std::list& target, const std::string& key) const; - + + void GetSetOfStringsParameter(std::set& target, + const std::string& key) const; + bool IsSameAETitle(const std::string& aet1, const std::string& aet2) const; diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancFindRequestHandler.cpp --- a/OrthancServer/Sources/OrthancFindRequestHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancFindRequestHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -439,9 +440,11 @@ const DicomElement& element = query.GetElement(i); const DicomTag tag = element.GetTag(); + // remove tags that are not used for matching if (element.GetValue().IsNull() || tag == DICOM_TAG_QUERY_RETRIEVE_LEVEL || - tag == DICOM_TAG_SPECIFIC_CHARACTER_SET) + tag == DICOM_TAG_SPECIFIC_CHARACTER_SET || + tag == DICOM_TAG_TIMEZONE_OFFSET_FROM_UTC) // time zone is not directly used for matching. Once we support "Timezone query adjustment", we may use it to adjust date-time filters but for now, just ignore it { continue; } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancFindRequestHandler.h --- a/OrthancServer/Sources/OrthancFindRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancFindRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancGetRequestHandler.cpp --- a/OrthancServer/Sources/OrthancGetRequestHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancGetRequestHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancGetRequestHandler.h --- a/OrthancServer/Sources/OrthancGetRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancGetRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancHttpHandler.cpp --- a/OrthancServer/Sources/OrthancHttpHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancHttpHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancHttpHandler.h --- a/OrthancServer/Sources/OrthancHttpHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancHttpHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancInitialization.cpp --- a/OrthancServer/Sources/OrthancInitialization.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancInitialization.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancInitialization.h --- a/OrthancServer/Sources/OrthancInitialization.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancInitialization.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancMoveRequestHandler.cpp --- a/OrthancServer/Sources/OrthancMoveRequestHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancMoveRequestHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancMoveRequestHandler.h --- a/OrthancServer/Sources/OrthancMoveRequestHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancMoveRequestHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestAnonymizeModify.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestAnonymizeModify.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestAnonymizeModify.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestApi.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestApi.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestApi.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -489,7 +490,8 @@ static const std::string GET_SIMPLIFY = "simplify"; static const std::string GET_FULL = "full"; static const std::string GET_SHORT = "short"; - static const std::string GET_REQUESTED_TAGS = "requestedTags"; + static const std::string GET_REQUESTED_TAGS_OLD = "requestedTags"; // This was the only option in Orthanc <= 1.12.3 + static const std::string GET_REQUESTED_TAGS = "requested-tags"; static const std::string POST_SIMPLIFY = "Simplify"; static const std::string POST_FULL = "Full"; @@ -603,25 +605,36 @@ { requestedTags.clear(); + std::string s; + if (call.HasArgument(GET_REQUESTED_TAGS)) { + s = call.GetArgument(GET_REQUESTED_TAGS, ""); + } + else if (call.HasArgument(GET_REQUESTED_TAGS_OLD)) + { + // This is for backward compatibility with Orthanc <= 1.12.3 + s = call.GetArgument(GET_REQUESTED_TAGS_OLD, ""); + } + + if (!s.empty()) + { try { - FromDcmtkBridge::ParseListOfTags(requestedTags, call.GetArgument("requestedTags", "")); + FromDcmtkBridge::ParseListOfTags(requestedTags, s); } catch (OrthancException& ex) { throw OrthancException(ErrorCode_BadRequest, std::string("Invalid requestedTags argument: ") + ex.What() + " " + ex.GetDetails()); } } - } void OrthancRestApi::DocumentRequestedTags(RestApiGetCall& call) { call.GetDocumentation().SetHttpGetArgument(GET_REQUESTED_TAGS, RestApiCallDocumentation::Type_String, "If present, list the DICOM Tags you want to list in the response. This argument is a semi-column separated list " - "of DICOM Tags identifiers; e.g: 'requestedTags=0010,0010;PatientBirthDate'. " + "of DICOM Tags identifiers; e.g: '" + GET_REQUESTED_TAGS + "=0010,0010;PatientBirthDate'. " "The tags requested tags are returned in the 'RequestedTags' field in the response. " "Note that, if you are requesting tags that are not listed in the Main Dicom Tags stored in DB, building the response " "might be slow since Orthanc will need to access the DICOM files. If not specified, Orthanc will return ", false); diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestApi.h --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestApi.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestApi.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestArchive.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestArchive.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestArchive.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -600,7 +601,7 @@ ServerContext& context = OrthancRestApi::GetContext(call); bool transcode = false; - DicomTransferSyntax transferSyntax; + DicomTransferSyntax transferSyntax = DicomTransferSyntax_LittleEndianImplicit; // Initialize variable to avoid warnings if (call.HasArgument(TRANSCODE)) { diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestChanges.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestChanges.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestChanges.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestModalities.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestModalities.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestModalities.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -115,7 +116,11 @@ .SetRequestField("Manufacturer", RestApiCallDocumentation::Type_String, "Manufacturer of the remote DICOM " "modality (check configuration option `DicomModalities` for possible values", false) .SetRequestField("UseDicomTls", RestApiCallDocumentation::Type_Boolean, "Whether to use DICOM TLS " - "in the SCU connection initiated by Orthanc (new in Orthanc 1.9.0)", false); + "in the SCU connection initiated by Orthanc (new in Orthanc 1.9.0)", false) + .SetRequestField(KEY_LOCAL_AET, RestApiCallDocumentation::Type_String, "Whether to override the default DicomAet " + "in the SCU connection initiated by Orthanc to this modality", false) + .SetRequestField(KEY_TIMEOUT, RestApiCallDocumentation::Type_Number, "Whether to override the default DicomScuTimeout " + "in the SCU connection initiated by Orthanc to this modality", false); if (includePermissions) { @@ -195,8 +200,6 @@ static void DocumentEchoShared(RestApiPostCall& call) { call.GetDocumentation() - .SetRequestField(KEY_TIMEOUT, RestApiCallDocumentation::Type_Number, - "Timeout for the C-ECHO command, in seconds", false) .SetRequestField(KEY_CHECK_FIND, RestApiCallDocumentation::Type_Boolean, "Issue a dummy C-FIND command after the C-GET SCU, in order to check whether the remote " "modality knows about Orthanc. This field defaults to the value of the `DicomEchoChecksFind` " @@ -214,6 +217,8 @@ .SetSummary("Trigger C-ECHO SCU") .SetDescription("Trigger C-ECHO SCU command against the DICOM modality whose identifier is provided in URL: " "https://orthanc.uclouvain.be/book/users/rest.html#performing-c-echo") + .SetRequestField(KEY_TIMEOUT, RestApiCallDocumentation::Type_Number, + "Timeout for the C-ECHO command, in seconds", false) .SetUriArgument("id", "Identifier of the modality of interest"); return; } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestResources.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -58,6 +59,8 @@ static const char* const IGNORE_LENGTH = "ignore-length"; static const char* const RECONSTRUCT_FILES = "ReconstructFiles"; +static const char* const LIMIT_TO_THIS_LEVEL_MAIN_DICOM_TAGS = "LimitToThisLevelMainDicomTags"; +static const char* const ARG_WHOLE = "whole"; namespace Orthanc @@ -484,7 +487,8 @@ template - static void GetInstanceTagsInternal(RestApiGetCall& call) + static void GetInstanceTagsInternal(RestApiGetCall& call, + bool whole) { ServerContext& context = OrthancRestApi::GetContext(call); @@ -492,56 +496,90 @@ std::set ignoreTagLength; ParseSetOfTags(ignoreTagLength, call, IGNORE_LENGTH); - - if (format != DicomToJsonFormat_Full || - !ignoreTagLength.empty()) + + if (whole) { - Json::Value full; - context.ReadDicomAsJson(full, publicId, ignoreTagLength); - AnswerDicomAsJson(call, full, format); + // This is new in Orthanc 1.12.4. Reference: + // https://discourse.orthanc-server.org/t/private-tags-with-group-7fe0-are-not-provided-via-rest-api/4744 + const DicomToJsonFlags flags = static_cast(DicomToJsonFlags_Default & ~DicomToJsonFlags_StopAfterPixelData); + + Json::Value answer; + + { + ServerContext::DicomCacheLocker locker(OrthancRestApi::GetContext(call), publicId); + locker.GetDicom().DatasetToJson(answer, format, flags, + ORTHANC_MAXIMUM_TAG_LENGTH, ignoreTagLength); + } + + call.GetOutput().AnswerJson(answer); } else { - // This path allows one to avoid the JSON decoding if no - // simplification is asked, and if no "ignore-length" argument - // is present - Json::Value full; - context.ReadDicomAsJson(full, publicId); - call.GetOutput().AnswerJson(full); + if (format != DicomToJsonFormat_Full || + !ignoreTagLength.empty()) + { + Json::Value full; + context.ReadDicomAsJson(full, publicId, ignoreTagLength); + AnswerDicomAsJson(call, full, format); + } + else + { + // This path allows one to avoid the JSON decoding if no + // simplification is asked, and if no "ignore-length" argument + // is present + Json::Value full; + context.ReadDicomAsJson(full, publicId); + call.GetOutput().AnswerJson(full); + } } } + static void DocumentGetInstanceTags(RestApiGetCall& call) + { + call.GetDocumentation() + .SetTag("Instances") + .SetUriArgument("id", "Orthanc identifier of the DICOM instance of interest") + .SetHttpGetArgument( + IGNORE_LENGTH, RestApiCallDocumentation::Type_JsonListOfStrings, + "Also include the DICOM tags that are provided in this list, even if their associated value is long", false) + .SetHttpGetArgument( + ARG_WHOLE, RestApiCallDocumentation::Type_Boolean, "Whether to read the whole DICOM file from the " + "storage area (new in Orthanc 1.12.4). If set to \"false\" (default value), the DICOM file is read " + "until the pixel data tag (7fe0,0010) to optimize access to storage. Setting the option " + "to \"true\" provides access to the DICOM tags stored after the pixel data tag.", false) + .AddAnswerType(MimeType_Json, "JSON object containing the DICOM tags and their associated value"); + } + + static void GetInstanceTags(RestApiGetCall& call) { if (call.IsDocumentation()) { OrthancRestApi::DocumentDicomFormat(call, DicomToJsonFormat_Full); + DocumentGetInstanceTags(call); call.GetDocumentation() - .SetTag("Instances") .SetSummary("Get DICOM tags") .SetDescription("Get the DICOM tags in the specified format. By default, the `full` format is used, which " "combines hexadecimal tags with human-readable description.") - .SetUriArgument("id", "Orthanc identifier of the DICOM instance of interest") - .SetHttpGetArgument(IGNORE_LENGTH, RestApiCallDocumentation::Type_JsonListOfStrings, - "Also include the DICOM tags that are provided in this list, even if their associated value is long", false) - .AddAnswerType(MimeType_Json, "JSON object containing the DICOM tags and their associated value") .SetTruncatedJsonHttpGetSample("https://orthanc.uclouvain.be/demo/instances/7c92ce8e-bbf67ed2-ffa3b8c1-a3b35d94-7ff3ae26/tags", 10); return; } + const bool whole = call.GetBooleanArgument(ARG_WHOLE, false); + switch (OrthancRestApi::GetDicomFormat(call, DicomToJsonFormat_Full)) { case DicomToJsonFormat_Human: - GetInstanceTagsInternal(call); + GetInstanceTagsInternal(call, whole); break; case DicomToJsonFormat_Short: - GetInstanceTagsInternal(call); + GetInstanceTagsInternal(call, whole); break; case DicomToJsonFormat_Full: - GetInstanceTagsInternal(call); + GetInstanceTagsInternal(call, whole); break; default: @@ -554,20 +592,16 @@ { if (call.IsDocumentation()) { + DocumentGetInstanceTags(call); call.GetDocumentation() - .SetTag("Instances") .SetSummary("Get human-readable tags") .SetDescription("Get the DICOM tags in human-readable format (same as the `/instances/{id}/tags?simplify` route)") - .SetUriArgument("id", "Orthanc identifier of the DICOM instance of interest") - .SetHttpGetArgument(IGNORE_LENGTH, RestApiCallDocumentation::Type_JsonListOfStrings, - "Also include the DICOM tags that are provided in this list, even if their associated value is long", false) - .AddAnswerType(MimeType_Json, "JSON object containing the DICOM tags and their associated value") .SetTruncatedJsonHttpGetSample("https://orthanc.uclouvain.be/demo/instances/7c92ce8e-bbf67ed2-ffa3b8c1-a3b35d94-7ff3ae26/simplified-tags", 10); return; } else { - GetInstanceTagsInternal(call); + GetInstanceTagsInternal(call, call.GetBooleanArgument(ARG_WHOLE, false)); } } @@ -3644,12 +3678,21 @@ call.GetOutput().AnswerBuffer("", MimeType_PlainText); } - void DocumentReconstructFilesField(RestApiPostCall& call) + void DocumentReconstructFilesField(RestApiPostCall& call, bool documentLimitField) { call.GetDocumentation() .SetRequestField(RECONSTRUCT_FILES, RestApiCallDocumentation::Type_Boolean, "Also reconstruct the files of the resources (e.g: apply IngestTranscoding, StorageCompression). " "'false' by default. (New in Orthanc 1.11.0)", false); + if (documentLimitField) + { + call.GetDocumentation() + .SetRequestField(LIMIT_TO_THIS_LEVEL_MAIN_DICOM_TAGS, RestApiCallDocumentation::Type_Boolean, + "Only reconstruct this level MainDicomTags by re-reading them from a random child instance of the resource. " + "This option is much faster than a full reconstruct and is useful e.g. if you have modified the " + "'ExtraMainDicomTags' at the Study level to optimize the speed of some C-Find. " + "'false' by default. (New in Orthanc 1.12.4)", false); + } } bool GetReconstructFilesField(const RestApiPostCall& call) @@ -3671,6 +3714,26 @@ return reconstructFiles; } + bool GetLimitToThisLevelMainDicomTags(const RestApiPostCall& call) + { + bool limitToThisLevel = false; + Json::Value request; + + if (call.GetBodySize() > 0 && call.ParseJsonRequest(request) && request.isMember(LIMIT_TO_THIS_LEVEL_MAIN_DICOM_TAGS)) + { + if (!request[LIMIT_TO_THIS_LEVEL_MAIN_DICOM_TAGS].isBool()) + { + throw OrthancException(ErrorCode_BadFileFormat, + "The field " + std::string(LIMIT_TO_THIS_LEVEL_MAIN_DICOM_TAGS) + " must contain a Boolean"); + } + + limitToThisLevel = request[LIMIT_TO_THIS_LEVEL_MAIN_DICOM_TAGS].asBool(); + } + + return limitToThisLevel; + } + + template static void ReconstructResource(RestApiPostCall& call) { @@ -3686,13 +3749,13 @@ "Beware that this is a time-consuming operation, as all the children DICOM instances will be " "parsed again, and the Orthanc index will be updated accordingly.") .SetUriArgument("id", "Orthanc identifier of the " + resource + " of interest"); - DocumentReconstructFilesField(call); + DocumentReconstructFilesField(call, true); return; } ServerContext& context = OrthancRestApi::GetContext(call); - ServerToolbox::ReconstructResource(context, call.GetUriComponent("id", ""), GetReconstructFilesField(call)); + ServerToolbox::ReconstructResource(context, call.GetUriComponent("id", ""), GetReconstructFilesField(call), GetLimitToThisLevelMainDicomTags(call), type); call.GetOutput().AnswerBuffer("", MimeType_PlainText); } @@ -3710,7 +3773,7 @@ "as all the DICOM instances will be parsed again, and as all the Orthanc index will be regenerated. " "If you have a large database to process, it is advised to use the Housekeeper plugin to perform " "this action resource by resource"); - DocumentReconstructFilesField(call); + DocumentReconstructFilesField(call, false); return; } @@ -3724,7 +3787,7 @@ for (std::list::const_iterator study = studies.begin(); study != studies.end(); ++study) { - ServerToolbox::ReconstructResource(context, *study, reconstructFiles); + ServerToolbox::ReconstructResource(context, *study, reconstructFiles, false, ResourceType_Study /* dummy */); } call.GetOutput().AnswerBuffer("", MimeType_PlainText); diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancRestApi/OrthancRestSystem.cpp --- a/OrthancServer/Sources/OrthancRestApi/OrthancRestSystem.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancRestApi/OrthancRestSystem.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancWebDav.cpp --- a/OrthancServer/Sources/OrthancWebDav.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancWebDav.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/OrthancWebDav.h --- a/OrthancServer/Sources/OrthancWebDav.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/OrthancWebDav.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/PrecompiledHeadersServer.cpp --- a/OrthancServer/Sources/PrecompiledHeadersServer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/PrecompiledHeadersServer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/PrecompiledHeadersServer.h --- a/OrthancServer/Sources/PrecompiledHeadersServer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/PrecompiledHeadersServer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/QueryRetrieveHandler.cpp --- a/OrthancServer/Sources/QueryRetrieveHandler.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/QueryRetrieveHandler.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/QueryRetrieveHandler.h --- a/OrthancServer/Sources/QueryRetrieveHandler.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/QueryRetrieveHandler.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/DatabaseConstraint.cpp --- a/OrthancServer/Sources/Search/DatabaseConstraint.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/DatabaseConstraint.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/DatabaseConstraint.h --- a/OrthancServer/Sources/Search/DatabaseConstraint.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/DatabaseConstraint.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/DatabaseLookup.cpp --- a/OrthancServer/Sources/Search/DatabaseLookup.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/DatabaseLookup.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/DatabaseLookup.h --- a/OrthancServer/Sources/Search/DatabaseLookup.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/DatabaseLookup.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/DicomTagConstraint.cpp --- a/OrthancServer/Sources/Search/DicomTagConstraint.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/DicomTagConstraint.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/DicomTagConstraint.h --- a/OrthancServer/Sources/Search/DicomTagConstraint.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/DicomTagConstraint.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/HierarchicalMatcher.cpp --- a/OrthancServer/Sources/Search/HierarchicalMatcher.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/HierarchicalMatcher.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/HierarchicalMatcher.h --- a/OrthancServer/Sources/Search/HierarchicalMatcher.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/HierarchicalMatcher.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/ISqlLookupFormatter.cpp --- a/OrthancServer/Sources/Search/ISqlLookupFormatter.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/ISqlLookupFormatter.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/Search/ISqlLookupFormatter.h --- a/OrthancServer/Sources/Search/ISqlLookupFormatter.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/Search/ISqlLookupFormatter.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerContext.cpp --- a/OrthancServer/Sources/ServerContext.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerContext.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerContext.h --- a/OrthancServer/Sources/ServerContext.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerContext.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerEnumerations.cpp --- a/OrthancServer/Sources/ServerEnumerations.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerEnumerations.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerEnumerations.h --- a/OrthancServer/Sources/ServerEnumerations.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerEnumerations.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerIndex.cpp --- a/OrthancServer/Sources/ServerIndex.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerIndex.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -185,16 +186,17 @@ } }; - virtual void MarkAsUnstable(int64_t id, - Orthanc::ResourceType type, + virtual void MarkAsUnstable(ResourceType type, + int64_t id, const std::string& publicId) ORTHANC_OVERRIDE { - context_.GetIndex().MarkAsUnstable(id, type, publicId); + context_.GetIndex().MarkAsUnstable(type, id, publicId); } - virtual bool IsUnstableResource(int64_t id) ORTHANC_OVERRIDE + virtual bool IsUnstableResource(ResourceType type, + int64_t id) ORTHANC_OVERRIDE { - return context_.GetIndex().IsUnstableResource(id); + return context_.GetIndex().IsUnstableResource(type, id); } virtual void Commit() ORTHANC_OVERRIDE @@ -239,18 +241,15 @@ class ServerIndex::UnstableResourcePayload { private: - ResourceType type_; std::string publicId_; boost::posix_time::ptime time_; public: - UnstableResourcePayload() : type_(ResourceType_Instance) + UnstableResourcePayload() { } - UnstableResourcePayload(Orthanc::ResourceType type, - const std::string& publicId) : - type_(type), + explicit UnstableResourcePayload(const std::string& publicId) : publicId_(publicId), time_(boost::posix_time::second_clock::local_time()) { @@ -260,11 +259,6 @@ { return (boost::posix_time::second_clock::local_time() - time_).total_seconds(); } - - ResourceType GetResourceType() const - { - return type_; - } const std::string& GetPublicId() const { @@ -272,6 +266,39 @@ } }; + void ServerIndex::UpdateStatisticsThread(ServerIndex* that, + unsigned int threadSleepGranularityMilliseconds) + { + Logging::SetCurrentThreadName("DB-STATS"); + + static const unsigned int SLEEP_SECONDS = 60; + + if (threadSleepGranularityMilliseconds > 1000) + { + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + + LOG(INFO) << "Starting the update statistics thread (sleep = " << SLEEP_SECONDS << " seconds)"; + + unsigned int count = 0; + unsigned int countThreshold = (1000 * SLEEP_SECONDS) / threadSleepGranularityMilliseconds; + + while (!that->done_) + { + boost::this_thread::sleep(boost::posix_time::milliseconds(threadSleepGranularityMilliseconds)); + count++; + + if (count >= countThreshold) + { + uint64_t diskSize, uncompressedSize, countPatients, countStudies, countSeries, countInstances; + that->GetGlobalStatistics(diskSize, uncompressedSize, countPatients, countStudies, countSeries, countInstances); + + count = 0; + } + } + + LOG(INFO) << "Stopping the update statistics thread"; + } void ServerIndex::FlushThread(ServerIndex* that, unsigned int threadSleepGranularityMilliseconds) @@ -309,10 +336,11 @@ } - bool ServerIndex::IsUnstableResource(int64_t id) + bool ServerIndex::IsUnstableResource(ResourceType type, + int64_t id) { boost::mutex::scoped_lock lock(monitoringMutex_); - return unstableResources_.Contains(id); + return unstableResources_.Contains(std::make_pair(type, id)); } @@ -331,11 +359,20 @@ // execution of Orthanc StandaloneRecycling(maximumStorageMode_, maximumStorageSize_, maximumPatients_); + // For some DB engines (like SQLite), make sure we flush the DB to disk at regular interval if (GetDatabaseCapabilities().HasFlushToDisk()) { flushThread_ = boost::thread(FlushThread, this, threadSleepGranularityMilliseconds); } + // For some DB plugins that implements the UpdateAndGetStatistics function, updating + // the statistics can take quite some time if you have not done it for a long time + // -> make sure they are updated at regular interval + if (GetDatabaseCapabilities().HasUpdateAndGetStatistics()) + { + updateStatisticsThread_ = boost::thread(UpdateStatisticsThread, this, threadSleepGranularityMilliseconds); + } + unstableResourcesMonitorThread_ = boost::thread (UnstableResourcesMonitorThread, this, threadSleepGranularityMilliseconds); } @@ -362,6 +399,11 @@ flushThread_.join(); } + if (updateStatisticsThread_.joinable()) + { + updateStatisticsThread_.join(); + } + if (unstableResourcesMonitorThread_.joinable()) { unstableResourcesMonitorThread_.join(); @@ -460,7 +502,8 @@ for (;;) { - UnstableResourcePayload stableResource; + UnstableResourcePayload stablePayload; + ResourceType stableLevel; int64_t stableId; { @@ -471,8 +514,10 @@ { // This DICOM resource has not received any new instance for // some time. It can be considered as stable. - stableId = that->unstableResources_.RemoveOldest(stableResource); - //LOG(TRACE) << "Stable resource: " << EnumerationToString(stableResource.GetResourceType()) << " " << stableId; + std::pair stableResource = that->unstableResources_.RemoveOldest(stablePayload); + stableLevel = stableResource.first; + stableId = stableResource.second; + //LOG(TRACE) << "Stable resource: " << EnumerationToString(stablePayload.GetResourceType()) << " " << stableId; } else { @@ -490,18 +535,18 @@ * another thread, which leads to calls to "MarkAsUnstable()", * which leads to two lockings of "monitoringMutex_"). **/ - switch (stableResource.GetResourceType()) + switch (stableLevel) { case ResourceType_Patient: - that->LogChange(stableId, ChangeType_StablePatient, stableResource.GetPublicId(), ResourceType_Patient); + that->LogChange(stableId, ChangeType_StablePatient, stablePayload.GetPublicId(), ResourceType_Patient); break; case ResourceType_Study: - that->LogChange(stableId, ChangeType_StableStudy, stableResource.GetPublicId(), ResourceType_Study); + that->LogChange(stableId, ChangeType_StableStudy, stablePayload.GetPublicId(), ResourceType_Study); break; case ResourceType_Series: - that->LogChange(stableId, ChangeType_StableSeries, stableResource.GetPublicId(), ResourceType_Series); + that->LogChange(stableId, ChangeType_StableSeries, stablePayload.GetPublicId(), ResourceType_Series); break; default: @@ -519,18 +564,18 @@ } - void ServerIndex::MarkAsUnstable(int64_t id, - Orthanc::ResourceType type, + void ServerIndex::MarkAsUnstable(ResourceType type, + int64_t id, const std::string& publicId) { - assert(type == Orthanc::ResourceType_Patient || - type == Orthanc::ResourceType_Study || - type == Orthanc::ResourceType_Series); + assert(type == ResourceType_Patient || + type == ResourceType_Study || + type == ResourceType_Series); { boost::mutex::scoped_lock lock(monitoringMutex_); - UnstableResourcePayload payload(type, publicId); - unstableResources_.AddOrMakeMostRecent(id, payload); + UnstableResourcePayload payload(publicId); + unstableResources_.AddOrMakeMostRecent(std::make_pair(type, id), payload); //LOG(INFO) << "Unstable resource: " << EnumerationToString(type) << " " << id; } } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerIndex.h --- a/OrthancServer/Sources/ServerIndex.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerIndex.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -41,9 +42,10 @@ bool done_; boost::mutex monitoringMutex_; boost::thread flushThread_; + boost::thread updateStatisticsThread_; boost::thread unstableResourcesMonitorThread_; - LeastRecentlyUsedIndex unstableResources_; + LeastRecentlyUsedIndex, UnstableResourcePayload> unstableResources_; MaxStorageMode maximumStorageMode_; uint64_t maximumStorageSize_; @@ -52,14 +54,18 @@ static void FlushThread(ServerIndex* that, unsigned int threadSleep); + static void UpdateStatisticsThread(ServerIndex* that, + unsigned int threadSleep); + static void UnstableResourcesMonitorThread(ServerIndex* that, unsigned int threadSleep); - void MarkAsUnstable(int64_t id, - Orthanc::ResourceType type, + void MarkAsUnstable(ResourceType type, + int64_t id, const std::string& publicId); - bool IsUnstableResource(int64_t id); + bool IsUnstableResource(ResourceType type, + int64_t id); public: ServerIndex(ServerContext& context, diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerIndexChange.h --- a/OrthancServer/Sources/ServerIndexChange.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerIndexChange.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/ArchiveJob.cpp --- a/OrthancServer/Sources/ServerJobs/ArchiveJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/ArchiveJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/ArchiveJob.h --- a/OrthancServer/Sources/ServerJobs/ArchiveJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/ArchiveJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/CleaningInstancesJob.cpp --- a/OrthancServer/Sources/ServerJobs/CleaningInstancesJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/CleaningInstancesJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/CleaningInstancesJob.h --- a/OrthancServer/Sources/ServerJobs/CleaningInstancesJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/CleaningInstancesJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.cpp --- a/OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.h --- a/OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/DicomModalityStoreJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/DicomMoveScuJob.cpp --- a/OrthancServer/Sources/ServerJobs/DicomMoveScuJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/DicomMoveScuJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/DicomMoveScuJob.h --- a/OrthancServer/Sources/ServerJobs/DicomMoveScuJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/DicomMoveScuJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/IStorageCommitmentFactory.h --- a/OrthancServer/Sources/ServerJobs/IStorageCommitmentFactory.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/IStorageCommitmentFactory.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/LuaJobManager.cpp --- a/OrthancServer/Sources/ServerJobs/LuaJobManager.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/LuaJobManager.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/LuaJobManager.h --- a/OrthancServer/Sources/ServerJobs/LuaJobManager.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/LuaJobManager.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/MergeStudyJob.cpp --- a/OrthancServer/Sources/ServerJobs/MergeStudyJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/MergeStudyJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/MergeStudyJob.h --- a/OrthancServer/Sources/ServerJobs/MergeStudyJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/MergeStudyJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/DeleteResourceOperation.cpp --- a/OrthancServer/Sources/ServerJobs/Operations/DeleteResourceOperation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/DeleteResourceOperation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/DeleteResourceOperation.h --- a/OrthancServer/Sources/ServerJobs/Operations/DeleteResourceOperation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/DeleteResourceOperation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/DicomInstanceOperationValue.cpp --- a/OrthancServer/Sources/ServerJobs/Operations/DicomInstanceOperationValue.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/DicomInstanceOperationValue.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/DicomInstanceOperationValue.h --- a/OrthancServer/Sources/ServerJobs/Operations/DicomInstanceOperationValue.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/DicomInstanceOperationValue.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.cpp --- a/OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.h --- a/OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/ModifyInstanceOperation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/StorePeerOperation.cpp --- a/OrthancServer/Sources/ServerJobs/Operations/StorePeerOperation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/StorePeerOperation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/StorePeerOperation.h --- a/OrthancServer/Sources/ServerJobs/Operations/StorePeerOperation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/StorePeerOperation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/StoreScuOperation.cpp --- a/OrthancServer/Sources/ServerJobs/Operations/StoreScuOperation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/StoreScuOperation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/StoreScuOperation.h --- a/OrthancServer/Sources/ServerJobs/Operations/StoreScuOperation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/StoreScuOperation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/SystemCallOperation.cpp --- a/OrthancServer/Sources/ServerJobs/Operations/SystemCallOperation.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/SystemCallOperation.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/Operations/SystemCallOperation.h --- a/OrthancServer/Sources/ServerJobs/Operations/SystemCallOperation.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/Operations/SystemCallOperation.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/OrthancJobUnserializer.cpp --- a/OrthancServer/Sources/ServerJobs/OrthancJobUnserializer.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/OrthancJobUnserializer.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/OrthancJobUnserializer.h --- a/OrthancServer/Sources/ServerJobs/OrthancJobUnserializer.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/OrthancJobUnserializer.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/OrthancPeerStoreJob.cpp --- a/OrthancServer/Sources/ServerJobs/OrthancPeerStoreJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/OrthancPeerStoreJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/OrthancPeerStoreJob.h --- a/OrthancServer/Sources/ServerJobs/OrthancPeerStoreJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/OrthancPeerStoreJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/ResourceModificationJob.cpp --- a/OrthancServer/Sources/ServerJobs/ResourceModificationJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/ResourceModificationJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -186,7 +187,7 @@ ServerContext::DicomCacheLocker locker(GetContext(), *it); ParsedDicomFile& modifiedDicom = locker.GetDicom(); - GetContext().GetIndex().ReconstructInstance(modifiedDicom); + GetContext().GetIndex().ReconstructInstance(modifiedDicom, false, ResourceType_Instance /* dummy */); } } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/ResourceModificationJob.h --- a/OrthancServer/Sources/ServerJobs/ResourceModificationJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/ResourceModificationJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/SplitStudyJob.cpp --- a/OrthancServer/Sources/ServerJobs/SplitStudyJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/SplitStudyJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/SplitStudyJob.h --- a/OrthancServer/Sources/ServerJobs/SplitStudyJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/SplitStudyJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp --- a/OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.h --- a/OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/StorageCommitmentScpJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/ThreadedSetOfInstancesJob.cpp --- a/OrthancServer/Sources/ServerJobs/ThreadedSetOfInstancesJob.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/ThreadedSetOfInstancesJob.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerJobs/ThreadedSetOfInstancesJob.h --- a/OrthancServer/Sources/ServerJobs/ThreadedSetOfInstancesJob.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerJobs/ThreadedSetOfInstancesJob.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerToolbox.cpp --- a/OrthancServer/Sources/ServerToolbox.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerToolbox.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -280,32 +281,43 @@ void ReconstructResource(ServerContext& context, const std::string& resource, - bool reconstructFiles) + bool reconstructFiles, + bool limitToThisLevelDicomTags, + ResourceType limitToLevel) { LOG(WARNING) << "Reconstructing resource " << resource; std::list instances; context.GetIndex().GetChildInstances(instances, resource); - for (std::list::const_iterator - it = instances.begin(); it != instances.end(); ++it) + + if (limitToThisLevelDicomTags && instances.size() > 0) // in this case, we only need to rebuild one instance ! { - ServerContext::DicomCacheLocker locker(context, *it); + ServerContext::DicomCacheLocker locker(context, instances.front()); + context.GetIndex().ReconstructInstance(locker.GetDicom(), true, limitToLevel); + } + else + { + for (std::list::const_iterator + it = instances.begin(); it != instances.end(); ++it) + { + ServerContext::DicomCacheLocker locker(context, *it); - // Delay the reconstruction of DICOM-as-JSON to its next access through "ServerContext" - context.GetIndex().DeleteAttachment(*it, FileContentType_DicomAsJson, false /* no revision */, - -1 /* dummy revision */, "" /* dummy MD5 */); - - context.GetIndex().ReconstructInstance(locker.GetDicom()); + // Delay the reconstruction of DICOM-as-JSON to its next access through "ServerContext" + context.GetIndex().DeleteAttachment(*it, FileContentType_DicomAsJson, false /* no revision */, + -1 /* dummy revision */, "" /* dummy MD5 */); + + context.GetIndex().ReconstructInstance(locker.GetDicom(), false, ResourceType_Instance /* dummy */); - if (reconstructFiles) - { - std::string resultPublicId; // ignored - std::unique_ptr dicomInstancetoStore(DicomInstanceToStore::CreateFromParsedDicomFile(locker.GetDicom())); + if (reconstructFiles) + { + std::string resultPublicId; // ignored + std::unique_ptr dicomInstancetoStore(DicomInstanceToStore::CreateFromParsedDicomFile(locker.GetDicom())); - // TODO: TranscodeAndStore and specifically ServerIndex::Store have been "poluted" by the isReconstruct parameter - // we should very likely refactor it - context.TranscodeAndStore(resultPublicId, dicomInstancetoStore.get(), StoreInstanceMode_OverwriteDuplicate, true); + // TODO: TranscodeAndStore and specifically ServerIndex::Store have been "poluted" by the isReconstruct parameter + // we should very likely refactor it + context.TranscodeAndStore(resultPublicId, dicomInstancetoStore.get(), StoreInstanceMode_OverwriteDuplicate, true); + } } } } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/ServerToolbox.h --- a/OrthancServer/Sources/ServerToolbox.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/ServerToolbox.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -55,7 +56,9 @@ void ReconstructResource(ServerContext& context, const std::string& resource, - bool reconstructFiles); + bool reconstructFiles, + bool limitToThisLevelDicomTags, + ResourceType limitToLevel); bool IsValidLabel(const std::string& label); diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/SliceOrdering.cpp --- a/OrthancServer/Sources/SliceOrdering.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/SliceOrdering.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/SliceOrdering.h --- a/OrthancServer/Sources/SliceOrdering.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/SliceOrdering.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/StorageCommitmentReports.cpp --- a/OrthancServer/Sources/StorageCommitmentReports.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/StorageCommitmentReports.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/StorageCommitmentReports.h --- a/OrthancServer/Sources/StorageCommitmentReports.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/StorageCommitmentReports.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/Sources/main.cpp --- a/OrthancServer/Sources/main.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/Sources/main.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -58,8 +59,10 @@ static const char* const KEY_DICOM_TLS_ENABLED = "DicomTlsEnabled"; static const char* const KEY_DICOM_TLS_CERTIFICATE = "DicomTlsCertificate"; static const char* const KEY_DICOM_TLS_TRUSTED_CERTIFICATES = "DicomTlsTrustedCertificates"; +static const char* const KEY_DICOM_TLS_REMOTE_CERTIFICATE_REQUIRED = "DicomTlsRemoteCertificateRequired"; +static const char* const KEY_DICOM_TLS_MINIMUM_PROTOCOL_VERSION = "DicomTlsMinimumProtocolVersion"; +static const char* const KEY_DICOM_TLS_ACCEPTED_CIPHERS = "DicomTlsCiphersAccepted"; static const char* const KEY_MAXIMUM_PDU_LENGTH = "MaximumPduLength"; -static const char* const KEY_DICOM_TLS_REMOTE_CERTIFICATE_REQUIRED = "DicomTlsRemoteCertificateRequired"; class OrthancStoreRequestHandler : public IStoreRequestHandler @@ -742,7 +745,8 @@ std::cout << path << " " << ORTHANC_VERSION << std::endl << "Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics Department, University Hospital of Liege (Belgium)" << std::endl - << "Copyright (C) 2017-2024 Osimis S.A. (Belgium)" << std::endl + << "Copyright (C) 2017-2023 Osimis S.A. (Belgium)" << std::endl + << "Copyright (C) 2024-2024 Orthanc Team SRL (Belgium)" << std::endl << "Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain (Belgium)" << std::endl << "Licensing GPLv3+: GNU GPL version 3 or later ." << std::endl << "This is free software: you are free to change and redistribute it." << std::endl @@ -1106,10 +1110,10 @@ httpServer.SetSslEnabled(true); httpServer.SetSslCertificate(certificate.c_str()); - // Default to TLS 1.2 as SSL minimum + // Default to TLS 1.2+1.3 as SSL minimum // See https://github.com/civetweb/civetweb/blob/master/docs/UserManual.md "ssl_protocol_version" for mapping - static const unsigned int TLS_1_2 = 4; - unsigned int minimumVersion = lock.GetConfiguration().GetUnsignedIntegerParameter("SslMinimumProtocolVersion", TLS_1_2); + static const unsigned int TLS_1_2_AND_1_3 = 4; + unsigned int minimumVersion = lock.GetConfiguration().GetUnsignedIntegerParameter("SslMinimumProtocolVersion", TLS_1_2_AND_1_3); httpServer.SetSslMinimumVersion(minimumVersion); static const char* SSL_CIPHERS_ACCEPTED = "SslCiphersAccepted"; @@ -1183,7 +1187,7 @@ else { context.SetRestApiWriteToFileSystemEnabled(false); - LOG(WARNING) << "REST API cannot write to the file system bacause the \"RestApiWriteToFileSystemEnabled\" configuration is set to false. The URI /instances/../export is disabled. This is the most secure configuration."; + LOG(WARNING) << "REST API cannot write to the file system because the \"RestApiWriteToFileSystemEnabled\" configuration is set to false. The URI /instances/../export is disabled. This is the most secure configuration."; } if (lock.GetConfiguration().GetBooleanParameter("WebDavEnabled", true)) @@ -1277,6 +1281,12 @@ lock.GetConfiguration().GetStringParameter(KEY_DICOM_TLS_CERTIFICATE, "")); dicomServer.SetTrustedCertificatesPath( lock.GetConfiguration().GetStringParameter(KEY_DICOM_TLS_TRUSTED_CERTIFICATES, "")); + dicomServer.SetMinimumTlsVersion( + lock.GetConfiguration().GetUnsignedIntegerParameter(KEY_DICOM_TLS_MINIMUM_PROTOCOL_VERSION, 0)); + + std::set acceptedCiphers; + lock.GetConfiguration().GetSetOfStringsParameter(acceptedCiphers, KEY_DICOM_TLS_ACCEPTED_CIPHERS); + dicomServer.SetAcceptedCiphers(acceptedCiphers); } dicomServer.SetMaximumPduLength(lock.GetConfiguration().GetUnsignedIntegerParameter(KEY_MAXIMUM_PDU_LENGTH, 16384)); diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/DatabaseLookupTests.cpp --- a/OrthancServer/UnitTestsSources/DatabaseLookupTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/DatabaseLookupTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/LuaServerTests.cpp --- a/OrthancServer/UnitTestsSources/LuaServerTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/LuaServerTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/PluginsTests.cpp --- a/OrthancServer/UnitTestsSources/PluginsTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/PluginsTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/PrecompiledHeadersUnitTests.cpp --- a/OrthancServer/UnitTestsSources/PrecompiledHeadersUnitTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/PrecompiledHeadersUnitTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/PrecompiledHeadersUnitTests.h --- a/OrthancServer/UnitTestsSources/PrecompiledHeadersUnitTests.h Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/PrecompiledHeadersUnitTests.h Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/ServerIndexTests.cpp --- a/OrthancServer/UnitTestsSources/ServerIndexTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/ServerIndexTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/ServerJobsTests.cpp --- a/OrthancServer/UnitTestsSources/ServerJobsTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/ServerJobsTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/SizeOfTests.cpp --- a/OrthancServer/UnitTestsSources/SizeOfTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/SizeOfTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/UnitTestsMain.cpp --- a/OrthancServer/UnitTestsSources/UnitTestsMain.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/UnitTestsMain.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -241,42 +242,53 @@ Json::Value dicomAsJson; OrthancConfiguration::DefaultDicomDatasetToJson(dicomAsJson, toStore->GetParsedDicomFile()); - DicomMap m; - m.FromDicomAsJson(dicomAsJson); + { // without parsing sequences + DicomMap m; + m.FromDicomAsJson(dicomAsJson); - ASSERT_EQ("ISO_IR 100", m.GetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET).GetContent()); - - ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).IsBinary()); - ASSERT_EQ("Hello", m.GetValue(DICOM_TAG_PATIENT_NAME).GetContent()); - - ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).IsBinary()); - ASSERT_EQ(utf8, m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).GetContent()); + ASSERT_EQ("ISO_IR 100", m.GetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET).GetContent()); + + ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).IsBinary()); + ASSERT_EQ("Hello", m.GetValue(DICOM_TAG_PATIENT_NAME).GetContent()); + + ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).IsBinary()); + ASSERT_EQ(utf8, m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).GetContent()); - ASSERT_FALSE(m.HasTag(DICOM_TAG_MANUFACTURER)); // Too long - ASSERT_FALSE(m.HasTag(DICOM_TAG_PIXEL_DATA)); // Pixel data - ASSERT_FALSE(m.HasTag(DICOM_TAG_REFERENCED_SERIES_SEQUENCE)); // Sequence - ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetGroup(), DCM_ReferencedSeriesSequence.getGroup()); - ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetElement(), DCM_ReferencedSeriesSequence.getElement()); + ASSERT_FALSE(m.HasTag(DICOM_TAG_MANUFACTURER)); // Too long + ASSERT_FALSE(m.HasTag(DICOM_TAG_PIXEL_DATA)); // Pixel data + ASSERT_FALSE(m.HasTag(DICOM_TAG_REFERENCED_SERIES_SEQUENCE)); // Sequence + ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetGroup(), DCM_ReferencedSeriesSequence.getGroup()); + ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetElement(), DCM_ReferencedSeriesSequence.getElement()); + + ASSERT_TRUE(m.HasTag(DICOM_TAG_SERIES_DESCRIPTION)); // Maximum length + ASSERT_FALSE(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).IsBinary()); + ASSERT_EQ(ORTHANC_MAXIMUM_TAG_LENGTH, + static_cast(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).GetContent().length())); - ASSERT_TRUE(m.HasTag(DICOM_TAG_SERIES_DESCRIPTION)); // Maximum length - ASSERT_FALSE(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).IsBinary()); - ASSERT_EQ(ORTHANC_MAXIMUM_TAG_LENGTH, - static_cast(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).GetContent().length())); + ASSERT_FALSE(m.GetValue(DICOM_TAG_ROWS).IsBinary()); + ASSERT_EQ("512", m.GetValue(DICOM_TAG_ROWS).GetContent()); - ASSERT_FALSE(m.GetValue(DICOM_TAG_ROWS).IsBinary()); - ASSERT_EQ("512", m.GetValue(DICOM_TAG_ROWS).GetContent()); + ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsNull()); + ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsBinary()); + ASSERT_EQ("", m.GetValue(DICOM_TAG_STUDY_ID).GetContent()); + + DicomArray a(m); + ASSERT_EQ(6u, a.GetSize()); - ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsNull()); - ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsBinary()); - ASSERT_EQ("", m.GetValue(DICOM_TAG_STUDY_ID).GetContent()); + + //dicom.SaveToFile("/tmp/test.dcm"); + //std::cout << toStore.GetJson() << std::endl; + //a.Print(stdout); + } - DicomArray a(m); - ASSERT_EQ(6u, a.GetSize()); + { // now parses sequences + // LOG(INFO) << dicomAsJson.toStyledString(); - - //dicom.SaveToFile("/tmp/test.dcm"); - //std::cout << toStore.GetJson() << std::endl; - //a.Print(stdout); + DicomMap m; + m.FromDicomAsJson(dicomAsJson, false, true /* parseSequences */); + + ASSERT_TRUE(m.HasTag(DICOM_TAG_REFERENCED_SERIES_SEQUENCE)); + } } diff -r 28cc06e4859a -r 3765085693e5 OrthancServer/UnitTestsSources/VersionsTests.cpp --- a/OrthancServer/UnitTestsSources/VersionsTests.cpp Thu Apr 11 19:02:20 2024 +0200 +++ b/OrthancServer/UnitTestsSources/VersionsTests.cpp Thu Jul 04 07:40:58 2024 +0200 @@ -2,7 +2,8 @@ * Orthanc - A Lightweight, RESTful DICOM Store * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics * Department, University Hospital of Liege, Belgium - * Copyright (C) 2017-2024 Osimis S.A., Belgium + * Copyright (C) 2017-2023 Osimis S.A., Belgium + * Copyright (C) 2024-2024 Orthanc Team SRL, Belgium * Copyright (C) 2021-2024 Sebastien Jodogne, ICTEAM UCLouvain, Belgium * * This program is free software: you can redistribute it and/or @@ -112,7 +113,7 @@ TEST(Versions, BoostStatic) { - ASSERT_TRUE(std::string(BOOST_LIB_VERSION) == "1_84" || + ASSERT_TRUE(std::string(BOOST_LIB_VERSION) == "1_85" || std::string(BOOST_LIB_VERSION) == "1_69" /* if USE_LEGACY_BOOST */); } diff -r 28cc06e4859a -r 3765085693e5 TODO --- a/TODO Thu Apr 11 19:02:20 2024 +0200 +++ b/TODO Thu Jul 04 07:40:58 2024 +0200 @@ -56,6 +56,13 @@ - ... * Investigate if one could fix KeepAlive race conditions: https://discourse.orthanc-server.org/t/socket-hangup-with-rest-api/4023/3 +* The DICOM file cache shall keep a MD5 of the cached file and compare it with MD5 + from the DB. That would allow 2 orthancs in a swarm to realize when the other + Orthanc has updated the file: + https://discourse.orthanc-server.org/t/instances-id-content-api-results-are-different-in-docker-swarm-replicas-of-orthanc/4582 +* Allow saving PrivateTags in ExtraMainDicomTags. + Note: they can actually be stored but they then appear as "Unknown Tag & Data" in the responses. + If we try to add the PrivateCreator in the ExtraMainDicomTags, then, the DICOMWeb plugin fails to initialize because the private tags are not known. ============================ Documentation (Orthanc Book) @@ -119,6 +126,12 @@ https://groups.google.com/g/orthanc-users/c/o15Dekecgds/m/xmPE2y3bAwAJ * Support Palette PNG in /tools/create-dicom: https://discourse.orthanc-server.org/t/404-on-tools-create-dicom-endpoint-with-specific-png/3562 +* Support creation of DICOM files from MP4 in /tools/create-dicom. + Sample python code: https://github.com/salimkanoun/OrthancGif/blob/new-organisation/python/create_dicom_video.py. + We would need to extract frame rate + dimension from the MP4 which would + require ffmpeg or a similar library -> can not be done in the Orthanc core. + -> keep it for a python plugin + -> or require the payload to include rows/columns/cinerate/... * (1) In the /studies/{id}/anonymize route, add an option to remove secondary captures. They usually contains Patient info in the image. The SOPClassUID might be used to identify such secondary @@ -187,6 +200,11 @@ https://groups.google.com/d/msg/orthanc-users/xD4d3mpc6ms/srF7E2goAAAJ * Support C-MOVE-CANCEL: https://groups.google.com/d/msg/orthanc-users/KnduYBFd06A/o86cl5SeCAAJ +* Combine StudyDate + StudyTime in C-Find matching (also for the worklist plugin with + ScheduledProcedureStartTime & Date). + We should first filter in SQL by StudyDate only, combine it with StudyTime into a single + DateTime string and filter again in C++. + https://discourse.orthanc-server.org/t/performin-find-within-orthanc-for-time-frames/4704 -------------------- Internationalization @@ -258,8 +276,6 @@ * Provide a C++ callback similar to "ReceivedInstanceFilter()" in Lua https://orthanc.uclouvain.be/book/users/lua.html#filtering-incoming-dicom-instances https://groups.google.com/d/msg/orthanc-users/BtvLTE5Ni8A/vIMhmMgfBAAJ -* In "OrthancPluginLog[Error|Warning|Info]()", prefix the log line with - the name of the plugin, as retrieved by "OrthancPluginGetName()" * Update the SDK to handle buffer sizes > 4GB (all sizes are currently coded in uint32_t) * Add a C-Get SCP handler: OrthancPluginRegisterGetCallback https://groups.google.com/g/orthanc-users/c/NRhPkYX9IXQ/m/mWS11g0jBwAJ