GDCM: gdcmSegment.h Source File

GDCM 3.2.8

gdcmSegment.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 GDCMSEGMENT_H
15#define GDCMSEGMENT_H
16
17#include <vector>
18
19#include <gdcmObject.h>
20#include <gdcmSurface.h>
21#include "gdcmSegmentHelper.h"
22
23namespace gdcm
24{
25
33 class GDCM_EXPORT Segment : public Object
34{
35public:
36
37 typedef std::vector< SmartPointer< Surface > > SurfaceVector;
38 typedef std::vector< SegmentHelper::BasicCodedEntry > BasicCodedEntryVector;
39
40 typedef enum {
41 AUTOMATIC = 0,
42 SEMIAUTOMATIC,
43 MANUAL,
44 ALGOType_END
45 } ALGOType;
46
47 static const char * GetALGOTypeString(ALGOType type);
48 static ALGOType GetALGOType(const char * type);
49
50
51 Segment();
52
53 ~Segment() override;
54
55 //** Segment getters/setters **//
56 unsigned short GetSegmentNumber() const;
57 void SetSegmentNumber(const unsigned short num);
58
59 const char * GetSegmentLabel() const;
60 void SetSegmentLabel(const char * label);
61
62 const char * GetSegmentDescription() const;
63 void SetSegmentDescription(const char * description);
64
65 SegmentHelper::BasicCodedEntry const & GetAnatomicRegion() const;
66 SegmentHelper::BasicCodedEntry & GetAnatomicRegion();
67 void SetAnatomicRegion(SegmentHelper::BasicCodedEntry const & BSE);
68
69 BasicCodedEntryVector const & GetAnatomicRegionModifiers() const;
70 BasicCodedEntryVector & GetAnatomicRegionModifiers();
71 void SetAnatomicRegionModifiers(BasicCodedEntryVector const & BSEV);
72
73 SegmentHelper::BasicCodedEntry const & GetPropertyCategory() const;
74 SegmentHelper::BasicCodedEntry & GetPropertyCategory();
75 void SetPropertyCategory(SegmentHelper::BasicCodedEntry const & BSE);
76
77 SegmentHelper::BasicCodedEntry const & GetPropertyType() const;
78 SegmentHelper::BasicCodedEntry & GetPropertyType();
79 void SetPropertyType(SegmentHelper::BasicCodedEntry const & BSE);
80
81 BasicCodedEntryVector const & GetPropertyTypeModifiers() const;
82 BasicCodedEntryVector & GetPropertyTypeModifiers();
83 void SetPropertyTypeModifiers(BasicCodedEntryVector const & BSEV);
84
85 ALGOType GetSegmentAlgorithmType() const;
86 void SetSegmentAlgorithmType(ALGOType type);
87 void SetSegmentAlgorithmType(const char * typeStr);
88
89 const char * GetSegmentAlgorithmName() const;
90 void SetSegmentAlgorithmName(const char * name);
91
92 //** Surface getters/setters **//
93 unsigned long GetSurfaceCount();
94 void SetSurfaceCount(const unsigned long nb);
95
96 SurfaceVector const & GetSurfaces() const;
97 SurfaceVector & GetSurfaces();
98
99 SmartPointer< Surface > GetSurface(const unsigned int idx = 0) const;
100
101 void AddSurface(SmartPointer< Surface > surface);
102
103protected :
104 //** Segment members **//
105 //0062 0004 US 1 Segment Number
106 unsigned short SegmentNumber;
107 //0062 0005 LO 1 Segment Label
108 std::string SegmentLabel;
109 //0062 0006 ST 1 Segment Description
110 std::string SegmentDescription;
111
112 // General Anatomic Region
113 SegmentHelper::BasicCodedEntry AnatomicRegion;
114 // General Anatomic Region Modifier
115 BasicCodedEntryVector AnatomicRegionModifiers;
116 // Property Category Code
117 SegmentHelper::BasicCodedEntry PropertyCategory;
118 // Property Type Code
119 SegmentHelper::BasicCodedEntry PropertyType;
120 // Property Type Modifier Code
121 BasicCodedEntryVector PropertyTypeModifiers;
122
123 //0062 0008 CS 1 Segment Algorithm Type
124 ALGOType SegmentAlgorithmType;
125 //0062 0009 LO 1 Segment Algorithm Name
126 std::string SegmentAlgorithmName;
127
128 //** Surface members **//
129 //0066 002a UL 1 Surface Count
130 unsigned long SurfaceCount;
131
132 SurfaceVector Surfaces;
133
134private :
135 void ComputeSurfaceCount();
136};
137
138}
139
140#endif // GDCMSEGMENT_H
gdcm::Object::Object
Object()
Definition gdcmObject.h:42
gdcm::Object::SmartPointer
friend class SmartPointer
Definition gdcmObject.h:38
gdcm::Segment::GetPropertyTypeModifiers
BasicCodedEntryVector & GetPropertyTypeModifiers()
gdcm::Segment::GetSegmentNumber
unsigned short GetSegmentNumber() const
gdcm::Segment::SetSegmentAlgorithmName
void SetSegmentAlgorithmName(const char *name)
gdcm::Segment::PropertyCategory
SegmentHelper::BasicCodedEntry PropertyCategory
Definition gdcmSegment.h:117
gdcm::Segment::GetSegmentDescription
const char * GetSegmentDescription() const
gdcm::Segment::PropertyType
SegmentHelper::BasicCodedEntry PropertyType
Definition gdcmSegment.h:119
gdcm::Segment::SegmentDescription
std::string SegmentDescription
Definition gdcmSegment.h:110
gdcm::Segment::GetALGOTypeString
static const char * GetALGOTypeString(ALGOType type)
gdcm::Segment::GetAnatomicRegion
SegmentHelper::BasicCodedEntry & GetAnatomicRegion()
gdcm::Segment::SetSegmentAlgorithmType
void SetSegmentAlgorithmType(ALGOType type)
gdcm::Segment::Surfaces
SurfaceVector Surfaces
Definition gdcmSegment.h:132
gdcm::Segment::SegmentAlgorithmName
std::string SegmentAlgorithmName
Definition gdcmSegment.h:126
gdcm::Segment::GetSegmentAlgorithmName
const char * GetSegmentAlgorithmName() const
gdcm::Segment::GetPropertyType
SegmentHelper::BasicCodedEntry & GetPropertyType()
gdcm::Segment::SetSegmentLabel
void SetSegmentLabel(const char *label)
gdcm::Segment::AnatomicRegionModifiers
BasicCodedEntryVector AnatomicRegionModifiers
Definition gdcmSegment.h:115
gdcm::Segment::AddSurface
void AddSurface(SmartPointer< Surface > surface)
gdcm::Segment::AnatomicRegion
SegmentHelper::BasicCodedEntry AnatomicRegion
Definition gdcmSegment.h:113
gdcm::Segment::SetSegmentDescription
void SetSegmentDescription(const char *description)
gdcm::Segment::GetSegmentAlgorithmType
ALGOType GetSegmentAlgorithmType() const
gdcm::Segment::GetSurfaces
SurfaceVector & GetSurfaces()
gdcm::Segment::GetPropertyCategory
SegmentHelper::BasicCodedEntry const & GetPropertyCategory() const
gdcm::Segment::SetSegmentNumber
void SetSegmentNumber(const unsigned short num)
gdcm::Segment::GetAnatomicRegionModifiers
BasicCodedEntryVector const & GetAnatomicRegionModifiers() const
gdcm::Segment::Segment
Segment()
gdcm::Segment::GetPropertyTypeModifiers
BasicCodedEntryVector const & GetPropertyTypeModifiers() const
gdcm::Segment::SegmentNumber
unsigned short SegmentNumber
Definition gdcmSegment.h:106
gdcm::Segment::GetSurfaces
SurfaceVector const & GetSurfaces() const
gdcm::Segment::~Segment
~Segment() override
gdcm::Segment::SetPropertyTypeModifiers
void SetPropertyTypeModifiers(BasicCodedEntryVector const &BSEV)
gdcm::Segment::SetSurfaceCount
void SetSurfaceCount(const unsigned long nb)
gdcm::Segment::GetAnatomicRegion
SegmentHelper::BasicCodedEntry const & GetAnatomicRegion() const
gdcm::Segment::SegmentAlgorithmType
ALGOType SegmentAlgorithmType
Definition gdcmSegment.h:124
gdcm::Segment::SegmentLabel
std::string SegmentLabel
Definition gdcmSegment.h:108
gdcm::Segment::GetPropertyCategory
SegmentHelper::BasicCodedEntry & GetPropertyCategory()
gdcm::Segment::PropertyTypeModifiers
BasicCodedEntryVector PropertyTypeModifiers
Definition gdcmSegment.h:121
gdcm::Segment::SurfaceVector
std::vector< SmartPointer< Surface > > SurfaceVector
Definition gdcmSegment.h:37
gdcm::Segment::GetPropertyType
SegmentHelper::BasicCodedEntry const & GetPropertyType() const
gdcm::Segment::SetAnatomicRegionModifiers
void SetAnatomicRegionModifiers(BasicCodedEntryVector const &BSEV)
gdcm::Segment::GetSurface
SmartPointer< Surface > GetSurface(const unsigned int idx=0) const
gdcm::Segment::SurfaceCount
unsigned long SurfaceCount
Definition gdcmSegment.h:130
gdcm::Segment::SetPropertyCategory
void SetPropertyCategory(SegmentHelper::BasicCodedEntry const &BSE)
gdcm::Segment::SetSegmentAlgorithmType
void SetSegmentAlgorithmType(const char *typeStr)
gdcm::Segment::GetAnatomicRegionModifiers
BasicCodedEntryVector & GetAnatomicRegionModifiers()
gdcm::Segment::SetAnatomicRegion
void SetAnatomicRegion(SegmentHelper::BasicCodedEntry const &BSE)
gdcm::Segment::BasicCodedEntryVector
std::vector< SegmentHelper::BasicCodedEntry > BasicCodedEntryVector
Definition gdcmSegment.h:38
gdcm::Segment::SetPropertyType
void SetPropertyType(SegmentHelper::BasicCodedEntry const &BSE)
gdcm::Segment::GetSegmentLabel
const char * GetSegmentLabel() const
gdcm::Segment::ALGOType
ALGOType
Definition gdcmSegment.h:40
gdcm::Segment::SEMIAUTOMATIC
@ SEMIAUTOMATIC
Definition gdcmSegment.h:42
gdcm::Segment::AUTOMATIC
@ AUTOMATIC
Definition gdcmSegment.h:41
gdcm::Segment::MANUAL
@ MANUAL
Definition gdcmSegment.h:43
gdcm::Segment::ALGOType_END
@ ALGOType_END
Definition gdcmSegment.h:44
gdcm::Segment::GetSurfaceCount
unsigned long GetSurfaceCount()
gdcm::Segment::GetALGOType
static ALGOType GetALGOType(const char *type)
gdcmObject.h
gdcmSegmentHelper.h
gdcmSurface.h
GDCM_EXPORT
#define GDCM_EXPORT
Definition gdcmWin32.h:34
gdcm
Definition gdcmASN1.h:21
gdcm::SegmentHelper::BasicCodedEntry
This structure defines a basic coded entry with all of its attributes.
Definition gdcmSegmentHelper.h:33