SECardiovascularSystem.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/system/SESystem.h"
6
7// Keep enums in sync with appropriate schema/cdm/Physiology.proto file !!
8enum class eHeartRhythm
9{
10 NormalSinus = 0,
11 SinusBradycardia,
12 SinusTachycardia,
13 SinusPulselessElectricalActivity,
14 Asystole,
15 CoarseVentricularFibrillation,
16 FineVentricularFibrillation,
17 PulselessVentricularTachycardia,
18 StableVentricularTachycardia,
19 UnstableVentricularTachycardia
20};
21extern const std::string& eHeartRhythm_Name(eHeartRhythm m);
22
23class CDM_DECL SECardiovascularSystem : public SESystem
24{
25 friend class PBPhysiology;//friend the serialization class
26public:
27
30
31 virtual void Clear();// Deletes all members
32
33 virtual const SEScalar* GetScalar(const std::string& name);
34
35 virtual bool HasArterialPressure() const;
36 virtual SEScalarPressure& GetArterialPressure();
37 virtual double GetArterialPressure(const PressureUnit& unit) const;
38
39 virtual bool HasBloodVolume() const;
40 virtual SEScalarVolume& GetBloodVolume();
41 virtual double GetBloodVolume(const VolumeUnit& unit) const;
42
43 virtual bool HasCardiacIndex() const;
44 virtual SEScalarVolumePerTimeArea& GetCardiacIndex();
45 virtual double GetCardiacIndex(const VolumePerTimeAreaUnit& unit) const;
46
47 virtual bool HasCardiacOutput() const;
48 virtual SEScalarVolumePerTime& GetCardiacOutput();
49 virtual double GetCardiacOutput(const VolumePerTimeUnit& unit) const;
50
51 virtual bool HasCentralVenousPressure() const;
52 virtual SEScalarPressure& GetCentralVenousPressure();
53 virtual double GetCentralVenousPressure(const PressureUnit& unit) const;
54
55 virtual bool HasCerebralBloodFlow() const;
56 virtual SEScalarVolumePerTime& GetCerebralBloodFlow();
57 virtual double GetCerebralBloodFlow(const VolumePerTimeUnit& unit) const;
58
59 virtual bool HasCerebralPerfusionPressure() const;
60 virtual SEScalarPressure& GetCerebralPerfusionPressure();
61 virtual double GetCerebralPerfusionPressure(const PressureUnit& unit) const;
62
63 virtual bool HasCoronaryPerfusionPressure() const;
64 virtual SEScalarPressure& GetCoronaryPerfusionPressure();
65 virtual double GetCoronaryPerfusionPressure(const PressureUnit& unit) const;
66
67 virtual bool HasDiastolicArterialPressure() const;
68 virtual SEScalarPressure& GetDiastolicArterialPressure();
69 virtual double GetDiastolicArterialPressure(const PressureUnit& unit) const;
70
71 virtual bool HasDiastolicLeftHeartPressure() const;
72 virtual SEScalarPressure& GetDiastolicLeftHeartPressure();
73 virtual double GetDiastolicLeftHeartPressure(const PressureUnit& unit) const;
74
75 virtual bool HasDiastolicRightHeartPressure() const;
76 virtual SEScalarPressure& GetDiastolicRightHeartPressure();
77 virtual double GetDiastolicRightHeartPressure(const PressureUnit& unit) const;
78
79 virtual bool HasHeartEjectionFraction() const;
80 virtual SEScalar0To1& GetHeartEjectionFraction();
81 virtual double GetHeartEjectionFraction() const;
82
83 virtual bool HasHeartRate() const;
84 virtual SEScalarFrequency& GetHeartRate();
85 virtual double GetHeartRate(const FrequencyUnit& unit) const;
86
87 virtual eHeartRhythm GetHeartRhythm() const;
88 virtual void SetHeartRhythm(eHeartRhythm Rhythm);
89
90 virtual bool HasHeartStrokeVolume() const;
91 virtual SEScalarVolume& GetHeartStrokeVolume();
92 virtual double GetHeartStrokeVolume(const VolumeUnit& unit) const;
93
94 virtual bool HasIntracranialPressure() const;
95 virtual SEScalarPressure& GetIntracranialPressure();
96 virtual double GetIntracranialPressure(const PressureUnit& unit) const;
97
98 virtual bool HasMeanArterialPressure() const;
99 virtual SEScalarPressure& GetMeanArterialPressure();
100 virtual double GetMeanArterialPressure(const PressureUnit& unit) const;
101
102 virtual bool HasMeanArterialCarbonDioxidePartialPressure() const;
103 virtual SEScalarPressure& GetMeanArterialCarbonDioxidePartialPressure();
104 virtual double GetMeanArterialCarbonDioxidePartialPressure(const PressureUnit& unit) const;
105
106 virtual bool HasMeanArterialCarbonDioxidePartialPressureDelta() const;
107 virtual SEScalarPressure& GetMeanArterialCarbonDioxidePartialPressureDelta();
108 virtual double GetMeanArterialCarbonDioxidePartialPressureDelta(const PressureUnit& unit) const;
109
110 virtual bool HasMeanCentralVenousPressure() const;
111 virtual SEScalarPressure& GetMeanCentralVenousPressure();
112 virtual double GetMeanCentralVenousPressure(const PressureUnit& unit) const;
113
114 virtual bool HasMeanSkinFlow() const;
115 virtual SEScalarVolumePerTime& GetMeanSkinFlow();
116 virtual double GetMeanSkinFlow(const VolumePerTimeUnit& unit) const;
117
118 virtual bool HasPulmonaryArterialPressure() const;
119 virtual SEScalarPressure& GetPulmonaryArterialPressure();
120 virtual double GetPulmonaryArterialPressure(const PressureUnit& unit) const;
121
122 virtual bool HasPulmonaryCapillariesCoverageFraction() const;
123 virtual SEScalar0To1& GetPulmonaryCapillariesCoverageFraction();
124 virtual double GetPulmonaryCapillariesCoverageFraction() const;
125
126 virtual bool HasPulmonaryCapillariesWedgePressure() const;
127 virtual SEScalarPressure& GetPulmonaryCapillariesWedgePressure();
128 virtual double GetPulmonaryCapillariesWedgePressure(const PressureUnit& unit) const;
129
130 virtual bool HasPulmonaryDiastolicArterialPressure() const;
131 virtual SEScalarPressure& GetPulmonaryDiastolicArterialPressure();
132 virtual double GetPulmonaryDiastolicArterialPressure(const PressureUnit& unit) const;
133
134 virtual bool HasPulmonaryMeanArterialPressure() const;
135 virtual SEScalarPressure& GetPulmonaryMeanArterialPressure();
136 virtual double GetPulmonaryMeanArterialPressure(const PressureUnit& unit) const;
137
138 virtual bool HasPulmonaryMeanCapillaryFlow() const;
139 virtual SEScalarVolumePerTime& GetPulmonaryMeanCapillaryFlow();
140 virtual double GetPulmonaryMeanCapillaryFlow(const VolumePerTimeUnit& unit) const;
141
142 virtual bool HasPulmonaryMeanShuntFlow() const;
143 virtual SEScalarVolumePerTime& GetPulmonaryMeanShuntFlow();
144 virtual double GetPulmonaryMeanShuntFlow(const VolumePerTimeUnit& unit) const;
145
146 virtual bool HasPulmonarySystolicArterialPressure() const;
147 virtual SEScalarPressure& GetPulmonarySystolicArterialPressure();
148 virtual double GetPulmonarySystolicArterialPressure(const PressureUnit& unit) const;
149
150 virtual bool HasPulmonaryVascularResistance() const;
151 virtual SEScalarPressureTimePerVolume& GetPulmonaryVascularResistance();
152 virtual double GetPulmonaryVascularResistance(const PressureTimePerVolumeUnit& unit) const;
153
154 virtual bool HasPulmonaryVascularResistanceIndex() const;
155 virtual SEScalarPressureTimePerVolumeArea& GetPulmonaryVascularResistanceIndex();
156 virtual double GetPulmonaryVascularResistanceIndex(const PressureTimePerVolumeAreaUnit& unit) const;
157
158 virtual bool HasPulsePressure() const;
159 virtual SEScalarPressure& GetPulsePressure();
160 virtual double GetPulsePressure(const PressureUnit& unit) const;
161
162 virtual bool HasSystemicVascularResistance() const;
163 virtual SEScalarPressureTimePerVolume& GetSystemicVascularResistance();
164 virtual double GetSystemicVascularResistance(const PressureTimePerVolumeUnit& unit) const;
165
166 virtual bool HasSystolicArterialPressure() const;
167 virtual SEScalarPressure& GetSystolicArterialPressure();
168 virtual double GetSystolicArterialPressure(const PressureUnit& unit) const;
169
170 virtual bool HasSystolicLeftHeartPressure() const;
171 virtual SEScalarPressure& GetSystolicLeftHeartPressure();
172 virtual double GetSystolicLeftHeartPressure(const PressureUnit& unit) const;
173
174 virtual bool HasSystolicRightHeartPressure() const;
175 virtual SEScalarPressure& GetSystolicRightHeartPressure();
176 virtual double GetSystolicRightHeartPressure(const PressureUnit& unit) const;
177
178 virtual bool HasTotalHemorrhageRate() const;
179 virtual SEScalarVolumePerTime& GetTotalHemorrhageRate();
180 virtual double GetTotalHemorrhageRate(const VolumePerTimeUnit& unit) const;
181
182 virtual bool HasTotalHemorrhagedVolume() const;
183 virtual SEScalarVolume& GetTotalHemorrhagedVolume();
184 virtual double GetTotalHemorrhagedVolume(const VolumeUnit& unit) const;
185
186 virtual bool HasTotalPulmonaryPerfusion() const;
187 virtual SEScalarVolumePerTime& GetTotalPulmonaryPerfusion();
188 virtual double GetTotalPulmonaryPerfusion(const VolumePerTimeUnit& unit) const;
189
190protected:
191
205 eHeartRhythm m_HeartRhythm;
231};
Definition: SEScalarFrequency.h:8
Definition: Logger.h:71
Definition: PBPhysiology.h:22
Definition: SEScalarPressureTimePerVolumeArea.h:8
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SECardiovascularSystem.h:24
SEScalarPressure * m_PulmonaryDiastolicArterialPressure
Definition: SECardiovascularSystem.h:216
SEScalarPressureTimePerVolume * m_PulmonaryVascularResistance
Definition: SECardiovascularSystem.h:221
SEScalarVolumePerTime * m_PulmonaryMeanShuntFlow
Definition: SECardiovascularSystem.h:219
SEScalarPressure * m_CerebralPerfusionPressure
Definition: SECardiovascularSystem.h:198
SEScalarPressure * m_PulmonaryArterialPressure
Definition: SECardiovascularSystem.h:213
SEScalarPressure * m_SystolicLeftHeartPressure
Definition: SECardiovascularSystem.h:225
SEScalar0To1 * m_HeartEjectionFraction
Definition: SECardiovascularSystem.h:203
SEScalarVolume * m_BloodVolume
Definition: SECardiovascularSystem.h:193
SEScalarPressure * m_MeanArterialPressure
Definition: SECardiovascularSystem.h:208
SEScalarPressure * m_PulmonaryMeanArterialPressure
Definition: SECardiovascularSystem.h:217
SEScalarPressure * m_ArterialPressure
Definition: SECardiovascularSystem.h:192
SEScalarPressureTimePerVolumeArea * m_PulmonaryVascularResistanceIndex
Definition: SECardiovascularSystem.h:222
SEScalarPressure * m_SystolicRightHeartPressure
Definition: SECardiovascularSystem.h:226
SEScalar0To1 * m_PulmonaryCapillariesCoverageFraction
Definition: SECardiovascularSystem.h:214
SEScalarPressureTimePerVolume * m_SystemicVascularResistance
Definition: SECardiovascularSystem.h:227
SEScalarPressure * m_DiastolicRightHeartPressure
Definition: SECardiovascularSystem.h:202
SEScalarPressure * m_PulsePressure
Definition: SECardiovascularSystem.h:223
SEScalarVolumePerTime * m_CerebralBloodFlow
Definition: SECardiovascularSystem.h:197
SEScalarPressure * m_DiastolicLeftHeartPressure
Definition: SECardiovascularSystem.h:201
SEScalarPressure * m_PulmonaryCapillariesWedgePressure
Definition: SECardiovascularSystem.h:215
SEScalarPressure * m_DiastolicArterialPressure
Definition: SECardiovascularSystem.h:200
SEScalarPressure * m_MeanArterialCarbonDioxidePartialPressure
Definition: SECardiovascularSystem.h:209
SEScalarVolumePerTimeArea * m_CardiacIndex
Definition: SECardiovascularSystem.h:194
SEScalarVolume * m_TotalHemorrhagedVolume
Definition: SECardiovascularSystem.h:229
SEScalarVolume * m_HeartStrokeVolume
Definition: SECardiovascularSystem.h:206
eHeartRhythm m_HeartRhythm
Definition: SECardiovascularSystem.h:205
SEScalarFrequency * m_HeartRate
Definition: SECardiovascularSystem.h:204
SEScalarPressure * m_SystolicArterialPressure
Definition: SECardiovascularSystem.h:224
SEScalarPressure * m_PulmonarySystolicArterialPressure
Definition: SECardiovascularSystem.h:220
SEScalarPressure * m_MeanArterialCarbonDioxidePartialPressureDelta
Definition: SECardiovascularSystem.h:210
SEScalarPressure * m_CoronaryPerfusionPressure
Definition: SECardiovascularSystem.h:199
SEScalarVolumePerTime * m_CardiacOutput
Definition: SECardiovascularSystem.h:195
SEScalarVolumePerTime * m_TotalHemorrhageRate
Definition: SECardiovascularSystem.h:228
SEScalarPressure * m_CentralVenousPressure
Definition: SECardiovascularSystem.h:196
SEScalarPressure * m_IntracranialPressure
Definition: SECardiovascularSystem.h:207
SEScalarVolumePerTime * m_MeanSkinFlow
Definition: SECardiovascularSystem.h:212
SEScalarPressure * m_MeanCentralVenousPressure
Definition: SECardiovascularSystem.h:211
SEScalarVolumePerTime * m_PulmonaryMeanCapillaryFlow
Definition: SECardiovascularSystem.h:218
SEScalarVolumePerTime * m_TotalPulmonaryPerfusion
Definition: SECardiovascularSystem.h:230
Definition: SEScalar0To1.h:8
Definition: SEScalarFrequency.h:26
Definition: SEScalar.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarPressureTimePerVolumeArea.h:26
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerTimeArea.h:26
Definition: SEScalarVolumePerTime.h:31
Definition: SESystem.h:8
virtual const SEScalar * GetScalar(const std::string &name)=0
virtual void Clear()
Definition: SESystem.cpp:17
Definition: SEScalarVolumePerTimeArea.h:8
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.