GDCM
2.0.18
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 00005 Copyright (c) 2006-2011 Mathieu Malaterre 00006 All rights reserved. 00007 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00014 #ifndef GDCMFILEDERIVATION_H 00015 #define GDCMFILEDERIVATION_H 00016 00017 #include "gdcmFile.h" 00018 00019 namespace gdcm 00020 { 00021 00022 class FileDerivationInternals; 00023 class DataSet; 00039 class GDCM_EXPORT FileDerivation 00040 { 00041 public: 00042 FileDerivation(); 00043 ~FileDerivation(); 00044 00049 bool AddReference(const char *referencedsopclassuid, const char *referencedsopinstanceuid); 00050 00051 // CID 7202 Source Image Purposes of Reference 00052 // {"DCM",121320,"Uncompressed predecessor"}, 00053 00055 void SetPurposeOfReferenceCodeSequenceCodeValue(unsigned int codevalue); 00056 00057 // CID 7203 Image Derivation 00058 // { "DCM",113040,"Lossy Compression" }, 00059 00061 void SetDerivationCodeSequenceCodeValue(unsigned int codevalue); 00062 00064 void SetDerivationDescription( const char *dd ); 00065 00067 bool Derive(); 00068 00070 void SetFile(const File& f) { F = f; } 00071 File &GetFile() { return *F; } 00072 const File &GetFile() const { return *F; } 00073 00074 protected: 00075 bool AddDerivationDescription(); 00076 bool AddSourceImageSequence(); 00077 bool AddPurposeOfReferenceCodeSequence(DataSet &ds); 00078 00079 private: 00080 SmartPointer<File> F; 00081 FileDerivationInternals *Internals; 00082 }; 00083 00091 } // end namespace gdcm 00092 00093 #endif //GDCMFILEDERIVATION_H