diff OrthancServer/Sources/OrthancConfiguration.cpp @ 4508:8f9090b137f1

Optimization in C-STORE SCP by avoiding an unnecessary DICOM parsing
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 11 Feb 2021 11:00:05 +0100
parents c06659885362
children 2c702cfae274
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancConfiguration.cpp	Thu Feb 11 09:33:48 2021 +0100
+++ b/OrthancServer/Sources/OrthancConfiguration.cpp	Thu Feb 11 11:00:05 2021 +0100
@@ -34,6 +34,7 @@
 #include "PrecompiledHeadersServer.h"
 #include "OrthancConfiguration.h"
 
+#include "../../OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.h"
 #include "../../OrthancFramework/Sources/DicomParsing/ParsedDicomFile.h"
 #include "../../OrthancFramework/Sources/HttpServer/HttpServer.h"
 #include "../../OrthancFramework/Sources/Logging.h"
@@ -1021,12 +1022,29 @@
   }
   
     
+  void OrthancConfiguration::DefaultExtractDicomSummary(DicomMap& target,
+                                                        DcmDataset& dicom)
+  {
+    std::set<DicomTag> ignoreTagLength;
+    FromDcmtkBridge::ExtractDicomSummary(target, dicom, ORTHANC_MAXIMUM_TAG_LENGTH, ignoreTagLength);
+  }    
+    
+
   void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target,
                                                        const ParsedDicomFile& dicom)
   {
     std::set<DicomTag> ignoreTagLength;
     DefaultDicomDatasetToJson(target, dicom, ignoreTagLength);
   }
+
+
+  void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target,
+                                                       DcmDataset& dicom)
+  {
+    std::set<DicomTag> ignoreTagLength;
+    FromDcmtkBridge::ExtractDicomAsJson(target, dicom, DicomToJsonFormat_Full, DicomToJsonFlags_Default, 
+                                        ORTHANC_MAXIMUM_TAG_LENGTH, ignoreTagLength);    
+  }    
   
     
   void OrthancConfiguration::DefaultDicomDatasetToJson(Json::Value& target,