changeset 566:29c43ae730a8 am-experimental

using new SDK function
author Alain Mazy <am@osimis.io>
date Thu, 25 May 2023 17:38:22 +0200
parents c2f91ea4117c
children de4a56ecd2bc
files CMakeLists.txt Plugin/DicomWebFormatter.cpp Plugin/DicomWebFormatter.h Plugin/WadoRs.cpp
diffstat 4 files changed, 25 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- 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()
--- 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);
   }
 
 
--- 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);
--- 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;