Mercurial > hg > orthanc-stone
diff Framework/Oracle/ParseDicomFileCommand.h @ 1110:b82b74d13830 broker
ParseDicomFileCommand
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 31 Oct 2019 15:05:46 +0100 |
parents | |
children | 3730956f41a5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Framework/Oracle/ParseDicomFileCommand.h Thu Oct 31 15:05:46 2019 +0100 @@ -0,0 +1,92 @@ +/** + * Stone of Orthanc + * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics + * Department, University Hospital of Liege, Belgium + * Copyright (C) 2017-2019 Osimis S.A., Belgium + * + * This program is free software: you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + **/ + + +#pragma once + +#if !defined(ORTHANC_ENABLE_DCMTK) +# error The macro ORTHANC_ENABLE_DCMTK must be defined +#endif + +#if ORTHANC_ENABLE_DCMTK != 1 +# error Support for DCMTK must be enabled to use ParseDicomFileCommand +#endif + +#include "../Messages/IMessage.h" +#include "OracleCommandWithPayload.h" + +#include <Core/DicomParsing/ParsedDicomFile.h> + +#include <dcmtk/dcmdata/dcfilefo.h> + +namespace OrthancStone +{ + class ParseDicomFileCommand : public OracleCommandWithPayload + { + public: + class SuccessMessage : public OriginMessage<ParseDicomFileCommand> + { + ORTHANC_STONE_MESSAGE(__FILE__, __LINE__); + + private: + std::auto_ptr<Orthanc::ParsedDicomFile> dicom_; + + public: + SuccessMessage(const ParseDicomFileCommand& command, + DcmFileFormat& content); + + const Orthanc::ParsedDicomFile& GetDicom() const + { + return *dicom_; + } + }; + + private: + std::string path_; + bool pixelDataIncluded_; + + public: + ParseDicomFileCommand(const std::string& path) : + path_(path), + pixelDataIncluded_(true) + { + } + + virtual Type GetType() const + { + return Type_ParseDicomFile; + } + + const std::string& GetPath() const + { + return path_; + } + + bool IsPixelDataIncluded() const + { + return pixelDataIncluded_; + } + + void SetPixelDataIncluded(bool included) + { + pixelDataIncluded_ = included; + } + }; +}