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 GDCMDICTS_H 00015 #define GDCMDICTS_H 00016 00017 #include "gdcmDict.h" 00018 #include "gdcmCSAHeaderDict.h" 00019 00020 #include <string> 00021 00022 namespace gdcm 00023 { 00028 class GDCM_EXPORT Dicts 00029 { 00030 friend std::ostream& operator<<(std::ostream &_os, const Dicts &d); 00031 public: 00032 Dicts(); 00033 ~Dicts(); 00034 00038 // DataSet::GetPrivateCreator 00039 const DictEntry &GetDictEntry(const Tag& tag, const char *owner = NULL) const; 00040 00041 const DictEntry &GetDictEntry(const PrivateTag& tag) const; 00042 00043 //enum PublicTypes { 00044 // DICOMV3_DICT, 00045 // ACRNEMA_DICT, 00046 // NIH_DICT 00047 //}; 00048 const Dict &GetPublicDict() const; 00049 00050 const PrivateDict &GetPrivateDict() const; 00051 PrivateDict &GetPrivateDict(); 00052 00053 const CSAHeaderDict &GetCSAHeaderDict() const; 00054 00055 bool IsEmpty() const { return GetPublicDict().IsEmpty(); } 00056 00057 protected: 00058 typedef enum { 00059 PHILIPS, 00060 GEMS, 00061 SIEMENS 00062 // ... 00063 } ConstructorType; 00064 static const char *GetConstructorString(ConstructorType type); 00065 00066 friend class Global; 00067 void LoadDefaults(); 00068 00069 private: 00070 // Public dict: 00071 Dict PublicDict; 00072 00073 // Private Dicts: 00074 PrivateDict ShadowDict; 00075 00076 CSAHeaderDict CSADict; 00077 Dicts &operator=(const Dicts &_val); // purposely not implemented 00078 Dicts(const Dicts &_val); // purposely not implemented 00079 }; 00080 //----------------------------------------------------------------------------- 00081 inline std::ostream& operator<<(std::ostream &os, const Dicts &d) 00082 { 00083 (void)d; 00084 return os; 00085 } 00086 00087 00088 } // end namespace gdcm 00089 00090 #endif //GDCMDICTS_H