# gdcm::DataSet Class Reference

Class to represent a Data Set (which contains Data Elements) A Data Set represents an instance of a real world Information Object. More...

`#include <gdcmDataSet.h>`

Inheritance diagram for gdcm::DataSet:
[legend]
Collaboration diagram for gdcm::DataSet:
[legend]

List of all members.

## Public Types

typedef DataElementSet::const_iterator | ConstIterator
typedef std::set< DataElement > | DataElementSet
typedef DataElementSet::iterator | Iterator
typedef DataElementSet::size_type | SizeType

## Public Member Functions

ConstIterator | Begin () const
Iterator | Begin ()
void | Clear ()
template<typename TDE >
unsigned int | ComputeGroupLength (Tag const &tag) const
Iterator | End ()
ConstIterator | End () const
bool | FindDataElement (const PrivateTag &t) const
| Look up if private tag 't' is present in the dataset:
bool | FindDataElement (const Tag &t) const
const DataElement & | FindNextDataElement (const Tag &t) const
const DataElement & | GetDataElement (const Tag &t) const
const DataElement & | GetDataElement (const PrivateTag &t) const
| Return the dataelement.
const DataElementSet & | GetDES () const
DataElementSet & | GetDES ()
template<typename TDE >
VL | GetLength () const
std::string | GetPrivateCreator (const Tag &t) const
| Return the private creator of the private tag 't':
void | Insert (const DataElement &de)
bool | IsEmpty () const
| Returns if the dataset is empty.
const DataElement & | operator() (uint16_t group, uint16_t element) const
DataSet & | operator= (DataSet const &val)
const DataElement & | operator[] (const Tag &t) const
void | Print (std::ostream &os, std::string const &indent="") const
template<typename TDE , typename TSwap >
std::istream & | Read (std::istream &is)
template<typename TDE , typename TSwap >
std::istream & | ReadNested (std::istream &is)
template<typename TDE , typename TSwap >
std::istream & | ReadSelectedTags (std::istream &is, const std::set< Tag > &tags)
template<typename TDE , typename TSwap >
std::istream & | ReadSelectedTagsWithLength (std::istream &is, const std::set< Tag > &tags, VL &length)
template<typename TDE , typename TSwap >
std::istream & | ReadUpToTag (std::istream &is, const Tag &t, std::set< Tag > const &skiptags)
template<typename TDE , typename TSwap >
std::istream & | ReadUpToTagWithLength (std::istream &is, const Tag &t, VL &length)
template<typename TDE , typename TSwap >
std::istream & | ReadWithLength (std::istream &is, VL &length)
SizeType | Remove (const Tag &tag)
| Completely remove a dataelement from the dataset.
void | Replace (const DataElement &de)
| Replace a dataelement with another one.
void | ReplaceEmpty (const DataElement &de)
| Only replace a DICOM attribute when it is missing or empty.
SizeType | Size () const
template<typename TDE , typename TSwap >
std::ostream const & | Write (std::ostream &os) const

## Protected Member Functions

Tag | ComputeDataElement (const PrivateTag &t) const
const DataElement & | GetDEEnd () const
void | InsertDataElement (const DataElement &de)

## Friends

class | CSAHeader
std::ostream & | operator<< (std::ostream &_os, const DataSet &val)

## Detailed Description

Class to represent a Data Set (which contains Data Elements) A Data Set represents an instance of a real world Information Object.

Note:
  DATA SET: Exchanged information consisting of a structured set of Attribute values directly or indirectly related to Information Objects. The value of each Attribute in a Data Set is expressed as a Data Element. A collection of Data Elements ordered by increasing Data Element Tag number that is an encoding of the values of Attributes of a real world object.
  Implementation note. If one do: DataSet ds; ds.SetLength(0); ds.Read(is); setting length to 0 actually means try to read is as if it was a root DataSet. Other value are undefined (nested dataset with undefined length) or defined length (different from 0) means nested dataset with defined length.

Warning:
  a DataSet does not have a Transfer Syntax type, only a File does.

