Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi.cpp @ 215:c07170f3f4f7
refactoring of access to images in REST
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 29 Nov 2012 11:25:29 +0100 |
parents | 03817919169b |
children | e5d5d4a9a326 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi.cpp Thu Nov 29 11:11:53 2012 +0100 +++ b/OrthancServer/OrthancRestApi.cpp Thu Nov 29 11:25:29 2012 +0100 @@ -372,83 +372,6 @@ } } - - // Get the DICOM or the JSON file of one instance --------------------------- - - else if (uri[0] == "instances" && - ((uri.size() == 3 && - (uri[2] == "preview" || - uri[2] == "image-uint8" || - uri[2] == "image-uint16")) || - (uri.size() == 5 && - uri[2] == "frames" && - (uri[4] == "preview" || - uri[4] == "image-uint8" || - uri[4] == "image-uint16")))) - { - std::string uuid; - CompressionType compressionType; - existingResource = index_.GetFile(uuid, compressionType, uri[1], AttachedFileType_Dicom); - - std::string action = uri[2]; - - unsigned int frame = 0; - if (existingResource && - uri.size() == 5) - { - // Access to multi-frame image - action = uri[4]; - try - { - frame = boost::lexical_cast<unsigned int>(uri[3]); - } - catch (boost::bad_lexical_cast) - { - existingResource = false; - } - } - - if (existingResource) - { - std::string dicomContent, png; - storage_.ReadFile(dicomContent, uuid); - try - { - if (action == "preview") - { - FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, ImageExtractionMode_Preview); - } - else if (action == "image-uint8") - { - FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, ImageExtractionMode_UInt8); - } - else if (action == "image-uint16") - { - FromDcmtkBridge::ExtractPngImage(png, dicomContent, frame, ImageExtractionMode_UInt16); - } - else - { - throw OrthancException(ErrorCode_InternalError); - } - - output.AnswerBufferWithContentType(png, "image/png"); - return; - } - catch (OrthancException&) - { - std::string root = ""; - for (size_t i = 1; i < uri.size(); i++) - { - root += "../"; - } - - output.Redirect(root + "app/images/unsupported.png"); - return; - } - } - } - - // DICOM bridge ------------------------------------------------------------- if ((uri.size() == 2 ||