# HG changeset patch # User Alain Mazy # Date 1685029102 -7200 # Node ID 29c43ae730a8213a51bb96b6f2bdf48da6d744af # Parent c2f91ea4117c301d69c6359228f534d88c5ae12d using new SDK function diff -r c2f91ea4117c -r 29c43ae730a8 CMakeLists.txt --- a/CMakeLists.txt Tue May 23 17:43:02 2023 +0200 +++ b/CMakeLists.txt Thu May 25 17:38:22 2023 +0200 @@ -99,6 +99,10 @@ include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-1.9.2) elseif (ORTHANC_SDK_VERSION STREQUAL "1.11.3") include_directories(${CMAKE_SOURCE_DIR}/Resources/Orthanc/Sdk-1.11.3) + elseif (ORTHANC_SDK_VERSION STREQUAL "framework") + set(tmp ${ORTHANC_FRAMEWORK_ROOT}/../../OrthancServer/Plugins/Include/) + message(${tmp}) + include_directories(${tmp}) else() message(FATAL_ERROR "Unsupported version of the Orthanc plugin SDK: ${ORTHANC_SDK_VERSION}") endif() diff -r c2f91ea4117c -r 29c43ae730a8 Plugin/DicomWebFormatter.cpp --- a/Plugin/DicomWebFormatter.cpp Tue May 23 17:43:02 2023 +0200 +++ b/Plugin/DicomWebFormatter.cpp Thu May 25 17:38:22 2023 +0200 @@ -84,7 +84,8 @@ size_t size, bool xml, OrthancPluginDicomWebBinaryMode mode, - const std::string& bulkRoot) + const std::string& bulkRoot, + bool injectEmptyPixelData) { DicomWebFormatter payload(mode, bulkRoot); @@ -92,11 +93,11 @@ if (xml) { - s.Assign(OrthancPluginEncodeDicomWebXml2(context, data, size, Callback, &payload)); + s.Assign(OrthancPluginEncodeDicomWebXml2(context, data, size, Callback, &payload)); // TODO injectEmptyPixelData } else { - s.Assign(OrthancPluginEncodeDicomWebJson2(context, data, size, Callback, &payload)); + s.Assign(OrthancPluginEncodeDicomWebJson3(context, data, size, Callback, &payload, injectEmptyPixelData)); } if (s.GetContent() == NULL) @@ -116,11 +117,12 @@ const Json::Value& value, bool xml, OrthancPluginDicomWebBinaryMode mode, - const std::string& bulkRoot) + const std::string& bulkRoot, + bool injectEmptyPixelData) { MemoryBuffer dicom; dicom.CreateDicom(value, OrthancPluginCreateDicomFlags_None); - Apply(target, context, dicom.GetData(), dicom.GetSize(), xml, mode, bulkRoot); + Apply(target, context, dicom.GetData(), dicom.GetSize(), xml, mode, bulkRoot, injectEmptyPixelData); } @@ -151,7 +153,8 @@ void DicomWebFormatter::HttpWriter::AddInternal(const void* dicom, size_t size, OrthancPluginDicomWebBinaryMode mode, - const std::string& bulkRoot) + const std::string& bulkRoot, + bool injectEmptyPixelData) { if (!first_ && !isXml_) @@ -163,7 +166,7 @@ std::string item; - DicomWebFormatter::Apply(item, context_, dicom, size, isXml_, mode, bulkRoot); + DicomWebFormatter::Apply(item, context_, dicom, size, isXml_, mode, bulkRoot, injectEmptyPixelData); if (isXml_) { @@ -252,7 +255,7 @@ MemoryBuffer dicom; dicom.CreateDicom(value, OrthancPluginCreateDicomFlags_None); - AddInternal(dicom.GetData(), dicom.GetSize(), OrthancPluginDicomWebBinaryMode_Ignore, ""); + AddInternal(dicom.GetData(), dicom.GetSize(), OrthancPluginDicomWebBinaryMode_Ignore, "", false); } diff -r c2f91ea4117c -r 29c43ae730a8 Plugin/DicomWebFormatter.h --- a/Plugin/DicomWebFormatter.h Tue May 23 17:43:02 2023 +0200 +++ b/Plugin/DicomWebFormatter.h Thu May 25 17:38:22 2023 +0200 @@ -64,14 +64,16 @@ size_t size, bool xml, OrthancPluginDicomWebBinaryMode mode, - const std::string& bulkRoot); + const std::string& bulkRoot, + bool injectEmptyPixelData = false); static void Apply(std::string& target, OrthancPluginContext* context, const Json::Value& value, bool xml, OrthancPluginDicomWebBinaryMode mode, - const std::string& bulkRoot); + const std::string& bulkRoot, + bool injectEmptyPixelData = false); class HttpWriter : public boost::noncopyable { @@ -85,7 +87,8 @@ void AddInternal(const void* dicom, size_t size, OrthancPluginDicomWebBinaryMode mode, - const std::string& bulkRoot); + const std::string& bulkRoot, + bool injectEmptyPixelData); public: HttpWriter(OrthancPluginRestOutput* output, @@ -98,9 +101,10 @@ void AddDicom(const void* dicom, size_t size, - const std::string& bulkRoot) + const std::string& bulkRoot, + bool injectEmptyPixelData) { - AddInternal(dicom, size, OrthancPluginDicomWebBinaryMode_BulkDataUri, bulkRoot); + AddInternal(dicom, size, OrthancPluginDicomWebBinaryMode_BulkDataUri, bulkRoot, injectEmptyPixelData); } void AddOrthancMap(const Orthanc::DicomMap& value); diff -r c2f91ea4117c -r 29c43ae730a8 Plugin/WadoRs.cpp --- a/Plugin/WadoRs.cpp Tue May 23 17:43:02 2023 +0200 +++ b/Plugin/WadoRs.cpp Thu May 25 17:38:22 2023 +0200 @@ -913,7 +913,7 @@ OrthancPlugins::MemoryBuffer dicomFile; if (dicomFile.RestApiGet("/instances/" + orthancId + "/file-until-pixel-data", false)) { - writer.AddDicom(dicomFile.GetData(), dicomFile.GetSize(), bulkRoot); + writer.AddDicom(dicomFile.GetData(), dicomFile.GetSize(), bulkRoot, true); } break;