SEMechanicalVentilator.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/equipment/SEEquipment.h"
7#include "cdm/system/equipment/mechanical_ventilator/SEMechanicalVentilatorSettings.h"
8
9class CDM_DECL SEMechanicalVentilator : public SEEquipment
10{
11 friend class PBMechanicalVentilator;//friend the serialization class
12public:
13
16
17 void Clear() override;
18 virtual void TurnOff();
19
20protected:
26 virtual void StateChange() {};
27
28public:
29
30 const SEScalar* GetScalar(const std::string& name) override;
31
32 virtual bool HasAirwayPressure() const;
33 virtual SEScalarPressure& GetAirwayPressure();
34 virtual double GetAirwayPressure(const PressureUnit& unit) const;
35
36 virtual eBreathState GetBreathState() const;
37 virtual void SetBreathState(eBreathState c);
38
39 virtual bool HasDynamicRespiratoryCompliance() const;
40 virtual SEScalarVolumePerPressure& GetDynamicRespiratoryCompliance();
41 virtual double GetDynamicRespiratoryCompliance(const VolumePerPressureUnit& unit) const;
42
43 virtual bool HasEndTidalCarbonDioxideFraction() const;
44 virtual SEScalar0To1& GetEndTidalCarbonDioxideFraction();
45 virtual double GetEndTidalCarbonDioxideFraction() const;
46
47 virtual bool HasEndTidalCarbonDioxidePressure() const;
48 virtual SEScalarPressure& GetEndTidalCarbonDioxidePressure();
49 virtual double GetEndTidalCarbonDioxidePressure(const PressureUnit& unit) const;
50
51 virtual bool HasEndTidalOxygenFraction() const;
52 virtual SEScalar0To1& GetEndTidalOxygenFraction();
53 virtual double GetEndTidalOxygenFraction() const;
54
55 virtual bool HasEndTidalOxygenPressure() const;
56 virtual SEScalarPressure& GetEndTidalOxygenPressure();
57 virtual double GetEndTidalOxygenPressure(const PressureUnit& unit) const;
58
59 virtual bool HasExpiratoryFlow() const;
60 virtual SEScalarVolumePerTime& GetExpiratoryFlow();
61 virtual double GetExpiratoryFlow(const VolumePerTimeUnit& unit) const;
62
63 virtual bool HasExpiratoryResistance() const;
64 virtual SEScalarPressureTimePerVolume& GetExpiratoryResistance();
65 virtual double GetExpiratoryResistance(const PressureTimePerVolumeUnit& unit) const;
66
67 virtual bool HasExpiratoryTidalVolume() const;
68 virtual SEScalarVolume& GetExpiratoryTidalVolume();
69 virtual double GetExpiratoryTidalVolume(const VolumeUnit& unit) const;
70
71 virtual bool HasExtrinsicPositiveEndExpiratoryPressure() const;
72 virtual SEScalarPressure& GetExtrinsicPositiveEndExpiratoryPressure();
73 virtual double GetExtrinsicPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
74
75 virtual bool HasInspiratoryExpiratoryRatio() const;
76 virtual SEScalar& GetInspiratoryExpiratoryRatio();
77 virtual double GetInspiratoryExpiratoryRatio() const;
78
79 virtual bool HasInspiratoryFlow() const;
80 virtual SEScalarVolumePerTime& GetInspiratoryFlow();
81 virtual double GetInspiratoryFlow(const VolumePerTimeUnit& unit) const;
82
83 virtual bool HasInspiratoryResistance() const;
84 virtual SEScalarPressureTimePerVolume& GetInspiratoryResistance();
85 virtual double GetInspiratoryResistance(const PressureTimePerVolumeUnit& unit) const;
86
87 virtual bool HasInspiratoryTidalVolume() const;
88 virtual SEScalarVolume& GetInspiratoryTidalVolume();
89 virtual double GetInspiratoryTidalVolume(const VolumeUnit& unit) const;
90
91 virtual bool HasIntrinsicPositiveEndExpiratoryPressure() const;
92 virtual SEScalarPressure& GetIntrinsicPositiveEndExpiratoryPressure();
93 virtual double GetIntrinsicPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
94
95 virtual bool HasLeakFraction() const;
96 virtual SEScalar0To1& GetLeakFraction();
97 virtual double GetLeakFraction() const;
98
99 virtual bool HasMeanAirwayPressure() const;
100 virtual SEScalarPressure& GetMeanAirwayPressure();
101 virtual double GetMeanAirwayPressure(const PressureUnit& unit) const;
102
103 virtual bool HasPeakExpiratoryFlow() const;
104 virtual SEScalarVolumePerTime& GetPeakExpiratoryFlow();
105 virtual double GetPeakExpiratoryFlow(const VolumePerTimeUnit& unit) const;
106
107 virtual bool HasPeakInspiratoryFlow() const;
108 virtual SEScalarVolumePerTime& GetPeakInspiratoryFlow();
109 virtual double GetPeakInspiratoryFlow(const VolumePerTimeUnit& unit) const;
110
111 virtual bool HasPeakInspiratoryPressure() const;
112 virtual SEScalarPressure& GetPeakInspiratoryPressure();
113 virtual double GetPeakInspiratoryPressure(const PressureUnit& unit) const;
114
115 virtual bool HasPlateauPressure() const;
116 virtual SEScalarPressure& GetPlateauPressure();
117 virtual double GetPlateauPressure(const PressureUnit& unit) const;
118
119 virtual bool HasRespirationRate() const;
120 virtual SEScalarFrequency& GetRespirationRate();
121 virtual double GetRespirationRate(const FrequencyUnit& unit) const;
122
123 virtual bool HasStaticRespiratoryCompliance() const;
124 virtual SEScalarVolumePerPressure& GetStaticRespiratoryCompliance();
125 virtual double GetStaticRespiratoryCompliance(const VolumePerPressureUnit& unit) const;
126
127 virtual bool HasTidalVolume() const;
128 virtual SEScalarVolume& GetTidalVolume();
129 virtual double GetTidalVolume(const VolumeUnit& unit) const;
130
131 virtual bool HasTotalLungVolume() const;
132 virtual SEScalarVolume& GetTotalLungVolume();
133 virtual double GetTotalLungVolume(const VolumeUnit& unit) const;
134
135 virtual bool HasTotalPositiveEndExpiratoryPressure() const;
136 virtual SEScalarPressure& GetTotalPositiveEndExpiratoryPressure();
137 virtual double GetTotalPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
138
139 virtual bool HasTotalPulmonaryVentilation() const;
140 virtual SEScalarVolumePerTime& GetTotalPulmonaryVentilation();
141 virtual double GetTotalPulmonaryVentilation(const VolumePerTimeUnit& unit) const;
142
143 virtual bool HasSettings() const;
144 virtual SEMechanicalVentilatorSettings& GetSettings();
145 virtual const SEMechanicalVentilatorSettings* GetSettings() const;
146 virtual void RemoveSettings();
147
148protected:
149
178
180};
Definition: SEScalarFrequency.h:8
Definition: Logger.h:71
Definition: PBMechanicalVentilator.h:10
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SEEquipment.h:9
void Clear() override
Definition: SEEquipment.cpp:17
Definition: SEMechanicalVentilator.h:10
SEScalarVolumePerPressure * m_StaticRespiratoryCompliance
Definition: SEMechanicalVentilator.h:173
SEScalar * m_InspiratoryExpiratoryRatio
Definition: SEMechanicalVentilator.h:161
SEScalarVolumePerTime * m_ExpiratoryFlow
Definition: SEMechanicalVentilator.h:157
SEScalarPressure * m_PlateauPressure
Definition: SEMechanicalVentilator.h:171
SEMechanicalVentilatorSettings * m_Settings
Definition: SEMechanicalVentilator.h:179
SEScalarVolumePerTime * m_PeakExpiratoryFlow
Definition: SEMechanicalVentilator.h:168
SEScalarVolumePerTime * m_PeakInspiratoryFlow
Definition: SEMechanicalVentilator.h:169
SEScalarPressureTimePerVolume * m_ExpiratoryResistance
Definition: SEMechanicalVentilator.h:158
SEScalar0To1 * m_EndTidalOxygenFraction
Definition: SEMechanicalVentilator.h:155
SEScalarPressure * m_IntrinsicPositiveEndExpiratoryPressure
Definition: SEMechanicalVentilator.h:165
SEScalarPressure * m_PeakInspiratoryPressure
Definition: SEMechanicalVentilator.h:170
SEScalarVolumePerPressure * m_DynamicRespiratoryCompliance
Definition: SEMechanicalVentilator.h:152
SEScalarVolumePerTime * m_InspiratoryFlow
Definition: SEMechanicalVentilator.h:162
SEScalarPressure * m_AirwayPressure
Definition: SEMechanicalVentilator.h:150
virtual void StateChange()
Definition: SEMechanicalVentilator.h:26
SEScalarPressure * m_MeanAirwayPressure
Definition: SEMechanicalVentilator.h:167
SEScalar0To1 * m_LeakFraction
Definition: SEMechanicalVentilator.h:166
SEScalarVolume * m_ExpiratoryTidalVolume
Definition: SEMechanicalVentilator.h:159
SEScalarPressure * m_TotalPositiveEndExpiratoryPressure
Definition: SEMechanicalVentilator.h:176
SEScalarVolumePerTime * m_TotalPulmonaryVentilation
Definition: SEMechanicalVentilator.h:177
SEScalarEnum< eBreathState > m_BreathState
Definition: SEMechanicalVentilator.h:151
SEScalarFrequency * m_RespirationRate
Definition: SEMechanicalVentilator.h:172
SEScalarPressure * m_EndTidalCarbonDioxidePressure
Definition: SEMechanicalVentilator.h:154
SEScalarVolume * m_TidalVolume
Definition: SEMechanicalVentilator.h:174
SEScalarPressureTimePerVolume * m_InspiratoryResistance
Definition: SEMechanicalVentilator.h:163
SEScalarVolume * m_TotalLungVolume
Definition: SEMechanicalVentilator.h:175
SEScalarPressure * m_ExtrinsicPositiveEndExpiratoryPressure
Definition: SEMechanicalVentilator.h:160
SEScalarPressure * m_EndTidalOxygenPressure
Definition: SEMechanicalVentilator.h:156
SEScalarVolume * m_InspiratoryTidalVolume
Definition: SEMechanicalVentilator.h:164
SEScalar0To1 * m_EndTidalCarbonDioxideFraction
Definition: SEMechanicalVentilator.h:153
Definition: SEMechanicalVentilatorSettings.h:13
Definition: SEScalar0To1.h:8
Definition: SEScalarFrequency.h:26
Definition: SEScalar.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerPressure.h:28
Definition: SEScalarVolumePerTime.h:32
virtual const SEScalar * GetScalar(const std::string &name)=0
Definition: SEScalarVolumePerPressure.h:8
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.