00001 
00002 
00003 #ifndef GDCMDICTSET_H
00004 #define GDCMDICTSET_H
00005 
00006 #include "gdcmDict.h"
00007 #include <map>
00008 #include <list>
00009 
00010 typedef std::string DictKey;
00011 typedef std::map<DictKey, gdcmDict*> DictSetHT;
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 class GDCM_EXPORT gdcmDictSet {
00023 public:
00024         
00025    
00026    
00027    
00028         
00029         
00030         
00031    gdcmDictSet(void);
00032    ~gdcmDictSet(void);
00033 
00034    void Print(std::ostream& os);
00035 
00036    std::list<std::string> *GetPubDictEntryNames(void);
00037    std::map<std::string, std::list<std::string> > *
00038        GetPubDictEntryNamesByCategory(void);
00039 
00040    gdcmDict *LoadDictFromFile(std::string FileName, DictKey Name);
00041 
00042    gdcmDict *GetDict(DictKey DictName);
00043    gdcmDict *GetDefaultPubDict(void);
00044 
00045    gdcmDictEntry *NewVirtualDictEntry(guint16 group, guint16 element,
00046                                       std::string vr     = "Unknown",
00047                                       std::string fourth = "Unknown",
00048                                       std::string name   = "Unknown");
00049 
00050    static std::string BuildDictPath(void);
00051 
00052 protected:
00053    bool AppendDict(gdcmDict *NewDict,DictKey Name);
00054 
00055 private:
00057    DictSetHT Dicts;
00059    std::string DictPath;
00060 
00061    std::map<std::string,gdcmDictEntry *> virtualEntry;
00062 };
00063 
00064 
00065 #endif