X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirElement.cxx;h=3d5733d505f80d23aa3185be9ba5c08b7b5478bc;hb=35ee8ee8af32946514713d271177df8bb2298eb2;hp=f6f9004eabecfa3d20f74f74d22eb7c5a37f0930;hpb=2504fedde09a123036ce0f06e11ebd4cb9699e6a;p=gdcm.git diff --git a/src/gdcmDicomDirElement.cxx b/src/gdcmDicomDirElement.cxx index f6f9004e..3d5733d5 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/06/07 09:58:29 $ - Version: $Revision: 1.37 $ + Date: $Date: 2007/05/23 14:18:08 $ + Version: $Revision: 1.45 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -24,7 +24,7 @@ #include #include -namespace gdcm +namespace GDCM_NAME_SPACE { //----------------------------------------------------------------------------- /// \brief auto generate function, to fill up the default elements for @@ -41,7 +41,7 @@ DicomDirElement::DicomDirElement() { std::string filename = DictSet::BuildDictPath() + DICT_ELEM; std::ifstream from(filename.c_str()); - if(!from) + if ( !from ) { gdcmWarningMacro( "Can't open DicomDirElement dictionary" << filename.c_str()); @@ -50,43 +50,50 @@ DicomDirElement::DicomDirElement() else { char buff[1024]; + char buff2[1024]; std::string strType; - Element elem; + DicomElement elem; DicomDirType type; - while (!from.eof()) { from >> std::ws; from.getline(buff, 1024, ' '); 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" ) + if ( strType == "imageElem" ) type = DD_IMAGE; + else if ( strType == "serieElem" ) + type = DD_SERIE; + else if ( strType == "studyElem" ) + type = DD_STUDY; + else if ( strType == "patientElem" ) + type = DD_PATIENT; + else if ( strType == "metaElem" ) + type = DD_META; else { - gdcmWarningMacro("Unknown type found in the file : " - <> std::hex >> elem.Group >> elem.Elem; + from >> std::hex >> elem.Group >> elem.Elem;// >> elem.VR; + from.getline(buff2, 1024, '"'); + from >> std::ws; + from.getline(buff2, 1024, '"'); + elem.VR[0] = buff2[0]; + elem.VR[1] = buff2[1]; + // std::cout << "VR : [" << elem.VR[0] << elem.VR[1] << "]" << std::endl; // JPR from >> std::ws; from.getline(buff, 1024, '"'); from >> std::ws; from.getline(buff, 1024, '"'); elem.Value = buff; - + AddEntry(type, elem); } from.getline(buff, 1024, '\n'); @@ -115,24 +122,24 @@ DicomDirElement::~DicomDirElement() * @param type Element type (DD_PATIENT, DD_STUDY, DD_SERIE, DD_IMAGE) * @param elem elem */ -bool DicomDirElement::AddEntry(DicomDirType type, Element const &elem) +bool DicomDirElement::AddEntry(DicomDirType type, DicomElement const &elem) { switch( type ) { - case DD_META : - DicomDirMetaList.push_back(elem); + case DD_IMAGE : + DicomDirImageList.push_back(elem); break; - case DD_PATIENT : - DicomDirPatientList.push_back(elem); + case DD_SERIE : + DicomDirSerieList.push_back(elem); break; case DD_STUDY : DicomDirStudyList.push_back(elem); break; - case DD_SERIE : - DicomDirSerieList.push_back(elem); + case DD_PATIENT : + DicomDirPatientList.push_back(elem); break; - case DD_IMAGE : - DicomDirImageList.push_back(elem); + case DD_META : + DicomDirMetaList.push_back(elem); break; default : return false; @@ -146,16 +153,19 @@ bool DicomDirElement::AddEntry(DicomDirType type, Element const &elem) * @param type Element type (DD_PATIENT, DD_STUDY, DD_SERIE, DD_IMAGE) * @param group Group number of the entry to be added * @param elem Element number of the entry to be added + * @param vr Value Representation of the entry to be added */ void DicomDirElement::AddDicomDirElement(DicomDirType type, - uint16_t group, uint16_t elem) + uint16_t group, uint16_t elem, VRKey vr) { - Element el; + DicomElement el; el.Group = group; el.Elem = elem; + el.VR = vr; el.Value = ""; AddEntry(type, el); } + //----------------------------------------------------------------------------- // Protected @@ -168,12 +178,11 @@ void DicomDirElement::AddDicomDirElement(DicomDirType type, * \brief Print all * @param os The output stream to be written to. */ -void DicomDirElement::Print(std::ostream &os) +void DicomDirElement::Print(std::ostream &os,std::string const &) { std::ostringstream s; - std::list::iterator it; - //char greltag[10]; //group element tag - std::string greltag; + std::list::iterator it; + TagKey greltag; s << "Meta Elements :"<