GDCM  2.2.6
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
gdcm::DataElement Class Reference

Class to represent a Data Element either Implicit or Explicit. More...

#include <gdcmDataElement.h>

Inheritance diagram for gdcm::DataElement:
Inheritance graph
[legend]
Collaboration diagram for gdcm::DataElement:
Collaboration graph
[legend]

Public Member Functions

 DataElement (const Tag &t=Tag(0), const VL &vl=0, const VR &vr=VR::INVALID)
 
 DataElement (const DataElement &_val)
 
void Clear ()
 Clear Data Element (make Value empty and invalidate Tag & VR) More...
 
void Empty ()
 Make Data Element empty (no Value) More...
 
const ByteValueGetByteValue () const
 
template<typename TDE >
VL GetLength () const
 
const SequenceOfFragmentsGetSequenceOfFragments () const
 
SequenceOfFragmentsGetSequenceOfFragments ()
 
const SequenceOfItemsGetSequenceOfItems () const
 
SequenceOfItemsGetSequenceOfItems ()
 
const TagGetTag () const
 Get Tag. More...
 
TagGetTag ()
 
Value const & GetValue () const
 Set/Get Value (bytes array, SQ of items, SQ of fragments): More...
 
ValueGetValue ()
 
SmartPointer< SequenceOfItemsGetValueAsSQ () const
 
const VLGetVL () const
 Get VL. More...
 
VLGetVL ()
 
VR const & GetVR () const
 
bool IsEmpty () const
 Check if Data Element is empty. More...
 
bool IsUndefinedLength () const
 return if Value Length if of undefined length More...
 
bool operator< (const DataElement &de) const
 
DataElementoperator= (const DataElement &de)
 
bool operator== (const DataElement &de) const
 
template<typename TDE , typename TSwap >
std::istream & Read (std::istream &is)
 
template<typename TDE , typename TSwap >
std::istream & ReadOrSkip (std::istream &is, std::set< Tag > const &skiptags)
 
template<typename TDE , typename TSwap >
std::istream & ReadPreValue (std::istream &is, std::set< Tag > const &skiptags)
 
template<typename TDE , typename TSwap >
std::istream & ReadValue (std::istream &is, std::set< Tag > const &skiptags)
 
template<typename TDE , typename TSwap >
std::istream & ReadValueWithLength (std::istream &is, VL &length, std::set< Tag > const &skiptags)
 
template<typename TDE , typename TSwap >
std::istream & ReadWithLength (std::istream &is, VL &length)
 
void SetByteValue (const char *array, VL length)
 
void SetTag (const Tag &t)
 
void SetValue (Value const &vl)
 
void SetVL (const VL &vl)
 
void SetVLToUndefined ()
 
void SetVR (VR const &vr)
 
template<typename TDE , typename TSwap >
const std::ostream & Write (std::ostream &os) const
 

Protected Types

typedef SmartPointer< ValueValuePtr
 

Protected Member Functions

void SetValueFieldLength (VL vl, bool readvalues)
 

Protected Attributes

Tag TagField
 
ValuePtr ValueField
 
VL ValueLengthField
 
VR VRField
 

Friends

std::ostream & operator<< (std::ostream &_os, const DataElement &_val)
 

Detailed Description

Class to represent a Data Element either Implicit or Explicit.

DATA ELEMENT: A unit of information as defined by a single entry in the data dictionary. An encoded Information Object Definition (IOD) Attribute that is composed of, at a minimum, three fields: a Data Element Tag, a Value Length, and a Value Field. For some specific Transfer Syntaxes, a Data Element also contains a VR Field where the Value Representation of that Data Element is specified explicitly.

Design:

See Also
ExplicitDataElement ImplicitDataElement
Examples:
ChangeSequenceUltrasound.cxx, CreateARGBImage.cxx, CreateCMYKImage.cxx, csa2img.cxx, DiffFile.cxx, DumpADAC.cxx, DumpGEMSMovieGroup.cxx, DumpImageHeaderInfo.cxx, DumpPhilipsECHO.cxx, DuplicatePCDE.cxx, ELSCINT1WaveToText.cxx, ExtractEncryptedContent.cxx, ExtractIconFromFile.cxx, Extracting_All_Resolution.cxx, Fake_Image_Using_Stream_Image_Writer.cxx, FileChangeTS.cs, FixBrokenJ2K.cxx, FixJAIBugJPEGLS.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GenAllVR.cxx, GenFakeIdentifyFile.cxx, GenFakeImage.cxx, GenLongSeqs.cxx, GenSeqs.cxx, GetJPEGSamplePrecision.cxx, GetSequenceUltrasound.cxx, GetSubSequenceData.cxx, iU22tomultisc.cxx, LargeVRDSExplicit.cxx, NewSequence.cs, pmsct_rgb1.cxx, ReadAndDumpDICOMDIR.cxx, ReadExplicitLengthSQIVR.cxx, ReadGEMSSDO.cxx, rle2img.cxx, and StreamImageReaderTest.cxx.

Member Typedef Documentation

Constructor & Destructor Documentation

gdcm::DataElement::DataElement ( const Tag t = Tag(0),
const VL vl = 0,
const VR vr = VR::INVALID 
)
inline
gdcm::DataElement::DataElement ( const DataElement _val)
inline

Member Function Documentation

void gdcm::DataElement::Clear ( )
inline

Clear Data Element (make Value empty and invalidate Tag & VR)

