X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirElement.cxx;h=66665db6476f68e3f32eac05dbd24fd609bbf2b6;hb=7350639601914cd8ab02bfb0d6668c5bf56ce2f4;hp=0fe6edb7ddfb451c20f3fa7a52732ff185b58d7e;hpb=2a2c07baafb13cec37daad51975f394541406eac;p=gdcm.git diff --git a/src/gdcmDicomDirElement.cxx b/src/gdcmDicomDirElement.cxx index 0fe6edb7..66665db6 100644 --- a/src/gdcmDicomDirElement.cxx +++ b/src/gdcmDicomDirElement.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirElement.cxx,v $ Language: C++ - Date: $Date: 2005/01/20 11:40:14 $ - Version: $Revision: 1.29 $ + Date: $Date: 2005/02/01 10:29:54 $ + Version: $Revision: 1.33 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -26,10 +26,11 @@ namespace gdcm { +//----------------------------------------------------------------------------- void FillDefaultDIRDict(DicomDirElement *dde); + //----------------------------------------------------------------------------- // Constructor / Destructor - /** * \brief constructor : populates the chained lists * from the file 'Dicts/DicomDir.dic' @@ -47,18 +48,34 @@ DicomDirElement::DicomDirElement() 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,7 +85,7 @@ DicomDirElement::DicomDirElement() from.getline(buff, 1024, '"'); elem.Value = buff; - AddNewEntry(type, elem); + AddEntry(type, elem); } from.getline(buff, 1024, '\n'); } @@ -88,11 +105,48 @@ DicomDirElement::~DicomDirElement() DicomDirImageList.clear(); } +//----------------------------------------------------------------------------- +// Public +/** + * \brief Add an entry + * @param type type + * @param elem elem + */ +bool DicomDirElement::AddEntry(DicomDirType type, Element const &elem) +{ + switch( type ) + { + 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; +} + +//----------------------------------------------------------------------------- +// Protected + +//----------------------------------------------------------------------------- +// Private + //----------------------------------------------------------------------------- // Print /** * \brief Print all - * \todo add a 'Print Level' check * @param os The output stream to be written to. */ void DicomDirElement::Print(std::ostream &os) @@ -141,47 +195,4 @@ void DicomDirElement::Print(std::ostream &os) } //----------------------------------------------------------------------------- -// Public -/** - * \brief AddNewEntry - * @param type type - * @param elem elem - */ -bool DicomDirElement::AddNewEntry(std::string const &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 - { - return false; - } - return true; -} -//----------------------------------------------------------------------------- -// Protected - -//----------------------------------------------------------------------------- -// Private - -//----------------------------------------------------------------------------- - } // end namespace gdcm