+ pa = f->GetNextPatient();
+ }
+ break;
+
+ case 3:
+ std::cout << std::endl << std::endl
+ << " = PATIENT/STUDY/SERIE List =================================="
+ << std::endl<< std::endl;
+
+ pa = f->GetFirstPatient();
+ while ( pa ) // on degouline les PATIENT de ce DICOMDIR
+ {
+ // Patient's Name, Patient ID
+ std::cout << "Pat.Name:[" << pa->GetEntryString(0x0010, 0x0010) <<"]"; // Patient's Name
+ std::cout << " Pat.ID:[";
+ std::cout << pa->GetEntryString(0x0010, 0x0020) << "]" << std::endl; // Patient ID
+
+ st = pa->GetFirstStudy();
+ while ( st )
+ { // on degouline les STUDY de ce patient
+ std::cout << "--- Stud.descr:[" << st->GetEntryString(0x0008, 0x1030) << "]"; // Study Description
+ std::cout << " Stud.ID:[" << st->GetEntryString(0x0020, 0x0010) << "]"; // Study ID
+ std::cout << " Stud.Inst.UID:[" << st->GetEntryString(0x0020, 0x000d) << "]"; // Study Instance UID
+ std::cout << std::endl;
+
+ se = st->GetFirstSerie();
+ while ( se )
+ { // on degouline les SERIES de cette study
+ std::cout << "--- --- Ser.Descr:["<< se->GetEntryString(0x0008, 0x103e)<< "]"; // Series Description
+ std::cout << " Ser.nb:[" << se->GetEntryString(0x0020, 0x0011); // Series number
+ std::cout << "] Mod.:[" << se->GetEntryString(0x0008, 0x0060) << "]"; // Modality
+ std::cout << " Serie Inst.UID.:[" << se->GetEntryString(0x0020, 0x000e) << "]"; // Series Instance UID
+ std::cout << std::endl;
+ se = st->GetNextSerie();
+ }
+
+ vs = st->GetFirstVisit();
+ while ( vs )
+ { // on degouline les VISIT de cette study
+ std::cout << "--- --- VISIT: ";
+ std::cout << " Ref. File ID :[" << vs->GetEntryString(0x0004, 0x1500) << "]"; // Referenced File ID
+ std::cout << " Inst.Name:[" << vs->GetEntryString(0x0008,0x0080) << "]"; // Institution Name
+ std::cout << " Adm.ID:[" << vs->GetEntryString(0x0038, 0x0010) << "]"; // Admission ID
+ std::cout << " Adm. date:[" << vs->GetEntryString(0x0038, 0x0020) << "]"; // Admitting Date
+ std::cout << std::endl;
+ vs = st->GetNextVisit();
+ }
+
+ st = pa->GetNextStudy();
+ }
+ pa = f->GetNextPatient();
+ }
+ break;
+
+ case 4:
+ std::cout << std::endl << std::endl
+ << " = PATIENT/STUDY/SERIE/IMAGE List ============================"
+ << std::endl<< std::endl;
+
+ pa = f->GetFirstPatient();
+ while ( pa )
+ { // les PATIENT de ce DICOMDIR
+ // Patient's Name, Patient ID
+ std::cout << "Pat.Name:[" << pa->GetEntryString(0x0010, 0x0010) <<"]"; // Patient's Name
+ std::cout << " Pat.ID:[";
+ std::cout << pa->GetEntryString(0x0010, 0x0020) << "]" << std::endl; // Patient ID
+
+ st = pa->GetFirstStudy();
+ while ( st )
+ { // on degouline les STUDY de ce patient
+ std::cout << "--- Stud.descr:[" << st->GetEntryString(0x0008, 0x1030) << "]"; // Study Description
+ std::cout << " Stud.ID:[" << st->GetEntryString(0x0020, 0x0010) << "]"; // Study ID
+ std::cout << " Stud.Inst.UID:[" << st->GetEntryString(0x0020, 0x000d) << "]"; // Study Instance UID
+ std::cout << std::endl;
+
+ vs = st->GetFirstVisit();
+ while ( vs )
+ { // on degouline les VISIT de cette study
+ std::cout << "--- --- VISIT: ";
+ std::cout << " Ref. File ID :[" << vs->GetEntryString(0x0004, 0x1500) << "]"; // Referenced File ID
+ std::cout << " Inst.Name:[" << vs->GetEntryString(0x0008,0x0080) << "]"; // Institution Name
+ std::cout << " Adm.ID:[" << vs->GetEntryString(0x0038, 0x0010) << "]"; // Admission ID
+ std::cout << " Adm. date:[" << vs->GetEntryString(0x0038, 0x0020) << "]"; // Admitting Date
+ std::cout << std::endl;
+ vs = st->GetNextVisit();
+ }
+
+ se = st->GetFirstSerie();
+ while ( se )
+ { // on degouline les SERIES de cette study
+ std::cout << "--- --- Ser.Descr:["<< se->GetEntryString(0x0008, 0x103e) << "]"; // Series Description
+ std::cout << " Ser.nb:[" << se->GetEntryString(0x0020, 0x0011) << "]"; // Series number
+ std::cout << " Mod.:[" << se->GetEntryString(0x0008, 0x0060) << "]"; // Modality
+ std::cout << " Serie Inst.UID.:[" << se->GetEntryString(0x0020, 0x000e) << "]"; // Series Instance UID
+ std::cout << std::endl;
+
+ im = se->GetFirstImage();
+ while ( im )
+ { // on degouline les Images de cette serie
+ std::cout << "--- --- --- "<< " IMAGE Ref. File ID :[" << im->GetEntryString(0x0004, 0x1500)
+ << "]" << std::endl; // File name (Referenced File ID)
+ im = se->GetNextImage();
+ }