Mercurial > hg > orthanc-stone
diff Framework/Toolbox/DicomStructureSet.cpp @ 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.cpp Wed Nov 20 15:24:20 2019 +0100 +++ b/Framework/Toolbox/DicomStructureSet.cpp Wed Nov 20 17:34:17 2019 +0100 @@ -27,7 +27,6 @@ #include <Core/Logging.h> #include <Core/OrthancException.h> #include <Core/Toolbox.h> -#include <Plugins/Samples/Common/FullOrthancDataset.h> #include <Plugins/Samples/Common/DicomDatasetReader.h> #if defined(_MSC_VER) @@ -46,6 +45,11 @@ # pragma warning(pop) #endif +#if ORTHANC_ENABLE_DCMTK == 1 +# include "ParsedDicomDataset.h" +#endif + + typedef boost::geometry::model::d2::point_xy<double> BoostPoint; typedef boost::geometry::model::polygon<BoostPoint> BoostPolygon; typedef boost::geometry::model::multi_polygon<BoostPolygon> BoostMultiPolygon; @@ -461,7 +465,7 @@ return structures_[index]; } - DicomStructureSet::DicomStructureSet(const OrthancPlugins::FullOrthancDataset& tags) + void DicomStructureSet::Setup(const OrthancPlugins::IDicomDataset& tags) { OrthancPlugins::DicomDatasetReader reader(tags); @@ -607,6 +611,15 @@ } +#if ORTHANC_ENABLE_DCMTK == 1 + DicomStructureSet::DicomStructureSet(Orthanc::ParsedDicomFile& instance) + { + ParsedDicomDataset dataset(instance); + Setup(dataset); + } +#endif + + Vector DicomStructureSet::GetStructureCenter(size_t index) const { const Structure& structure = GetStructure(index);