References gdcm::VR::INVALID.

Referenced by gdcm::Item::Clear().

void gdcm::DataElement::Empty ( )
inline

Make Data Element empty (no Value)

const ByteValue* gdcm::DataElement::GetByteValue ( ) const
inline
template<typename TDE >
VL gdcm::DataElement::GetLength ( ) const
inline
const SequenceOfFragments* gdcm::DataElement::GetSequenceOfFragments ( ) const

Return the Value of DataElement as a Sequence Of Fragments (if possible)

Warning
: You need to check for NULL return value
Examples:
FixBrokenJ2K.cxx, FixJAIBugJPEGLS.cxx, and GetJPEGSamplePrecision.cxx.
SequenceOfFragments* gdcm::DataElement::GetSequenceOfFragments ( )
const SequenceOfItems* gdcm::DataElement::GetSequenceOfItems ( ) const

Return the Value of DataElement as a Sequence Of Items (if possible)

Warning
: You need to check for NULL return value
: In some case a Value could not have been recognized as a SequenceOfItems in those case the return of the function will be NULL, while the Value would be a valid SequenceOfItems, in those case prefer GetValueAsSQ. In which case the code internally trigger an assert to warn developper. When in doubt do not use this function and prefer GetValueAsSQ()
Deprecated:
Replaced by DataElement::GetValueAsSQ() as of GDCM 2.2.
SequenceOfItems* gdcm::DataElement::GetSequenceOfItems ( )
const Tag& gdcm::DataElement::GetTag ( ) const
inline
Tag& gdcm::DataElement::GetTag ( )
inline
Value const& gdcm::DataElement::GetValue ( ) const
inline
Value& gdcm::DataElement::GetValue ( )
inline
SmartPointer<SequenceOfItems> gdcm::DataElement::GetValueAsSQ ( ) const

Interpret the Value stored in the DataElement. This is more robust (but also more expensive) to call this function rather than the simpliest form: GetSequenceOfItems() It also return NULL when the Value is NOT of type SequenceOfItems

Warning
in case GetSequenceOfItems() succeed the function return this value, otherwise it creates a new SequenceOfItems, you should handle that in your case, for instance: SmartPointer<SequenceOfItems> sqi = de.GetValueAsSQ();
Examples:
ChangeSequenceUltrasound.cxx, DumpGEMSMovieGroup.cxx, DumpPhilipsECHO.cxx, ExtractEncryptedContent.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GetSequenceUltrasound.cxx, LargeVRDSExplicit.cxx, and ReadAndDumpDICOMDIR.cxx.
const VL& gdcm::DataElement::GetVL ( ) const
inline
VL& gdcm::DataElement::GetVL ( )
inline
VR const& gdcm::DataElement::GetVR ( ) const
inline
bool gdcm::DataElement::IsEmpty ( ) const
inline
bool gdcm::DataElement::IsUndefinedLength ( ) const
inline

return if Value Length if of undefined length

bool gdcm::DataElement::operator< ( const DataElement de) const
inline

References GetTag().

DataElement& gdcm::DataElement::operator= ( const DataElement de)
inline
bool gdcm::DataElement::operator== ( const DataElement de) const
inline
template<typename TDE , typename TSwap >
std::istream& gdcm::DataElement::Read ( std::istream &  is)
inline
template<typename TDE , typename TSwap >
std::istream& gdcm::DataElement::ReadOrSkip ( std::istream &  is,
std::set< Tag > const &  skiptags 
)
inline
template<typename TDE , typename TSwap >
std::istream& gdcm::DataElement::ReadPreValue ( std::istream &  is,
std::set< Tag > const &  skiptags 
)
inline
template<typename TDE , typename TSwap >
std::istream& gdcm::DataElement::ReadValue ( std::istream &  is,
std::set< Tag > const &  skiptags 
)
inline
template<typename TDE , typename TSwap >
std::istream& gdcm::DataElement::ReadValueWithLength ( std::istream &  is,
VL length,
std::set< Tag > const &  skiptags 
)
inline
template<typename TDE , typename TSwap >
std::istream& gdcm::DataElement::ReadWithLength ( std::istream &  is,
VL length 
)
inline
void gdcm::DataElement::SetByteValue ( const char *  array,
VL  length 
)
inline
void gdcm::DataElement::SetTag ( const Tag t)
inline
void gdcm::DataElement::SetValue ( Value const &  vl)
inline
void gdcm::DataElement::SetValueFieldLength ( VL  vl,
bool  readvalues 
)
protected
void gdcm::DataElement::SetVL ( const VL vl)
inline

Set VL Use with cautious (need to match Part 6), advanced user only

See Also
SetByteValue
void gdcm::DataElement::SetVLToUndefined ( )
void gdcm::DataElement::SetVR ( VR const &  vr)
inline
template<typename TDE , typename TSwap >
const std::ostream& gdcm::DataElement::Write ( std::ostream &  os) const
inline

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  _os,
const DataElement _val 
)
friend

Member Data Documentation

Tag gdcm::DataElement::TagField
protected
ValuePtr gdcm::DataElement::ValueField
protected
VL gdcm::DataElement::ValueLengthField
protected
VR gdcm::DataElement::VRField
protected

The documentation for this class was generated from the following file:

Generated on Sat Dec 21 2013 05:56:20 for GDCM by doxygen 1.8.5
SourceForge.net Logo