Program: gdcm
Module: $RCSfile: gdcmDocEntrySet.cxx,v $
Language: C++
- Date: $Date: 2004/08/01 03:20:23 $
- Version: $Revision: 1.15 $
+ 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 Element Value from all the low level arguments.
+ * \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 Element Value from all the low level arguments.
+ * \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)
}
return newEntry;
}
+
+/**
+ * \brief Build a new Seq 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
+ */
+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 )
+ {
+ DictEntry = NewVirtualDictEntry(Group, Elem);
+ }
+
+ gdcmSeqEntry *NewEntry = new gdcmSeqEntry( DictEntry );
+ if ( !NewEntry )
+ {
+ dbg.Verbose(1, "gdcmDocument::NewSeqEntryByNumber",
+ "failed to allocate gdcmSeqEntry");
+ 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)