GDCM 3.0.24
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
34{
35public:
36
37 typedef std::vector< SmartPointer< Surface > > SurfaceVector;
38 typedef std::vector< SegmentHelper::BasicCodedEntry > BasicCodedEntryVector;
39
40 typedef enum {
41 AUTOMATIC = 0,
44 ALGOType_END
45 } ALGOType;
46
47 static const char * GetALGOTypeString(ALGOType type);
48 static ALGOType GetALGOType(const char * type);
49
50
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
68
72
76
80
84
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;
98
99 SmartPointer< Surface > GetSurface(const unsigned int idx = 0) const;
100
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
111
112 // General Anatomic Region
114 // General Anatomic Region Modifier
116 // Property Category Code
118 // Property Type Code
120 // Property Type Modifier Code
122
123 //0062 0008 CS 1 Segment Algorithm Type
125 //0062 0009 LO 1 Segment Algorithm Name
127
128 //** Surface members **//
129 //0066 002a UL 1 Surface Count
130 unsigned long SurfaceCount;
131
133
134private :
135 void ComputeSurfaceCount();
136};
137
138}
139
140#endif // GDCMSEGMENT_H
Object.
Definition gdcmObject.h:37
This class defines a segment.
Definition gdcmSegment.h:34
BasicCodedEntryVector & GetPropertyTypeModifiers()
unsigned short GetSegmentNumber() const
void SetSegmentAlgorithmName(const char *name)
SegmentHelper::BasicCodedEntry PropertyCategory
Definition gdcmSegment.h:117
const char * GetSegmentDescription() const
SegmentHelper::BasicCodedEntry PropertyType
Definition gdcmSegment.h:119
std::string SegmentDescription
Definition gdcmSegment.h:110
static const char * GetALGOTypeString(ALGOType type)
SegmentHelper::BasicCodedEntry & GetAnatomicRegion()
void SetSegmentAlgorithmType(ALGOType type)
SurfaceVector Surfaces
Definition gdcmSegment.h:132
std::string SegmentAlgorithmName
Definition gdcmSegment.h:126
const char * GetSegmentAlgorithmName() const
SegmentHelper::BasicCodedEntry & GetPropertyType()
void SetSegmentLabel(const char *label)
BasicCodedEntryVector AnatomicRegionModifiers
Definition gdcmSegment.h:115
void AddSurface(SmartPointer< Surface > surface)
SegmentHelper::BasicCodedEntry AnatomicRegion
Definition gdcmSegment.h:113
void SetSegmentDescription(const char *description)
ALGOType GetSegmentAlgorithmType() const
SurfaceVector & GetSurfaces()
SegmentHelper::BasicCodedEntry const & GetPropertyCategory() const
void SetSegmentNumber(const unsigned short num)
BasicCodedEntryVector const & GetAnatomicRegionModifiers() const
BasicCodedEntryVector const & GetPropertyTypeModifiers() const
unsigned short SegmentNumber
Definition gdcmSegment.h:106
SurfaceVector const & GetSurfaces() const
~Segment() override
void SetPropertyTypeModifiers(BasicCodedEntryVector const &BSEV)
void SetSurfaceCount(const unsigned long nb)
SegmentHelper::BasicCodedEntry const & GetAnatomicRegion() const
ALGOType SegmentAlgorithmType
Definition gdcmSegment.h:124
std::string SegmentLabel
Definition gdcmSegment.h:108
SegmentHelper::BasicCodedEntry & GetPropertyCategory()
BasicCodedEntryVector PropertyTypeModifiers
Definition gdcmSegment.h:121
std::vector< SmartPointer< Surface > > SurfaceVector
Definition gdcmSegment.h:37
SegmentHelper::BasicCodedEntry const & GetPropertyType() const
void SetAnatomicRegionModifiers(BasicCodedEntryVector const &BSEV)
SmartPointer< Surface > GetSurface(const unsigned int idx=0) const
unsigned long SurfaceCount
Definition gdcmSegment.h:130
void SetPropertyCategory(SegmentHelper::BasicCodedEntry const &BSE)
void SetSegmentAlgorithmType(const char *typeStr)
BasicCodedEntryVector & GetAnatomicRegionModifiers()
void SetAnatomicRegion(SegmentHelper::BasicCodedEntry const &BSE)
std::vector< SegmentHelper::BasicCodedEntry > BasicCodedEntryVector
Definition gdcmSegment.h:38
void SetPropertyType(SegmentHelper::BasicCodedEntry const &BSE)
const char * GetSegmentLabel() const
ALGOType
Definition gdcmSegment.h:40
@ SEMIAUTOMATIC
Definition gdcmSegment.h:42
@ MANUAL
Definition gdcmSegment.h:43
unsigned long GetSurfaceCount()
static ALGOType GetALGOType(const char *type)
#define GDCM_EXPORT
Definition gdcmWin32.h:34
Definition gdcmASN1.h:21
This structure defines a basic coded entry with all of its attributes.
Definition gdcmSegmentHelper.h:33