Mercurial > hg > orthanc
comparison PalantirServer/PalantirRestApi.cpp @ 42:ea48f38afe5f
access to raw images
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 03 Sep 2012 11:34:00 +0200 |
parents | c1097a676eca |
children | 9be852ad33d2 |
comparison
equal
deleted
inserted
replaced
41:c1097a676eca | 42:ea48f38afe5f |
---|---|
566 } | 566 } |
567 | 567 |
568 | 568 |
569 else if (uri.size() == 3 && | 569 else if (uri.size() == 3 && |
570 uri[0] == "instances" && | 570 uri[0] == "instances" && |
571 uri[2] == "preview") | 571 (uri[2] == "preview" || |
572 uri[2] == "image-uint8" || | |
573 uri[2] == "image-uint16")) | |
572 { | 574 { |
573 std::string uuid; | 575 std::string uuid; |
574 existingResource = index_.GetDicomFile(uuid, uri[1]); | 576 existingResource = index_.GetDicomFile(uuid, uri[1]); |
575 | 577 |
576 if (existingResource) | 578 if (existingResource) |
577 { | 579 { |
578 std::string dicomContent, png; | 580 std::string dicomContent, png; |
579 storage_.ReadFile(dicomContent, uuid); | 581 storage_.ReadFile(dicomContent, uuid); |
580 try | 582 try |
581 { | 583 { |
582 FromDcmtkBridge::ExtractPreviewImage(png, dicomContent); | 584 if (uri[2] == "preview") |
585 { | |
586 FromDcmtkBridge::ExtractPngImage(png, dicomContent, ImageExtractionMode_Preview); | |
587 } | |
588 else if (uri[2] == "image-uint8") | |
589 { | |
590 FromDcmtkBridge::ExtractPngImage(png, dicomContent, ImageExtractionMode_UInt8); | |
591 } | |
592 else if (uri[2] == "image-uint16") | |
593 { | |
594 FromDcmtkBridge::ExtractPngImage(png, dicomContent, ImageExtractionMode_UInt16); | |
595 } | |
596 else | |
597 { | |
598 throw PalantirException(ErrorCode_InternalError); | |
599 } | |
600 | |
583 output.AnswerBufferWithContentType(png, "image/png"); | 601 output.AnswerBufferWithContentType(png, "image/png"); |
584 return; | 602 return; |
585 } | 603 } |
586 catch (PalantirException&) | 604 catch (PalantirException&) |
587 { | 605 { |