Mercurial > hg > orthanc
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>); |