- else
- {
- // Remove precedent value transformation
- (*it)->SetDictEntry(NewVirtualDictEntry((*it)->GetGroup(),(*it)->GetElement(),vr));
- }
- }
-*/
-}
-
-/**
- * \brief Searches within the Header Entries for a Dicom Element of
- * a given tag.
- * @param tagName name of the searched Dicom Element.
- * @return Corresponding Dicom Element when it exists, and NULL
- * otherwise.
- */
- gdcmDocEntry *gdcmDocument::GetDocEntryByName(std::string tagName) {
- gdcmDictEntry *dictEntry = RefPubDict->GetDictEntryByName(tagName);
- if( dictEntry == NULL)
- return NULL;
-
- return(GetDocEntryByNumber(dictEntry->GetGroup(),dictEntry->GetElement()));
-}
-
-/**
- * \brief retrieves a Dicom Element (the first one) using (group, element)
- * \warning (group, element) IS NOT an identifier inside the Dicom Header
- * if you think it's NOT UNIQUE, check the count number
- * and use iterators to retrieve ALL the Dicoms Elements within
- * a given couple (group, element)
- * @param group Group number of the searched Dicom Element
- * @param element Element number of the searched Dicom Element
- * @return
- */
-gdcmDocEntry* gdcmDocument::GetDocEntryByNumber(guint16 group, guint16 element)
-{
- TagKey key = gdcmDictEntry::TranslateToKey(group, element);
- if ( ! tagHT.count(key))
- return NULL;
- return tagHT.find(key)->second;
-}
-
-/**
- * \brief Same as \ref gdcmDocument::GetDocEntryByNumber except it only
- * returns a result when the corresponding entry is of type
- * ValEntry.
- * @return When present, the corresponding ValEntry.
- */
-gdcmValEntry* gdcmDocument::GetValEntryByNumber(guint16 group, guint16 element)
-{
- gdcmDocEntry* CurrentEntry = GetDocEntryByNumber(group, element);
- if (! CurrentEntry)
- return (gdcmValEntry*)0;
- if ( gdcmValEntry* ValEntry = dynamic_cast<gdcmValEntry*>(CurrentEntry) )
- {
- return ValEntry;
- }
- dbg.Verbose(0, "gdcmDocument::GetValEntryByNumber: unfound ValEntry.");
- return (gdcmValEntry*)0;
-}
-
-/**
- * \brief Loads the element while preserving the current
- * underlying file position indicator as opposed to
- * to LoadDocEntry that modifies it.
- * @param entry Header Entry whose value shall be loaded.
- * @return
- */
-void gdcmDocument::LoadDocEntrySafe(gdcmDocEntry * entry) {
- long PositionOnEntry = ftell(fp);
- LoadDocEntry(entry);
- fseek(fp, PositionOnEntry, SEEK_SET);
-}
-
-/**
- * \brief Swaps back the bytes of 4-byte long integer accordingly to
- * processor order.
- * @return The properly swaped 32 bits integer.
- */
-guint32 gdcmDocument::SwapLong(guint32 a) {
- switch (sw) {
- case 0 :
- break;
- case 4321 :
- a=( ((a<<24) & 0xff000000) | ((a<<8) & 0x00ff0000) |
- ((a>>8) & 0x0000ff00) | ((a>>24) & 0x000000ff) );
- break;
-
- case 3412 :
- a=( ((a<<16) & 0xffff0000) | ((a>>16) & 0x0000ffff) );
- break;
-
- case 2143 :
- a=( ((a<<8) & 0xff00ff00) | ((a>>8) & 0x00ff00ff) );