Program: gdcm
Module: $RCSfile: gdcmSerieHelper.cxx,v $
Language: C++
- Date: $Date: 2005/10/21 16:02:01 $
- Version: $Revision: 1.27 $
+ Date: $Date: 2005/10/23 15:04:26 $
+ Version: $Revision: 1.28 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
}
/**
- * \brief - Preventively, clear everything at constructor time.
- * - use it at destructor time.
+ * \brief Preventively, clear everything at constructor time.
+ * ( use it at destructor time.)
*/
void SerieHelper::ClearAll()
{
if ( !Util::CompareDicomString(s, r.value.c_str(), r.op) )
{
// Argh ! This rule is unmatched; let's just quit
+
allrules = 0;
break;
}
// if uid == GDCM_UNFOUND then consistently we should find GDCM_UNFOUND
// no need here to do anything special
+
if ( SingleSerieUIDFileSetHT.count(uid) == 0 )
{
gdcmDebugMacro(" New Serie UID :[" << uid << "]");
}
#ifndef GDCM_LEGACY_REMOVE
-/* *
- * \brief add a rules for restricting a DICOM file to be in the serie we are
- * trying to find. For example you can select only the DICOM file from a
- * directory which would have a particular EchoTime==4.0.
- * This method is a user level, value is not required to be formatted as a DICOM
- * string
- * @param group Group number of the target tag.
- * @param elem Element number of the target tag.
- * @param value value to be checked to exclude File
- * @deprecated use : AddRestriction(uint16_t group, uint16_t elem,
- * std::string const &value, int op);
- */
void SerieHelper::AddRestriction(TagKey const &key, std::string const &value)
{
Rule r;
}
#ifndef GDCM_LEGACY_REMOVE
-/* *
- * \ brief accessor (DEPRECATED : use GetFirstSingleSerieUIDFileSet )
- * Warning : 'coherent' means here they have the same Serie UID
- * @ return The first FileList if found, otherwhise NULL
- */
+
FileList *SerieHelper::GetFirstCoherentFileList()
{
ItFileSetHt = SingleSerieUIDFileSetHT.begin();
return NULL;
}
-/* *
- * \ brief accessor (DEPRECATED : use GetNextSingleSerieUIDFileSet )
- * Warning : 'coherent' means here they have the same Serie UID
- * \ note : meaningfull only if GetFirstCoherentFileList() already called
- * @ return The next FileList if found, otherwhise NULL
- */
+
FileList *SerieHelper::GetNextCoherentFileList()
{
gdcmAssertMacro (ItFileSetHt != SingleSerieUIDFileSetHT.end());
return NULL;
}
-/* *
- * \ brief accessor (DEPRECATED : use GetSingleSerieUIDFileSet )
- * Warning : 'coherent' means here they have the same Serie UID
- * @ param SerieUID SerieUID
- * \ return pointer to the FileList if found, otherwhise NULL
- */
+
FileList *SerieHelper::GetCoherentFileList(std::string SerieUID)
{
if ( SingleSerieUIDFileSetHT.count(SerieUID) == 0 )
* We may order, considering :
* -# Image Position Patient
* -# Image Number
+ * -# File Name
* -# More to come :-)
- * WARNING : FileList = std::vector<File* >
+ * \note : FileList = std::vector<File* >
* @param fileList Coherent File list (same Serie UID) to sort
* @return false only if the header is bugged !
*/
Program: gdcm
Module: $RCSfile: gdcmSerieHelper.h,v $
Language: C++
- Date: $Date: 2005/10/19 13:17:05 $
- Version: $Revision: 1.24 $
+ Date: $Date: 2005/10/23 15:04:26 $
+ Version: $Revision: 1.25 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
namespace gdcm
{
class File;
-typedef std::vector<File* > FileList;
- /// XCoherent stands for 'Extra Coherent',
- /// (The name 'Coherent' would be enough but it was used before;
- /// I don't want to put a bomb in the code)
- /// Any 'better name' is welcome !
-typedef std::map<std::string, FileList *> XCoherentFileSetmap;
+
+
+ typedef std::vector<File* > FileList;
-typedef bool (*BOOL_FUNCTION_PFILE_PFILE_POINTER)(File *, File *);
+ /// \brief XCoherent stands for 'Extra Coherent',
+ /// (The name 'Coherent' would be enough but it was used before;
+ /// I don't want to put a bomb in the code)
+ /// Any 'better name' is welcome !
+ typedef std::map<std::string, FileList *> XCoherentFileSetmap;
+
+ typedef bool (*BOOL_FUNCTION_PFILE_PFILE_POINTER)(File *, File *);
//-----------------------------------------------------------------------------
/**
* \brief
* - This class should be used for a stack of 2D dicom images.
* It allows to explore (recursively or not) a directory and
- * makes a set of 'Coherent Files' lists (coherent : same SerieUID)
+ * makes a set of 'Single SerieUID Filesets'
* It allows :
- * - to sort any of the Coherent File list on the image position.
+ * - to sort any of the 'Single SerieUID Fileset' on the image position.
* - to split any of the Single SerieUID Filesets (better use this name than
* 'Coherent File List' : it's NOT a std::list, files are NOT coherent ...)
* into several XCoherent Filesets
class GDCM_EXPORT SerieHelper
{
public:
- // SingleSerieUIDFileSetmap replaces the former CoherentFileListmap
- // ( List were actually std::vectors, and wher no coherent at all :
- // They were only Single SeriesInstanceUID File sets)
+ /// SingleSerieUIDFileSetmap replaces the former CoherentFileListmap
+ /// ( List were actually std::vectors, and wher no coherent at all :
+ /// They were only Single SeriesInstanceUID File sets)
typedef std::map<std::string, FileList *> SingleSerieUIDFileSetmap;
typedef std::vector<File* > FileVector;
-
+
+
SerieHelper();
~SerieHelper();
void Print(std::ostream &os = std::cout, std::string const &indent = "" );
XCoherentFileSetmap SplitOnOrientation(FileList *fileSet);
XCoherentFileSetmap SplitOnPosition(FileList *fileSet);
XCoherentFileSetmap SplitOnTagValue(FileList *fileSet,
- uint16_t group, uint16_t element);
+ uint16_t group, uint16_t elem);
private:
void ClearAll();
bool UserOrdering(FileList *fileSet);