X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDictSet.cxx;h=b7c522efd8a795497c370b7b638c46540ddf016b;hb=050bc3675d4398683fbf8259073d0a078ee6baec;hp=60f837e298c41d289f098b02b1fbd7c8f43244c5;hpb=95e43356511d138225d8f718f632b3e7a8fcc106;p=gdcm.git diff --git a/src/gdcmDictSet.cxx b/src/gdcmDictSet.cxx index 60f837e2..b7c522ef 100644 --- a/src/gdcmDictSet.cxx +++ b/src/gdcmDictSet.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDictSet.cxx,v $ Language: C++ - Date: $Date: 2005/02/05 01:37:08 $ - Version: $Revision: 1.60 $ + Date: $Date: 2005/06/14 14:00:04 $ + Version: $Revision: 1.63 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -56,7 +56,7 @@ DictSet::~DictSet() Dicts.clear(); // Remove virtual dictionary entries - VirtualEntry.clear(); + VirtualEntries.clear(); } //----------------------------------------------------------------------------- @@ -95,33 +95,44 @@ Dict *DictSet::GetDict(DictKey const &dictName) } /** - * \brief Create a DictEntry which will be referenced - * in no dictionary + * \brief Create a DictEntry which will be referenced in no dictionary + * @param group Group number of the Entry + * @param elem Element number of the Entry + * @param vr Value Representation of the Entry + * @param vm Value Multiplicity of the Entry + * @param name English name of the Entry * @return virtual entry */ DictEntry *DictSet::NewVirtualDictEntry( uint16_t group, - uint16_t element, + uint16_t elem, TagName vr, TagName vm, TagName name) { DictEntry *entry; - const std::string tag = DictEntry::TranslateToKey(group,element) - + "#" + vr + "#" + vm + "#" + name; + + // Let's follow 'Purify' advice + // + // const std::string tag = DictEntry::TranslateToKey(group,elem) + // + "#" + vr + "#" + vm + "#" + name; + char res[10]; + sprintf(res,"%04x|%04x", group, elem); + std::string tag = res; + tag += "#" + vr + "#" + vm + "#" + name; + TagKeyHT::iterator it; - it = VirtualEntry.find(tag); - if(it != VirtualEntry.end()) + it = VirtualEntries.find(tag); + if(it != VirtualEntries.end()) { entry = &(it->second); } else { - DictEntry ent(group, element, vr, vm, name); - VirtualEntry.insert( - std::map::value_type - (tag, ent)); - entry = &(VirtualEntry.find(tag)->second); + DictEntry ent(group, elem, vr, vm, name); + VirtualEntries.insert( + std::map::value_type(tag, ent) ); + entry = &(VirtualEntries.find(tag)->second); } return entry; @@ -164,22 +175,22 @@ Dict *DictSet::GetNextEntry() std::string DictSet::BuildDictPath() { std::string resultPath; - const char *envPath = 0; + const char *envPath; envPath = getenv("GDCM_DICT_PATH"); if (envPath && (strlen(envPath) != 0)) { resultPath = envPath; - if ( resultPath[resultPath.length()-1] != '/' ) - { - resultPath += '/'; - } gdcmWarningMacro( "Dictionary path set from environnement"); } else { resultPath = PUB_DICT_PATH; } + if ( resultPath[resultPath.length()-1] != '/' ) + { + resultPath += '/'; + } return resultPath; }