GDCM 2.0.17
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 Module: $URL$ 00005 00006 Copyright (c) 2006-2010 Mathieu Malaterre 00007 All rights reserved. 00008 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 #ifndef GDCMFILEEXPLICITFILTER_H 00016 #define GDCMFILEEXPLICITFILTER_H 00017 00018 #include "gdcmFile.h" 00019 00020 namespace gdcm 00021 { 00022 class Dicts; 00023 00039 class GDCM_EXPORT FileExplicitFilter 00040 { 00041 public: 00042 FileExplicitFilter():F(new File),ChangePrivateTags(false),UseVRUN(true),RecomputeItemLength(false),RecomputeSequenceLength(false) {} 00043 ~FileExplicitFilter() {} 00044 00046 void SetChangePrivateTags(bool b) { ChangePrivateTags = b;} 00047 00049 void SetUseVRUN(bool b) { UseVRUN = b; } 00050 00052 void SetRecomputeItemLength(bool b); 00053 void SetRecomputeSequenceLength(bool b); 00054 00056 00058 bool Change(); 00059 00061 void SetFile(const File& f) { F = f; } 00062 File &GetFile() { return *F; } 00063 00064 protected: 00065 bool ProcessDataSet(DataSet &ds, Dicts const & dicts); 00066 bool ChangeFMI(); 00067 00068 private: 00069 SmartPointer<File> F; 00070 bool ChangePrivateTags; 00071 bool UseVRUN; 00072 bool RecomputeItemLength; 00073 bool RecomputeSequenceLength; 00074 }; 00075 00076 00077 } // end namespace gdcm 00078 00079 #endif //GDCMFILEEXPLICITFILTER_H