Program: gdcm
Module: $RCSfile: gdcmDocEntrySet.cxx,v $
Language: C++
- Date: $Date: 2005/02/05 01:37:08 $
- Version: $Revision: 1.54 $
+ Date: $Date: 2005/08/24 12:09:13 $
+ Version: $Revision: 1.58 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
{
//-----------------------------------------------------------------------------
// Constructor / Destructor
-
+DocEntrySet::DocEntrySet()
+{
+ PreviousDocEntry = 0;
+}
//-----------------------------------------------------------------------------
// Public
/**
std::string DocEntrySet::GetEntryValue(uint16_t group, uint16_t elem)
{
ContentEntry *entry = dynamic_cast<ContentEntry *>(GetDocEntry(group,elem));
- if( entry )
+ if ( entry )
return entry->GetValue();
return GDCM_UNFOUND;
}
void *DocEntrySet::GetEntryBinArea(uint16_t group, uint16_t elem)
{
BinEntry *entry = GetBinEntry(group, elem);
- if( entry )
+ if ( entry )
return entry->GetBinArea();
return 0;
}
int DocEntrySet::GetEntryLength(uint16_t group, uint16_t elem)
{
DocEntry *entry = GetDocEntry(group, elem);
- if( entry )
+ if ( entry )
return entry->GetLength();
return -1;
}
std::string DocEntrySet::GetEntryVR(uint16_t group, uint16_t elem)
{
DocEntry *entry = GetDocEntry(group, elem);
- if( entry )
+ if ( entry )
return entry->GetVR();
return GDCM_UNFOUND;
}
*/
bool DocEntrySet::SetValEntry(std::string const &content, ValEntry *entry)
{
- if(entry)
+ if (entry)
{
entry->SetValue(content);
return true;
*/
bool DocEntrySet::SetBinEntry(uint8_t *content, int lgth, BinEntry *entry)
{
- if(entry)
+ if (entry)
{
entry->SetBinArea(content);
entry->SetLength(lgth);
valEntry = dynamic_cast<ValEntry *>(currentEntry);
// Verify the VR
- if( valEntry )
- if( valEntry->GetVR()!=vr )
+ if ( valEntry )
+ if ( valEntry->GetVR()!=vr )
valEntry = NULL;
// if currentEntry doesn't correspond to the requested valEntry
- if( !valEntry)
+ if ( !valEntry)
{
- if( !RemoveEntry(currentEntry) )
+ if ( !RemoveEntry(currentEntry) )
{
gdcmWarningMacro( "Removal of previous DocEntry failed.");
}
// Create a new valEntry if necessary
- if( !valEntry )
+ if ( !valEntry )
{
valEntry = NewValEntry( group, elem, vr );
binEntry = dynamic_cast<BinEntry *>(currentEntry);
// Verify the VR
- if( binEntry )
- if( binEntry->GetVR()!=vr )
+ if ( binEntry )
+ if ( binEntry->GetVR()!=vr )
binEntry = NULL;
// if currentEntry doesn't correspond to the requested valEntry
- if( !binEntry)
+ if ( !binEntry)
{
- if( !RemoveEntry(currentEntry) )
+ if ( !RemoveEntry(currentEntry) )
{
gdcmWarningMacro( "Removal of previous DocEntry failed.");
}
// Create a new binEntry if necessary
- if( !binEntry)
+ if ( !binEntry)
{
binEntry = NewBinEntry(group, elem, vr);
if ( !AddEntry(binEntry) )
{
- gdcmWarningMacro( "AddEntry failed allthough this is a creation.");
+ gdcmWarningMacro( "AddEntry failed although this is a creation.");
delete binEntry;
return NULL;
// Set the binEntry value
uint8_t *tmpArea;
- if( lgth>0 && binArea )
+ if ( lgth>0 && binArea )
{
tmpArea = new uint8_t[lgth];
memcpy(tmpArea,binArea,lgth);
{
tmpArea = 0;
}
- if( !SetBinEntry(tmpArea,lgth,binEntry) )
+ if ( !SetBinEntry(tmpArea,lgth,binEntry) )
{
- if( tmpArea )
+ if ( tmpArea )
{
delete[] tmpArea;
}
}
/**
- * \brief Modifies the value of a given Header Entry (Dicom Element)
+ * \brief Modifies the value of a given Doc Entry (Dicom Element)
* when it exists. Creates it when unexistant.
* @param group Group number of the Entry
* @param elem Element number of the Entry
SeqEntry *DocEntrySet::InsertSeqEntry(uint16_t group, uint16_t elem)
{
SeqEntry *seqEntry = 0;
- DocEntry *currentEntry = GetDocEntry( group, elem);
+ DocEntry *currentEntry = GetDocEntry( group, elem );
// Verify the currentEntry
- if( currentEntry )
+ if ( currentEntry )
{
seqEntry = dynamic_cast<SeqEntry *>(currentEntry);
// Verify the VR
- if( seqEntry )
- if( seqEntry->GetVR()!="SQ" )
- seqEntry = NULL;
+ if ( seqEntry )
+ seqEntry = NULL;
- // if currentEntry doesn't correspond to the requested valEntry
- if( !seqEntry )
+ // if currentEntry doesn't correspond to the requested seqEntry
+ if ( !seqEntry )
{
if (!RemoveEntry(currentEntry))
{
}
}
// Create a new seqEntry if necessary
- if( !seqEntry )
+ if ( !seqEntry )
{
seqEntry = NewSeqEntry(group, elem);
- if( !AddEntry(seqEntry) )
+ if ( !AddEntry(seqEntry) )
{
- gdcmWarningMacro( "AddEntry failed allthough this is a creation.");
+ gdcmWarningMacro( "AddEntry failed although this is a creation.");
delete seqEntry;
return NULL;
}
}
+
+ // TODO : Find a trick to insert a SequenceDelimitationItem
+ // in the SeqEntry, at the end.
return seqEntry;
}
* \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 new Entry
- * @param elem element number of the new Entry
- * @param vr VR of the new Entry
+ * @param group Group number of the new Entry
+ * @param elem Element number of the new Entry
+ * @param vr V(alue) R(epresentation) of the new Entry
*/
ValEntry *DocEntrySet::NewValEntry(uint16_t group,uint16_t elem,
TagName const &vr)
* \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 new Entry
- * @param elem element number of the new Entry
- * @param vr VR of the new Entry
+ * @param group Group number of the new Entry
+ * @param elem Element number of the new Entry
+ * @param vr V(alue) R(epresentation) of the new Entry
*/
BinEntry *DocEntrySet::NewBinEntry(uint16_t group, uint16_t elem,
TagName const &vr)
* \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 new Entry
- * @param elem element number of the new Entry
+ * @param group Group number of the new Entry
+ * @param elem Element number of the new Entry
*/
SeqEntry* DocEntrySet::NewSeqEntry(uint16_t group, uint16_t elem)
{
/**
* \brief Request a new virtual dict entry to the dict set
- * @param group group number of the underlying DictEntry
- * @param elem element number of the underlying DictEntry
- * @param vr VR (Value Representation) of the underlying DictEntry
- * @param vm VM (Value Multiplicity) of the underlying DictEntry
+ * @param group Group number of the underlying DictEntry
+ * @param elem Element number of the underlying DictEntry
+ * @param vr V(alue) R(epresentation) of the underlying DictEntry
+ * @param vm V(alue) M(ultiplicity) of the underlying DictEntry
* @param name english name
*/
DictEntry* DocEntrySet::NewVirtualDictEntry( uint16_t group, uint16_t elem,
* \brief Searches [both] the public [and the shadow dictionary (when they
* exist)] for the presence of the DictEntry with given
* group and element. The public dictionary has precedence on the
- * shadow one.
- * @param group group number of the searched DictEntry
- * @param elem element number of the searched DictEntry
+ * shadow one(s), if any.
+ * @param group Group number of the searched DictEntry
+ * @param elem Element number of the searched DictEntry
* @return Corresponding DictEntry when it exists, NULL otherwise.
*/
DictEntry *DocEntrySet::GetDictEntry(uint16_t group,uint16_t elem)
* group and element, and create a new virtual DictEntry if necessary
* @param group group number of the searched DictEntry
* @param elem element number of the searched DictEntry
- * @param vr Value Representation to use, if necessary
+ * @param vr V(alue) R(epresentation) to use, if necessary
* @return Corresponding DictEntry when it exists, NULL otherwise.
*/
DictEntry *DocEntrySet::GetDictEntry(uint16_t group, uint16_t elem,