-/**
- * \brief Searches [both] the public [and the shadow dictionary (when they
- * exist)] for the presence of the DictEntry with given
- * group and element, and create a new virtual DictEntry if necessary
- * @param group group number of the searched DictEntry
- * @param elem element number of the searched DictEntry
- * @param vr V(alue) R(epresentation) to use, if necessary
- * @return Corresponding DictEntry when it exists, NULL otherwise.
- * \remarks The returned DictEntry is registered
- */
-DictEntry *DocEntrySet::GetDictEntry(uint16_t group, uint16_t elem,
- VRKey const &vr)
-{
- DictEntry *dictEntry = GetDictEntry(group,elem);
- DictEntry *goodEntry = dictEntry;
- VRKey goodVR = vr;
- TagName vm;
- if (elem == 0x0000)
- goodVR="UL";
-
- if ( goodEntry )
- {
- if ( goodVR != goodEntry->GetVR()
- && goodVR != GDCM_VRUNKNOWN )
- {
- gdcmWarningMacro("For (" << std::hex << group << "|"
- << elem << "), found VR : [" << vr << "]"
- << " expected: [" << goodEntry->GetVR() << "]" ) ;
- // avoid confusing further validator with "FIXME" VM
- // when possible
- vm = dictEntry->GetVM();
- goodEntry = NULL;
- }
- dictEntry->Unregister();
- }
- else
- {
- vm = "FIXME";
- }
- // Create a new virtual DictEntry if necessary
- if (!goodEntry)
- {
- if (dictEntry)
- {
-
- goodEntry = DictEntry::New(group, elem, goodVR, vm,//"FIXME",
- dictEntry->GetName() );
- }
- else
- {
- goodEntry = DictEntry::New(group, elem, goodVR);
- }
- }
- else
- {
- goodEntry->Register();
- }
- return goodEntry;
-}
-