comparison OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1924:6c73df12ca51

New URI: "/instances/.../frames/.../raw" to access the raw frames (bypass image decoding)
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 07 Mar 2016 17:43:20 +0100
parents d7c1cb559431
children cda5b0ab4ce5
comparison
equal deleted inserted replaced
1923:6ac7f31fc543 1924:6c73df12ca51
464 call.GetOutput().AnswerBuffer(result, "text/plain"); 464 call.GetOutput().AnswerBuffer(result, "text/plain");
465 } 465 }
466 466
467 467
468 468
469 static void GetRawFrame(RestApiGetCall& call)
470 {
471 ServerContext& context = OrthancRestApi::GetContext(call);
472
473 std::string frameId = call.GetUriComponent("frame", "0");
474
475 unsigned int frame;
476 try
477 {
478 frame = boost::lexical_cast<unsigned int>(frameId);
479 }
480 catch (boost::bad_lexical_cast)
481 {
482 return;
483 }
484
485 std::string publicId = call.GetUriComponent("id", "");
486 std::string raw, mime;
487
488 {
489 ServerContext::DicomCacheLocker locker(OrthancRestApi::GetContext(call), publicId);
490 locker.GetDicom().GetRawFrame(raw, mime, frame);
491 }
492
493 call.GetOutput().AnswerBuffer(raw, mime);
494 }
495
496
497
469 static void GetResourceStatistics(RestApiGetCall& call) 498 static void GetResourceStatistics(RestApiGetCall& call)
470 { 499 {
471 std::string publicId = call.GetUriComponent("id", ""); 500 std::string publicId = call.GetUriComponent("id", "");
472 Json::Value result; 501 Json::Value result;
473 OrthancRestApi::GetIndex(call).GetStatistics(result, publicId); 502 OrthancRestApi::GetIndex(call).GetStatistics(result, publicId);
1326 Register("/instances/{id}/frames/{frame}/preview", GetImage<ImageExtractionMode_Preview>); 1355 Register("/instances/{id}/frames/{frame}/preview", GetImage<ImageExtractionMode_Preview>);
1327 Register("/instances/{id}/frames/{frame}/image-uint8", GetImage<ImageExtractionMode_UInt8>); 1356 Register("/instances/{id}/frames/{frame}/image-uint8", GetImage<ImageExtractionMode_UInt8>);
1328 Register("/instances/{id}/frames/{frame}/image-uint16", GetImage<ImageExtractionMode_UInt16>); 1357 Register("/instances/{id}/frames/{frame}/image-uint16", GetImage<ImageExtractionMode_UInt16>);
1329 Register("/instances/{id}/frames/{frame}/image-int16", GetImage<ImageExtractionMode_Int16>); 1358 Register("/instances/{id}/frames/{frame}/image-int16", GetImage<ImageExtractionMode_Int16>);
1330 Register("/instances/{id}/frames/{frame}/matlab", GetMatlabImage); 1359 Register("/instances/{id}/frames/{frame}/matlab", GetMatlabImage);
1360 Register("/instances/{id}/frames/{frame}/raw", GetRawFrame);
1331 Register("/instances/{id}/pdf", ExtractPdf); 1361 Register("/instances/{id}/pdf", ExtractPdf);
1332 Register("/instances/{id}/preview", GetImage<ImageExtractionMode_Preview>); 1362 Register("/instances/{id}/preview", GetImage<ImageExtractionMode_Preview>);
1333 Register("/instances/{id}/image-uint8", GetImage<ImageExtractionMode_UInt8>); 1363 Register("/instances/{id}/image-uint8", GetImage<ImageExtractionMode_UInt8>);
1334 Register("/instances/{id}/image-uint16", GetImage<ImageExtractionMode_UInt16>); 1364 Register("/instances/{id}/image-uint16", GetImage<ImageExtractionMode_UInt16>);
1335 Register("/instances/{id}/image-int16", GetImage<ImageExtractionMode_Int16>); 1365 Register("/instances/{id}/image-int16", GetImage<ImageExtractionMode_Int16>);