# gdcm::Reader Class Reference

Reader ala DOM (Document Object Model) More...

`#include <gdcmReader.h>`

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

List of all members.

## Public Member Functions

| Reader ()
virtual | ~Reader ()
const File & | GetFile () const
| Set/Get File.
File & | GetFile ()
| Set/Get File.
virtual bool | Read ()
| Main function to read a file.
bool | ReadSelectedTags (std::set< Tag > const &tags)
| Will only read the specified selected tags.
bool | ReadUpToTag (const Tag &tag, std::set< Tag > const &skiptags)
| Will read only up to Tag 'tag'.
void | SetFile (File &file)
| Set/Get File.
void | SetFileName (const char *filename)
void | SetStream (std::istream &input_stream)
| Set the open-ed stream directly.

## Protected Member Functions

std::istream * | GetStreamPtr () const
bool | ReadDataSet ()
bool | ReadMetaInformation ()
bool | ReadPreamble ()

## Protected Attributes

SmartPointer< File > | F

## Friends

class | StreamImageReader

## Detailed Description

Reader ala DOM (Document Object Model)

This class is a non-validating reader, it will only performs well- formedness check only, and to some extent catch known error (non well-formed document).

Detailled description here

A DataSet DOES NOT contains group 0x0002 (see FileMetaInformation)

This is really a DataSet reader. This will not make sure the dataset conform to any IOD at all. This is a completely different step. The reasoning was that user could control the IOD there lib would handle and thus we would not be able to read a DataSet if the IOD was not found Instead we separate the reading from the validation.

Note:
  From GDCM1.x. Users will realize that one feature is missing from this DOM implementation. In GDCM 1.x user used to be able to control the size of the Value to be read. By default it was 0xfff. The main author of GDCM2 thought this was too dangerous and harmful and therefore this feature did not make it into GDCM2

Warning:
  GDCM will not produce warning for unorder (non-alphabetical order).

See also:
  Writer FileMetaInformation DataSet File

Examples:

  ChangeSequenceUltrasound.cxx, ClinicalTrialAnnotate.cxx, csa2img.cxx, DiffFile.cxx, DuplicatePCDE.cxx, ExtractEncryptedContent.cxx, FixBrokenJ2K.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GenLongSeqs.cxx, GenSeqs.cxx, GetSequenceUltrasound.cxx, GetSubSequenceData.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, PatchFile.cxx, ReadAndDumpDICOMDIR.cxx, ReadAndPrintAttributes.cxx, ReadExplicitLengthSQIVR.cxx, ReadGEMSSDO.cxx, rle2img.cxx, and TestReader.cxx.

## Constructor & Destructor Documentation

gdcm::Reader::Reader | ( |  | ) | `[inline]`

virtual gdcm::Reader::~Reader | ( |  | ) | `[virtual]`

## Member Function Documentation

const File& gdcm::Reader::GetFile | ( |  | ) | const`[inline]`

Set/Get File.

Examples:
  ChangeSequenceUltrasound.cxx, ClinicalTrialAnnotate.cxx, CompressImage.cxx, csa2img.cxx, DiffFile.cxx, DuplicatePCDE.cxx, ExtractEncryptedContent.cxx, FixBrokenJ2K.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GenLongSeqs.cxx, GenSeqs.cxx, GetJPEGSamplePrecision.cxx, GetSequenceUltrasound.cxx, HelloVizWorld.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, MergeTwoFiles.cxx, MrProtocol.cxx, PatchFile.cxx, ReadAndDumpDICOMDIR.cxx, ReadAndPrintAttributes.cxx, ReadExplicitLengthSQIVR.cxx, ReadGEMSSDO.cxx, rle2img.cxx, and TestReader.cxx.

File& gdcm::Reader::GetFile | ( |  | ) | `[inline]`

Set/Get File.

std::istream* gdcm::Reader::GetStreamPtr | ( |  | ) | const`[inline, protected]`

virtual bool gdcm::Reader::Read | ( |  | ) | `[virtual]`

Main function to read a file.

Reimplemented in gdcm::ImageReader, and gdcm::PixmapReader.

Examples:
  ChangeSequenceUltrasound.cxx, ClinicalTrialAnnotate.cxx, csa2img.cxx, DiffFile.cxx, DuplicatePCDE.cxx, ExtractEncryptedContent.cxx, FixBrokenJ2K.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GenLongSeqs.cxx, GenSeqs.cxx, GetSequenceUltrasound.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, PatchFile.cxx, ReadAndDumpDICOMDIR.cxx, ReadAndPrintAttributes.cxx, ReadExplicitLengthSQIVR.cxx, ReadGEMSSDO.cxx, rle2img.cxx, and TestReader.cxx.

bool gdcm::Reader::ReadDataSet | ( |  | ) | `[protected]`

bool gdcm::Reader::ReadMetaInformation | ( |  | ) | `[protected]`

bool gdcm::Reader::ReadPreamble | ( |  | ) | `[protected]`

bool gdcm::Reader::ReadSelectedTags | ( | std::set< Tag > const & | tags | ) |

Will only read the specified selected tags.

bool gdcm::Reader::ReadUpToTag | ( | const Tag & | tag,
|  | std::set< Tag > const & | skiptags
| ) |  |

Will read only up to Tag 'tag'.

void gdcm::Reader::SetFile | ( | File & | file | ) | `[inline]`

Set/Get File.

void gdcm::Reader::SetFileName | ( | const char * | filename | ) | `[inline]`

Set the filename to open. This will create a std::ifstream internally See SetStream if you are dealing with different std::istream object

Examples:
  ChangeSequenceUltrasound.cxx, CheckBigEndianBug.cxx, ClinicalTrialAnnotate.cxx, CompressImage.cxx, ConvertToQImage.cxx, csa2img.cxx, DiffFile.cxx, DuplicatePCDE.cxx, ExtractEncryptedContent.cxx, FixBrokenJ2K.cxx, gdcmrtionplan.cxx, gdcmrtplan.cxx, GenLongSeqs.cxx, GenSeqs.cxx, GetJPEGSamplePrecision.cxx, GetSequenceUltrasound.cxx, GetSubSequenceData.cxx, HelloVizWorld.cxx, HelloWorld.cxx, LargeVRDSExplicit.cxx, MergeTwoFiles.cxx, MrProtocol.cxx, PatchFile.cxx, ReadAndDumpDICOMDIR.cxx, ReadAndPrintAttributes.cxx, ReadExplicitLengthSQIVR.cxx, ReadGEMSSDO.cxx, rle2img.cxx, TestReader.cxx, and threadgdcm.cxx.

void gdcm::Reader::SetStream | ( | std::istream & | input_stream | ) | `[inline]`

Set the open-ed stream directly.

## Friends And Related Function Documentation

friend class StreamImageReader`[friend]`

## Member Data Documentation

SmartPointer<File> gdcm::Reader::F `[protected]`

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

- gdcmReader.h