+ gdcmAssertMacro (ItTagHT != TagHT.end());
+
+ ++ItTagHT;
+ if (ItTagHT != TagHT.end())
+ return ItTagHT->second;
+ return NULL;
+}
+
+/**
+ * \brief Get the first ValEntry while visiting *the* 'zero level' DocEntrySet
+ * (DocEntries out of any Sequence)
+ * This method is designed for Python users
+ * \return The first ValEntry if found, otherwhise NULL
+ */
+ValEntry *ElementSet::GetFirstValEntry()
+{
+ gdcm::ValEntry *valEntry;
+ gdcm::DocEntry *d = GetFirstEntry();
+ // an other iterator is needed to allow user iterate
+ // at the same time both on DocEntries and ValEntries
+ ItValEntryTagHT = ItTagHT;
+ if ( (valEntry = dynamic_cast<gdcm::ValEntry*>(d)))
+ return valEntry;
+ return GetNextValEntry();
+}
+
+/**
+ * \brief Get the next ValEntry while visiting *the* 'zero level' DocEntrySet
+ * (DocEntries out of any Sequence)
+ * \note : meaningfull only if GetFirstValEntry already called
+ * \return The next ValEntry if found, otherwhise NULL
+ */
+ValEntry *ElementSet::GetNextValEntry()
+{
+ gdcm::ValEntry *valEntry;
+ gdcm::DocEntry *d = ItValEntryTagHT->second;
+ ++ItValEntryTagHT;
+ while( d )