+ for (TagDocEntryHT::const_iterator i = TagHT.begin();
+ i != TagHT.end();
+ ++i)
+ {
+ // depending on the gdcm::Document type
+ // (gdcm::File; gdcm::DicomDir, (more to come ?)
+ // some groups *cannot* be present.
+ // We hereby protect gdcm for writting stupid things
+ // if they were found in the original document.
+ if ( !MayIWrite( (i->second)->GetGroup() ) )
+ continue;
+
+ // Skip 'Group Length' element, since it may be wrong.
+ // except for Group 0x0002
+ // ( keep it as well for Group 0x0008 of ACR Files,
+ // since some ACR readers *need* it )
+
+ if ( (i->second)->GetElement() != 0x0000
+ ||
+ ( (i->second)->GetGroup() == 0x0002
+ ||( (filetype == ACR || filetype == ACR_LIBIDO ) && (i->second)->GetGroup() == 0x0008 ) )
+ )
+ {
+ i->second->WriteContent(fp, filetype);
+ }
+ }
+}
+
+/**
+ * \brief add a new Dicom Element pointer to the H Table
+ * @param newEntry entry to add
+ */
+bool ElementSet::AddEntry(DocEntry *newEntry)
+{
+ const TagKey &key = newEntry->GetKey();
+
+ if ( TagHT.count(key) == 1 )