X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fgdcmvtk%2Fsrc%2FbbgdcmvtkGetXCoherentInfoGdcmReader.cxx;h=a094ff7755079e1bac4ebe2a4c10ddce853e38e0;hb=3915df27234aa815febbb24195c426c1f73f8f91;hp=c8a1e470c8a6035085b7266dc94e837dcfe08742;hpb=9e8c95c96acaea8851733d20090bf6de7eed1269;p=bbtk.git diff --git a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx index c8a1e47..a094ff7 100644 --- a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx +++ b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx @@ -117,21 +117,20 @@ void GetXCoherentInfoGdcmReader::Process() v_iop.push_back(iop[i]); } // for i bbSetOutputIOP(v_iop ); - - std::vector v_ipp; - float ipp[3]; - f->GetImagePositionPatient(ipp); - - for(i=0; i< 3; i++) - { - v_ipp.push_back(ipp[i]); - } // for i - bbSetOutputIPP(v_ipp ); + +// EED 2022-12-15 +// std::vector v_ipp; +// float ipp[3]; +// f->GetImagePositionPatient(ipp); +// for(i=0; i< 3; i++) +// { +// v_ipp.push_back(ipp[i]); +// } // 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) @@ -141,10 +140,8 @@ void GetXCoherentInfoGdcmReader::Process() GDCM_NAME_SPACE::FileList::const_iterator it; GDCM_NAME_SPACE::FileList *l; - // Should only contain one! l = sh->GetFirstSingleSerieUIDFileSet(); - if (l==NULL) { return; @@ -169,10 +166,26 @@ void GetXCoherentInfoGdcmReader::Process() std::string strTagValue; // read on disc int iTag,sizeDicomTagsVector=bbGetInputDicomTags().size(); GDCM_NAME_SPACE::FileList::const_iterator iitt = l->begin(); - //iitt ++; - - for ( ; iitt != l->end(); ++iitt) + float px,py,pz; + + for ( ; iitt != l->end(); ++iitt) { + // EED 2022-12-15 + if ( iitt == l->begin() ) // The first ordered element IPP + { + group = 0; + elem = 0; + strTagValue = std::string("void"); + sscanf("D0020_0032","D%04hx_%04hx",&group,&elem); + strTagValue = (*iitt)->GetEntryString(group,elem); + sscanf(strTagValue.c_str(),"%f\\%f\\%f\\%f", &px , &py , &pz); + std::vector v_ipp; + v_ipp.push_back( (double)px ); + v_ipp.push_back( (double)py ); + v_ipp.push_back( (double)pz ); + bbSetOutputIPP(v_ipp ); + } // if first elemetn get IPP + MapInfoDicom mapinfodicom; for (iTag=0; iTagGetEntryString(group,elem); mapinfodicom.insert ( std::pair(key,strTagValue) ); } // for iTag - vectormapinfodicom.push_back( mapinfodicom ); } // for iitt bbSetOutputDicomInfo( vectormapinfodicom ); @@ -213,7 +225,7 @@ void GetXCoherentInfoGdcmReader::Process() #if defined USE_GDCM2 void GetXCoherentInfoGdcmReader::Process() { - printf("GetXCoherentInfoGdcmReader %d files.\n", bbGetInputIn().size() ); +// printf("GetXCoherentInfoGdcmReader %d files.\n", bbGetInputIn().size() ); // Read the *first* image file (a SET of file names is given as input) gdcm::Reader *read = new gdcm::Reader(); reader->SetFileName( bbGetInputIn()[0].c_str() );