X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmElValSet.cxx;h=2b5656fe225a6c900cdb5e42cfce8404dde8d7da;hb=0a67200981727adbc1b4f34437b9256010ac8422;hp=57512516d74ae7b19e665605eb53ee9fb69905f0;hpb=70e24c6c61481f9836e26b6b44a9670d92a4f43b;p=gdcm.git diff --git a/src/gdcmElValSet.cxx b/src/gdcmElValSet.cxx index 57512516..2b5656fe 100644 --- a/src/gdcmElValSet.cxx +++ b/src/gdcmElValSet.cxx @@ -1,16 +1,63 @@ -#include "gdcmlib.h" +#include "gdcm.h" +#include "gdcmUtil.h" -int ElValSet::Add(ElValue * newElValue) { +TagElValueHT & ElValSet::GetTagHt(void) { + return tagHt; +} + +void ElValSet::Add(ElValue * newElValue) { tagHt[newElValue->GetKey()] = newElValue; NameHt[newElValue->GetName()] = newElValue; } -int ElValSet::Print(ostream & os) { +void ElValSet::Print(ostream & os) { for (TagElValueHT::iterator tag = tagHt.begin(); tag != tagHt.end(); ++tag){ - os << tag->first << ": ["; - os << tag->second->GetValue() << "] ["; - os << tag->second->GetName() << "]" << endl; + os << tag->first << ": "; + os << "[" << tag->second->GetValue() << "]"; + os << "[" << tag->second->GetName() << "]"; + os << "[" << tag->second->GetVR() << "]" << endl; } } + +void ElValSet::PrintByName(ostream & os) { + for (TagElValueNameHT::iterator tag = NameHt.begin(); + tag != NameHt.end(); + ++tag){ + os << tag->first << ": "; + os << "[" << tag->second->GetValue() << "]"; + os << "[" << tag->second->GetKey() << "]"; + os << "[" << tag->second->GetVR() << "]" << endl; + } +} + +ElValue* ElValSet::GetElement(guint32 group, guint32 element) { + TagKey key = gdcmDictEntry::TranslateToKey(group, element); + if ( ! tagHt.count(key)) + return (ElValue*)0; + if (tagHt.count(key) > 1) + dbg.Verbose(0, "ElValSet::GetElValue", + "multiple entries for this key (FIXME) !"); + return tagHt.find(key)->second; +} + +string ElValSet::GetElValue(guint32 group, guint32 element) { + TagKey key = gdcmDictEntry::TranslateToKey(group, element); + if ( ! tagHt.count(key)) + return "UNFOUND"; + if (tagHt.count(key) > 1) + dbg.Verbose(0, "ElValSet::GetElValue", + "multiple entries for this key (FIXME) !"); + return tagHt.find(key)->second->GetValue(); +} + +string ElValSet::GetElValue(string TagName) { + if ( ! NameHt.count(TagName)) + return "UNFOUND"; + if (NameHt.count(TagName) > 1) + dbg.Verbose(0, "ElValSet::GetElValue", + "multipe entries for this key (FIXME) !"); + return NameHt.find(TagName)->second->GetValue(); +} +