MeVisLab Toolbox Reference
|
Class to represent one DICOM tag. More...
#include <DCMTree_Tag.h>
Public Member Functions | |
Tag () | |
Constructor. More... | |
Tag (const TagInfo &info) | |
Constructor info defines the data type, name, etc., of this tag. More... | |
Tag (const Tag &other) | |
Copy constructor that uses operator=. More... | |
Tag (const Tag &other, unsigned short slot) | |
Copy constructor for private tags with a given private slot. More... | |
~Tag () override | |
Destructor. More... | |
Tag & | operator= (const Tag &other) |
Deep copies all values from other to this. More... | |
bool | operator== (const Tag &other) const |
Compares the tag with all contained values for equality. More... | |
bool | operator!= (const Tag &other) const |
bool | isEqual (const Tag &other, double tolerance=0) const |
Compares the tag with all contained values for equality; use tolerance for float value comparison. More... | |
virtual TagPtr | copy () const |
Makes a deep copy of this. More... | |
const TagInfo & | info () const |
Returns the tag information (type, etc.) of this tag. More... | |
const TreePtrVector & | sequenceItems () const |
Accesses the probably embedded sequences of this tag. More... | |
TreePtrVector & | sequenceItems () |
Accesses the probably embedded sequences of this tag. More... | |
boost::uint32_t | numberOfSequenceItems () const |
Returns the number of embedded sequence items of this tag. More... | |
void | dropSequenceItems () |
Drops all sequences of this tag. More... | |
void | dropSequenceItem (unsigned idx) |
Drop the idx sequences of this tag. More... | |
virtual boost::uint32_t | numberOfValues () const |
Returns the number of values of this tag. More... | |
void | dropValues () |
Drop all values of this tag. More... | |
bool | isEmpty () const |
Returns true if this tag has no sequences and no values. More... | |
bool | isSequence () const |
Returns true if the VR of this tag is SQ. More... | |
bool | isNull (unsigned idx) const |
Checks whether the values with index idx is null. More... | |
bool | isSequenceItemNull (unsigned idx) const |
Checks whether the sequence with index idx is null. More... | |
void | setInfo (const TagInfo &info) |
Sets the tag info for this tag. More... | |
void | addSequenceItem (const TreePtr &sequence) |
Adds the given TreePtr as a sequence to this tag. More... | |
TreePtr & | addSequenceItem () |
Adds a sequence to this tag and returns a reference to it for further processing. More... | |
void | setSequenceItem (const TreePtr &sequence, unsigned idx=0) |
Sets the sequence with index idx . More... | |
std::string | toString (unsigned int idx, StringTrimMode trimMode=DO_NOT_TRIM) const |
Returns the value of tag value idx as a string. More... | |
std::string | toString (StringTrimMode trimMode=DO_NOT_TRIM) const |
Converts the complete tag to a string. More... | |
void | setValue (std::string value, unsigned int idx=0) |
Sets the value of tag value idx as string. More... | |
void | addValue (std::string value) |
Converts string to one or more values and add them to this tag. More... | |
Date | toDate (unsigned int idx=0) const |
Returns the value of tag value idx as date. More... | |
void | setValue (Date value, unsigned int idx=0) |
Sets the value of tag value idx as date. More... | |
void | addValue (Date value) |
Adds a value of this tag as date. More... | |
Time | toTime (unsigned int idx=0) const |
Returns the value of tag value idx as time. More... | |
void | setValue (Time value, unsigned int idx=0) |
Sets thevalue of tag value idx as time. More... | |
void | addValue (Time value) |
Adds a value of this tag as time. More... | |
DateTime | toDateTime (unsigned int idx=0) const |
Returns the value of tag value idx as datetime. More... | |
void | setValue (DateTime value, unsigned int idx=0) |
Sets the value of tag value idx as datetime. More... | |
void | addValue (DateTime value) |
Adds a value of this tag as datetime. More... | |
float | toFloat (unsigned int idx=0) const |
Returns the value of tag value idx as float. More... | |
void | setValue (float value, unsigned int idx=0) |
Sets the value of tag value idx as float. More... | |
void | addValue (float value) |
Adds a value of this tag as float. More... | |
double | toDouble (unsigned int idx=0) const |
Returns the value of tag value idx as double. More... | |
void | setValue (double value, unsigned int idx=0) |
Sets the value of tag value idx as double. More... | |
void | addValue (double value) |
Adds a value of this tag as double. More... | |
int | toInt (unsigned int idx=0) const |
Returns the value of tag value idx as int. More... | |
void | setValue (int value, unsigned int idx=0) |
Sets the value of tag value idx as int. More... | |
void | addValue (int value) |
Adds a value of this tag as int. More... | |
unsigned int | toUInt (unsigned int idx=0) const |
Returns the value of tag-value idx as unsigned int. More... | |
void | setValue (unsigned int value, unsigned int idx=0) |
Sets the value of tag value idx as unsigned int. More... | |
void | addValue (unsigned int value) |
Adds a value of this tag as unsigned int. More... | |
short int | toShort (unsigned int idx=0) const |
Returns the value of tag value idx as short. More... | |
void | setValue (short int value, unsigned int idx=0) |
Sets the value of tag value idx as short. More... | |
void | addValue (short int value) |
Adds a value of this tag as short. More... | |
unsigned short | toUShort (unsigned int idx=0) const |
Returns the value of tag value idx as unsigned short. More... | |
void | setValue (unsigned short int value, unsigned int idx=0) |
Sets the value of tag value idx as unsigned short. More... | |
void | addValue (unsigned short int value) |
Adds a value of this tag as unsigned short. More... | |
const Value & | getValue (unsigned int idx=0) const |
Returns the value object with index idx . More... | |
void | setValue (const Value &value, unsigned int idx=0) |
Sets the value object with index idx . More... | |
virtual Value & | addValue () |
Adds a value and return a reference for further processing. More... | |
virtual boost::uint32_t | getValueSize (unsigned int idx) const |
Returns the size in bytes of the data of the value-object with index idx . More... | |
virtual boost::uint32_t | getValueSize () const |
Returns the total size in bytes of the data of the values. More... | |
virtual void | fromStream (std::istream &in, bool readName, size_t maxSize=0) |
Extracts this instance from the given stream. More... | |
virtual void | toStream (std::ostream &out, bool writeName) const |
Copies this instance recursively into the given stream. More... | |
int | compare (const Tag &tag, double tolerance=0.0001) const |
Compares this to tag and returns -1 if this < tag , 0 if this == tag , and 1 if this > tag . More... | |
void | setVr (Vr vr) |
Sets a new value representation if the VR is unknown. More... | |
void | serializeX (DCMTree_Serialization::Sink &sink) const override |
Writes data of this object to sink . More... | |
void | deserializeX (DCMTree_Serialization::Source &source) override |
Overwrites data of this object with data from source . More... | |
![]() | |
virtual | ~Serializable () |
Empty. More... | |
![]() | |
virtual | ~Deserializable () |
Empty. More... | |
Protected Member Functions | |
TagInfo const & | tagInfo () const |
Class to represent one DICOM tag.
Definition at line 42 of file DCMTree_Tag.h.
DCMTree::Tag::Tag | ( | ) |
Constructor.
DCMTree::Tag::Tag | ( | const TagInfo & | info | ) |
Constructor info
defines the data type, name, etc., of this tag.
DCMTree::Tag::Tag | ( | const Tag & | other | ) |
Copy constructor that uses operator=.
DCMTree::Tag::Tag | ( | const Tag & | other, |
unsigned short | slot | ||
) |
Copy constructor for private tags with a given private slot.
slot | A value between 0x10 and 0xFF that will be used as the upper byte in the tag element. |
|
override |
Destructor.
TreePtr& DCMTree::Tag::addSequenceItem | ( | ) |
Adds a sequence to this tag and returns a reference to it for further processing.
void DCMTree::Tag::addSequenceItem | ( | const TreePtr & | sequence | ) |
Adds the given TreePtr as a sequence to this tag.
The referenced Tree remains valid. Tag stores only the reference. If the referenced data is changed externally, this tag references the changes, too. If you need a dedicated copy, make one with Tree::copy! Shared pointers are to used to make it easier to edit/process sequences and to avoid copies
|
virtual |
Adds a value and return a reference for further processing.
Be careful - no type checking!
void DCMTree::Tag::addValue | ( | Date | value | ) |
Adds a value
of this tag as date.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | DateTime | value | ) |
Adds a value
of this tag as datetime.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | double | value | ) |
Adds a value
of this tag as double.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | float | value | ) |
Adds a value
of this tag as float.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | int | value | ) |
Adds a value
of this tag as int.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | short int | value | ) |
Adds a value
of this tag as short.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | std::string | value | ) |
Converts string to one or more values and add them to this tag.
Throws if not convertible.
void DCMTree::Tag::addValue | ( | Time | value | ) |
Adds a value
of this tag as time.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | unsigned int | value | ) |
Adds a value
of this tag as unsigned int.
Throws if type checking failed.
void DCMTree::Tag::addValue | ( | unsigned short int | value | ) |
Adds a value
of this tag as unsigned short.
Throws if type checking failed.
int DCMTree::Tag::compare | ( | const Tag & | tag, |
double | tolerance = 0.0001 |
||
) | const |
Compares this
to tag
and returns -1 if this
< tag
, 0 if this
== tag
, and 1 if this
> tag
.
Comparison is performed value-by-value if both tags are numeric; otherwise, byte-by-byte. If one tag is numeric and the other is a string, this results in nonsense. tolerance
specifies the relative difference that is still accepted for 'equal' result.
|
virtual |
Makes a deep copy of this.
Reimplemented in DCMTree::MFPixelTag.
|
overridevirtual |
Overwrites data of this object with data from source
.
All the rules stated for SCR::Serializable::serializeX apply correspondingly.
Implements DCMTree_Serialization::Deserializable.
void DCMTree::Tag::dropSequenceItem | ( | unsigned | idx | ) |
Drop the idx
sequences of this tag.
Throws if this tag tag is not of type SQ or the index is out of range.
void DCMTree::Tag::dropSequenceItems | ( | ) |
Drops all sequences of this tag.
Does not check for SQ (if not SQ, you just drop nothing).
void DCMTree::Tag::dropValues | ( | ) |
Drop all values of this tag.
Does not drop sequences! These are handled differently!
|
virtual |
Extracts this instance from the given stream.
readName = true
reads tag name(s) from stream, false
assumes that no name(s) is/are in stream. maxSize > 0 will interrupt loops with further stream reading operations if maxSize is exceeded within the loop. IMPORTANT: This method is used for file format persistence; thus stream contents must be maintained compatible.
Referenced by DCMTree::operator>>().
const Value& DCMTree::Tag::getValue | ( | unsigned int | idx = 0 | ) | const |
Returns the value object with index idx
.
Throws if the index is out of range. Be careful - no type checking!
|
virtual |
Returns the total size in bytes of the data of the values.
Reimplemented in DCMTree::MFPixelTag.
|
virtual |
Returns the size in bytes of the data of the value-object with index idx
.
Throws if the index is out of range.
Reimplemented in DCMTree::MFPixelTag.
const TagInfo& DCMTree::Tag::info | ( | ) | const |
Returns the tag information (type, etc.) of this tag.
bool DCMTree::Tag::isEmpty | ( | ) | const |
Returns true
if this tag has no sequences and no values.
bool DCMTree::Tag::isEqual | ( | const Tag & | other, |
double | tolerance = 0 |
||
) | const |
Compares the tag with all contained values for equality; use tolerance for float value comparison.
bool DCMTree::Tag::isNull | ( | unsigned | idx | ) | const |
Checks whether the values with index idx
is null.
Throws if the index is out of range.
bool DCMTree::Tag::isSequence | ( | ) | const |
Returns true
if the VR of this tag is SQ.
bool DCMTree::Tag::isSequenceItemNull | ( | unsigned | idx | ) | const |
Checks whether the sequence with index idx
is null.
Throws if the index is out of range.
boost::uint32_t DCMTree::Tag::numberOfSequenceItems | ( | ) | const |
Returns the number of embedded sequence items of this tag.
Does not check for SQ.
|
virtual |
Returns the number of values of this tag.
Reimplemented in DCMTree::MFPixelTag.
bool DCMTree::Tag::operator!= | ( | const Tag & | other | ) | const |
Deep copies all values from other to this.
Handles self assignment well.
bool DCMTree::Tag::operator== | ( | const Tag & | other | ) | const |
Compares the tag with all contained values for equality.
TreePtrVector& DCMTree::Tag::sequenceItems | ( | ) |
Accesses the probably embedded sequences of this tag.
Throws if this tag is not of type SQ!
const TreePtrVector& DCMTree::Tag::sequenceItems | ( | ) | const |
Accesses the probably embedded sequences of this tag.
Throws if this tag is not of type SQ!
|
overridevirtual |
Writes data of this object to sink
.
Implementations of Serializable::serializeX should strictly follow this pattern:
class C: public SCR::Serializable { T1 _m1; T2 _m2; T3 _m3; public: void serializeX(SCR::Sink &sink) const { SCR::serializeX(sink, _m1); SCR::serializeX(sink, _m2); SCR::serializeX(sink, _m3); } };
That is, you should call some overloading of SCR::serializeX for every member.
If some of the types T1, T2, T3 are not serializable, you should make them serializable.
Implements DCMTree_Serialization::Serializable.
void DCMTree::Tag::setInfo | ( | const TagInfo & | info | ) |
Sets the tag info
for this tag.
Be careful if changing the VR!
void DCMTree::Tag::setSequenceItem | ( | const TreePtr & | sequence, |
unsigned | idx = 0 |
||
) |
Sets the sequence
with index idx
.
Same as addSequenceItem. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | const Value & | value, |
unsigned int | idx = 0 |
||
) |
Sets the value object with index idx
.
Throws if the index is out of range. Be careful - no type checking!
void DCMTree::Tag::setValue | ( | Date | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as date.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | DateTime | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as datetime.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | double | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as double.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | float | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as float.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | int | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as int.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | short int | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as short.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | std::string | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as string.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | Time | value, |
unsigned int | idx = 0 |
||
) |
Sets thevalue
of tag value idx
as time.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | unsigned int | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as unsigned int.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setValue | ( | unsigned short int | value, |
unsigned int | idx = 0 |
||
) |
Sets the value
of tag value idx
as unsigned short.
Throws if type checking failed. Throws if the index is out of range.
void DCMTree::Tag::setVr | ( | Vr | vr | ) |
Sets a new value representation if the VR is unknown.
This is needed mainly for private tags with unknown VR, or can be used for still unsupported tags. The new VR is set only if the current VR is unknown, and the existing value is converted to the new VR. This may also mean that the number of values changes.
|
inlineprotected |
Definition at line 465 of file DCMTree_Tag.h.
Date DCMTree::Tag::toDate | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as date.
Throws if type checking failed. Throws if the index is out of range.
DateTime DCMTree::Tag::toDateTime | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as datetime.
Throws if type checking failed. Throws if the index is out of range.
double DCMTree::Tag::toDouble | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as double.
Throws if type checking failed. Throws if the index is out of range.
float DCMTree::Tag::toFloat | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as float.
Throws if type checking failed. Throws if the index is out of range.
int DCMTree::Tag::toInt | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as int.
Throws if type checking failed. Throws if the index is out of range.
short int DCMTree::Tag::toShort | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as short.
Throws if type checking failed. Throws if the index is out of range.
|
virtual |
Copies this instance recursively into the given stream.
writeName = true
writes tag name(s) to stream, false
writes no name(s) into stream. IMPORTANT: This method is used for file format persistence; thus stream contents must be maintained compatible.
Referenced by DCMTree::operator<<().
std::string DCMTree::Tag::toString | ( | StringTrimMode | trimMode = DO_NOT_TRIM | ) | const |
Converts the complete tag to a string.
That means that all values are concatenated by a backslash and converted to a string. Throws if not convertible. trimMode offers the possibility to trim leading and trailing spaces.
std::string DCMTree::Tag::toString | ( | unsigned int | idx, |
StringTrimMode | trimMode = DO_NOT_TRIM |
||
) | const |
Returns the value of tag value idx
as a string.
Throws if type checking failed. Throws if the index is out of range. trimMode offers the possibility to trim leading and trailing spaces.
Time DCMTree::Tag::toTime | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as time.
Throws if type checking failed. Throws if the index is out of range.
unsigned int DCMTree::Tag::toUInt | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag-value idx as unsigned int.
Throws if type-checking failed. Throws if the index is out of range.
unsigned short DCMTree::Tag::toUShort | ( | unsigned int | idx = 0 | ) | const |
Returns the value of tag value idx
as unsigned short.
Throws if type checking failed. Throws if the index is out of range.