#include #include "gdcm.h" #include "gdcmDocEntry.h" #include "gdcmDicomDir.h" #include "gdcmDicomDirPatient.h" #include "gdcmDirList.h" #include #ifdef GDCM_NO_ANSI_STRING_STREAM # include # define ostringstream ostrstream # else # include #endif #define ostringstream ostrstream #include #include // for Directory pb #ifdef _MSC_VER #include #include #else #include #include #endif #include #include // --- void StartMethod(void *toto) { (void)toto; std::cout<<"Start parsing"< 1) dirName = argv[1]; else dirName = GDCM_DATA_ROOT; dcmdir=new gdcmDicomDir(dirName); std::cout << "---after constructor; Print as a gdcmDocument ------" << std::endl; ((gdcmDocument *)dcmdir)->Print(); std::cout << "---after constructor; Print as a DICOMDIR ------" << std::endl; dcmdir->Print(); dcmdir->SetStartMethod(StartMethod, (void *) NULL); dcmdir->SetEndMethod(EndMethod); std::cout << "---before ParseDirectory------------------" << std::endl; dcmdir->ParseDirectory(); std::cout << "---after ParseDirectory------------------" << std::endl; ListDicomDirPatient lp = dcmdir->GetDicomDirPatients(); if (! lp.size() ) { std::cout << "makeDicomDir: no patient list present. Exiting." << std::endl; return 1; } gdcmDicomDirPatient *p = *(lp.begin()); dcmdir->SetPrintLevel(2); p->Print(); std::cout << "---------------------" << std::endl; dcmdir->SetPrintLevel(-1); dcmdir->Print(); dcmdir->Write("NewDICOMDIR"); std::cout<