+ // Create a new seqEntry if necessary
+ if ( !seqEntry )
+ {
+ seqEntry = NewSeqEntry(group, elem);
+
+ if ( !AddEntry(seqEntry) )
+ {
+ gdcmWarningMacro( "AddEntry failed although this is a creation.");
+
+ delete seqEntry;
+ return NULL;
+ }
+ }
+
+ // TODO : Find a trick to insert a SequenceDelimitationItem
+ // in the SeqEntry, at the end.
+ return seqEntry;
+}
+
+/**
+ * \brief Checks if a given Dicom Element exists within the H table
+ * @param group Group number of the searched Dicom Element
+ * @param elem Element number of the searched Dicom Element
+ * @return true is found
+ */
+bool DocEntrySet::CheckIfEntryExist(uint16_t group, uint16_t elem )
+{
+ return GetDocEntry(group,elem)!=NULL;
+}
+
+/**
+ * \brief Build a new Val Entry from all the low level arguments.
+ * Check for existence of dictionary entry, and build
+ * a default one when absent.
+ * @param group Group number of the new Entry
+ * @param elem Element number of the new Entry
+ * @param vr V(alue) R(epresentation) of the new Entry
+ */
+DataEntry *DocEntrySet::NewDataEntry(uint16_t group,uint16_t elem,
+ VRKey const &vr)
+{
+ DictEntry *dictEntry = GetDictEntry(group, elem, vr);