+/**
+ * \ingroup gdcmDictSet
+ * \brief Loads a dictionary from a specified file, and add it
+ * to already the existing ones contained in this gdcmDictSet.
+ * @param FileName Absolute or relative filename containing the
+ * dictionary to load.
+ * @param Name Symbolic name that be used as identifier of the newly
+ * created dictionary.
+ */
+gdcmDict *gdcmDictSet::LoadDictFromFile(std::string FileName, DictKey Name)
+{
+ gdcmDict *NewDict = new gdcmDict(FileName);
+ AppendDict(NewDict,Name);
+ return(NewDict);
+}
+
+/**
+ * \ingroup gdcmDictSet
+ * \brief Retrieve the specified dictionary (when existing) from this
+ * gdcmDictSet.
+ * @param DictName The symbolic name of the searched dictionary.
+ * \result The retrieved dictionary.
+ */
+gdcmDict *gdcmDictSet::GetDict(DictKey DictName)
+{
+ DictSetHT::iterator dict = Dicts.find(DictName);
+ if(dict!=Dicts.end())
+ return dict->second;
+ return NULL;
+}
+
+/**
+ * \ingroup gdcmDictSet
+ * \brief Retrieve the default reference DICOM V3 public dictionary.
+ * \result The retrieved default dictionary.
+ */
+gdcmDict *gdcmDictSet::GetDefaultPubDict()
+{
+ return GetDict(PUB_DICT_NAME);
+}
+
+/**
+ * \ingroup gdcmDictSet
+ * \brief Create a gdcmDictEntry which will be reference
+ * in no dictionnary
+ * @return virtual entry
+ */
+gdcmDictEntry *gdcmDictSet::NewVirtualDictEntry(guint16 group, guint16 element,
+ std::string vr,std::string fourth,
+ std::string name)
+{
+ gdcmDictEntry *entry;
+ std::string tag=gdcmDictEntry::TranslateToKey(group,element)+"#"+vr+"#"+fourth+"#"+name;
+ std::map<std::string,gdcmDictEntry *>::iterator it;
+
+ it=virtualEntry.find(tag);
+ if(it!=virtualEntry.end())
+ {
+ entry=it->second;
+ }
+ else
+ {
+ entry=new gdcmDictEntry(group,element,vr,fourth,name);
+ virtualEntry[tag]=entry;