Mercurial > hg > orthanc-stone
diff OrthancStone/Sources/Toolbox/SortedFrames.h @ 1643:882e2253a90e
replacing SortedFrames::Instance by DicomInstanceParameters
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 10 Nov 2020 17:35:32 +0100 |
parents | 960bb5fcc440 |
children | 4796fb60999e |
line wrap: on
line diff
--- a/OrthancStone/Sources/Toolbox/SortedFrames.h Tue Nov 10 17:21:23 2020 +0100 +++ b/OrthancStone/Sources/Toolbox/SortedFrames.h Tue Nov 10 17:35:32 2020 +0100 @@ -23,6 +23,7 @@ #pragma once #include "CoordinateSystem3D.h" +#include "DicomInstanceParameters.h" #include "LinearAlgebra.h" namespace OrthancStone @@ -30,58 +31,17 @@ class SortedFrames : public boost::noncopyable { private: - class Instance : public boost::noncopyable - { - private: - Orthanc::DicomMap tags_; - std::string sopInstanceUid_; - unsigned int numberOfFrames_; - CoordinateSystem3D geometry_; - bool monochrome1_; - Vector frameOffsets_; - - public: - explicit Instance(const Orthanc::DicomMap& tags); - - const Orthanc::DicomMap& GetTags() const - { - return tags_; - } - - const std::string& GetSopInstanceUid() const - { - return sopInstanceUid_; - } - - unsigned int GetNumberOfFrames() const - { - return numberOfFrames_; - } - - const CoordinateSystem3D& GetGeometry() const - { - return geometry_; - } - - bool IsMonochrome1() const - { - return monochrome1_; - } - - double GetFrameOffset(unsigned int frame) const; - }; - struct Frame { private: - const Instance* instance_; - unsigned int frameNumber_; + const DicomInstanceParameters* instance_; + unsigned int frameNumber_; public: - Frame(const Instance& instance, + Frame(const DicomInstanceParameters& instance, unsigned int frameNumber); - const Instance& GetInstance() const + const DicomInstanceParameters& GetInstance() const { return *instance_; } @@ -100,15 +60,15 @@ // "frames_" (only once "Sort()" is called) typedef std::map<std::pair<std::string, unsigned int>, size_t> FramesIndex; - std::string studyInstanceUid_; - std::string seriesInstanceUid_; - std::vector<Instance*> instances_; - std::vector<Frame> frames_; - bool sorted_; - InstancesIndex instancesIndex_; - FramesIndex framesIndex_; + std::string studyInstanceUid_; + std::string seriesInstanceUid_; + std::vector<DicomInstanceParameters*> instances_; + std::vector<Frame> frames_; + bool sorted_; + InstancesIndex instancesIndex_; + FramesIndex framesIndex_; - const Instance& GetInstance(size_t instanceIndex) const; + const DicomInstanceParameters& GetInstance(size_t instanceIndex) const; const Frame& GetFrame(size_t frameIndex) const; @@ -197,9 +157,10 @@ return GetFrame(frameIndex).GetFrameNumberInInstance(); } - bool IsFrameMonochrome1(size_t frameIndex) const + bool IsFrameMonochrome1(size_t frameIndex) const // TODO - REMOVE { - return GetFrame(frameIndex).GetInstance().IsMonochrome1(); + return GetFrame(frameIndex).GetInstance().GetImageInformation().GetPhotometricInterpretation() == + Orthanc::PhotometricInterpretation_Monochrome1; } CoordinateSystem3D GetFrameGeometry(size_t frameIndex) const;