GDCM 3.0.24
gdcmPrivateTag.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: GDCM (Grassroots DICOM). A DICOM library
4
5 Copyright (c) 2006-2011 Mathieu Malaterre
6 All rights reserved.
7 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
8
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the above copyright notice for more information.
12
13=========================================================================*/
14#ifndef GDCMPRIVATETAG_H
15#define GDCMPRIVATETAG_H
16
17#include "gdcmTag.h"
18#include "gdcmVR.h"
19#include "gdcmDataElement.h"
20
21#include <iostream>
22#include <iomanip>
23#include <string>
24#include <algorithm>
25
26#include <string.h> // strlen
27#include <ctype.h> // tolower
28
29namespace gdcm_ns
30{
31
37// TODO: We could save some space since we only store 8bits for element
39{
40 friend std::ostream& operator<<(std::ostream &_os, const PrivateTag &_val);
41public:
42 PrivateTag(uint16_t group = 0, uint16_t element = 0, const char *owner = ""):Tag(group,element),Owner(owner ? LOComp::Trim(owner) : "") {
43 // truncate the high bits
44 SetElement( (uint8_t)element );
45 }
46 PrivateTag( Tag const & t, const char *owner = ""):Tag(t),Owner(owner ? LOComp::Trim(owner) : "") {
47 // truncate the high bits
48 SetElement( (uint8_t)t.GetElement());
49 }
50
51 const char *GetOwner() const { return Owner.c_str(); }
52 void SetOwner(const char *owner) { if(owner) Owner = LOComp::Trim(owner); }
53
55 {
56 SetElementTag( _val.GetElementTag() );
57 Owner = _val.Owner;
58 return *this;
59 }
60
61 bool operator==(const Tag &_val) const
62 {
63 return GetElementTag() == _val.GetElementTag();
64 }
65 bool operator==(const PrivateTag &_val) const
66 {
67 return GetElementTag() == _val.GetElementTag() && Owner == _val.Owner;
68 }
69 bool operator!=(const Tag &_val) const
70 {
71 return GetElementTag() != _val.GetElementTag();
72 }
73 bool operator!=(const PrivateTag &_val) const
74 {
75 return GetElementTag() != _val.GetElementTag() || Owner != _val.Owner;
76 }
77
78 bool operator<(const PrivateTag &_val) const;
79
82 bool ReadFromCommaSeparatedString(const char *str);
83
85
86private:
87 // SIEMENS MED, GEMS_PETD_01 ...
88 std::string Owner;
89};
90
91inline std::ostream& operator<<(std::ostream &os, const PrivateTag &val)
92{
93 //assert( !val.Owner.empty() );
94 os.setf( std::ios::right );
95 os << std::hex << '(' << std::setw( 4 ) << std::setfill( '0' )
96 << val[0] << ',' << std::setw( 2 ) << std::setfill( '0' )
97 << val[1] << ',';
98 os << val.Owner;
99 os << ')' << std::setfill( ' ' ) << std::dec;
100 return os;
101}
102
103} // end namespace gdcm_ns
104
105#endif //GDCMPRIVATETAG_H
Class to represent a Data Element either Implicit or Explicit.
Definition gdcmDataElement.h:59
Class to represent a Private DICOM Data Element (Attribute) Tag (Group, Element, Owner)
Definition gdcmPrivateTag.h:39
PrivateTag(Tag const &t, const char *owner="")
Definition gdcmPrivateTag.h:46
PrivateTag & operator=(const PrivateTag &_val)
Definition gdcmPrivateTag.h:54
void SetOwner(const char *owner)
Definition gdcmPrivateTag.h:52
bool operator==(const PrivateTag &_val) const
Definition gdcmPrivateTag.h:65
bool operator==(const Tag &_val) const
Definition gdcmPrivateTag.h:61
const char * GetOwner() const
Definition gdcmPrivateTag.h:51
bool operator!=(const PrivateTag &_val) const
Definition gdcmPrivateTag.h:73
DataElement GetAsDataElement() const
bool operator!=(const Tag &_val) const
Definition gdcmPrivateTag.h:69
bool ReadFromCommaSeparatedString(const char *str)
PrivateTag(uint16_t group=0, uint16_t element=0, const char *owner="")
Definition gdcmPrivateTag.h:42
bool operator<(const PrivateTag &_val) const
String.
Definition gdcmString.h:32
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element).
Definition gdcmTag.h:39
uint16_t GetElement() const
Returns the 'Element number' of the given Tag.
Definition gdcmTag.h:57
uint32_t GetElementTag() const
Returns the full tag value of the given Tag.
Definition gdcmTag.h:68
#define GDCM_EXPORT
Definition gdcmWin32.h:34
std::ostream & operator<<(std::ostream &os, const Directory &d)
Definition gdcmDirectory.h:88