Examples:

  ChangeSequenceUltrasound.cxx, ClinicalTrialAnnotate.cxx, CompressImage.cxx, csa2img.cxx, DiffFile.cxx, DuplicatePCDE.cxx, EncapsulateFileInRawData.cxx, ExtractEncryptedContent.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GenAllVR.cxx, GenFakeIdentifyFile.cxx, GenLongSeqs.cxx, GenSeqs.cxx, GetJPEGSamplePrecision.cxx, GetSequenceUltrasound.cxx, GetSubSequenceData.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, MergeTwoFiles.cxx, MrProtocol.cxx, PatchFile.cxx, ReadAndDumpDICOMDIR.cxx, ReadAndPrintAttributes.cxx, ReadExplicitLengthSQIVR.cxx, ReadGEMSSDO.cxx, rle2img.cxx, SortImage.cxx, TestReader.cxx, and VolumeSorter.cxx.

## Member Typedef Documentation

typedef DataElementSet::const_iterator gdcm::DataSet::ConstIterator

typedef std::set<DataElement> gdcm::DataSet::DataElementSet

typedef DataElementSet::iterator gdcm::DataSet::Iterator

typedef DataElementSet::size_type gdcm::DataSet::SizeType

## Member Function Documentation

ConstIterator gdcm::DataSet::Begin | ( |  | ) | const`[inline]`

Examples:
  DiffFile.cxx, and DuplicatePCDE.cxx.

Iterator gdcm::DataSet::Begin | ( |  | ) | `[inline]`

void gdcm::DataSet::Clear | ( |  | ) | `[inline]`

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

Tag gdcm::DataSet::ComputeDataElement | ( | const PrivateTag & | t | ) | const`[protected]`

template<typename TDE >

unsigned int gdcm::DataSet::ComputeGroupLength | ( | Tag const & | tag | ) | const`[inline]`

References gdcm::Tag::GetElement(), and gdcm::Tag::GetGroup().

Iterator gdcm::DataSet::End | ( |  | ) | `[inline]`

ConstIterator gdcm::DataSet::End | ( |  | ) | const`[inline]`

Examples:
  DiffFile.cxx, and DuplicatePCDE.cxx.

bool gdcm::DataSet::FindDataElement | ( | const PrivateTag & | t | ) | const

Look up if private tag 't' is present in the dataset:

