Mercurial > hg > orthanc
comparison OrthancServer/OrthancRestApi2.cpp @ 224:4eb0c7ce86c9
refactoring for store
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 29 Nov 2012 22:22:00 +0100 |
parents | 0200cd330582 |
children | 03aa59ecf6d8 |
comparison
equal
deleted
inserted
replaced
223:6f0e4a8ebb0f | 224:4eb0c7ce86c9 |
---|---|
43 #include <boost/lexical_cast.hpp> | 43 #include <boost/lexical_cast.hpp> |
44 #include <glog/logging.h> | 44 #include <glog/logging.h> |
45 | 45 |
46 | 46 |
47 #define RETRIEVE_CONTEXT(call) \ | 47 #define RETRIEVE_CONTEXT(call) \ |
48 OrthancRestApi2& context = dynamic_cast<OrthancRestApi2&>(call.GetContext()) | 48 ServerContext& context = dynamic_cast<OrthancRestApi2&>(call.GetContext()).GetContext() |
49 | 49 |
50 | 50 |
51 namespace Orthanc | 51 namespace Orthanc |
52 { | 52 { |
53 // System information ------------------------------------------------------- | 53 // System information ------------------------------------------------------- |
256 FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, mode); | 256 FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, mode); |
257 call.GetOutput().AnswerBuffer(png, "image/png"); | 257 call.GetOutput().AnswerBuffer(png, "image/png"); |
258 } | 258 } |
259 catch (OrthancException& e) | 259 catch (OrthancException& e) |
260 { | 260 { |
261 if (e.GetErrorCode() == ErrorCode_NotImplemented) | 261 //if (e.GetErrorCode() == ErrorCode_NotImplemented) |
262 { | 262 { |
263 std::string root = ""; | 263 std::string root = ""; |
264 for (size_t i = 1; i < call.GetFullUri().size(); i++) | 264 for (size_t i = 1; i < call.GetFullUri().size(); i++) |
265 { | 265 { |
266 root += "../"; | 266 root += "../"; |
307 FromDcmtkBridge::ToJson(dicomJson, *dicomFile.getDataset()); | 307 FromDcmtkBridge::ToJson(dicomJson, *dicomFile.getDataset()); |
308 | 308 |
309 StoreStatus status = StoreStatus_Failure; | 309 StoreStatus status = StoreStatus_Failure; |
310 if (postData.size() > 0) | 310 if (postData.size() > 0) |
311 { | 311 { |
312 status = context.GetIndex().Store | 312 status = context.Store |
313 (context.GetFileStorage(), reinterpret_cast<const char*>(&postData[0]), | 313 (reinterpret_cast<const char*>(&postData[0]), |
314 postData.size(), dicomSummary, dicomJson, ""); | 314 postData.size(), dicomSummary, dicomJson, ""); |
315 } | 315 } |
316 | 316 |
317 Json::Value result = Json::objectValue; | 317 Json::Value result = Json::objectValue; |
318 | 318 |
329 | 329 |
330 // DICOM bridge ------------------------------------------------------------- | 330 // DICOM bridge ------------------------------------------------------------- |
331 | 331 |
332 static void ListModalities(RestApi::GetCall& call) | 332 static void ListModalities(RestApi::GetCall& call) |
333 { | 333 { |
334 RETRIEVE_CONTEXT(call); | 334 const OrthancRestApi2::Modalities& m = |
335 dynamic_cast<OrthancRestApi2&>(call.GetContext()).GetModalities(); | |
335 | 336 |
336 Json::Value result = Json::arrayValue; | 337 Json::Value result = Json::arrayValue; |
337 | 338 |
338 for (OrthancRestApi2::Modalities::const_iterator | 339 for (OrthancRestApi2::Modalities::const_iterator |
339 it = context.GetModalities().begin(); | 340 it = m.begin(); it != m.end(); it++) |
340 it != context.GetModalities().end(); it++) | |
341 { | 341 { |
342 result.append(*it); | 342 result.append(*it); |
343 } | 343 } |
344 | 344 |
345 call.GetOutput().AnswerJson(result); | 345 call.GetOutput().AnswerJson(result); |
347 | 347 |
348 | 348 |
349 | 349 |
350 // Registration of the various REST handlers -------------------------------- | 350 // Registration of the various REST handlers -------------------------------- |
351 | 351 |
352 OrthancRestApi2::OrthancRestApi2(ServerIndex& index, | 352 OrthancRestApi2::OrthancRestApi2(ServerContext& context) : |
353 const std::string& path) : | 353 context_(context) |
354 index_(index), | |
355 storage_(path) | |
356 { | 354 { |
357 GetListOfDicomModalities(modalities_); | 355 GetListOfDicomModalities(modalities_); |
358 | 356 |
359 Register("/", ServeRoot); | 357 Register("/", ServeRoot); |
360 Register("/system", GetSystemInformation); | 358 Register("/system", GetSystemInformation); |