Program: gdcm
Module: $RCSfile: exSerieHelper.cxx,v $
Language: C++
- Date: $Date: 2007/05/23 14:18:05 $
- Version: $Revision: 1.8 $
+ Date: $Date: 2007/10/01 09:33:20 $
+ Version: $Revision: 1.14 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
=========================================================================*/
#include "gdcmSerieHelper.h"
#include "gdcmFile.h"
+#include "gdcmDirList.h" // for FileList
#include "gdcmDebug.h"
#include <iostream>
std::cout << "Dir Name :[" << dirName << "]" << std::endl;
+ //
+ // Sometimes using only SerieHelper is not enought !
+ // See also exXcoherentFileSet
+ //
s = GDCM_NAME_SPACE::SerieHelper::New();
s->SetLoadMode(GDCM_NAME_SPACE::LD_ALL); // Load everything for each File
std::cout << " ---------------------------------------- Finish printing (1)"
<< std::endl;
+
+ GDCM_NAME_SPACE::FileList::const_iterator it;
+ GDCM_NAME_SPACE::FileList *l;
+ std::cout << " ---------------------------------------- Recap"
+ << std::endl;
+ l = s->GetFirstSingleSerieUIDFileSet();
+ while (l)
+ {
+ it = l->begin();
+ std::cout << "SerieUID [" << (*it)->GetEntryString(0x0020,0x000e) <<"] Serie Description ["
+ << (*it)->GetEntryString(0x0008,0x103e) << "] "
+ << " : " << l->size() << " files" << std::endl;
+ l = s->GetNextSingleSerieUIDFileSet();
+ }
+ std::cout << " ----------------------------------------End Recap"
+ << std::endl;
+
int nbFiles;
+ double zspacing = 0.;
// For all the Single SerieUID Files Sets of the GDCM_NAME_SPACE::Serie
- GDCM_NAME_SPACE::FileList *l = s->GetFirstSingleSerieUIDFileSet();
+ l = s->GetFirstSingleSerieUIDFileSet();
while (l)
{
nbFiles = l->size() ;
- if ( l->size() > 3 ) // Why not ? Just an example, for testing
+ if ( l->size() > 5 ) // Why not ? Just an example, for testing
{
- std::cout << "Sort list : " << nbFiles << " long" << std::endl;
- s->OrderFileList(l); // sort the list
+ std::cout << "Sort list : " << nbFiles << " long" << std::endl;
+
+ //---------------------------------------------------------
+ s->OrderFileList(l); // sort the list (and compute ZSpacing !)
+ //---------------------------------------------------------
+
+ zspacing = s->GetZSpacing();
+ // Just to show : GetZSpacing from a GDCM_NAME_SPACE::SerieHelper is right
+ std::cout << "GetZSpacing() of sorted SingleSerieUIDFileSet "
+ << "from GDCM_NAME_SPACE::SerieHelper: " << zspacing << std::endl;
+ std::cout << " ('-1' means all the files have the same position)" << std::endl;
+ for (std::vector<GDCM_NAME_SPACE::File* >::iterator it2 = l->begin();
+ it2 != l->end();
+ ++it2)
+ {
+ // Just to show : GetZSpacing from a GDCM_NAME_SPACE::File may be different
+ std::cout << (*it2)->GetFileName() << " --> GetZSpacing() from GDCM_NAME_SPACE::File : "
+ << (*it2)->GetZSpacing() << std::endl;
+ }
+
+ break; // we only deal with the first one ... Why not ?
}
l = s->GetNextSingleSerieUIDFileSet();
}
- std::cout << " -------------------------------------------- Finish sorting"
+ std::cout << " ------------------Prints all the Single SerieUID File Sets (sorted or not) -----"
<< std::endl;
s->Print(); // Prints all the Single SerieUID File Sets (sorted or not)
std::cout << " -------------------------------------------- Finish printing"
<< std::endl;
-
-
- // Only for the first Coherent File List
- // ( Why not ? Just an example, for testing )
- // Display all the file names
-
- std::string fileName;
- l = s->GetFirstSingleSerieUIDFileSet();
- for (std::vector<GDCM_NAME_SPACE::File* >::iterator it = l->begin();
- it != l->end();
- ++it)
- {
- fileName = (*it)->GetFileName();
- std::cout << fileName << std::endl;
- }
-
s->Delete();
return 0;