Program: gdcm
Module: $RCSfile: gdcmDicomDirElement.cxx,v $
Language: C++
- Date: $Date: 2004/11/04 15:59:37 $
- Version: $Revision: 1.22 $
+ Date: $Date: 2005/01/24 14:14:10 $
+ Version: $Revision: 1.31 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
std::ifstream from(filename.c_str());
if(!from)
{
- dbg.Verbose(2,
- "DicomDirElement::DicomDirElement: can't open dictionary",
- filename.c_str());
+ gdcmVerboseMacro( "Can't open DicomDirElement dictionary"
+ << filename.c_str());
FillDefaultDIRDict( this );
}
else
{
char buff[1024];
- std::string type;
+ std::string strType;
Element elem;
+ DicomDirType type;
while (!from.eof())
{
from >> std::ws;
from.getline(buff, 1024, ' ');
- type = buff;
+ strType = buff;
+
+ if( strType == "metaElem" )
+ type = DD_META;
+ else if( strType == "patientElem" )
+ type = DD_PATIENT;
+ else if( strType == "studyElem" )
+ type = DD_STUDY;
+ else if( strType == "serieElem" )
+ type = DD_SERIE;
+ else if( strType == "imageElem" )
+ type = DD_IMAGE;
+ else
+ {
+ gdcmVerboseMacro("Unknown type found in the file : "
+ <<filename.c_str());
+ type = DD_UNKNOWN;
+ }
- if( type == "metaElem" || type == "patientElem" ||
- type == "studyElem" || type == "serieElem" ||
- type == "imageElem" )
+ if( type!=DD_UNKNOWN )
{
from >> std::hex >> elem.Group >> elem.Elem;
from.getline(buff, 1024, '"');
elem.Value = buff;
- AddNewEntry(type, elem);
+ AddEntry(type, elem);
}
from.getline(buff, 1024, '\n');
}
}
/**
- * \ingroup DicomDirElement
* \brief canonical destructor
*/
DicomDirElement::~DicomDirElement()
//-----------------------------------------------------------------------------
// Print
/**
- * \ingroup DicomDirElement
* \brief Print all
* \todo add a 'Print Level' check
* @param os The output stream to be written to.
//-----------------------------------------------------------------------------
// Public
-
-bool DicomDirElement::AddNewEntry(std::string const & type,
- Element const & elem)
+/**
+ * \brief Add an entry
+ * @param type type
+ * @param elem elem
+ */
+bool DicomDirElement::AddEntry(DicomDirType type, Element const &elem)
{
- if( type == "metaElem" )
- {
- DicomDirMetaList.push_back(elem);
- }
- else if( type == "patientElem" )
- {
- DicomDirPatientList.push_back(elem);
- }
- else if( type == "studyElem" )
- {
- DicomDirStudyList.push_back(elem);
- }
- else if( type == "serieElem" )
- {
- DicomDirSerieList.push_back(elem);
- }
- else if( type == "imageElem" )
- {
- DicomDirImageList.push_back(elem);
- }
- else
+ switch( type )
{
- return false;
+ case DD_META :
+ DicomDirMetaList.push_back(elem);
+ break;
+ case DD_PATIENT :
+ DicomDirPatientList.push_back(elem);
+ break;
+ case DD_STUDY :
+ DicomDirStudyList.push_back(elem);
+ break;
+ case DD_SERIE :
+ DicomDirSerieList.push_back(elem);
+ break;
+ case DD_IMAGE :
+ DicomDirImageList.push_back(elem);
+ break;
+ default :
+ return false;
}
return true;
}