Examples:
  ChangeSequenceUltrasound.cxx, csa2img.cxx, ExtractEncryptedContent.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GetSequenceUltrasound.cxx, LargeVRDSExplicit.cxx, MrProtocol.cxx, ReadAndDumpDICOMDIR.cxx, ReadAndPrintAttributes.cxx, ReadGEMSSDO.cxx, and rle2img.cxx.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataSet(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataSet().

bool gdcm::DataSet::FindDataElement | ( | const Tag & | t | ) | const`[inline]`

const DataElement& gdcm::DataSet::FindNextDataElement | ( | const Tag & | t | ) | const`[inline]`

Examples:
  DuplicatePCDE.cxx.

const DataElement& gdcm::DataSet::GetDataElement | ( | const Tag & | t | ) | const`[inline]`

Return the DataElement with Tag 't'

Warning:
  : This only search at the 'root level' of the DataSet

Examples:
  ChangeSequenceUltrasound.cxx, csa2img.cxx, ExtractEncryptedContent.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GetJPEGSamplePrecision.cxx, GetSequenceUltrasound.cxx, LargeVRDSExplicit.cxx, MrProtocol.cxx, PatchFile.cxx, ReadAndDumpDICOMDIR.cxx, ReadAndPrintAttributes.cxx, ReadExplicitLengthSQIVR.cxx, ReadGEMSSDO.cxx, and rle2img.cxx.

Referenced by gdcm::Attribute< Group, Element, TVR, VM::VM1 >::Set(), gdcm::Attribute< Group, Element, TVR, TVM >::Set(), gdcm::Attribute< Group, Element, TVR, VM::VM1 >::SetFromDataSet(), and gdcm::Attribute< Group, Element, TVR, TVM >::SetFromDataSet().

const DataElement& gdcm::DataSet::GetDataElement | ( | const PrivateTag & | t | ) | const

Return the dataelement.

const DataElement& gdcm::DataSet::GetDEEnd | ( |  | ) | const`[protected]`

const DataElementSet& gdcm::DataSet::GetDES | ( |  | ) | const`[inline]`

Examples:
  ReadAndDumpDICOMDIR.cxx.

DataElementSet& gdcm::DataSet::GetDES | ( |  | ) | `[inline]`

template<typename TDE >

VL gdcm::DataSet::GetLength | ( |  | ) | const`[inline]`

References gdcm::VL::GetLength().

std::string gdcm::DataSet::GetPrivateCreator | ( | const Tag & | t | ) | const

Return the private creator of the private tag 't':

Examples:
  DuplicatePCDE.cxx.

void gdcm::DataSet::Insert | ( | const DataElement & | de | ) | `[inline]`

Insert a DataElement in the DataSet.

Warning:
  : Tag need to be >= 0x8 to be considered valid data element

Reimplemented in gdcm::FileMetaInformation.

Examples:
  DuplicatePCDE.cxx, GenAllVR.cxx, GenFakeIdentifyFile.cxx, GenLongSeqs.cxx, and GenSeqs.cxx.

References gdcmErrorMacro, gdcm::Tag::GetGroup(), and gdcm::DataElement::GetTag().

void gdcm::DataSet::InsertDataElement | ( | const DataElement & | de | ) | `[inline, protected]`

References gdcmWarningMacro, gdcm::Value::GetLength(), gdcm::DataElement::GetValue(), gdcm::DataElement::GetVL(), and gdcm::DataElement::IsEmpty().

bool gdcm::DataSet::IsEmpty | ( |  | ) | const`[inline]`

Returns if the dataset is empty.

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

const DataElement& gdcm::DataSet::operator() | ( | uint16_t | group,
|  | uint16_t | element
| ) |  | const`[inline]`

DataSet& gdcm::DataSet::operator= | ( | DataSet const & | val | ) | `[inline]`

const DataElement& gdcm::DataSet::operator[] | ( | const Tag & | t | ) | const`[inline]`

void gdcm::DataSet::Print | ( | std::ostream & | os,
|  | std::string const & | indent = `""`
| ) |  | const`[inline]`

Referenced by gdcm::operator<<().

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::Read | ( | std::istream & | is | ) |

Reimplemented in gdcm::FileMetaInformation.

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadNested | ( | std::istream & | is | ) |

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadSelectedTags | ( | std::istream & | is,
|  | const std::set< Tag > & | tags
| ) |  |

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadSelectedTagsWithLength | ( | std::istream & | is,
|  | const std::set< Tag > & | tags,
|  | VL & | length
| ) |  |

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadUpToTag | ( | std::istream & | is,
|  | const Tag & | t,
|  | std::set< Tag > const & | skiptags
| ) |  |

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadUpToTagWithLength | ( | std::istream & | is,
|  | const Tag & | t,
|  | VL & | length
| ) |  |

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadWithLength | ( | std::istream & | is,
|  | VL & | length
| ) |  |

SizeType gdcm::DataSet::Remove | ( | const Tag & | tag | ) | `[inline]`

Completely remove a dataelement from the dataset.

Examples:
  GenFakeIdentifyFile.cxx, LargeVRDSExplicit.cxx, and MergeTwoFiles.cxx.

void gdcm::DataSet::Replace | ( | const DataElement & | de | ) | `[inline]`

Replace a dataelement with another one.

Reimplemented in gdcm::FileMetaInformation.

Examples:
  ChangeSequenceUltrasound.cxx, GenFakeIdentifyFile.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, and PatchFile.cxx.

void gdcm::DataSet::ReplaceEmpty | ( | const DataElement & | de | ) | `[inline]`

Only replace a DICOM attribute when it is missing or empty.

SizeType gdcm::DataSet::Size | ( |  | ) | const`[inline]`

template<typename TDE , typename TSwap >

std::ostream const& gdcm::DataSet::Write | ( | std::ostream & | os | ) | const

Reimplemented in gdcm::FileMetaInformation.

## Friends And Related Function Documentation

friend class CSAHeader`[friend]`

std::ostream& operator<< | ( | std::ostream & | _os,
|  | const DataSet & | val
| ) |  | `[friend]`

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

- gdcmDataSet.h