Mercurial > hg > orthanc
diff OrthancServer/FromDcmtkBridge.cpp @ 1935:e251606c1433
FromDcmtkBridge::LoadFromMemoryBuffer
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 24 Mar 2016 11:46:41 +0100 |
parents | 72a2fd7fed8b |
children | dba0db0a94b4 |
line wrap: on
line diff
--- a/OrthancServer/FromDcmtkBridge.cpp Tue Mar 22 15:11:53 2016 +0100 +++ b/OrthancServer/FromDcmtkBridge.cpp Thu Mar 24 11:46:41 2016 +0100 @@ -56,6 +56,7 @@ #include <dcmtk/dcmdata/dcostrmb.h> #include <dcmtk/dcmdata/dcpixel.h> #include <dcmtk/dcmdata/dcuid.h> +#include <dcmtk/dcmdata/dcistrmb.h> #include <dcmtk/dcmdata/dcvrae.h> #include <dcmtk/dcmdata/dcvras.h> @@ -1705,4 +1706,29 @@ return result.release(); } + + + DcmFileFormat* FromDcmtkBridge::LoadFromMemoryBuffer(const void* buffer, + size_t size) + { + DcmInputBufferStream is; + if (size > 0) + { + is.setBuffer(buffer, size); + } + is.setEos(); + + std::auto_ptr<DcmFileFormat> result(new DcmFileFormat); + + result->transferInit(); + if (!result->read(is).good()) + { + throw OrthancException(ErrorCode_BadFileFormat); + } + + result->loadAllDataIntoMemory(); + result->transferEnd(); + + return result.release(); + } }