X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fgdcmvtk%2Fsrc%2FbbgdcmvtkGetXCoherentInfoGdcmReader.cxx;h=25700ecdd80ce3d34c415c07e44265ced2a230d2;hb=8ba18df584ba0a409fb042663be9fa76ccb0e0b0;hp=a094ff7755079e1bac4ebe2a4c10ddce853e38e0;hpb=3915df27234aa815febbb24195c426c1f73f8f91;p=bbtk.git diff --git a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx index a094ff7..25700ec 100644 --- a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx +++ b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx @@ -85,6 +85,33 @@ vtkImageData* GetXCoherentInfoGdcmReader::CreateDefaultImage() #if defined USE_GDCM + +void GetXCoherentInfoGdcmReader::Process2() +{ + printf("EED GetXCoherentInfoGdcmReader::Process >>>>>> \n" ); + GDCM_NAME_SPACE::FileList lstFiles; + int i,size=bbGetInputIn().size(); + for (i=0;iSetFileName( bbGetInputIn()[i] ); + bool res = f->Load(); + if ( res==true ) + { + lstFiles.push_back(f); + } + } // for + sh = GDCM_NAME_SPACE::SerieHelper::New(); + sh->ImagePositionPatientOrdering( &lstFiles ); + size=lstFiles.size(); + for (i=0;iGetFileName().c_str() ); + } // for +} + + void GetXCoherentInfoGdcmReader::Process() { // Read the *first* image file (a SET of file names is given as input) @@ -128,25 +155,45 @@ void GetXCoherentInfoGdcmReader::Process() // } // for i // bbSetOutputIPP(v_ipp ); -// Add *all the files* to the SerieHelper - sh = GDCM_NAME_SPACE::SerieHelper::New(); - std::vector gii = bbGetInputIn(); - for(std::vector::iterator it = gii.begin(); - it != gii.end(); - ++it) - { - sh->AddFileName(*it); - } //for vector - - GDCM_NAME_SPACE::FileList::const_iterator it; - GDCM_NAME_SPACE::FileList *l; - // Should only contain one! - l = sh->GetFirstSingleSerieUIDFileSet(); - if (l==NULL) - { - return; - } +// EED 2023-01-13 + GDCM_NAME_SPACE::FileList lstFiles; + GDCM_NAME_SPACE::FileList *l; + if (bbGetInputRespectSerieUID()==false) + { + int i,size=bbGetInputIn().size(); + for (i=0;iSetFileName( bbGetInputIn()[i] ); + bool res = f->Load(); + if ( res==true ) + { + lstFiles.push_back(f); + } + } // for i + sh = GDCM_NAME_SPACE::SerieHelper::New(); + l = &lstFiles; + sh->ImagePositionPatientOrdering( l ); + } else{ + // Add *all the files* to the SerieHelper + sh = GDCM_NAME_SPACE::SerieHelper::New(); + std::vector gii = bbGetInputIn(); + for(std::vector::iterator it = gii.begin(); + it != gii.end(); + ++it) + { + sh->AddFileName(*it); + } //for vector + GDCM_NAME_SPACE::FileList::const_iterator it; + // Should only contain one! + l = sh->GetFirstSingleSerieUIDFileSet(); + if (l==NULL) + { + return; + } + } // if bbGetInputForceRead + double zspacing = 0.; sh->OrderFileList(l); // this one should compute the *actual* Z Spacing! zspacing = sh->GetZSpacing(); @@ -168,8 +215,11 @@ void GetXCoherentInfoGdcmReader::Process() GDCM_NAME_SPACE::FileList::const_iterator iitt = l->begin(); float px,py,pz; + std::vector lstFileNames; + for ( ; iitt != l->end(); ++iitt) { + lstFileNames.push_back( (*iitt)->GetFileName() ); // EED 2022-12-15 if ( iitt == l->begin() ) // The first ordered element IPP { @@ -185,7 +235,7 @@ void GetXCoherentInfoGdcmReader::Process() v_ipp.push_back( (double)pz ); bbSetOutputIPP(v_ipp ); } // if first elemetn get IPP - + MapInfoDicom mapinfodicom; for (iTag=0; iTag