Program: gdcm
Module: $RCSfile: gdcmDocEntrySet.cxx,v $
Language: C++
- Date: $Date: 2004/08/31 15:39:48 $
- Version: $Revision: 1.18 $
+ Date: $Date: 2004/09/16 19:21:57 $
+ Version: $Revision: 1.22 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmValEntry.h"
#include "gdcmBinEntry.h"
-//-----------------------------------------------------------------------------
-// Constructor / Destructor
-/**
- * \ingroup gdcmDocEntrySet
- * \brief Constructor from a given gdcmDocEntrySet
- */
-gdcmDocEntrySet::gdcmDocEntrySet(int depthLevel)
-{
- SQDepthLevel = depthLevel + 1; //magic +1 !
-}
-/**
- * \brief Canonical destructor.
- */
-gdcmDocEntrySet::~gdcmDocEntrySet()
-{
-}
-//-----------------------------------------------------------------------------
-// Print
-/*
- * \ingroup gdcmDocEntrySet
- * \brief canonical Printer
- */
-
-
//-----------------------------------------------------------------------------
// Public
-
-
/**
* \brief Build a new Val Entry from all the low level arguments.
* Check for existence of dictionary entry, and build
* @param Group group number of the underlying DictEntry
* @param Elem element number of the underlying DictEntry
*/
-gdcmSeqEntry *gdcmDocEntrySet::NewSeqEntryByNumber(uint16_t Group,
+gdcmSeqEntry* gdcmDocEntrySet::NewSeqEntryByNumber(uint16_t Group,
uint16_t Elem)
{
// Find out if the tag we encountered is in the dictionaries:
- gdcmDictEntry *DictEntry = GetDictEntryByNumber(Group, Elem);
- if (!DictEntry)
+ gdcmDictEntry* DictEntry = GetDictEntryByNumber( Group, Elem );
+ if ( ! DictEntry )
+ {
DictEntry = NewVirtualDictEntry(Group, Elem);
+ }
- gdcmSeqEntry *NewEntry = new gdcmSeqEntry(DictEntry, 1); // FIXME : 1
- if (!NewEntry)
+ gdcmSeqEntry *NewEntry = new gdcmSeqEntry( DictEntry );
+ if ( !NewEntry )
{
dbg.Verbose(1, "gdcmDocument::NewSeqEntryByNumber",
"failed to allocate gdcmSeqEntry");
- return NULL;
+ return 0;
}
return NewEntry;
}
+
//-----------------------------------------------------------------------------
// Protected
}
/** \brief
- * Probabely move, as is, to gdcmDocEntrySet, as a non virtual method
- * an remove gdcmDocument::NewDocEntryByNumber
+ * Creates a new DocEntry (without any 'value' ...)
+ * @param group group number of the underlying DictEntry
+ * @param elem elem number of the underlying DictEntry
*/
gdcmDocEntry* gdcmDocEntrySet::NewDocEntryByNumber(uint16_t group,
uint16_t elem)
return newEntry;
}
+
+/** \brief
+ * Creates a new DocEntry (without any 'value' ...)
+ * @param group group number of the underlying DictEntry
+ * @param elem elem number of the underlying DictEntry
+ * @param VR V(alue) R(epresentation) of the Entry -if private Entry-
+
+ */
+gdcmDocEntry* gdcmDocEntrySet::NewDocEntryByNumber(uint16_t group,
+ uint16_t elem,
+ std::string const &VR)
+{
+ // Find out if the tag we encountered is in the dictionaries:
+ gdcmDict *pubDict = gdcmGlobal::GetDicts()->GetDefaultPubDict();
+ gdcmDictEntry *dictEntry = pubDict->GetDictEntryByNumber(group, elem);
+ if (!dictEntry)
+ {
+ dictEntry = NewVirtualDictEntry(group, elem, VR);
+ }
+
+ gdcmDocEntry *newEntry = new gdcmDocEntry(dictEntry);
+ if (!newEntry)
+ {
+ dbg.Verbose(1, "gdcmSQItem::NewDocEntryByNumber",
+ "failed to allocate gdcmDocEntry");
+ return 0;
+ }
+ return newEntry;
+}
/* \brief
* Probabely move, as is, to gdcmDocEntrySet, as a non virtual method
* an remove gdcmDocument::NewDocEntryByName