+
+/**
+ * \brief Create a gdcmDictEntry which will be reference
+ * in no dictionnary
+ * @return virtual entry
+ */
+gdcmDictEntry *gdcmDictSet::NewVirtualDictEntry(uint16_t group,
+ uint16_t element,
+ std::string vr,
+ std::string fourth,
+ std::string name)
+{
+ gdcmDictEntry* entry;
+ const 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;
+ }
+
+ return entry;
+}
+
+/**
+ * \brief Obtain from the GDCM_DICT_PATH environnement variable the
+ * path to directory containing the dictionnaries. When
+ * the environnement variable is absent the path is defaulted
+ * to "../Dicts/".
+ * @return path to directory containing the dictionnaries
+ */
+std::string gdcmDictSet::BuildDictPath()
+{
+ std::string resultPath;
+ const char *envPath = 0;
+ envPath = getenv("GDCM_DICT_PATH");
+
+ if (envPath && (strlen(envPath) != 0))
+ {
+ resultPath = envPath;
+ if ( resultPath[resultPath.length()-1] != '/' )
+ {
+ resultPath += '/';
+ }
+ dbg.Verbose(1, "gdcmDictSet::BuildDictPath:",
+ "Dictionary path set from environnement");
+ }
+ else
+ {
+ resultPath = PUB_DICT_PATH;
+ }
+
+ return resultPath;
+}
+
+//-----------------------------------------------------------------------------
+// Protected
+bool gdcmDictSet::AppendDict(gdcmDict *newDict, DictKey const & name)
+{
+ Dicts[name] = newDict;
+
+ return true; //FIXME
+}
+
+//-----------------------------------------------------------------------------
+// Private
+
+//-----------------------------------------------------------------------------
+
+