Mercurial > hg > orthanc
diff Core/DicomParsing/ParsedDicomFile.cpp @ 2908:9d277f8ad698
new enumeration: MimeType
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 30 Oct 2018 16:16:07 +0100 |
parents | ae20fccdd867 |
children | 83133583183d |
line wrap: on
line diff
--- a/Core/DicomParsing/ParsedDicomFile.cpp Tue Oct 30 13:53:29 2018 +0100 +++ b/Core/DicomParsing/ParsedDicomFile.cpp Tue Oct 30 16:16:07 2018 +0100 @@ -258,7 +258,7 @@ virtual std::string GetContentType() { - return ""; + return EnumerationToString(MimeType_Binary); } virtual uint64_t GetContentLength() @@ -362,14 +362,14 @@ { if (pixelItem->getLength() == 0) { - output.AnswerBuffer(NULL, 0, MIME_BINARY); + output.AnswerBuffer(NULL, 0, MimeType_Binary); return true; } Uint8* buffer = NULL; if (pixelItem->getUint8Array(buffer).good() && buffer) { - output.AnswerBuffer(buffer, pixelItem->getLength(), MIME_BINARY); + output.AnswerBuffer(buffer, pixelItem->getLength(), MimeType_Binary); return true; } } @@ -825,7 +825,7 @@ std::string serialized; if (FromDcmtkBridge::SaveToMemoryBuffer(serialized, *pimpl_->file_->getDataset())) { - output.AnswerBuffer(serialized, MIME_BINARY); + output.AnswerBuffer(serialized, MimeType_Binary); } } #endif @@ -1064,44 +1064,46 @@ bool ParsedDicomFile::EmbedContentInternal(const std::string& dataUriScheme) { - std::string mime, content; - if (!Toolbox::DecodeDataUriScheme(mime, content, dataUriScheme)) + std::string mimeString, content; + if (!Toolbox::DecodeDataUriScheme(mimeString, content, dataUriScheme)) { return false; } - Toolbox::ToLowerCase(mime); + Toolbox::ToLowerCase(mimeString); + MimeType mime = StringToMimeType(mimeString); - if (mime == MIME_PNG) + switch (mime) { + case MimeType_Png: #if ORTHANC_ENABLE_PNG == 1 - EmbedImage(mime, content); -#else - LOG(ERROR) << "Orthanc was compiled without support of PNG"; - throw OrthancException(ErrorCode_NotImplemented); -#endif - } - else if (mime == MIME_JPEG) - { -#if ORTHANC_ENABLE_JPEG == 1 - EmbedImage(mime, content); + EmbedImage(mime, content); + break; #else - LOG(ERROR) << "Orthanc was compiled without support of JPEG"; - throw OrthancException(ErrorCode_NotImplemented); + LOG(ERROR) << "Orthanc was compiled without support of PNG"; + throw OrthancException(ErrorCode_NotImplemented); +#endif + + case MimeType_Jpeg: +#if ORTHANC_ENABLE_JPEG == 1 + EmbedImage(mime, content); + break; +#else + LOG(ERROR) << "Orthanc was compiled without support of JPEG"; + throw OrthancException(ErrorCode_NotImplemented); #endif - } - else if (mime == MIME_PAM) - { - EmbedImage(mime, content); - } - else if (mime == MIME_PDF) - { - EmbedPdf(content); - } - else - { - LOG(ERROR) << "Unsupported MIME type for the content of a new DICOM file: " << mime; - throw OrthancException(ErrorCode_NotImplemented); + + case MimeType_Pam: + EmbedImage(mime, content); + break; + + case MimeType_Pdf: + EmbedPdf(content); + break; + + default: + LOG(ERROR) << "Unsupported MIME type for the content of a new DICOM file: " << mime; + throw OrthancException(ErrorCode_NotImplemented); } return true; @@ -1117,38 +1119,42 @@ } - void ParsedDicomFile::EmbedImage(const std::string& mime, + void ParsedDicomFile::EmbedImage(MimeType mime, const std::string& content) { -#if ORTHANC_ENABLE_JPEG == 1 - if (mime == MIME_JPEG) + switch (mime) { - JpegReader reader; - reader.ReadFromMemory(content); - EmbedImage(reader); - return; - } + +#if ORTHANC_ENABLE_JPEG == 1 + case MimeType_Jpeg: + { + JpegReader reader; + reader.ReadFromMemory(content); + EmbedImage(reader); + break; + } #endif #if ORTHANC_ENABLE_PNG == 1 - if (mime == MIME_PNG) - { - PngReader reader; - reader.ReadFromMemory(content); - EmbedImage(reader); - return; - } + case MimeType_Png: + { + PngReader reader; + reader.ReadFromMemory(content); + EmbedImage(reader); + break; + } #endif - if (mime == MIME_PAM) - { - PamReader reader; - reader.ReadFromMemory(content); - EmbedImage(reader); - } - else - { - throw OrthancException(ErrorCode_NotImplemented); + case MimeType_Pam: + { + PamReader reader; + reader.ReadFromMemory(content); + EmbedImage(reader); + break; + } + + default: + throw OrthancException(ErrorCode_NotImplemented); } } @@ -1471,7 +1477,7 @@ void ParsedDicomFile::GetRawFrame(std::string& target, - std::string& mime, + MimeType& mime, unsigned int frameId) { if (pimpl_->frameIndex_.get() == NULL) @@ -1485,16 +1491,16 @@ switch (transferSyntax) { case EXS_JPEGProcess1: - mime = MIME_JPEG; + mime = MimeType_Jpeg; break; case EXS_JPEG2000LosslessOnly: case EXS_JPEG2000: - mime = MIME_JPEG2000; + mime = MimeType_Jpeg2000; break; default: - mime = MIME_BINARY; + mime = MimeType_Binary; break; } }