Mercurial > hg > orthanc-stone
comparison Applications/Samples/SimpleViewer/SimpleViewerApplication.cpp @ 726:4f2416d519b4
moving layers, widgets and loaders to Deprecated namespace
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 21 May 2019 11:43:25 +0200 |
parents | 79bb0a02d1cc |
children | bcd3ea868bcd |
comparison
equal
deleted
inserted
replaced
714:d2c0e347ddc2 | 726:4f2416d519b4 |
---|---|
31 | 31 |
32 namespace SimpleViewer | 32 namespace SimpleViewer |
33 { | 33 { |
34 | 34 |
35 void SimpleViewerApplication::Initialize(StoneApplicationContext* context, | 35 void SimpleViewerApplication::Initialize(StoneApplicationContext* context, |
36 IStatusBar& statusBar, | 36 Deprecated::IStatusBar& statusBar, |
37 const boost::program_options::variables_map& parameters) | 37 const boost::program_options::variables_map& parameters) |
38 { | 38 { |
39 using namespace OrthancStone; | |
40 | |
41 context_ = context; | 39 context_ = context; |
42 statusBar_ = &statusBar; | 40 statusBar_ = &statusBar; |
43 | 41 |
44 {// initialize viewports and layout | 42 {// initialize viewports and layout |
45 mainLayout_ = new LayoutWidget("main-layout"); | 43 mainLayout_ = new Deprecated::LayoutWidget("main-layout"); |
46 mainLayout_->SetPadding(10); | 44 mainLayout_->SetPadding(10); |
47 mainLayout_->SetBackgroundCleared(true); | 45 mainLayout_->SetBackgroundCleared(true); |
48 mainLayout_->SetBackgroundColor(0, 0, 0); | 46 mainLayout_->SetBackgroundColor(0, 0, 0); |
49 mainLayout_->SetHorizontal(); | 47 mainLayout_->SetHorizontal(); |
50 | 48 |
51 thumbnailsLayout_ = new LayoutWidget("thumbnail-layout"); | 49 thumbnailsLayout_ = new Deprecated::LayoutWidget("thumbnail-layout"); |
52 thumbnailsLayout_->SetPadding(10); | 50 thumbnailsLayout_->SetPadding(10); |
53 thumbnailsLayout_->SetBackgroundCleared(true); | 51 thumbnailsLayout_->SetBackgroundCleared(true); |
54 thumbnailsLayout_->SetBackgroundColor(50, 50, 50); | 52 thumbnailsLayout_->SetBackgroundColor(50, 50, 50); |
55 thumbnailsLayout_->SetVertical(); | 53 thumbnailsLayout_->SetVertical(); |
56 | 54 |
57 mainWidget_ = new SliceViewerWidget(IObserver::GetBroker(), "main-viewport"); | 55 mainWidget_ = new Deprecated::SliceViewerWidget(IObserver::GetBroker(), "main-viewport"); |
58 //mainWidget_->RegisterObserver(*this); | 56 //mainWidget_->RegisterObserver(*this); |
59 | 57 |
60 // hierarchy | 58 // hierarchy |
61 mainLayout_->AddWidget(thumbnailsLayout_); | 59 mainLayout_->AddWidget(thumbnailsLayout_); |
62 mainLayout_->AddWidget(mainWidget_); | 60 mainLayout_->AddWidget(mainWidget_); |
63 | 61 |
64 // sources | 62 // sources |
65 smartLoader_.reset(new SmartLoader(IObserver::GetBroker(), context->GetOrthancApiClient())); | 63 smartLoader_.reset(new Deprecated::SmartLoader(IObserver::GetBroker(), context->GetOrthancApiClient())); |
66 smartLoader_->SetImageQuality(SliceImageQuality_FullPam); | 64 smartLoader_->SetImageQuality(SliceImageQuality_FullPam); |
67 | 65 |
68 mainLayout_->SetTransmitMouseOver(true); | 66 mainLayout_->SetTransmitMouseOver(true); |
69 mainWidgetInteractor_.reset(new MainWidgetInteractor(*this)); | 67 mainWidgetInteractor_.reset(new MainWidgetInteractor(*this)); |
70 mainWidget_->SetInteractor(*mainWidgetInteractor_); | 68 mainWidget_->SetInteractor(*mainWidgetInteractor_); |
76 | 74 |
77 | 75 |
78 if (parameters.count("studyId") < 1) | 76 if (parameters.count("studyId") < 1) |
79 { | 77 { |
80 LOG(WARNING) << "The study ID is missing, will take the first studyId found in Orthanc"; | 78 LOG(WARNING) << "The study ID is missing, will take the first studyId found in Orthanc"; |
81 context->GetOrthancApiClient().GetJsonAsync("/studies", new Callable<SimpleViewerApplication, OrthancApiClient::JsonResponseReadyMessage>(*this, &SimpleViewerApplication::OnStudyListReceived)); | 79 context->GetOrthancApiClient().GetJsonAsync("/studies", new Callable<SimpleViewerApplication, Deprecated::OrthancApiClient::JsonResponseReadyMessage>(*this, &SimpleViewerApplication::OnStudyListReceived)); |
82 } | 80 } |
83 else | 81 else |
84 { | 82 { |
85 SelectStudy(parameters["studyId"].as<std::string>()); | 83 SelectStudy(parameters["studyId"].as<std::string>()); |
86 } | 84 } |
96 ; | 94 ; |
97 | 95 |
98 options.add(generic); | 96 options.add(generic); |
99 } | 97 } |
100 | 98 |
101 void SimpleViewerApplication::OnStudyListReceived(const OrthancApiClient::JsonResponseReadyMessage& message) | 99 void SimpleViewerApplication::OnStudyListReceived(const Deprecated::OrthancApiClient::JsonResponseReadyMessage& message) |
102 { | 100 { |
103 const Json::Value& response = message.GetJson(); | 101 const Json::Value& response = message.GetJson(); |
104 | 102 |
105 if (response.isArray() && | 103 if (response.isArray() && |
106 response.size() >= 1) | 104 response.size() >= 1) |
107 { | 105 { |
108 SelectStudy(response[0].asString()); | 106 SelectStudy(response[0].asString()); |
109 } | 107 } |
110 } | 108 } |
111 void SimpleViewerApplication::OnStudyReceived(const OrthancApiClient::JsonResponseReadyMessage& message) | 109 void SimpleViewerApplication::OnStudyReceived(const Deprecated::OrthancApiClient::JsonResponseReadyMessage& message) |
112 { | 110 { |
113 const Json::Value& response = message.GetJson(); | 111 const Json::Value& response = message.GetJson(); |
114 | 112 |
115 if (response.isObject() && response["Series"].isArray()) | 113 if (response.isObject() && response["Series"].isArray()) |
116 { | 114 { |
117 for (size_t i=0; i < response["Series"].size(); i++) | 115 for (size_t i=0; i < response["Series"].size(); i++) |
118 { | 116 { |
119 context_->GetOrthancApiClient().GetJsonAsync("/series/" + response["Series"][(int)i].asString(), new Callable<SimpleViewerApplication, OrthancApiClient::JsonResponseReadyMessage>(*this, &SimpleViewerApplication::OnSeriesReceived)); | 117 context_->GetOrthancApiClient().GetJsonAsync("/series/" + response["Series"][(int)i].asString(), new Callable<SimpleViewerApplication, Deprecated::OrthancApiClient::JsonResponseReadyMessage>(*this, &SimpleViewerApplication::OnSeriesReceived)); |
120 } | 118 } |
121 } | 119 } |
122 } | 120 } |
123 | 121 |
124 void SimpleViewerApplication::OnSeriesReceived(const OrthancApiClient::JsonResponseReadyMessage& message) | 122 void SimpleViewerApplication::OnSeriesReceived(const Deprecated::OrthancApiClient::JsonResponseReadyMessage& message) |
125 { | 123 { |
126 const Json::Value& response = message.GetJson(); | 124 const Json::Value& response = message.GetJson(); |
127 | 125 |
128 if (response.isObject() && | 126 if (response.isObject() && |
129 response["Instances"].isArray() && | 127 response["Instances"].isArray() && |
152 | 150 |
153 void SimpleViewerApplication::LoadThumbnailForSeries(const std::string& seriesId, const std::string& instanceId) | 151 void SimpleViewerApplication::LoadThumbnailForSeries(const std::string& seriesId, const std::string& instanceId) |
154 { | 152 { |
155 LOG(INFO) << "Loading thumbnail for series " << seriesId; | 153 LOG(INFO) << "Loading thumbnail for series " << seriesId; |
156 | 154 |
157 SliceViewerWidget* thumbnailWidget = | 155 Deprecated::SliceViewerWidget* thumbnailWidget = |
158 new SliceViewerWidget(IObserver::GetBroker(), "thumbnail-series-" + seriesId); | 156 new Deprecated::SliceViewerWidget(IObserver::GetBroker(), "thumbnail-series-" + seriesId); |
159 thumbnails_.push_back(thumbnailWidget); | 157 thumbnails_.push_back(thumbnailWidget); |
160 thumbnailsLayout_->AddWidget(thumbnailWidget); | 158 thumbnailsLayout_->AddWidget(thumbnailWidget); |
161 | 159 |
162 thumbnailWidget->RegisterObserverCallback( | 160 thumbnailWidget->RegisterObserverCallback( |
163 new Callable<SimpleViewerApplication, SliceViewerWidget::GeometryChangedMessage> | 161 new Callable<SimpleViewerApplication, Deprecated::SliceViewerWidget::GeometryChangedMessage> |
164 (*this, &SimpleViewerApplication::OnWidgetGeometryChanged)); | 162 (*this, &SimpleViewerApplication::OnWidgetGeometryChanged)); |
165 | 163 |
166 smartLoader_->SetFrameInWidget(*thumbnailWidget, 0, instanceId, 0); | 164 smartLoader_->SetFrameInWidget(*thumbnailWidget, 0, instanceId, 0); |
167 thumbnailWidget->SetInteractor(*thumbnailInteractor_); | 165 thumbnailWidget->SetInteractor(*thumbnailInteractor_); |
168 } | 166 } |
169 | 167 |
170 void SimpleViewerApplication::SelectStudy(const std::string& studyId) | 168 void SimpleViewerApplication::SelectStudy(const std::string& studyId) |
171 { | 169 { |
172 context_->GetOrthancApiClient().GetJsonAsync("/studies/" + studyId, new Callable<SimpleViewerApplication, OrthancApiClient::JsonResponseReadyMessage>(*this, &SimpleViewerApplication::OnStudyReceived)); | 170 context_->GetOrthancApiClient().GetJsonAsync("/studies/" + studyId, new Callable<SimpleViewerApplication, Deprecated::OrthancApiClient::JsonResponseReadyMessage>(*this, &SimpleViewerApplication::OnStudyReceived)); |
173 } | 171 } |
174 | 172 |
175 void SimpleViewerApplication::OnWidgetGeometryChanged(const SliceViewerWidget::GeometryChangedMessage& message) | 173 void SimpleViewerApplication::OnWidgetGeometryChanged(const Deprecated::SliceViewerWidget::GeometryChangedMessage& message) |
176 { | 174 { |
177 // TODO: The "const_cast" could probably be replaced by "mainWidget_" | 175 // TODO: The "const_cast" could probably be replaced by "mainWidget_" |
178 const_cast<SliceViewerWidget&>(message.GetOrigin()).FitContent(); | 176 const_cast<Deprecated::SliceViewerWidget&>(message.GetOrigin()).FitContent(); |
179 } | 177 } |
180 | 178 |
181 void SimpleViewerApplication::SelectSeriesInMainViewport(const std::string& seriesId) | 179 void SimpleViewerApplication::SelectSeriesInMainViewport(const std::string& seriesId) |
182 { | 180 { |
183 smartLoader_->SetFrameInWidget(*mainWidget_, 0, instancesIdsPerSeriesId_[seriesId][0], 0); | 181 smartLoader_->SetFrameInWidget(*mainWidget_, 0, instancesIdsPerSeriesId_[seriesId][0], 0); |