GDCM
2.2.3
|
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 GDCMFILEEXPLICITFILTER_H 00015 #define GDCMFILEEXPLICITFILTER_H 00016 00017 #include "gdcmFile.h" 00018 00019 namespace gdcm 00020 { 00021 class Dicts; 00022 00038 class GDCM_EXPORT FileExplicitFilter 00039 { 00040 public: 00041 FileExplicitFilter():F(new File),ChangePrivateTags(false),UseVRUN(true),RecomputeItemLength(false),RecomputeSequenceLength(false) {} 00042 ~FileExplicitFilter() {} 00043 00045 void SetChangePrivateTags(bool b) { ChangePrivateTags = b;} 00046 00048 void SetUseVRUN(bool b) { UseVRUN = b; } 00049 00051 void SetRecomputeItemLength(bool b); 00052 void SetRecomputeSequenceLength(bool b); 00053 00055 00057 bool Change(); 00058 00060 void SetFile(const File& f) { F = f; } 00061 File &GetFile() { return *F; } 00062 00063 protected: 00064 bool ProcessDataSet(DataSet &ds, Dicts const & dicts); 00065 bool ChangeFMI(); 00066 00067 private: 00068 SmartPointer<File> F; 00069 bool ChangePrivateTags; 00070 bool UseVRUN; 00071 bool RecomputeItemLength; 00072 bool RecomputeSequenceLength; 00073 }; 00074 00075 00076 } // end namespace gdcm 00077 00078 #endif //GDCMFILEEXPLICITFILTER_H