X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirElement.cxx;h=b7517e8d577762114bfd6c9a9b7ca62bc73d1ded;hb=fc239ceba8ddb5fa780db670635559cab5d0d7bb;hp=f8aba446125120b54a680aae93cb0aa7bbf4ffb4;hpb=43cf193ac4e7395e1406e1867d76a6125c257a8b;p=gdcm.git diff --git a/src/gdcmDicomDirElement.cxx b/src/gdcmDicomDirElement.cxx index f8aba446..b7517e8d 100644 --- a/src/gdcmDicomDirElement.cxx +++ b/src/gdcmDicomDirElement.cxx @@ -1,48 +1,57 @@ -// gdcmDicomDirElement.cxx -//----------------------------------------------------------------------------- +/*========================================================================= + + Program: gdcm + Module: $RCSfile: gdcmDicomDirElement.cxx,v $ + Language: C++ + Date: $Date: 2004/08/27 15:48:44 $ + Version: $Revision: 1.15 $ + + Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de + l'Image). All rights reserved. See Doc/License.txt or + http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + #include #include // For sprintf +#include #include "gdcmDicomDirElement.h" #include "gdcmUtil.h" +#include "gdcmDebug.h" +#include "gdcmDictSet.h" -#ifndef PUB_DICT_PATH -# define PUB_DICT_PATH "../Dicts/" -#endif -#define DICT_ELEM "DicomDir.dic" - -#include -#ifdef GDCM_NO_ANSI_STRING_STREAM -# include -# define ostringstream ostrstream -# else -# include -#endif //----------------------------------------------------------------------------- // Constructor / Destructor /** - * \ingroup gdcmDicomDirElement - * \brief constructor + * \brief constructor : populates the chained lists + * from the file 'Dicts/DicomDir.dic' */ - gdcmDicomDirElement::gdcmDicomDirElement(void) +gdcmDicomDirElement::gdcmDicomDirElement() { - std::string filename=gdcmDictSet::BuildDictPath() + std::string(DICT_ELEM); + std::string filename = gdcmDictSet::BuildDictPath() + std::string(DICT_ELEM); std::ifstream from(filename.c_str()); - dbg.Error(!from, "gdcmDicomDirElement::gdcmDicomDirElement: can't open dictionary",filename.c_str()); + dbg.Error(!from, "gdcmDicomDirElement::gdcmDicomDirElement: can't open dictionary", + filename.c_str()); char buff[1024]; std::string type; gdcmElement elem; - while (!from.eof()) { + while (!from.eof()) + { eatwhite(from); from.getline(buff, 1024, ' '); type = buff; - if( (type=="metaElem") || (type=="patientElem") || - (type=="studyElem") || (type=="serieElem") || + if( (type=="metaElem") || (type=="patientElem") || + (type=="studyElem") || (type=="serieElem") || (type=="imageElem") ) { from >> std::hex >> elem.group >> elem.elem; @@ -53,18 +62,27 @@ from.getline(buff, 1024, '"'); elem.value = buff; - if(type=="metaElem") - MetaList.push_back(elem); - else if(type=="patientElem") - PatientList.push_back(elem); - else if(type=="studyElem") - StudyList.push_back(elem); - else if(type=="serieElem") - SerieList.push_back(elem); - else if(type=="imageElem") - ImageList.push_back(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); + } } - from.getline(buff, 1024, '\n'); } from.close(); @@ -72,15 +90,15 @@ /** * \ingroup gdcmDicomDirElement - * \brief destructor + * \brief canonical destructor */ - gdcmDicomDirElement::~gdcmDicomDirElement() +gdcmDicomDirElement::~gdcmDicomDirElement() { - MetaList.clear(); - PatientList.clear(); - StudyList.clear(); - SerieList.clear(); - ImageList.clear(); + DicomDirMetaList.clear(); + DicomDirPatientList.clear(); + DicomDirStudyList.clear(); + DicomDirSerieList.clear(); + DicomDirImageList.clear(); } //----------------------------------------------------------------------------- @@ -91,42 +109,42 @@ * \todo add a 'Print Level' check * @param os The output stream to be written to. */ -void gdcmDicomDirElement::Print(std::ostream &os) +void gdcmDicomDirElement::Print(std::ostream &os) { std::ostringstream s; std::list::iterator it; char greltag[10]; //group element tag s << "Meta Elements :"<group,it->elem); s << " ("<value<group,it->elem); s << " ("<value<group,it->elem); s << " ("<value<group,it->elem); s << " ("<value<group,it->elem); s << " ("<value<