comparison 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
comparison
equal deleted inserted replaced
1179:177e7d431cd1 1180:9c8f557ea799
19 **/ 19 **/
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #if !defined(ORTHANC_ENABLE_DCMTK)
25 # error The macro ORTHANC_ENABLE_DCMTK must be defined
26 #endif
27
24 #include "DicomStructureSetUtils.h" 28 #include "DicomStructureSetUtils.h"
25 #include "CoordinateSystem3D.h" 29 #include "CoordinateSystem3D.h"
26 #include "Extent2D.h" 30 #include "Extent2D.h"
27 #include "../Scene2D/Color.h" 31 #include "../Scene2D/Color.h"
28 #include "../Scene2D/PolylineSceneLayer.h" 32 #include "../Scene2D/PolylineSceneLayer.h"
33
34 #if ORTHANC_ENABLE_DCMTK == 1
35 # include <Core/DicomParsing/ParsedDicomFile.h>
36 #endif
29 37
30 //#define USE_BOOST_UNION_FOR_POLYGONS 1 38 //#define USE_BOOST_UNION_FOR_POLYGONS 1
31 39
32 #include <Plugins/Samples/Common/FullOrthancDataset.h> 40 #include <Plugins/Samples/Common/FullOrthancDataset.h>
33 41
136 typedef std::vector<Structure> Structures; 144 typedef std::vector<Structure> Structures;
137 145
138 Structures structures_; 146 Structures structures_;
139 ReferencedSlices referencedSlices_; 147 ReferencedSlices referencedSlices_;
140 148
149 void Setup(const OrthancPlugins::IDicomDataset& dataset);
150
141 const Structure& GetStructure(size_t index) const; 151 const Structure& GetStructure(size_t index) const;
142 152
143 Structure& GetStructure(size_t index); 153 Structure& GetStructure(size_t index);
144 154
145 bool ProjectStructure( 155 bool ProjectStructure(
150 #endif 160 #endif
151 const Structure& structure, 161 const Structure& structure,
152 const CoordinateSystem3D& slice) const; 162 const CoordinateSystem3D& slice) const;
153 163
154 public: 164 public:
155 DicomStructureSet(const OrthancPlugins::FullOrthancDataset& instance); 165 DicomStructureSet(const OrthancPlugins::FullOrthancDataset& instance)
166 {
167 Setup(instance);
168 }
169
170 #if ORTHANC_ENABLE_DCMTK == 1
171 DicomStructureSet(Orthanc::ParsedDicomFile& instance);
172 #endif
156 173
157 size_t GetStructuresCount() const 174 size_t GetStructuresCount() const
158 { 175 {
159 return structures_.size(); 176 return structures_.size();
160 } 177 }