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 
9 class CDM_DECL SEMechanicalVentilator : public SEEquipment
10 {
11  friend class PBMechanicalVentilator;//friend the serialization class
12 public:
13 
15  virtual ~SEMechanicalVentilator();
16 
17  void Clear() override;
18  virtual void TurnOff();
19 
20 protected:
26  virtual void StateChange() {};
27 
28 public:
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 
148 protected:
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.