X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirObject.cxx;h=1625584cb2670c6542cd653c781ead5035d3137b;hb=e362e154b84f087750d1ed1f6671a34b3bf5ff7a;hp=11dfd84c78ce3bccdffc9d89847597793f436674;hpb=7f5f66f57c85e30920d807612d32a65800cb1df0;p=gdcm.git diff --git a/src/gdcmDicomDirObject.cxx b/src/gdcmDicomDirObject.cxx index 11dfd84c..1625584c 100644 --- a/src/gdcmDicomDirObject.cxx +++ b/src/gdcmDicomDirObject.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirObject.cxx,v $ Language: C++ - Date: $Date: 2004/12/06 11:37:38 $ - Version: $Revision: 1.10 $ + Date: $Date: 2005/10/25 09:22:15 $ + Version: $Revision: 1.23 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -19,19 +19,15 @@ #include "gdcmDicomDirObject.h" #include "gdcmGlobal.h" #include "gdcmDebug.h" -#include "gdcmValEntry.h" #include "gdcmDictSet.h" +#include "gdcmDataEntry.h" namespace gdcm { - //----------------------------------------------------------------------------- /** - * \ingroup DicomDirObject * \brief Constructor * - * @param ptagHT pointer to the HTable (DicomDirObject needs it - * to build the DocEntries) * @param depth Sequence depth level */ @@ -40,89 +36,51 @@ DicomDirObject::DicomDirObject(int depth) { } - /** - * \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; + 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); + dictEntry = Global::GetDicts()->GetDefaultPubDict()->GetEntry(tmpGr,tmpEl); + entry = DataEntry::New(dictEntry); 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