Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1826:ac5b0b4e2434
refactoring of DicomImageDecoder
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 25 Nov 2015 16:00:57 +0100 |
parents | b530c3dfe2a6 |
children | 3ae2ff249675 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Wed Nov 25 14:24:26 2015 +0100 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Wed Nov 25 16:00:57 2015 +0100 @@ -410,7 +410,12 @@ try { - DicomImageDecoder decoder; // TODO plugins +#if ORTHANC_PLUGINS_ENABLED == 1 + IDicomImageDecoder& decoder = context.GetPlugins(); +#else + DicomImageDecoder decoder; // This is Orthanc's built-in decoder +#endif + ImageToEncode image(decoder, dicom, frame, mode); HttpContentNegociation negociation; @@ -463,15 +468,17 @@ std::string dicomContent; context.ReadFile(dicomContent, publicId, FileContentType_Dicom); +#if ORTHANC_PLUGINS_ENABLED == 1 + IDicomImageDecoder& decoder = context.GetPlugins(); +#else + DicomImageDecoder decoder; // This is Orthanc's built-in decoder +#endif + ParsedDicomFile dicom(dicomContent); - ImageBuffer buffer; - DicomImageDecoder decoder; // TODO plugin - dicom.ExtractImage(buffer, decoder, frame); - - ImageAccessor accessor(buffer.GetConstAccessor()); + std::auto_ptr<ImageAccessor> decoded(dicom.ExtractImage(decoder, frame)); std::string result; - accessor.ToMatlabString(result); + decoded->ToMatlabString(result); call.GetOutput().AnswerBuffer(result, "text/plain"); }