# 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
Iterator | Begin ()
ConstIterator | Begin () const
void | Clear ()
template<typename TDE >
unsigned int | ComputeGroupLength (Tag const &tag) const
Iterator | End ()
ConstIterator | End () const
bool | FindDataElement (const Tag &t) const
bool | FindDataElement (const PrivateTag &t) const
| Look up if private tag 't' is present in the dataset:
const DataElement & | FindNextDataElement (const Tag &t) const
const DataElement & | GetDataElement (const PrivateTag &t) const
| Return the dataelement.
const DataElement & | GetDataElement (const Tag &t) const
DataElementSet & | GetDES ()
const DataElementSet & | GetDES () const
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 & | 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.
unsigned int | 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.

TODO: a DataSet DOES NOT have a TS type... a file does !

Examples:

  AnonymizeAES.cxx, ClinicalTrialAnnotate.cxx, CompressImage.cxx, csa2img.cxx, DuplicatePCDE.cxx, EncapsulateFileInRawData.cxx, GenSeqs.cxx, GetJPEGSamplePrecision.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, MergeTwoFiles.cxx, MrProtocol.cxx, PatchFile.cxx, ReadExplicitLengthSQIVR.cxx, rle2img.cxx, SortImage.cxx, TestReader.cxx, and VolumeSorter.cxx.

## Member Typedef Documentation

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

Examples:
  DuplicatePCDE.cxx.

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

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

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

## Member Function Documentation

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

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

Examples:
  DuplicatePCDE.cxx.

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:
  DuplicatePCDE.cxx.

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

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

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

Examples:
  csa2img.cxx, LargeVRDSExplicit.cxx, MrProtocol.cxx, and rle2img.cxx.

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

Examples:
  DuplicatePCDE.cxx.

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

Return the dataelement.

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:
  AnonymizeAES.cxx, csa2img.cxx, GetJPEGSamplePrecision.cxx, LargeVRDSExplicit.cxx, MrProtocol.cxx, PatchFile.cxx, ReadExplicitLengthSQIVR.cxx, and rle2img.cxx.

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

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

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

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

template<typename TDE >

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

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:
  AnonymizeAES.cxx, DuplicatePCDE.cxx, and GenSeqs.cxx.

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

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

References gdcmWarningMacro.

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 | ) | `[inline]`

Reimplemented in gdcm::FileMetaInformation.

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadNested | ( | std::istream & | is | ) | `[inline]`

template<typename TDE , typename TSwap >

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

template<typename TDE , typename TSwap >

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

template<typename TDE , typename TSwap >

std::istream& gdcm::DataSet::ReadWithLength | ( | std::istream & | is,
|  | VL & | length |
| ) |  |  | `[inline]`

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

Completely remove a dataelement from the dataset.

Examples:
  AnonymizeAES.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:
  AnonymizeAES.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, and PatchFile.cxx.

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

template<typename TDE , typename TSwap >

std::ostream const& gdcm::DataSet::Write | ( | std::ostream & | os | ) | const`[inline]`

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