X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDicomDirObject.cxx;h=edbd6a855c24b01871ed77c4003d9ac6618b81e3;hb=1d6b53d6cc3487013b10aa9b604ae948585dbfb7;hp=9094a45d5fcbd1f9896241e04a5ca048db5f185d;hpb=ab0aa4fa11e3ac7ec236d1aceb6f0cf89fe83eae;p=gdcm.git diff --git a/src/gdcmDicomDirObject.cxx b/src/gdcmDicomDirObject.cxx index 9094a45d..edbd6a85 100644 --- a/src/gdcmDicomDirObject.cxx +++ b/src/gdcmDicomDirObject.cxx @@ -3,12 +3,12 @@ Program: gdcm Module: $RCSfile: gdcmDicomDirObject.cxx,v $ Language: C++ - Date: $Date: 2004/09/23 10:47:10 $ - Version: $Revision: 1.1 $ + Date: $Date: 2005/01/08 15:03:59 $ + Version: $Revision: 1.15 $ 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.htm for details. + 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 @@ -20,53 +20,50 @@ #include "gdcmGlobal.h" #include "gdcmDebug.h" #include "gdcmValEntry.h" +#include "gdcmDictSet.h" + +namespace gdcm +{ //----------------------------------------------------------------------------- /** - * \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 DicomDirObject::GetEntryHT() { TagDocEntryHT HT; - docEntries=GetDocEntries(); - for(ListDocEntry::iterator i = docEntries.begin(); - i != docEntries.end(); ++i) + DocEntries = GetDocEntries(); + for(ListDocEntry::iterator i = DocEntries.begin(); + i != DocEntries.end(); ++i) { - HT[(*i)->GetKey()]=*i; + HT[(*i)->GetKey()] = *i; } return HT; } @@ -76,48 +73,29 @@ TagDocEntryHT gdcmDicomDirObject::GetEntry() /** * \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 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 conneected to the right place - std::list::iterator it; + ListDicomDirMetaElem::const_iterator it; uint16_t tmpGr,tmpEl; - gdcmDictEntry *dictEntry; - gdcmValEntry *entry; + DictEntry *dictEntry; + ValEntry *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()->GetDictEntry(tmpGr,tmpEl); + entry = new ValEntry(dictEntry); entry->SetOffset(0); // just to avoid further missprinting - entry->SetValue(it->value); + entry->SetValue(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); } } +} // end namespace gdcm +