Program: gdcm
Module: $RCSfile: gdcmDocEntrySet.cxx,v $
Language: C++
- Date: $Date: 2004/08/26 15:29:52 $
- Version: $Revision: 1.16 $
+ Date: $Date: 2004/09/27 08:39:06 $
+ 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
- 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
#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
* a default one when absent.
- * @param Group group number of the underlying DictEntry
- * @param Elem element number of the underlying DictEntry
+ * @param group group number of the underlying DictEntry
+ * @param elem element number of the underlying DictEntry
*/
gdcmValEntry *gdcmDocEntrySet::NewValEntryByNumber(uint16_t group,
uint16_t elem)
* \brief Build a new Bin Entry from all the low level arguments.
* Check for existence of dictionary entry, and build
* a default one when absent.
- * @param Group group number of the underlying DictEntry
- * @param Elem element number of the underlying DictEntry
+ * @param group group number of the underlying DictEntry
+ * @param elem element number of the underlying DictEntry
*/
gdcmBinEntry *gdcmDocEntrySet::NewBinEntryByNumber(uint16_t group,
uint16_t elem)
* @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
+
+/** \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
+ */
gdcmDocEntry *gdcmDocEntrySet::NewDocEntryByName (std::string const & name)
{
gdcmDict *pubDict = gdcmGlobal::GetDicts()->GetDefaultPubDict();
* \brief Searches both the public and the shadow dictionary (when they
* exist) for the presence of the DictEntry with given name.
* The public dictionary has precedence on the shadow one.
- * @param Name name of the searched DictEntry
+ * @param name Name of the searched DictEntry
* @return Corresponding DictEntry when it exists, NULL otherwise.
*/
gdcmDictEntry *gdcmDocEntrySet::GetDictEntryByName(std::string const & name)