Mercurial > hg > orthanc-wsi
changeset 48:2789d34cb993
sync
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 16 Nov 2016 12:18:34 +0100 |
parents | 0cc06b6f3398 |
children | 2e053f356e3d |
files | Framework/Orthanc/OrthancServer/FromDcmtkBridge.cpp Framework/Orthanc/OrthancServer/FromDcmtkBridge.h Framework/Orthanc/Resources/CMake/DcmtkConfiguration.cmake Framework/Orthanc/Resources/CMake/DownloadPackage.cmake |
diffstat | 4 files changed, 44 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/Framework/Orthanc/OrthancServer/FromDcmtkBridge.cpp Thu Nov 10 09:59:48 2016 +0100 +++ b/Framework/Orthanc/OrthancServer/FromDcmtkBridge.cpp Wed Nov 16 12:18:34 2016 +0100 @@ -177,7 +177,7 @@ } - void FromDcmtkBridge::InitializeDictionary() + void FromDcmtkBridge::InitializeDictionary(bool loadPrivateDictionary) { { DictionaryLocker locker; @@ -194,7 +194,16 @@ //LoadEmbeddedDictionary(*locker, EmbeddedResources::DICTIONARY_DICONDE); LoadEmbeddedDictionary(*locker, EmbeddedResources::DICTIONARY_DICOM); - LoadEmbeddedDictionary(*locker, EmbeddedResources::DICTIONARY_PRIVATE); + + if (loadPrivateDictionary) + { + LOG(INFO) << "Loading the embedded dictionary of private tags"; + LoadEmbeddedDictionary(*locker, EmbeddedResources::DICTIONARY_PRIVATE); + } + else + { + LOG(INFO) << "The dictionary of private tags has not been loaded"; + } #elif defined(__linux__) || defined(__FreeBSD_kernel__) std::string path = DCMTK_DICTIONARY_DIR; @@ -206,7 +215,15 @@ } LoadExternalDictionary(*locker, path, "dicom.dic"); - LoadExternalDictionary(*locker, path, "private.dic"); + + if (loadPrivateDictionary) + { + LoadExternalDictionary(*locker, path, "private.dic"); + } + else + { + LOG(INFO) << "The dictionary of private tags has not been loaded"; + } #else #error Support your platform here
--- a/Framework/Orthanc/OrthancServer/FromDcmtkBridge.h Thu Nov 10 09:59:48 2016 +0100 +++ b/Framework/Orthanc/OrthancServer/FromDcmtkBridge.h Wed Nov 16 12:18:34 2016 +0100 @@ -89,7 +89,7 @@ Encoding defaultEncoding); public: - static void InitializeDictionary(); + static void InitializeDictionary(bool loadPrivateDictionary); static void RegisterDictionaryTag(const DicomTag& tag, ValueRepresentation vr,
--- a/Framework/Orthanc/Resources/CMake/DcmtkConfiguration.cmake Thu Nov 10 09:59:48 2016 +0100 +++ b/Framework/Orthanc/Resources/CMake/DcmtkConfiguration.cmake Wed Nov 16 12:18:34 2016 +0100 @@ -35,6 +35,19 @@ DownloadPackage(${DCMTK_MD5} ${DCMTK_URL} "${DCMTK_SOURCES_DIR}") + + if (FirstRun AND NOT USE_DCMTK_361) + # If using DCMTK 3.6.0, backport the "private.dic" file from DCMTK + # 3.6.1 snapshot. This adds support for more private tags, and + # fixes some import problems with Philips MRI Achieva. + message("Using the dictionary of private tags from DCMTK 3.6.1") + configure_file( + ${ORTHANC_ROOT}/Resources/Patches/dcmtk-3.6.1-private.dic + ${DCMTK_SOURCES_DIR}/dcmdata/data/private.dic + COPYONLY) + endif() + + IF (CMAKE_CROSSCOMPILING) SET(C_CHAR_UNSIGNED 1 CACHE INTERNAL "Whether char is unsigned.") ENDIF() @@ -181,9 +194,15 @@ list(REMOVE_ITEM DCMTK_SOURCES ${DCMTK_SOURCES_DIR}/dcmdata/libsrc/mkdictbi.cc ${DCMTK_SOURCES_DIR}/dcmdata/libsrc/mkdeftag.cc - ${DCMTK_SOURCES_DIR}/dcmdata/libsrc/dcdictbi.cc ) + if (NOT USE_DCMTK_361) + # Removing this file is required with DCMTK 3.6.0 + list(REMOVE_ITEM DCMTK_SOURCES + ${DCMTK_SOURCES_DIR}/dcmdata/libsrc/dcdictbi.cc + ) + endif() + #set_source_files_properties(${DCMTK_SOURCES} # PROPERTIES COMPILE_DEFINITIONS # "PACKAGE_VERSION=\"${DCMTK_PACKAGE_VERSION}\";PACKAGE_VERSION_NUMBER=\"${DCMTK_VERSION_NUMBER}\"")
--- a/Framework/Orthanc/Resources/CMake/DownloadPackage.cmake Thu Nov 10 09:59:48 2016 +0100 +++ b/Framework/Orthanc/Resources/CMake/DownloadPackage.cmake Wed Nov 16 12:18:34 2016 +0100 @@ -76,7 +76,9 @@ message(FATAL_ERROR "CMake is not allowed to download from Internet. Please set the ALLOW_DOWNLOADS option to ON") endif() - file(DOWNLOAD "${Url}" "${TMP_PATH}" SHOW_PROGRESS EXPECTED_MD5 "${MD5}") + file(DOWNLOAD "${Url}" "${TMP_PATH}" + SHOW_PROGRESS EXPECTED_MD5 "${MD5}" + TIMEOUT 5 INACTIVITY_TIMEOUT 5) else() message("Using local copy of ${Url}") endif()