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