comparison Framework/Toolbox/OrthancApiClient.cpp @ 417:aee3d7941c9b

preparing to load images using DICOMweb
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 15 Nov 2018 17:28:15 +0100
parents 939f626eb6d7
children c23df8b3433b
comparison
equal deleted inserted replaced
415:c0589c3173fd 417:aee3d7941c9b
166 } 166 }
167 }; 167 };
168 168
169 169
170 OrthancApiClient::OrthancApiClient(MessageBroker& broker, 170 OrthancApiClient::OrthancApiClient(MessageBroker& broker,
171 IWebService& orthanc) : 171 IWebService& web,
172 const std::string& baseUrl) :
172 IObservable(broker), 173 IObservable(broker),
173 IObserver(broker), 174 IObserver(broker),
174 orthanc_(orthanc) 175 web_(web),
176 baseUrl_(baseUrl)
175 { 177 {
176 } 178 }
177 179
178 180
179 void OrthancApiClient::GetJsonAsync( 181 void OrthancApiClient::GetJsonAsync(
180 const std::string& uri, 182 const std::string& uri,
181 MessageHandler<JsonResponseReadyMessage>* successCallback, 183 MessageHandler<JsonResponseReadyMessage>* successCallback,
182 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, 184 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback,
183 Orthanc::IDynamicObject* payload) 185 Orthanc::IDynamicObject* payload)
184 { 186 {
185 orthanc_.GetAsync(uri, IWebService::Headers(), 187 web_.GetAsync(baseUrl_ + uri,
186 new WebServicePayload(successCallback, failureCallback, payload), 188 IWebService::HttpHeaders(),
187 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage> 189 new WebServicePayload(successCallback, failureCallback, payload),
188 (*this, &OrthancApiClient::NotifyHttpSuccess), 190 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage>
189 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage> 191 (*this, &OrthancApiClient::NotifyHttpSuccess),
190 (*this, &OrthancApiClient::NotifyHttpError)); 192 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage>
193 (*this, &OrthancApiClient::NotifyHttpError));
191 } 194 }
192 195
193 196
194 void OrthancApiClient::GetBinaryAsync( 197 void OrthancApiClient::GetBinaryAsync(
195 const std::string& uri, 198 const std::string& uri,
196 const std::string& contentType, 199 const std::string& contentType,
197 MessageHandler<BinaryResponseReadyMessage>* successCallback, 200 MessageHandler<BinaryResponseReadyMessage>* successCallback,
198 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, 201 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback,
199 Orthanc::IDynamicObject* payload) 202 Orthanc::IDynamicObject* payload)
200 { 203 {
201 IWebService::Headers headers; 204 IWebService::HttpHeaders headers;
202 headers["Accept"] = contentType; 205 headers["Accept"] = contentType;
203 GetBinaryAsync(uri, headers, successCallback, failureCallback, payload); 206 GetBinaryAsync(uri, headers, successCallback, failureCallback, payload);
204 } 207 }
205 208
206 209
207 void OrthancApiClient::GetBinaryAsync( 210 void OrthancApiClient::GetBinaryAsync(
208 const std::string& uri, 211 const std::string& uri,
209 const IWebService::Headers& headers, 212 const IWebService::HttpHeaders& headers,
210 MessageHandler<BinaryResponseReadyMessage>* successCallback, 213 MessageHandler<BinaryResponseReadyMessage>* successCallback,
211 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, 214 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback,
212 Orthanc::IDynamicObject* payload) 215 Orthanc::IDynamicObject* payload)
213 { 216 {
214 orthanc_.GetAsync(uri, headers, 217 web_.GetAsync(baseUrl_ + uri, headers,
215 new WebServicePayload(successCallback, failureCallback, payload), 218 new WebServicePayload(successCallback, failureCallback, payload),
216 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage> 219 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage>
217 (*this, &OrthancApiClient::NotifyHttpSuccess), 220 (*this, &OrthancApiClient::NotifyHttpSuccess),
218 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage> 221 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage>
219 (*this, &OrthancApiClient::NotifyHttpError)); 222 (*this, &OrthancApiClient::NotifyHttpError));
220 } 223 }
221 224
222 225
223 void OrthancApiClient::PostBinaryAsyncExpectJson( 226 void OrthancApiClient::PostBinaryAsyncExpectJson(
224 const std::string& uri, 227 const std::string& uri,
225 const std::string& body, 228 const std::string& body,
226 MessageHandler<JsonResponseReadyMessage>* successCallback, 229 MessageHandler<JsonResponseReadyMessage>* successCallback,
227 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, 230 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback,
228 Orthanc::IDynamicObject* payload) 231 Orthanc::IDynamicObject* payload)
229 { 232 {
230 orthanc_.PostAsync(uri, IWebService::Headers(), body, 233 web_.PostAsync(baseUrl_ + uri, IWebService::HttpHeaders(), body,
231 new WebServicePayload(successCallback, failureCallback, payload), 234 new WebServicePayload(successCallback, failureCallback, payload),
232 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage> 235 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage>
233 (*this, &OrthancApiClient::NotifyHttpSuccess), 236 (*this, &OrthancApiClient::NotifyHttpSuccess),
234 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage> 237 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage>
235 (*this, &OrthancApiClient::NotifyHttpError)); 238 (*this, &OrthancApiClient::NotifyHttpError));
236 239
237 } 240 }
238 241
239 242
240 void OrthancApiClient::PostJsonAsyncExpectJson( 243 void OrthancApiClient::PostJsonAsyncExpectJson(
254 const std::string& uri, 257 const std::string& uri,
255 MessageHandler<EmptyResponseReadyMessage>* successCallback, 258 MessageHandler<EmptyResponseReadyMessage>* successCallback,
256 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback, 259 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallback,
257 Orthanc::IDynamicObject* payload) 260 Orthanc::IDynamicObject* payload)
258 { 261 {
259 orthanc_.DeleteAsync(uri, IWebService::Headers(), 262 web_.DeleteAsync(baseUrl_ + uri, IWebService::HttpHeaders(),
260 new WebServicePayload(successCallback, failureCallback, payload), 263 new WebServicePayload(successCallback, failureCallback, payload),
261 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage> 264 new Callable<OrthancApiClient, IWebService::HttpRequestSuccessMessage>
262 (*this, &OrthancApiClient::NotifyHttpSuccess), 265 (*this, &OrthancApiClient::NotifyHttpSuccess),
263 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage> 266 new Callable<OrthancApiClient, IWebService::HttpRequestErrorMessage>
264 (*this, &OrthancApiClient::NotifyHttpError)); 267 (*this, &OrthancApiClient::NotifyHttpError));
265 } 268 }
266 269
267 270
268 void OrthancApiClient::NotifyHttpSuccess(const IWebService::HttpRequestSuccessMessage& message) 271 void OrthancApiClient::NotifyHttpSuccess(const IWebService::HttpRequestSuccessMessage& message)
269 { 272 {