-/// \todo FIXME : to go on compiling
-///
-/// to be re written !
-/// int offset = 0;
-/// ListTag::iterator it;
-/// uint16_t gr, el;
-/// std::string vr;
-/// for(it=listEntries.begin();it!=listEntries.end();++it) {
-/// gr = (*it)->GetGroup();
-/// el = (*it)->GetElement();
-/// vr = (*it)->GetVR();
-/// if (gr !=0xfffe) {
-/// if ( (vr == "OB") || (vr == "OW") || (vr == "SQ") ) {
-/// offset += 4; // explicit VR AND OB, OW, SQ : 4 more bytes
-/// }
-/// offset += 2 + 2 + 4 + (*it)->GetLength();
-/// } else {
-/// offset += 4; // delimiters don't have a value.
-/// }
-/// }
-/// //bool res=SetEntryLengthByNumber(offset, 0x0004, 0x1220); // Hope there is no dupps.
-/// SetEntryLengthByNumber(offset, 0x0004, 0x1220); // Hope there is no dupps.
-/// return;
-///
+/**
+ * \brief Get the next entry while visiting the DicomDirPatients
+ * \return The next DicomDirPatient if found, otherwhise NULL
+ */
+DicomDirPatient *DicomDir::GetNextEntry()
+{
+ if (ItDicomDirPatient != Patients.end())
+ {
+ DicomDirPatient *tmp = *ItDicomDirPatient;
+ ++ItDicomDirPatient;
+ return tmp;
+ }
+ else
+ {
+ return NULL;
+ }