- // instead of ReplaceOrCreateByNumber
- // that is a method of Document :-(
- ValEntry* entry = 0;
- TagKey key = DictEntry::TranslateToKey(group, element);
-
- if ( ! PtagHT->count(key))
- {
- // we assume a Public Dictionnary *is* loaded
- Dict *pubDict = Global::GetDicts()->GetDefaultPubDict();
- // if the invoked (group,elem) doesn't exist inside the Dictionary
- // we create a VirtualDictEntry
- DictEntry *dictEntry = pubDict->GetDictEntryByNumber(group, element);
- if (dictEntry == NULL)
- {
- dictEntry =
- Global::GetDicts()->NewVirtualDictEntry(group, element,
- "UN", "??", "??");
- }
- // we assume the constructor didn't fail
- entry = new ValEntry(dictEntry);
- /// \todo
- /// ----
- /// better we don't assume too much !
- /// SQItem is now used to describe any DICOMDIR related object
- }
- else
- {
- DocEntry* foundEntry = PtagHT->find(key)->second;
- entry = dynamic_cast<ValEntry*>(foundEntry);
- if (!entry)
- {
- dbg.Verbose(0, "SQItem::SetEntryByNumber: docEntries"
- " contains non ValEntry occurences");
- }
- }
- if (entry)
- {
- entry->SetValue(val);
- }
- entry->SetLength(val.length());
- DocEntries.insert(i,entry);
-