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 CDM_DECL 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 void Clear() override;// Deletes all members
32
33 const SEScalar* GetScalar(const std::string& name) override;
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 HasPeripheralPerfusionIndex() const;
119 virtual SEScalar0To1& GetPeripheralPerfusionIndex();
120 virtual double GetPeripheralPerfusionIndex() const;
121
122 virtual bool HasPulmonaryArterialPressure() const;
123 virtual SEScalarPressure& GetPulmonaryArterialPressure();
124 virtual double GetPulmonaryArterialPressure(const PressureUnit& unit) const;
125
126 virtual bool HasPulmonaryCapillariesCoverageFraction() const;
127 virtual SEScalar0To1& GetPulmonaryCapillariesCoverageFraction();
128 virtual double GetPulmonaryCapillariesCoverageFraction() const;
129
130 virtual bool HasPulmonaryCapillariesWedgePressure() const;
131 virtual SEScalarPressure& GetPulmonaryCapillariesWedgePressure();
132 virtual double GetPulmonaryCapillariesWedgePressure(const PressureUnit& unit) const;
133
134 virtual bool HasPulmonaryDiastolicArterialPressure() const;
135 virtual SEScalarPressure& GetPulmonaryDiastolicArterialPressure();
136 virtual double GetPulmonaryDiastolicArterialPressure(const PressureUnit& unit) const;
137
138 virtual bool HasPulmonaryMeanArterialPressure() const;
139 virtual SEScalarPressure& GetPulmonaryMeanArterialPressure();
140 virtual double GetPulmonaryMeanArterialPressure(const PressureUnit& unit) const;
141
142 virtual bool HasPulmonaryMeanCapillaryFlow() const;
143 virtual SEScalarVolumePerTime& GetPulmonaryMeanCapillaryFlow();
144 virtual double GetPulmonaryMeanCapillaryFlow(const VolumePerTimeUnit& unit) const;
145
146 virtual bool HasPulmonaryMeanShuntFlow() const;
147 virtual SEScalarVolumePerTime& GetPulmonaryMeanShuntFlow();
148 virtual double GetPulmonaryMeanShuntFlow(const VolumePerTimeUnit& unit) const;
149
150 virtual bool HasPulmonarySystolicArterialPressure() const;
151 virtual SEScalarPressure& GetPulmonarySystolicArterialPressure();
152 virtual double GetPulmonarySystolicArterialPressure(const PressureUnit& unit) const;
153
154 virtual bool HasPulmonaryVascularResistance() const;
155 virtual SEScalarPressureTimePerVolume& GetPulmonaryVascularResistance();
156 virtual double GetPulmonaryVascularResistance(const PressureTimePerVolumeUnit& unit) const;
157
158 virtual bool HasPulmonaryVascularResistanceIndex() const;
159 virtual SEScalarPressureTimePerVolumeArea& GetPulmonaryVascularResistanceIndex();
160 virtual double GetPulmonaryVascularResistanceIndex(const PressureTimePerVolumeAreaUnit& unit) const;
161
162 virtual bool HasPulsePressure() const;
163 virtual SEScalarPressure& GetPulsePressure();
164 virtual double GetPulsePressure(const PressureUnit& unit) const;
165
166 virtual bool HasSystemicVascularResistance() const;
167 virtual SEScalarPressureTimePerVolume& GetSystemicVascularResistance();
168 virtual double GetSystemicVascularResistance(const PressureTimePerVolumeUnit& unit) const;
169
170 virtual bool HasSystolicArterialPressure() const;
171 virtual SEScalarPressure& GetSystolicArterialPressure();
172 virtual double GetSystolicArterialPressure(const PressureUnit& unit) const;
173
174 virtual bool HasSystolicLeftHeartPressure() const;
175 virtual SEScalarPressure& GetSystolicLeftHeartPressure();
176 virtual double GetSystolicLeftHeartPressure(const PressureUnit& unit) const;
177
178 virtual bool HasSystolicRightHeartPressure() const;
179 virtual SEScalarPressure& GetSystolicRightHeartPressure();
180 virtual double GetSystolicRightHeartPressure(const PressureUnit& unit) const;
181
182 virtual bool HasTotalHemorrhageRate() const;
183 virtual SEScalarVolumePerTime& GetTotalHemorrhageRate();
184 virtual double GetTotalHemorrhageRate(const VolumePerTimeUnit& unit) const;
185
186 virtual bool HasTotalHemorrhagedVolume() const;
187 virtual SEScalarVolume& GetTotalHemorrhagedVolume();
188 virtual double GetTotalHemorrhagedVolume(const VolumeUnit& unit) const;
189
190 virtual bool HasTotalPulmonaryPerfusion() const;
191 virtual SEScalarVolumePerTime& GetTotalPulmonaryPerfusion();
192 virtual double GetTotalPulmonaryPerfusion(const VolumePerTimeUnit& unit) const;
193
194protected:
195
209 eHeartRhythm m_HeartRhythm;
236};
Definition: SEScalarFrequency.h:8
Definition: Logger.h:71
Definition: PBPhysiology.h:24
Definition: SEScalarPressureTimePerVolumeArea.h:8
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SECardiovascularSystem.h:24
SEScalarPressure * m_PulmonaryDiastolicArterialPressure
Definition: SECardiovascularSystem.h:221
SEScalarPressureTimePerVolume * m_PulmonaryVascularResistance
Definition: SECardiovascularSystem.h:226
SEScalarVolumePerTime * m_PulmonaryMeanShuntFlow
Definition: SECardiovascularSystem.h:224
SEScalarPressure * m_CerebralPerfusionPressure
Definition: SECardiovascularSystem.h:202
SEScalarPressure * m_PulmonaryArterialPressure
Definition: SECardiovascularSystem.h:218
SEScalarPressure * m_SystolicLeftHeartPressure
Definition: SECardiovascularSystem.h:230
SEScalar0To1 * m_HeartEjectionFraction
Definition: SECardiovascularSystem.h:207
SEScalarVolume * m_BloodVolume
Definition: SECardiovascularSystem.h:197
SEScalarPressure * m_MeanArterialPressure
Definition: SECardiovascularSystem.h:212
SEScalarPressure * m_PulmonaryMeanArterialPressure
Definition: SECardiovascularSystem.h:222
SEScalarPressure * m_ArterialPressure
Definition: SECardiovascularSystem.h:196
SEScalarPressureTimePerVolumeArea * m_PulmonaryVascularResistanceIndex
Definition: SECardiovascularSystem.h:227
SEScalarPressure * m_SystolicRightHeartPressure
Definition: SECardiovascularSystem.h:231
SEScalar0To1 * m_PulmonaryCapillariesCoverageFraction
Definition: SECardiovascularSystem.h:219
SEScalarPressureTimePerVolume * m_SystemicVascularResistance
Definition: SECardiovascularSystem.h:232
SEScalarPressure * m_DiastolicRightHeartPressure
Definition: SECardiovascularSystem.h:206
SEScalar0To1 * m_PeripheralPerfusionIndex
Definition: SECardiovascularSystem.h:217
SEScalarPressure * m_PulsePressure
Definition: SECardiovascularSystem.h:228
SEScalarVolumePerTime * m_CerebralBloodFlow
Definition: SECardiovascularSystem.h:201
SEScalarPressure * m_DiastolicLeftHeartPressure
Definition: SECardiovascularSystem.h:205
SEScalarPressure * m_PulmonaryCapillariesWedgePressure
Definition: SECardiovascularSystem.h:220
SEScalarPressure * m_DiastolicArterialPressure
Definition: SECardiovascularSystem.h:204
SEScalarPressure * m_MeanArterialCarbonDioxidePartialPressure
Definition: SECardiovascularSystem.h:213
SEScalarVolumePerTimeArea * m_CardiacIndex
Definition: SECardiovascularSystem.h:198
SEScalarVolume * m_TotalHemorrhagedVolume
Definition: SECardiovascularSystem.h:234
SEScalarVolume * m_HeartStrokeVolume
Definition: SECardiovascularSystem.h:210
eHeartRhythm m_HeartRhythm
Definition: SECardiovascularSystem.h:209
SEScalarFrequency * m_HeartRate
Definition: SECardiovascularSystem.h:208
SEScalarPressure * m_SystolicArterialPressure
Definition: SECardiovascularSystem.h:229
SEScalarPressure * m_PulmonarySystolicArterialPressure
Definition: SECardiovascularSystem.h:225
SEScalarPressure * m_MeanArterialCarbonDioxidePartialPressureDelta
Definition: SECardiovascularSystem.h:214
SEScalarPressure * m_CoronaryPerfusionPressure
Definition: SECardiovascularSystem.h:203
SEScalarVolumePerTime * m_CardiacOutput
Definition: SECardiovascularSystem.h:199
SEScalarVolumePerTime * m_TotalHemorrhageRate
Definition: SECardiovascularSystem.h:233
SEScalarPressure * m_CentralVenousPressure
Definition: SECardiovascularSystem.h:200
SEScalarPressure * m_IntracranialPressure
Definition: SECardiovascularSystem.h:211
SEScalarVolumePerTime * m_MeanSkinFlow
Definition: SECardiovascularSystem.h:216
SEScalarPressure * m_MeanCentralVenousPressure
Definition: SECardiovascularSystem.h:215
SEScalarVolumePerTime * m_PulmonaryMeanCapillaryFlow
Definition: SECardiovascularSystem.h:223
SEScalarVolumePerTime * m_TotalPulmonaryPerfusion
Definition: SECardiovascularSystem.h:235
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:32
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.