comparison Framework/Loaders/OrthancMultiframeVolumeLoader.h @ 1381:f4a06ad1580b

Branch broker is now the new default
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 22 Apr 2020 14:05:47 +0200
parents 2d8ab34c8c91 556b4bc19118
children 75ac66d5f4b2 7f16987131e1
comparison
equal deleted inserted replaced
1375:4431ffdcc2a4 1381:f4a06ad1580b
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "LoaderStateMachine.h" 24 #include "LoaderStateMachine.h"
25 #include "../Volumes/DicomVolumeImage.h" 25 #include "../Volumes/DicomVolumeImage.h"
26 #include "../Volumes/IGeometryProvider.h"
26 27
27 #include <boost/shared_ptr.hpp> 28 #include <boost/shared_ptr.hpp>
28 29
29 namespace OrthancStone 30 namespace OrthancStone
30 { 31 {
31 class OrthancMultiframeVolumeLoader : 32 class OrthancMultiframeVolumeLoader :
32 public LoaderStateMachine, 33 public LoaderStateMachine,
33 public IObservable, 34 public OrthancStone::IObservable,
34 public IGeometryProvider 35 public IGeometryProvider
35 { 36 {
36 private: 37 private:
37 class LoadRTDoseGeometry; 38 class LoadRTDoseGeometry;
38 class LoadGeometry; 39 class LoadGeometry;
39 class LoadTransferSyntax; 40 class LoadTransferSyntax;
40 class LoadUncompressedPixelData; 41 class LoadUncompressedPixelData;
41 42
42 boost::shared_ptr<DicomVolumeImage> volume_; 43 boost::shared_ptr<OrthancStone::DicomVolumeImage> volume_;
43 std::string instanceId_; 44 std::string instanceId_;
44 std::string transferSyntaxUid_; 45 std::string transferSyntaxUid_;
45 bool pixelDataLoaded_; 46 bool pixelDataLoaded_;
46 float outliersHalfRejectionRate_; 47 float outliersHalfRejectionRate_;
47 float distributionRawMin_; 48 float distributionRawMin_;
87 void ComputeMinMaxWithOutlierRejection( 88 void ComputeMinMaxWithOutlierRejection(
88 const std::map<T, uint64_t>& distribution); 89 const std::map<T, uint64_t>& distribution);
89 90
90 void SetUncompressedPixelData(const std::string& pixelData); 91 void SetUncompressedPixelData(const std::string& pixelData);
91 92
92 virtual bool HasGeometry() const ORTHANC_OVERRIDE; 93 bool HasGeometry() const;
93 virtual const VolumeImageGeometry& GetImageGeometry() const ORTHANC_OVERRIDE; 94 const OrthancStone::VolumeImageGeometry& GetImageGeometry() const;
94 95
96 protected:
97 OrthancMultiframeVolumeLoader(
98 OrthancStone::ILoadersContext& loadersContext,
99 boost::shared_ptr<OrthancStone::DicomVolumeImage> volume,
100 float outliersHalfRejectionRate);
95 public: 101 public:
96 OrthancMultiframeVolumeLoader(boost::shared_ptr<DicomVolumeImage> volume, 102
97 IOracle& oracle, 103 static boost::shared_ptr<OrthancMultiframeVolumeLoader> Create(
98 IObservable& oracleObservable, 104 OrthancStone::ILoadersContext& loadersContext,
99 float outliersHalfRejectionRate = 0.0005); 105 boost::shared_ptr<OrthancStone::DicomVolumeImage> volume,
100 106 float outliersHalfRejectionRate = 0.0005);
107
101 virtual ~OrthancMultiframeVolumeLoader(); 108 virtual ~OrthancMultiframeVolumeLoader();
102 109
103 bool IsPixelDataLoaded() const 110 bool IsPixelDataLoaded() const
104 { 111 {
105 return pixelDataLoaded_; 112 return pixelDataLoaded_;