vega
Classes
vega::manipulators Namespace Reference

This namespace contains all the manipulators used to work with DataElement data. More...

Classes

class  AgeStringManipulator
 
class  ApplicationEntityManipulator
 
class  AttributeTagManipulator
 
class  CodeStringManipulator
 
class  DateManipulator
 
class  DateTimeManipulator
 
class  DecimalStringManipulator
 
class  EncapsulatedPixelDataManipulator
 
class  FixedSizeElementManipulator
 A manipulator class for VR that represent fixed size elements like integers and floating point numbers. More...
 
class  FloatingPointDoubleManipulator
 
class  FloatingPointManipulator
 
class  IntegerStringManipulator
 
class  LongStringManipulator
 
class  LongTextManipulator
 
class  OtherByteManipulator
 
class  OtherDoubleManipulator
 
class  OtherFloatManipulator
 
class  OtherLongManipulator
 
class  OtherWordManipulator
 
class  PaddedStringManipulator
 A manipulator class for VR that represent elements which are encoded in DICOM using strings. More...
 
class  PersonNameManipulator
 
class  PixelDataManipulator
 
class  ShortStringManipulator
 
class  ShortTextManipulator
 
class  SignedLongManipulator
 
class  SignedShortManipulator
 
class  SingleStringManipulator
 A manipulator class for VR that represent a single string. More...
 
class  TimeManipulator
 
class  UniqueIdentifierManipulator
 
class  UnknownManipulator
 
class  UnlimitedCharactersManipulator
 
class  UnlimitedTextManipulator
 
class  UnsignedLongManipulator
 
class  UnsignedShortManipulator
 
class  URIManipulator
 
class  ValueManipulator
 

Detailed Description

This namespace contains all the manipulators used to work with DataElement data.

Manipulator concept

A DICOM file is composed of a nested structure of many DataElements and DataSets. A DataElement can contain a wide variety of data determined by its value representation. For instance, data could be an array of signed 32 bit integers (vr::SL), or a string of characters that represent multiple integers separated by backspaces (vr::IS). The basic content is the same in each case, 32 bit signed integers, but the way they are stored in the DataElement is very different.

This library hides away the details of how the data is stored in the data elements through the use of manipulators. In the above case you would have the two manipulators SignedLongManipulator and IntegerStringManipulator, both of which inherit from std::vector<int32_t> and so deal with the data in a uniform way. They know how the vector of integers should be stored in the DICOM file, so you as a developer do not have to.

Manipulators

There are three main manipulators that all other manipulators inherit from:

Abbreviated versions

In file vega/manipulator.h is defined many typedefs which give nice short names for the complicated manipulator names here. For instance, vega::manipulators::PersonNameManipulator becomes just vega::PN_Manipulator.