diff Framework/Toolbox/DicomStructureSet.h @ 1180:9c8f557ea799 broker

ParsedDicomDataset to speed up loading RT-STRUCT from parsed DICOM files
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 20 Nov 2019 17:34:17 +0100
parents 3c7cdbf32e2a
children 0ca50d275b9a
line wrap: on
line diff
--- a/Framework/Toolbox/DicomStructureSet.h	Wed Nov 20 15:24:20 2019 +0100
+++ b/Framework/Toolbox/DicomStructureSet.h	Wed Nov 20 17:34:17 2019 +0100
@@ -21,12 +21,20 @@
 
 #pragma once
 
+#if !defined(ORTHANC_ENABLE_DCMTK)
+#  error The macro ORTHANC_ENABLE_DCMTK must be defined
+#endif
+
 #include "DicomStructureSetUtils.h"
 #include "CoordinateSystem3D.h"
 #include "Extent2D.h"
 #include "../Scene2D/Color.h"
 #include "../Scene2D/PolylineSceneLayer.h"
 
+#if ORTHANC_ENABLE_DCMTK == 1
+#  include <Core/DicomParsing/ParsedDicomFile.h>
+#endif
+
 //#define USE_BOOST_UNION_FOR_POLYGONS 1
 
 #include <Plugins/Samples/Common/FullOrthancDataset.h>
@@ -138,6 +146,8 @@
     Structures        structures_;
     ReferencedSlices  referencedSlices_;
 
+    void Setup(const OrthancPlugins::IDicomDataset& dataset);
+    
     const Structure& GetStructure(size_t index) const;
 
     Structure& GetStructure(size_t index);
@@ -152,7 +162,14 @@
       const CoordinateSystem3D& slice) const;
 
   public:
-    DicomStructureSet(const OrthancPlugins::FullOrthancDataset& instance);
+    DicomStructureSet(const OrthancPlugins::FullOrthancDataset& instance)
+    {
+      Setup(instance);
+    }
+
+#if ORTHANC_ENABLE_DCMTK == 1
+    DicomStructureSet(Orthanc::ParsedDicomFile& instance);
+#endif
 
     size_t GetStructuresCount() const
     {