Odil
A C++11 library for the DICOM standard
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
odil::Reader Class Reference

Read DICOM objects from a stream. More...

#include <Reader.h>

Public Member Functions

 Reader (std::istream &stream, std::string const &transfer_syntax, bool keep_group_length=false)
 Build a reader, derive byte ordering and explicit-ness of VR from transfer syntax. More...
 
DataSet read_data_set (std::function< bool(Tag const &)> halt_condition=[](Tag const &) { return false;}) const
 Read a data set. More...
 
Tag read_tag () const
 Read a tag. More...
 
uint32_t read_length (VR vr) const
 Read the length of an element. More...
 
Element read_element (Tag const &tag=Tag(0xffff, 0xffff), DataSet const &data_set=DataSet()) const
 Read an element (VR and value), try to guess the VR from the tag, partially read data set, and transfer syntax for implicit VR transfer syntaxes. More...
 

Static Public Member Functions

template<typename T >
static T read_binary (std::istream &stream, ByteOrdering byte_ordering)
 Read binary data from an stream encoded with the given endianness, ensure stream is still good. More...
 
static Value::Binary read_encapsulated_pixel_data (std::istream &stream, ByteOrdering byte_ordering, std::string transfer_syntax, bool keep_group_length=false)
 Read pixel data in encapsulated form. More...
 
static void ignore (std::istream &stream, std::streamsize size)
 Ignore data from a stream, ensure stream is still good. More...
 
static std::pair< DataSet, DataSetread_file (std::istream &stream, bool keep_group_length=false, std::function< bool(Tag const &)> halt_condition=[](Tag const &) { return false;})
 Return the meta-data header and data set stored in the stream. More...
 

Public Attributes

std::istream & stream
 Input stream. More...
 
std::string transfer_syntax
 Transfer syntax used to read the file. More...
 
ByteOrdering byte_ordering
 Endianness. More...
 
bool explicit_vr
 Explicit-ness of the Value Representations. More...
 
bool keep_group_length
 Flag to keep or discard group length tags. More...
 

Detailed Description

Read DICOM objects from a stream.

Constructor & Destructor Documentation

◆ Reader()

odil::Reader::Reader ( std::istream &  stream,
std::string const &  transfer_syntax,
bool  keep_group_length = false 
)

Build a reader, derive byte ordering and explicit-ness of VR from transfer syntax.

Member Function Documentation

◆ ignore()

static void odil::Reader::ignore ( std::istream &  stream,
std::streamsize  size 
)
static

Ignore data from a stream, ensure stream is still good.

◆ read_binary()

template<typename T >
static T odil::Reader::read_binary ( std::istream &  stream,
ByteOrdering  byte_ordering 
)
static

Read binary data from an stream encoded with the given endianness, ensure stream is still good.

◆ read_data_set()

DataSet odil::Reader::read_data_set ( std::function< bool(Tag const &)>  halt_condition = [](Tag const &) { return false;}) const

Read a data set.

◆ read_element()

Element odil::Reader::read_element ( Tag const &  tag = Tag(0xffff, 0xffff),
DataSet const &  data_set = DataSet() 
) const

Read an element (VR and value), try to guess the VR from the tag, partially read data set, and transfer syntax for implicit VR transfer syntaxes.

◆ read_encapsulated_pixel_data()

static Value::Binary odil::Reader::read_encapsulated_pixel_data ( std::istream &  stream,
ByteOrdering  byte_ordering,
std::string  transfer_syntax,
bool  keep_group_length = false 
)
static

Read pixel data in encapsulated form.

◆ read_file()

static std::pair<DataSet, DataSet> odil::Reader::read_file ( std::istream &  stream,
bool  keep_group_length = false,
std::function< bool(Tag const &)>  halt_condition = [](Tag const &) { return false;} 
)
static

Return the meta-data header and data set stored in the stream.

◆ read_length()

uint32_t odil::Reader::read_length ( VR  vr) const

Read the length of an element.

◆ read_tag()

Tag odil::Reader::read_tag ( ) const

Read a tag.

Member Data Documentation

◆ byte_ordering

ByteOrdering odil::Reader::byte_ordering

Endianness.

◆ explicit_vr

bool odil::Reader::explicit_vr

Explicit-ness of the Value Representations.

◆ keep_group_length

bool odil::Reader::keep_group_length

Flag to keep or discard group length tags.

◆ stream

std::istream& odil::Reader::stream

Input stream.

◆ transfer_syntax

std::string odil::Reader::transfer_syntax

Transfer syntax used to read the file.


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