Program: gdcm
Module: $RCSfile: gdcmDicomDirElement.cxx,v $
Language: C++
- Date: $Date: 2005/02/05 01:37:08 $
- Version: $Revision: 1.34 $
+ Date: $Date: 2005/10/19 12:01:50 $
+ Version: $Revision: 1.40 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
namespace gdcm
{
//-----------------------------------------------------------------------------
+/// \brief auto generate function, to fill up the default elements for
+/// a DICOMDIR, if relevant file is not found on user's disk
void FillDefaultDIRDict(DicomDirElement *dde);
//-----------------------------------------------------------------------------
{
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());
{
char buff[1024];
std::string strType;
- Element elem;
+ DicomElement elem;
DicomDirType type;
while (!from.eof())
from.getline(buff, 1024, ' ');
strType = buff;
- if( strType == "metaElem" )
+ if ( strType == "metaElem" )
type = DD_META;
- else if( strType == "patientElem" )
+ else if ( strType == "patientElem" )
type = DD_PATIENT;
- else if( strType == "studyElem" )
+ else if ( strType == "studyElem" )
type = DD_STUDY;
- else if( strType == "serieElem" )
+ else if ( strType == "serieElem" )
type = DD_SERIE;
- else if( strType == "imageElem" )
+ else if ( strType == "imageElem" )
type = DD_IMAGE;
else
{
type = DD_UNKNOWN;
}
- if( type!=DD_UNKNOWN )
+ if ( type!=DD_UNKNOWN )
{
from >> std::hex >> elem.Group >> elem.Elem;
//-----------------------------------------------------------------------------
// Public
/**
- * \brief Add an entry
- * @param type type
+ * \brief Add an entry to one of the DicomDir Elements
+ * (Patient, Study, Serie, Image)
+ * @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 )
{
return true;
}
+/**
+ * \brief Add an entry to one of the DicomDir Elements
+ * (Patient, Study, Serie, Image)
+ * @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
+ */
+void DicomDirElement::AddDicomDirElement(DicomDirType type,
+ uint16_t group, uint16_t elem)
+{
+ DicomElement el;
+ el.Group = group;
+ el.Elem = elem;
+ el.Value = "";
+ AddEntry(type, el);
+}
+
//-----------------------------------------------------------------------------
// Protected
void DicomDirElement::Print(std::ostream &os)
{
std::ostringstream s;
- std::list<Element>::iterator it;
+ std::list<DicomElement>::iterator it;
//char greltag[10]; //group element tag
- std::string greltag;
+ TagKey greltag;
s << "Meta Elements :"<<std::endl;
for (it = DicomDirMetaList.begin(); it != DicomDirMetaList.end(); ++it)
{
- greltag = Util::Format("%04x|%04x ",it->Group,it->Elem);
+ greltag = DictEntry::TranslateToKey(it->Group,it->Elem);
s << " (" << greltag << ") = " << it->Value << std::endl;
}
s << "Patient Elements :"<<std::endl;
for (it = DicomDirPatientList.begin(); it != DicomDirPatientList.end(); ++it)
{
- greltag = Util::Format("%04x|%04x ",it->Group,it->Elem);
+ greltag = DictEntry::TranslateToKey(it->Group,it->Elem);
s << " (" << greltag << ") = " << it->Value << std::endl;
}
s << "Study Elements :"<<std::endl;
for (it = DicomDirStudyList.begin(); it != DicomDirStudyList.end(); ++it)
{
- greltag = Util::Format("%04x|%04x ", it->Group, it->Elem);
+ greltag = DictEntry::TranslateToKey(it->Group, it->Elem);
s << " (" << greltag << ") = " << it->Value << std::endl;
}
s << "Serie Elements :"<<std::endl;
for (it = DicomDirSerieList.begin(); it != DicomDirSerieList.end(); ++it)
{
- greltag = Util::Format("%04x|%04x ", it->Group, it->Elem);
+ greltag = DictEntry::TranslateToKey( it->Group, it->Elem);
s << " (" << greltag << ") = " << it->Value << std::endl;
}
s << "Image Elements :"<<std::endl;
for (it = DicomDirImageList.begin(); it != DicomDirImageList.end(); ++it)
{
- greltag = Util::Format("%04x|%04x ", it->Group, it->Elem);
+ greltag = DictEntry::TranslateToKey(it->Group, it->Elem);
s << " (" << greltag << ") = " << it->Value << std::endl;
}