What’s New in the Pulse Physiology Engine 4.4.0
×
SECardiovascularMechanics.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
6
7class CDM_DECL SECardiovascularMechanics : public Loggable
8{
9 friend class PBPhysiology;
10public:
11
14
15 virtual void Clear();// Deletes all members
16
25 virtual const SEScalar* GetScalar(const std::string& name);
26
27 bool SerializeToString(std::string& output, eSerializationFormat m) const;
28 bool SerializeToFile(const std::string& filename) const;
29 bool SerializeFromString(const std::string& src, eSerializationFormat m);
30 bool SerializeFromFile(const std::string& filename);
31
32 virtual void Merge(const SECardiovascularMechanics& from);
33 virtual void ProcessConfiguration(SECardiovascularMechanicsConfiguration& config);
34
35 virtual bool HasActive() const;
36 virtual eSwitch GetActive() const;
37 virtual void SetActive(eSwitch s);
38
39
40 virtual bool HasArterialCompliance() const;
41 virtual SEScalarVolumePerPressure& GetArterialCompliance();
42 virtual const SEScalarVolumePerPressure* GetArterialCompliance() const;
43 virtual double GetArterialCompliance(const VolumePerPressureUnit& unit) const;
44
45 virtual bool HasPulmonaryCompliance() const;
46 virtual SEScalarVolumePerPressure& GetPulmonaryCompliance();
47 virtual const SEScalarVolumePerPressure* GetPulmonaryCompliance() const;
48 virtual double GetPulmonaryCompliance(const VolumePerPressureUnit& unit) const;
49
50 virtual bool HasSystemicCompliance() const;
51 virtual SEScalarVolumePerPressure& GetSystemicCompliance();
52 virtual const SEScalarVolumePerPressure* GetSystemicCompliance() const;
53 virtual double GetSystemicCompliance(const VolumePerPressureUnit& unit) const;
54
55 virtual bool HasVenousCompliance() const;
56 virtual SEScalarVolumePerPressure& GetVenousCompliance();
57 virtual const SEScalarVolumePerPressure* GetVenousCompliance() const;
58 virtual double GetVenousCompliance(const VolumePerPressureUnit& unit) const;
59
60 virtual bool HasArterialResistance() const;
61 virtual SEScalarPressureTimePerVolume& GetArterialResistance();
62 virtual const SEScalarPressureTimePerVolume* GetArterialResistance() const;
63 virtual double GetArterialResistance(const PressureTimePerVolumeUnit& unit) const;
64
65 virtual bool HasPulmonaryResistance() const;
66 virtual SEScalarPressureTimePerVolume& GetPulmonaryResistance();
67 virtual const SEScalarPressureTimePerVolume* GetPulmonaryResistance() const;
68 virtual double GetPulmonaryResistance(const PressureTimePerVolumeUnit& unit) const;
69
70 virtual bool HasSystemicResistance() const;
71 virtual SEScalarPressureTimePerVolume& GetSystemicResistance();
72 virtual const SEScalarPressureTimePerVolume* GetSystemicResistance() const;
73 virtual double GetSystemicResistance(const PressureTimePerVolumeUnit& unit) const;
74
75 virtual bool HasVenousResistance() const;
76 virtual SEScalarPressureTimePerVolume& GetVenousResistance();
77 virtual const SEScalarPressureTimePerVolume* GetVenousResistance() const;
78 virtual double GetVenousResistance(const PressureTimePerVolumeUnit& unit) const;
79
80 virtual bool HasHeartRate() const;
81 virtual SEScalarFrequency& GetHeartRate();
82 virtual const SEScalarFrequency* GetHeartRate() const;
83 virtual double GetHeartRate(const FrequencyUnit& unit) const;
84
85 virtual bool HasLeftHeartPeakElastance() const;
86 virtual SEScalarPressurePerVolume& GetLeftHeartPeakElastance();
87 virtual const SEScalarPressurePerVolume* GetLeftHeartPeakElastance() const;
88 virtual double GetLeftHeartPeakElastance(const PressurePerVolumeUnit& unit) const;
89
90 virtual bool HasRightHeartPeakElastance() const;
91 virtual SEScalarPressurePerVolume& GetRightHeartPeakElastance();
92 virtual const SEScalarPressurePerVolume* GetRightHeartPeakElastance() const;
93 virtual double GetRightHeartPeakElastance(const PressurePerVolumeUnit& unit) const;
94
95 virtual std::string ToString() const;
96 virtual void ToString(std::ostream& str) const;
97
98protected:
99 eSwitch m_Active;
100
105
110
114};
115
116inline std::ostream& operator<< (std::ostream& out, const SECardiovascularMechanics* s)
117{
118 if (s == nullptr)
119 out << "Null Cardiovascular Mechanics" << std::flush;
120 else
121 (*s).ToString(out);
122 return out;
123}
124inline std::ostream& operator<< (std::ostream& out, const SECardiovascularMechanics& s)
125{
126 s.ToString(out);
127 return out;
128}
Definition: SEScalarFrequency.h:8
Definition: Logger.h:23
Definition: Logger.h:71
Definition: PBPhysiology.h:25
static bool SerializeToFile(const SECardiovascularMechanics &src, const std::string &filename)
Definition: PBPhysiology.cpp:267
static bool SerializeFromFile(const std::string &filename, SECardiovascularMechanics &dst)
Definition: PBPhysiology.cpp:282
static bool SerializeFromString(const std::string &src, SECardiovascularMechanics &dst, eSerializationFormat m)
Definition: PBPhysiology.cpp:274
static bool SerializeToString(const SECardiovascularMechanics &src, std::string &output, eSerializationFormat m)
Definition: PBPhysiology.cpp:261
Definition: SEScalarPressurePerVolume.h:8
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SECardiovascularMechanicsConfiguration.h:9
Definition: SECardiovascularMechanics.h:8
SEScalarVolumePerPressure * m_VenousCompliance
Definition: SECardiovascularMechanics.h:104
SEScalarVolumePerPressure * m_SystemicCompliance
Definition: SECardiovascularMechanics.h:103
SEScalarPressureTimePerVolume * m_PulmonaryResistance
Definition: SECardiovascularMechanics.h:107
SEScalarPressureTimePerVolume * m_ArterialResistance
Definition: SECardiovascularMechanics.h:106
SEScalarPressureTimePerVolume * m_SystemicResistance
Definition: SECardiovascularMechanics.h:108
SEScalarVolumePerPressure * m_ArterialCompliance
Definition: SECardiovascularMechanics.h:101
SEScalarFrequency * m_HeartRate
Definition: SECardiovascularMechanics.h:111
SEScalarPressurePerVolume * m_LeftHeartPeakElastance
Definition: SECardiovascularMechanics.h:112
SEScalarVolumePerPressure * m_PulmonaryCompliance
Definition: SECardiovascularMechanics.h:102
virtual std::string ToString() const
Definition: SECardiovascularMechanics.cpp:386
SEScalarPressureTimePerVolume * m_VenousResistance
Definition: SECardiovascularMechanics.h:109
SEScalarPressurePerVolume * m_RightHeartPeakElastance
Definition: SECardiovascularMechanics.h:113
eSwitch m_Active
Definition: SECardiovascularMechanics.h:99
Definition: SEScalarFrequency.h:26
Definition: SEScalar.h:19
Definition: SEScalarPressurePerVolume.h:26
Definition: SEScalarPressureTimePerVolume.h:29
std::string ToString() const override
Definition: SEScalar.hxx:273
Definition: SEScalarVolumePerPressure.h:28
Definition: SEScalarVolumePerPressure.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.