/*========================================================================= Program: gdcm Module: $RCSfile: gdcmDefaultDicts.cxx.in,v $ Language: C++ Date: $Date: 2007/05/23 14:18:08 $ Version: $Revision: 1.13 $ 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.html 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. =========================================================================*/ #ifndef GDCMDEFAULTDICTS_H #define GDCMDEFAULTDICTS_H #include "gdcmDict.h" #include "gdcmDictEntry.h" #include "gdcmTS.h" #include "gdcmVR.h" #include "gdcmDictGroupName.h" #include "gdcmDicomDirElement.h" namespace GDCM_NAME_SPACE { typedef struct { uint16_t group; uint16_t element; const char *vr; const char *vm; const char *name; } DICT_ENTRY; static DICT_ENTRY datadir[] = { @DICOM_DATA_DICTIONARY@ }; void FillDefaultDataDict(Dict *d) { DictEntry *e; unsigned int i = 0; DICT_ENTRY n = datadir[i]; while( n.name != 0 ) { e = DictEntry::New( n.group, n.element, n.vr, n.vm, n.name); d->AddEntry( e ); e->Delete(); n = datadir[++i]; } } void FillDefaultTSDict(TSHT &ts) { @DICOM_TS_DICTIONARY@ } void FillDefaultVRDict(VRHT &vr) { @DICOM_VR_DICTIONARY@ } void FillDefaultDictGroupName(DictGroupNameHT &groupName) { @DICT_GROUP_NAME_DICTIONARY@ } typedef struct { const char *type; unsigned short group; unsigned short element; //VRKey vr; const char *vr; const char *value; } ELEMENT; static ELEMENT dataElement[] = { @DICOM_DIR_DICTIONARY@ }; void FillDefaultDIRDict(DicomDirElement *dde) { unsigned int i = 0; ELEMENT e = dataElement[i]; DicomElement elem; DicomDirType type; std::string strType; while( e.type != 0 ) { // Force to use the string comparison operator == strType = e.type; 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 type = DD_UNKNOWN; elem.Group = e.group; elem.Elem = e.element; elem.VR = e.vr; elem.Value = e.value; dde->AddEntry( type, elem); e = dataElement[++i]; } } } //end gdcm namespace #endif