Program: gdcm
Module: $RCSfile: gdcmSerieHeader.cxx,v $
Language: C++
- Date: $Date: 2005/01/14 21:30:53 $
- Version: $Revision: 1.7 $
+ Date: $Date: 2005/01/18 11:56:52 $
+ Version: $Revision: 1.11 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
{
// 0020 000e UI REL Series Instance UID
std::string uid = header->GetEntry (0x0020, 0x000e);
+ // if uid == GDCM_UNFOUND then consistenly we should find GDCM_UNFOUND
+ // no need here to do anything special
if( CurrentSerieUID == "" )
{
// Set the current one
void SerieHeader::SetDirectory(std::string const &dir)
{
CurrentSerieUID = ""; //Reset previous Serie Instance UID
- DirList filenames_list(dir); //OS specific
+ DirList dirList(dir); //OS specific
- for( DirList::const_iterator it = filenames_list.begin();
+ DirListType filenames_list = dirList.GetFilenames();
+ for( DirListType::const_iterator it = filenames_list.begin();
it != filenames_list.end(); ++it)
{
AddFileName( *it );
//-----------------------------------------------------------------------------
// Private
/**
- * \ingroup Header
* \brief sorts the images, according to their Patient Position
* We may order, considering :
* -# Image Number
//2*n sort algo !!
//Assumption: all files are present (no one missing)
pos = (int)( fabs( (distlist[n]-min)/step) + .5 );
-
- CoherentGdcmFileVector[pos] = *it2;
+
+ // a Dicom 'Serie' may contain scout views
+ // and images may have differents directions
+ // -> More than one may have the same 'pos'
+ // Sorting has then NO meaning !
+ if (CoherentGdcmFileVector[pos]==NULL)
+ CoherentGdcmFileVector[pos] = *it2;
+ else
+ return false;
}
CoherentGdcmFileList.clear(); //this doesn't delete list's element, node only
}
/**
- * \ingroup Header
* \brief sorts the images, according to their Image Number
* @return false only if the header is bugged !
*/
/**
- * \ingroup Header
* \brief sorts the images, according to their File Name
* @return false only if the header is bugged !
*/