X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDictEntry.cxx;h=1e135cb65dae7045e178320209bfad79d0e3628b;hb=af94ab6719e309d3dd9730d5656057c429106938;hp=5bcacb34fbe1960b1d907bdef4eec08229a56372;hpb=70e24c6c61481f9836e26b6b44a9670d92a4f43b;p=gdcm.git diff --git a/src/gdcmDictEntry.cxx b/src/gdcmDictEntry.cxx index 5bcacb34..1e135cb6 100644 --- a/src/gdcmDictEntry.cxx +++ b/src/gdcmDictEntry.cxx @@ -1,14 +1,29 @@ -#include "gdcmlib.h" +// gdcmDictEntry.cxx + +//This is needed when compiling in debug mode +#ifdef _MSC_VER +// 'identifier' : class 'type' needs to have dll-interface to be used by +// clients of class 'type2' +#pragma warning ( disable : 4251 ) +// 'identifier' : identifier was truncated to 'number' characters in the +// debug information +#pragma warning ( disable : 4786 ) +#endif //_MSC_VER + +#include // FIXME For sprintf +#include "gdcmDictEntry.h" +#include "gdcmUtil.h" + gdcmDictEntry::gdcmDictEntry(guint16 InGroup, guint16 InElement, - string InVr, string InFourth, string InName) -{ - group = InGroup; - element = InElement; - vr = InVr; - fourth = InFourth; - name = InName; - key = TranslateToKey(group, element); + std::string InVr, std::string InFourth, + std::string InName) { + group = InGroup; + element = InElement; + vr = InVr; + fourth = InFourth; + name = InName; + key = TranslateToKey(group, element); } TagKey gdcmDictEntry::TranslateToKey(guint16 group, guint16 element) { @@ -21,3 +36,23 @@ TagKey gdcmDictEntry::TranslateToKey(guint16 group, guint16 element) { key = trash; // Convertion through assignement return key; } + +/** + * \ingroup gdcmDictEntry + * \brief If-and only if-the vr is unset then overwrite it. + * @param NewVr New vr to be set. + */ +void gdcmDictEntry::SetVR(std::string NewVr) { + if ( IsVrUnknown() ) + vr = NewVr; + else { + dbg.Error(true, "gdcmDictEntry::SetVR", + "Overwriting vr might compromise a dictionary"); + } +} + +bool gdcmDictEntry::IsVrUnknown() { + if ( vr == "Unknown" ) + return true; + return false; +}