comparison Framework/Toolbox/OrthancSlicesLoader.h @ 117:42c05a3baee3 wasm

loading multi-frame instances as 3D volumes
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 28 Sep 2017 16:55:51 +0200
parents 53025eecbc95
children 063f7f3d9f14
comparison
equal deleted inserted replaced
116:4c5f7cda8624 117:42c05a3baee3
45 45
46 virtual void NotifySliceImageReady(const OrthancSlicesLoader& loader, 46 virtual void NotifySliceImageReady(const OrthancSlicesLoader& loader,
47 unsigned int sliceIndex, 47 unsigned int sliceIndex,
48 const Slice& slice, 48 const Slice& slice,
49 std::auto_ptr<Orthanc::ImageAccessor>& image, 49 std::auto_ptr<Orthanc::ImageAccessor>& image,
50 SliceImageQuality quality) = 0; 50 SliceImageQuality effectiveQuality) = 0;
51 51
52 virtual void NotifySliceImageError(const OrthancSlicesLoader& loader, 52 virtual void NotifySliceImageError(const OrthancSlicesLoader& loader,
53 unsigned int sliceIndex, 53 unsigned int sliceIndex,
54 const Slice& slice, 54 const Slice& slice,
55 SliceImageQuality quality) = 0; 55 SliceImageQuality quality) = 0;
66 66
67 enum Mode 67 enum Mode
68 { 68 {
69 Mode_SeriesGeometry, 69 Mode_SeriesGeometry,
70 Mode_InstanceGeometry, 70 Mode_InstanceGeometry,
71 Mode_LoadImage 71 Mode_FrameGeometry,
72 Mode_LoadImage,
73 Mode_LoadRawImage
72 }; 74 };
73 75
74 class Operation; 76 class Operation;
75 class WebCallback; 77 class WebCallback;
76 78
88 90
89 void ParseSeriesGeometry(const void* answer, 91 void ParseSeriesGeometry(const void* answer,
90 size_t size); 92 size_t size);
91 93
92 void ParseInstanceGeometry(const std::string& instanceId, 94 void ParseInstanceGeometry(const std::string& instanceId,
93 unsigned int frame,
94 const void* answer, 95 const void* answer,
95 size_t size); 96 size_t size);
97
98 void ParseFrameGeometry(const std::string& instanceId,
99 unsigned int frame,
100 const void* answer,
101 size_t size);
96 102
97 void ParseSliceImagePng(const Operation& operation, 103 void ParseSliceImagePng(const Operation& operation,
98 const void* answer, 104 const void* answer,
99 size_t size); 105 size_t size);
100 106
101 void ParseSliceImageJpeg(const Operation& operation, 107 void ParseSliceImageJpeg(const Operation& operation,
102 const void* answer, 108 const void* answer,
103 size_t size); 109 size_t size);
104 110
105 void ScheduleSliceImagePng(size_t index); 111 void ParseSliceRawImage(const Operation& operation,
112 const void* answer,
113 size_t size);
114
115 void ScheduleSliceImagePng(const Slice& slice,
116 size_t index);
106 117
107 void ScheduleSliceImageJpeg(size_t index, 118 void ScheduleSliceImageJpeg(const Slice& slice,
119 size_t index,
108 SliceImageQuality quality); 120 SliceImageQuality quality);
109 121
110 public: 122 public:
111 OrthancSlicesLoader(ICallback& callback, 123 OrthancSlicesLoader(ICallback& callback,
112 IWebService& orthanc); 124 IWebService& orthanc);
113 125
114 void ScheduleLoadSeries(const std::string& seriesId); 126 void ScheduleLoadSeries(const std::string& seriesId);
115 127
116 void ScheduleLoadInstance(const std::string& instanceId, 128 void ScheduleLoadInstance(const std::string& instanceId);
117 unsigned int frame); 129
130 void ScheduleLoadFrame(const std::string& instanceId,
131 unsigned int frame);
118 132
119 bool IsGeometryReady() const; 133 bool IsGeometryReady() const;
120 134
121 size_t GetSliceCount() const; 135 size_t GetSliceCount() const;
122 136
124 138
125 bool LookupSlice(size_t& index, 139 bool LookupSlice(size_t& index,
126 const CoordinateSystem3D& plane) const; 140 const CoordinateSystem3D& plane) const;
127 141
128 void ScheduleLoadSliceImage(size_t index, 142 void ScheduleLoadSliceImage(size_t index,
129 SliceImageQuality quality); 143 SliceImageQuality requestedQuality);
130 }; 144 };
131 } 145 }