SECardiovascularSystem.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 #include "system/SESystem.h"
6 
7 // Keep enums in sync with appropriate schema/cdm/PhysiologyEnums.proto file !!
8 enum class eHeartRhythm { NormalSinus = 0, Asystole };
9 extern const std::string& eHeartRhythm_Name(eHeartRhythm m);
10 
11 class CDM_DECL SECardiovascularSystem : public SESystem
12 {
13  friend class PBPhysiology;//friend the serialization class
14 public:
15 
17  virtual ~SECardiovascularSystem();
18 
19  virtual void Clear();// Deletes all members
20 
21  virtual const SEScalar* GetScalar(const std::string& name);
22 
23  virtual bool HasArterialPressure() const;
24  virtual SEScalarPressure& GetArterialPressure();
25  virtual double GetArterialPressure(const PressureUnit& unit) const;
26 
27  virtual bool HasBloodVolume() const;
28  virtual SEScalarVolume& GetBloodVolume();
29  virtual double GetBloodVolume(const VolumeUnit& unit) const;
30 
31  virtual bool HasCardiacIndex() const;
32  virtual SEScalarVolumePerTimeArea& GetCardiacIndex();
33  virtual double GetCardiacIndex(const VolumePerTimeAreaUnit& unit) const;
34 
35  virtual bool HasCardiacOutput() const;
36  virtual SEScalarVolumePerTime& GetCardiacOutput();
37  virtual double GetCardiacOutput(const VolumePerTimeUnit& unit) const;
38 
39  virtual bool HasCentralVenousPressure() const;
40  virtual SEScalarPressure& GetCentralVenousPressure();
41  virtual double GetCentralVenousPressure(const PressureUnit& unit) const;
42 
43  virtual bool HasCerebralBloodFlow() const;
44  virtual SEScalarVolumePerTime& GetCerebralBloodFlow();
45  virtual double GetCerebralBloodFlow(const VolumePerTimeUnit& unit) const;
46 
47  virtual bool HasCerebralPerfusionPressure() const;
48  virtual SEScalarPressure& GetCerebralPerfusionPressure();
49  virtual double GetCerebralPerfusionPressure(const PressureUnit& unit) const;
50 
51  virtual bool HasDiastolicArterialPressure() const;
52  virtual SEScalarPressure& GetDiastolicArterialPressure();
53  virtual double GetDiastolicArterialPressure(const PressureUnit& unit) const;
54 
55  virtual bool HasHeartEjectionFraction() const;
56  virtual SEScalar0To1& GetHeartEjectionFraction();
57  virtual double GetHeartEjectionFraction() const;
58 
59  virtual bool HasHeartRate() const;
60  virtual SEScalarFrequency& GetHeartRate();
61  virtual double GetHeartRate(const FrequencyUnit& unit) const;
62 
63  virtual eHeartRhythm GetHeartRhythm() const;
64  virtual void SetHeartRhythm(eHeartRhythm Rhythm);
65 
66  virtual bool HasHeartStrokeVolume() const;
67  virtual SEScalarVolume& GetHeartStrokeVolume();
68  virtual double GetHeartStrokeVolume(const VolumeUnit& unit) const;
69 
70  virtual bool HasIntracranialPressure() const;
71  virtual SEScalarPressure& GetIntracranialPressure();
72  virtual double GetIntracranialPressure(const PressureUnit& unit) const;
73 
74  virtual bool HasMeanArterialPressure() const;
75  virtual SEScalarPressure& GetMeanArterialPressure();
76  virtual double GetMeanArterialPressure(const PressureUnit& unit) const;
77 
78  virtual bool HasMeanArterialCarbonDioxidePartialPressure() const;
79  virtual SEScalarPressure& GetMeanArterialCarbonDioxidePartialPressure();
80  virtual double GetMeanArterialCarbonDioxidePartialPressure(const PressureUnit& unit) const;
81 
82  virtual bool HasMeanArterialCarbonDioxidePartialPressureDelta() const;
83  virtual SEScalarPressure& GetMeanArterialCarbonDioxidePartialPressureDelta();
84  virtual double GetMeanArterialCarbonDioxidePartialPressureDelta(const PressureUnit& unit) const;
85 
86  virtual bool HasMeanCentralVenousPressure() const;
87  virtual SEScalarPressure& GetMeanCentralVenousPressure();
88  virtual double GetMeanCentralVenousPressure(const PressureUnit& unit) const;
89 
90  virtual bool HasMeanSkinFlow() const;
91  virtual SEScalarVolumePerTime& GetMeanSkinFlow();
92  virtual double GetMeanSkinFlow(const VolumePerTimeUnit& unit) const;
93 
94  virtual bool HasPulmonaryArterialPressure() const;
95  virtual SEScalarPressure& GetPulmonaryArterialPressure();
96  virtual double GetPulmonaryArterialPressure(const PressureUnit& unit) const;
97 
98  virtual bool HasPulmonaryCapillariesWedgePressure() const;
99  virtual SEScalarPressure& GetPulmonaryCapillariesWedgePressure();
100  virtual double GetPulmonaryCapillariesWedgePressure(const PressureUnit& unit) const;
101 
102  virtual bool HasPulmonaryDiastolicArterialPressure() const;
103  virtual SEScalarPressure& GetPulmonaryDiastolicArterialPressure();
104  virtual double GetPulmonaryDiastolicArterialPressure(const PressureUnit& unit) const;
105 
106  virtual bool HasPulmonaryMeanArterialPressure() const;
107  virtual SEScalarPressure& GetPulmonaryMeanArterialPressure();
108  virtual double GetPulmonaryMeanArterialPressure(const PressureUnit& unit) const;
109 
110  virtual bool HasPulmonaryMeanCapillaryFlow() const;
111  virtual SEScalarVolumePerTime& GetPulmonaryMeanCapillaryFlow();
112  virtual double GetPulmonaryMeanCapillaryFlow(const VolumePerTimeUnit& unit) const;
113 
114  virtual bool HasPulmonaryMeanShuntFlow() const;
115  virtual SEScalarVolumePerTime& GetPulmonaryMeanShuntFlow();
116  virtual double GetPulmonaryMeanShuntFlow(const VolumePerTimeUnit& unit) const;
117 
118  virtual bool HasPulmonarySystolicArterialPressure() const;
119  virtual SEScalarPressure& GetPulmonarySystolicArterialPressure();
120  virtual double GetPulmonarySystolicArterialPressure(const PressureUnit& unit) const;
121 
122  virtual bool HasPulmonaryVascularResistance() const;
123  virtual SEScalarFlowResistance& GetPulmonaryVascularResistance();
124  virtual double GetPulmonaryVascularResistance(const FlowResistanceUnit& unit) const;
125 
126  virtual bool HasPulmonaryVascularResistanceIndex() const;
127  virtual SEScalarPressureTimePerVolumeArea& GetPulmonaryVascularResistanceIndex();
128  virtual double GetPulmonaryVascularResistanceIndex(const PressureTimePerVolumeAreaUnit& unit) const;
129 
130  virtual bool HasPulsePressure() const;
131  virtual SEScalarPressure& GetPulsePressure();
132  virtual double GetPulsePressure(const PressureUnit& unit) const;
133 
134  virtual bool HasSystolicArterialPressure() const;
135  virtual SEScalarPressure& GetSystolicArterialPressure();
136  virtual double GetSystolicArterialPressure(const PressureUnit& unit) const;
137 
138  virtual bool HasSystemicVascularResistance() const;
139  virtual SEScalarFlowResistance& GetSystemicVascularResistance();
140  virtual double GetSystemicVascularResistance(const FlowResistanceUnit& unit) const;
141 
142 protected:
143 
154  eHeartRhythm m_HeartRhythm;
174 };
Definition: SEScalarPressureTimePerVolumeArea.h:21
SEScalarFlowResistance * m_PulmonaryVascularResistance
Definition: SECardiovascularSystem.h:169
SEScalarPressure * m_SystolicArterialPressure
Definition: SECardiovascularSystem.h:172
SEScalarPressure * m_DiastolicArterialPressure
Definition: SECardiovascularSystem.h:151
Definition: SEScalar.h:19
Definition: SEScalarVolume.h:7
SEScalar0To1 * m_HeartEjectionFraction
Definition: SECardiovascularSystem.h:152
Definition: SEScalarVolume.h:23
Definition: Logger.h:61
SEScalarPressure * m_MeanCentralVenousPressure
Definition: SECardiovascularSystem.h:160
SEScalarPressure * m_IntracranialPressure
Definition: SECardiovascularSystem.h:156
Definition: SEScalarVolumePerTimeArea.h:21
Definition: SEScalarPressure.h:23
eHeartRhythm m_HeartRhythm
Definition: SECardiovascularSystem.h:154
SEScalarPressure * m_MeanArterialPressure
Definition: SECardiovascularSystem.h:157
SEScalarPressure * m_PulmonaryMeanArterialPressure
Definition: SECardiovascularSystem.h:165
SEScalarVolumePerTime * m_MeanSkinFlow
Definition: SECardiovascularSystem.h:161
SEScalarPressure * m_PulsePressure
Definition: SECardiovascularSystem.h:171
Definition: SECardiovascularSystem.h:11
SEScalarFrequency * m_HeartRate
Definition: SECardiovascularSystem.h:153
SEScalarPressure * m_MeanArterialCarbonDioxidePartialPressureDelta
Definition: SECardiovascularSystem.h:159
SEScalarFlowResistance * m_SystemicVascularResistance
Definition: SECardiovascularSystem.h:173
SEScalarPressureTimePerVolumeArea * m_PulmonaryVascularResistanceIndex
Definition: SECardiovascularSystem.h:170
Definition: SEScalarVolumePerTime.h:7
SEScalarPressure * m_MeanArterialCarbonDioxidePartialPressure
Definition: SECardiovascularSystem.h:158
Definition: SEScalarPressure.h:7
SEScalarVolumePerTime * m_PulmonaryMeanShuntFlow
Definition: SECardiovascularSystem.h:167
Definition: SESystem.h:7
SEScalarPressure * m_PulmonaryDiastolicArterialPressure
Definition: SECardiovascularSystem.h:164
SEScalarVolumePerTime * m_CardiacOutput
Definition: SECardiovascularSystem.h:147
SEScalarPressure * m_PulmonarySystolicArterialPressure
Definition: SECardiovascularSystem.h:168
SEScalarVolume * m_BloodVolume
Definition: SECardiovascularSystem.h:145
SEScalarPressure * m_CerebralPerfusionPressure
Definition: SECardiovascularSystem.h:150
Definition: SEScalarVolumePerTime.h:26
SEScalarVolumePerTimeArea * m_CardiacIndex
Definition: SECardiovascularSystem.h:146
SEScalarPressure * m_PulmonaryArterialPressure
Definition: SECardiovascularSystem.h:162
Definition: SEScalarFrequency.h:7
SEScalarPressure * m_ArterialPressure
Definition: SECardiovascularSystem.h:144
Definition: SEScalarPressureTimePerVolumeArea.h:7
Definition: PBPhysiology.h:20
SEScalarPressure * m_CentralVenousPressure
Definition: SECardiovascularSystem.h:148
Definition: SEScalarVolumePerTimeArea.h:7
Definition: SEScalarFrequency.h:21
SEScalarVolume * m_HeartStrokeVolume
Definition: SECardiovascularSystem.h:155
SEScalarVolumePerTime * m_CerebralBloodFlow
Definition: SECardiovascularSystem.h:149
Definition: SEScalarFlowResistance.h:7
SEScalarVolumePerTime * m_PulmonaryMeanCapillaryFlow
Definition: SECardiovascularSystem.h:166
Definition: SEScalarFlowResistance.h:23
SEScalarPressure * m_PulmonaryCapillariesWedgePressure
Definition: SECardiovascularSystem.h:163
Definition: SEScalar0To1.h:7