Program: gdcm
Module: $RCSfile: gdcmDicomDirObject.cxx,v $
Language: C++
- Date: $Date: 2004/12/06 11:37:38 $
- Version: $Revision: 1.10 $
+ Date: $Date: 2007/05/23 14:18:08 $
+ Version: $Revision: 1.25 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmDicomDirObject.h"
#include "gdcmGlobal.h"
#include "gdcmDebug.h"
-#include "gdcmValEntry.h"
#include "gdcmDictSet.h"
+#include "gdcmDataEntry.h"
-namespace gdcm
+namespace GDCM_NAME_SPACE
{
-
//-----------------------------------------------------------------------------
/**
- * \ingroup DicomDirObject
* \brief Constructor
*
- * @param ptagHT pointer to the HTable (DicomDirObject needs it
- * to build the DocEntries)
* @param depth Sequence depth level
*/
{
}
-
/**
- * \ingroup DicomDirObject
* \brief Canonical destructor.
*/
DicomDirObject::~DicomDirObject()
{
}
-
-
//-----------------------------------------------------------------------------
// Public
-
-/**
- * \ingroup DicomDirObject
- * \brief Builds a hash table (multimap) containing
- * pointers to all Header Entries (i.e Dicom Element)
- * related to this 'object'
- * @return
- */
-TagDocEntryHT DicomDirObject::GetEntry()
-{
- TagDocEntryHT HT;
- DocEntries = GetDocEntries();
- for(ListDocEntry::iterator i = DocEntries.begin();
- i != DocEntries.end(); ++i)
- {
- HT[(*i)->GetKey()] = *i;
- }
- return HT;
-}
-
//-----------------------------------------------------------------------------
// Protected
/**
* \brief add the 'Object' related Dicom Elements to the listEntries
* of a partially created DICOMDIR
+ * @param elemList Element List to add at the right place
*/
-void DicomDirObject::FillObject(ListDicomDirMetaElem const & elemList)
+void DicomDirObject::FillObject(ListDicomDirMetaElem const &elemList)
{
- // FillObject rempli le SQItem qui sera accroche au bon endroit
-
+ // FillObject fills up the SQItem that will be connected to the right place
ListDicomDirMetaElem::const_iterator it;
- uint16_t tmpGr,tmpEl;
- DictEntry *dictEntry;
- ValEntry *entry;
+ //uint16_t tmpGr,tmpEl;
+ //DictEntry *dictEntry;
+ DataEntry *entry;
// for all the Elements found in they own part of the DicomDir dict.
for(it = elemList.begin(); it != elemList.end(); ++it)
{
- tmpGr = it->Group;
- tmpEl = it->Elem;
- dictEntry = Global::GetDicts()->GetDefaultPubDict()->GetDictEntryByNumber(tmpGr,tmpEl);
- entry = new ValEntry(dictEntry);
+ //tmpGr = it->Group;
+ //tmpEl = it->Elem;
+ //dictEntry = Global::GetDicts()->GetDefaultPubDict()->GetEntry(tmpGr,tmpEl);
+ //entry = DataEntry::New(dictEntry);
+ entry = DataEntry::New(it->Group, it->Elem, it->VR );
entry->SetOffset(0); // just to avoid further missprinting
- entry->SetValue(it->Value);
+ entry->SetString(it->Value);
- // dealing with value length ...
-
- if(dictEntry->GetGroup()==0xfffe)
- {
- entry->SetLength(entry->GetValue().length());
- }
- else if( dictEntry->GetVR() == "UL" || dictEntry->GetVR() == "SL" )
- {
- entry->SetLength(4);
- }
- else if( dictEntry->GetVR() == "US" || dictEntry->GetVR() == "SS" )
- {
- entry->SetLength(2);
- }
- else if( dictEntry->GetVR() == "SQ" )
- {
- entry->SetLength(0xffffffff);
- }
- else
- {
- entry->SetLength(entry->GetValue().length());
- }
AddEntry(entry);
- }
-}
-} // end namespace gdcm
+ entry->Delete();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Private
+//-----------------------------------------------------------------------------
+// Print
+
+//-----------------------------------------------------------------------------
+} // end namespace gdcm