X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirElement.cxx;h=47e0750e1a4ed41f5285cdc4ba8372d4a58ebdc0;hb=f5a3357d5243ea55d994eda5ff406edbdbe5077c;hp=65c05e51bb310f54670e428f642a84bc30cd3b7f;hpb=616fe6757e5e27ce6ebb48e9e3bf3b42ab15be1c;p=gdcm.git diff --git a/src/gdcmDicomDirElement.cxx b/src/gdcmDicomDirElement.cxx index 65c05e51..47e0750e 100644 --- a/src/gdcmDicomDirElement.cxx +++ b/src/gdcmDicomDirElement.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirElement.cxx,v $ Language: C++ - Date: $Date: 2004/11/03 18:08:56 $ - Version: $Revision: 1.21 $ + Date: $Date: 2005/01/20 17:15:54 $ + Version: $Revision: 1.30 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -40,26 +40,41 @@ DicomDirElement::DicomDirElement() 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 : " + <> std::hex >> elem.Group >> elem.Elem; @@ -68,23 +83,16 @@ DicomDirElement::DicomDirElement() from >> std::ws; from.getline(buff, 1024, '"'); elem.Value = buff; - + AddNewEntry(type, elem); } - else - { - dbg.Error("DicomDirElement::DicomDirElement: Error parsing file", - filename.c_str()); - dbg.Error("Type", type.c_str(), " is not registered as valid" ); - } from.getline(buff, 1024, '\n'); } - from.close(); + from.close(); } } /** - * \ingroup DicomDirElement * \brief canonical destructor */ DicomDirElement::~DicomDirElement() @@ -99,7 +107,6 @@ DicomDirElement::~DicomDirElement() //----------------------------------------------------------------------------- // Print /** - * \ingroup DicomDirElement * \brief Print all * \todo add a 'Print Level' check * @param os The output stream to be written to. @@ -151,33 +158,33 @@ void DicomDirElement::Print(std::ostream &os) //----------------------------------------------------------------------------- // Public - -bool DicomDirElement::AddNewEntry(std::string const & type, - Element const & elem) +/** + * \brief AddNewEntry + * @param type type + * @param elem elem + */ +bool DicomDirElement::AddNewEntry(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; }