Mercurial > hg > orthanc
changeset 5629:2c95a34af64f find-refactoring
integration mainline->find-refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 16 May 2024 21:33:52 +0200 |
parents | 732ec9feeea8 (current diff) 6045c696e86b (diff) |
children | 3f13db27b399 |
files | NEWS |
diffstat | 12 files changed, 152 insertions(+), 142 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS Sat May 11 15:43:07 2024 +0200 +++ b/NEWS Thu May 16 21:33:52 2024 +0200 @@ -41,11 +41,13 @@ 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 file. + creating a ZIP archive. * Monitoring of stable resources now also takes into consideration the resource type, not only the resource identifier identifier. * When working with "DicomTlsEnabled": true and "DicomTlsRemoteCertificateRequired": false, Orthanc was refusing to start if no "DicomTlsTrustedCertificates" was provided. +* Upgraded dependencies for static builds: + - boost 1.85.0 Version 1.12.3 (2024-01-31)
--- a/OrthancFramework/Resources/CMake/BoostConfiguration.cmake Sat May 11 15:43:07 2024 +0200 +++ b/OrthancFramework/Resources/CMake/BoostConfiguration.cmake Thu May 16 21:33:52 2024 +0200 @@ -90,10 +90,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 +114,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 )
--- a/OrthancFramework/Resources/CMake/BoostConfiguration.sh Sat May 11 15:43:07 2024 +0200 +++ b/OrthancFramework/Resources/CMake/BoostConfiguration.sh Thu May 16 21:33:52 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}
--- a/OrthancFramework/Resources/Patches/boost-1.84.0-emscripten.patch Sat May 11 15:43:07 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 <boost/locale/date_time.hpp> - #include <boost/locale/formatting.hpp> - #include <boost/core/exchange.hpp> --#include <boost/thread/locks.hpp> --#include <boost/thread/mutex.hpp> -+#if !defined(__EMSCRIPTEN__) -+# include <boost/thread/locks.hpp> -+# include <boost/thread/mutex.hpp> -+#endif - #include <cmath> - - 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 <boost/locale/encoding.hpp> - #include <boost/locale/generator.hpp> - #include <boost/locale/localization_backend.hpp> --#include <boost/thread/locks.hpp> --#include <boost/thread/mutex.hpp> -+#if !defined(__EMSCRIPTEN__) -+# include <boost/thread/locks.hpp> -+# include <boost/thread/mutex.hpp> -+#endif - #include <algorithm> - #include <map> - #include <vector> -@@ -21,7 +23,9 @@ - {} - - mutable std::map<std::string, std::locale> 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<boost::mutex> 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<boost::mutex> 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 <boost/locale/localization_backend.hpp> --#include <boost/thread/locks.hpp> --#include <boost/thread/mutex.hpp> -+#if !defined(__EMSCRIPTEN__) -+# include <boost/thread/locks.hpp> -+# include <boost/thread/mutex.hpp> -+#endif - #include <functional> - #include <memory> - #include <vector> -@@ -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<boost::mutex> 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<boost::mutex> lock(localization_backend_manager_mutex()); -+#endif - return exchange(localization_backend_manager_global(), in); - } -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OrthancFramework/Resources/Patches/boost-1.85.0-emscripten.patch Thu May 16 21:33:52 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 <boost/locale/date_time.hpp> + #include <boost/locale/formatting.hpp> + #include <boost/core/exchange.hpp> +-#include <boost/thread/locks.hpp> +-#include <boost/thread/mutex.hpp> ++#if !defined(__EMSCRIPTEN__) ++# include <boost/thread/locks.hpp> ++# include <boost/thread/mutex.hpp> ++#endif + #include <cmath> + + 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 <boost/locale/encoding.hpp> + #include <boost/locale/generator.hpp> + #include <boost/locale/localization_backend.hpp> +-#include <boost/thread/locks.hpp> +-#include <boost/thread/mutex.hpp> ++#if !defined(__EMSCRIPTEN__) ++# include <boost/thread/locks.hpp> ++# include <boost/thread/mutex.hpp> ++#endif + #include <algorithm> + #include <map> + #include <vector> +@@ -21,7 +23,9 @@ + {} + + mutable std::map<std::string, std::locale> 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<boost::mutex> 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<boost::mutex> 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 <boost/locale/localization_backend.hpp> +-#include <boost/thread/locks.hpp> +-#include <boost/thread/mutex.hpp> ++#if !defined(__EMSCRIPTEN__) ++# include <boost/thread/locks.hpp> ++# include <boost/thread/mutex.hpp> ++#endif + #include <functional> + #include <memory> + #include <vector> +@@ -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<boost::mutex> 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<boost::mutex> lock(localization_backend_manager_mutex()); ++#endif + return exchange(localization_backend_manager_global(), in); + } +
--- a/OrthancFramework/Sources/SystemToolbox.cpp Sat May 11 15:43:07 2024 +0200 +++ b/OrthancFramework/Sources/SystemToolbox.cpp Thu May 16 21:33:52 2024 +0200 @@ -774,7 +774,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
--- a/OrthancServer/Plugins/Engine/PluginsManager.cpp Sat May 11 15:43:07 2024 +0200 +++ b/OrthancServer/Plugins/Engine/PluginsManager.cpp Thu May 16 21:33:52 2024 +0200 @@ -307,7 +307,7 @@ } else { - std::string extension = boost::filesystem::extension(it->path()); + std::string extension = it->path().extension().string(); Toolbox::ToLowerCase(extension); if (extension == PLUGIN_EXTENSION)
--- a/OrthancServer/Plugins/Samples/ModalityWorklists/Plugin.cpp Sat May 11 15:43:07 2024 +0200 +++ b/OrthancServer/Plugins/Samples/ModalityWorklists/Plugin.cpp Thu May 16 21:33:52 2024 +0200 @@ -166,7 +166,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")
--- a/OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.cpp Sat May 11 15:43:07 2024 +0200 +++ b/OrthancServer/Plugins/Samples/MultitenantDicom/StoreRequestHandler.cpp Thu May 16 21:33:52 2024 +0200 @@ -38,10 +38,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; }
--- a/OrthancServer/Sources/DicomInstanceToStore.cpp Sat May 11 15:43:07 2024 +0200 +++ b/OrthancServer/Sources/DicomInstanceToStore.cpp Thu May 16 21:33:52 2024 +0200 @@ -132,9 +132,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); } } }
--- a/OrthancServer/Sources/OrthancConfiguration.cpp Sat May 11 15:43:07 2024 +0200 +++ b/OrthancServer/Sources/OrthancConfiguration.cpp Thu May 16 21:33:52 2024 +0200 @@ -114,7 +114,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")
--- a/TODO Sat May 11 15:43:07 2024 +0200 +++ b/TODO Thu May 16 21:33:52 2024 +0200 @@ -195,6 +195,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