annotate Framework/Toolbox/OrthancSlicesLoader.h @ 700:059e1fd05fd6 refactor-viewport-controller

Introduced the ViewportController that sits between the application and the Scene2D to handle the trackers and measuring tools. This is a work in progress. The Scene2D is no longer an observable. Message sending is managed by the ViewportController. Move some refs to shared and weak to prevent lifetime issues.
author Benjamin Golinvaux <bgo@osimis.io>
date Sun, 19 May 2019 16:26:17 +0200
parents 6af3099ed8da
children d2c0e347ddc2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 /**
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 * Stone of Orthanc
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 * Department, University Hospital of Liege, Belgium
439
b70e9be013e4 preparing for 2019
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 406
diff changeset
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 *
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 * This program is free software: you can redistribute it and/or
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 * modify it under the terms of the GNU Affero General Public License
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 * as published by the Free Software Foundation, either version 3 of
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 * the License, or (at your option) any later version.
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 *
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful, but
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 * Affero General Public License for more details.
318
3a4ca166fafa ImageAccessor refactoring + implemented Image Cache in SmartLoader
am@osimis.io
parents: 300
diff changeset
16 *
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 * You should have received a copy of the GNU Affero General Public License
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 **/
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22 #pragma once
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
24 #include "../Messages/IObservable.h"
194
7a031ac16b2d rename Enumerations.h to StoneEnumerations.h to avoid clashes with Orthanc
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 135
diff changeset
25 #include "../StoneEnumerations.h"
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
26 #include "IWebService.h"
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
27 #include "OrthancApiClient.h"
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
28 #include "SlicesSorter.h"
647
6af3099ed8da uncoupling OrthancStone::SlicesSorter from OrthancStone::Slice
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
29 #include "Slice.h"
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
30
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
31 #include <Core/Images/Image.h>
318
3a4ca166fafa ImageAccessor refactoring + implemented Image Cache in SmartLoader
am@osimis.io
parents: 300
diff changeset
32
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 namespace OrthancStone
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 {
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
36 class OrthancSlicesLoader : public IObservable, public IObserver
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37 {
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 public:
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
39 ORTHANC_STONE_DEFINE_ORIGIN_MESSAGE(__FILE__, __LINE__, SliceGeometryReadyMessage, OrthancSlicesLoader);
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
40 ORTHANC_STONE_DEFINE_ORIGIN_MESSAGE(__FILE__, __LINE__, SliceGeometryErrorMessage, OrthancSlicesLoader);
299
3897f9f28cfa backup work in progress: updated messaging framework with ICallable
am@osimis.io
parents: 268
diff changeset
41
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
42
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
43 class SliceImageReadyMessage : public OriginMessage<OrthancSlicesLoader>
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
44 {
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
45 ORTHANC_STONE_MESSAGE(__FILE__, __LINE__);
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
46
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
47 private:
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
48 unsigned int sliceIndex_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
49 const Slice& slice_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
50 const Orthanc::ImageAccessor& image_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
51 SliceImageQuality effectiveQuality_;
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
52
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
53 public:
406
5d359b115b29 use of callables in OrthancVolumeImage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
54 SliceImageReadyMessage(const OrthancSlicesLoader& origin,
5d359b115b29 use of callables in OrthancVolumeImage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
55 unsigned int sliceIndex,
318
3a4ca166fafa ImageAccessor refactoring + implemented Image Cache in SmartLoader
am@osimis.io
parents: 300
diff changeset
56 const Slice& slice,
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
57 const Orthanc::ImageAccessor& image,
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
58 SliceImageQuality effectiveQuality) :
406
5d359b115b29 use of callables in OrthancVolumeImage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
59 OriginMessage(origin),
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
60 sliceIndex_(sliceIndex),
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
61 slice_(slice),
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
62 image_(image),
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
63 effectiveQuality_(effectiveQuality)
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
64 {
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
65 }
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
66
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
67 unsigned int GetSliceIndex() const
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
68 {
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
69 return sliceIndex_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
70 }
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
71
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
72 const Slice& GetSlice() const
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
73 {
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
74 return slice_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
75 }
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
76
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
77 const Orthanc::ImageAccessor& GetImage() const
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
78 {
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
79 return image_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
80 }
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
81
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
82 SliceImageQuality GetEffectiveQuality() const
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
83 {
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
84 return effectiveQuality_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
85 }
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
86 };
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
87
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
88
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
89 class SliceImageErrorMessage : public OriginMessage<OrthancSlicesLoader>
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
90 {
643
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
91 ORTHANC_STONE_MESSAGE(__FILE__, __LINE__);
f0008c55e5f7 getting rid of MessageType enumeration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 439
diff changeset
92
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
93 private:
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
94 const Slice& slice_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
95 unsigned int sliceIndex_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
96 SliceImageQuality effectiveQuality_;
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
97
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
98 public:
406
5d359b115b29 use of callables in OrthancVolumeImage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
99 SliceImageErrorMessage(const OrthancSlicesLoader& origin,
5d359b115b29 use of callables in OrthancVolumeImage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
100 unsigned int sliceIndex,
318
3a4ca166fafa ImageAccessor refactoring + implemented Image Cache in SmartLoader
am@osimis.io
parents: 300
diff changeset
101 const Slice& slice,
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
102 SliceImageQuality effectiveQuality) :
406
5d359b115b29 use of callables in OrthancVolumeImage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 382
diff changeset
103 OriginMessage(origin),
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
104 slice_(slice),
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
105 sliceIndex_(sliceIndex),
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
106 effectiveQuality_(effectiveQuality)
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
107 {
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
108 }
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
109 unsigned int GetSliceIndex() const
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
110 {
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
111 return sliceIndex_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
112 }
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
113
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
114 const Slice& GetSlice() const
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
115 {
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
116 return slice_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
117 }
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
118
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
119 SliceImageQuality GetEffectiveQuality() const
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
120 {
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
121 return effectiveQuality_;
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
122 }
252
40b21c1f8b8d more usage of IObservable/IObserver
am@osimis.io
parents: 251
diff changeset
123 };
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
124
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
125 private:
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
126 enum State
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
127 {
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
128 State_Error,
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
129 State_Initialization,
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
130 State_LoadingGeometry,
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
131 State_GeometryReady
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
132 };
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
133
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
134 enum Mode
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
135 {
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
136 Mode_SeriesGeometry,
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
137 Mode_InstanceGeometry,
117
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
138 Mode_FrameGeometry,
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
139 Mode_LoadImage,
257
9afafb192180 using PAM
am@osimis.io
parents: 252
diff changeset
140 Mode_LoadRawImage,
9afafb192180 using PAM
am@osimis.io
parents: 252
diff changeset
141 Mode_LoadDicomFile
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
142 };
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
143
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
144 class Operation;
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
145
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
146 OrthancApiClient& orthanc_;
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
147 State state_;
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
148 SlicesSorter slices_;
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
149
93
5945e81734a3 decoding of JPEG images
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 77
diff changeset
150 void NotifySliceImageSuccess(const Operation& operation,
378
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
151 const Orthanc::ImageAccessor& image);
814fa32e2fcc refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 318
diff changeset
152
268
5bd4161bf11b removed constness of the observable when emitting a message
am@osimis.io
parents: 267
diff changeset
153 void NotifySliceImageError(const Operation& operation);
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
154
382
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 378
diff changeset
155 void OnGeometryError(const IWebService::HttpRequestErrorMessage& message);
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 378
diff changeset
156
dd4c7e82b4be removed class OrthancApiClient::HttpErrorMessage, redundant with IWebService::HttpRequestErrorMessage
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 378
diff changeset
157 void OnSliceImageError(const IWebService::HttpRequestErrorMessage& message);
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
158
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
159 void ParseSeriesGeometry(const OrthancApiClient::JsonResponseReadyMessage& message);
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
160
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
161 void ParseInstanceGeometry(const OrthancApiClient::JsonResponseReadyMessage& message);
117
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
162
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
163 void ParseFrameGeometry(const OrthancApiClient::JsonResponseReadyMessage& message);
93
5945e81734a3 decoding of JPEG images
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 77
diff changeset
164
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
165 void ParseSliceImagePng(const OrthancApiClient::BinaryResponseReadyMessage& message);
257
9afafb192180 using PAM
am@osimis.io
parents: 252
diff changeset
166
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
167 void ParseSliceImagePam(const OrthancApiClient::BinaryResponseReadyMessage& message);
93
5945e81734a3 decoding of JPEG images
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 77
diff changeset
168
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
169 void ParseSliceImageJpeg(const OrthancApiClient::JsonResponseReadyMessage& message);
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
170
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
171 void ParseSliceRawImage(const OrthancApiClient::BinaryResponseReadyMessage& message);
117
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
172
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
173 void ScheduleSliceImagePng(const Slice& slice,
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
174 size_t index);
257
9afafb192180 using PAM
am@osimis.io
parents: 252
diff changeset
175
9afafb192180 using PAM
am@osimis.io
parents: 252
diff changeset
176 void ScheduleSliceImagePam(const Slice& slice,
9afafb192180 using PAM
am@osimis.io
parents: 252
diff changeset
177 size_t index);
9afafb192180 using PAM
am@osimis.io
parents: 252
diff changeset
178
117
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
179 void ScheduleSliceImageJpeg(const Slice& slice,
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
180 size_t index,
93
5945e81734a3 decoding of JPEG images
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 77
diff changeset
181 SliceImageQuality quality);
120
063f7f3d9f14 fix 3d locations of the doses
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 117
diff changeset
182
063f7f3d9f14 fix 3d locations of the doses
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 117
diff changeset
183 void SortAndFinalizeSlices();
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
184
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
185 public:
251
192e6e349e69 first usage of new message system (in SDL only)
am@osimis.io
parents: 194
diff changeset
186 OrthancSlicesLoader(MessageBroker& broker,
266
c9cf95b49a86 removed OrthancSlicesLoader::ISliceLoaderObserver; now using standard messages instead
am@osimis.io
parents: 262
diff changeset
187 //ISliceLoaderObserver& callback,
300
b4abaeb783b1 messaging refactoring almost complete: works fine in native
am@osimis.io
parents: 299
diff changeset
188 OrthancApiClient& orthancApi);
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190 void ScheduleLoadSeries(const std::string& seriesId);
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
191
117
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
192 void ScheduleLoadInstance(const std::string& instanceId);
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
193
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
194 void ScheduleLoadFrame(const std::string& instanceId,
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
195 unsigned int frame);
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
196
77
f5f54ed8d307 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 73
diff changeset
197 bool IsGeometryReady() const;
f5f54ed8d307 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 73
diff changeset
198
647
6af3099ed8da uncoupling OrthancStone::SlicesSorter from OrthancStone::Slice
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 643
diff changeset
199 size_t GetSlicesCount() const;
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
200
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
201 const Slice& GetSlice(size_t index) const;
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
202
77
f5f54ed8d307 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 73
diff changeset
203 bool LookupSlice(size_t& index,
110
53025eecbc95 renamed SliceGeometry as CoordinateSystem3D
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 99
diff changeset
204 const CoordinateSystem3D& plane) const;
77
f5f54ed8d307 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 73
diff changeset
205
93
5945e81734a3 decoding of JPEG images
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 77
diff changeset
206 void ScheduleLoadSliceImage(size_t index,
117
42c05a3baee3 loading multi-frame instances as 3D volumes
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 110
diff changeset
207 SliceImageQuality requestedQuality);
73
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
208 };
ffa6dded91bd reorganization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
209 }