Program: gdcm
Module: $RCSfile: gdcmDicomDirObject.cxx,v $
Language: C++
- Date: $Date: 2004/09/27 08:39:06 $
- Version: $Revision: 1.2 $
+ 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_NAME_SPACE
+{
//-----------------------------------------------------------------------------
/**
- * \ingroup gdcmDicomDirObject
* \brief Constructor
*
- * @param ptagHT pointer to the HTable (gdcmDicomDirObject needs it
- * to build the gdcmDocEntries)
* @param depth Sequence depth level
*/
-gdcmDicomDirObject::gdcmDicomDirObject(TagDocEntryHT *ptagHT, int depth)
- : gdcmSQItem (depth)
+DicomDirObject::DicomDirObject(int depth)
+ : SQItem (depth)
{
- PtagHT = ptagHT;
}
-
/**
- * \ingroup gdcmDicomDirObject
* \brief Canonical destructor.
*/
-gdcmDicomDirObject::~gdcmDicomDirObject()
+DicomDirObject::~DicomDirObject()
{
}
-
-
//-----------------------------------------------------------------------------
// Public
-
-/**
- * \ingroup gdcmDicomDirObject
- * \brief Builds a hash table (multimap) containing
- * pointers to all Header Entries (i.e Dicom Element)
- * related to this 'object'
- * @return
- */
-TagDocEntryHT gdcmDicomDirObject::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 gdcmDicomDirObject::FillObject(std::list<gdcmElement> elemList)
+void DicomDirObject::FillObject(ListDicomDirMetaElem const &elemList)
{
- // FillObject rempli le SQItem qui sera accroche au bon endroit
-
- std::list<gdcmElement>::iterator it;
- uint16_t tmpGr,tmpEl;
- gdcmDictEntry *dictEntry;
- gdcmValEntry *entry;
+ // FillObject fills up the SQItem that will be connected to the right place
+ ListDicomDirMetaElem::const_iterator it;
+ //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 = gdcmGlobal::GetDicts()->GetDefaultPubDict()->GetDictEntryByNumber(tmpGr,tmpEl);
- entry = new gdcmValEntry(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());
- }
- AddDocEntry(entry);
- }
-}
+ AddEntry(entry);
+ entry->Delete();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Private
+
+//-----------------------------------------------------------------------------
+// Print
+
+//-----------------------------------------------------------------------------
+} // end namespace gdcm