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 virtual void Clear();
18 virtual void TurnOff();
19
20protected:
26 virtual void StateChange() {};
27
28public:
29
30 virtual const SEScalar* GetScalar(const std::string& name);
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 HasDynamicPulmonaryCompliance() const;
40 virtual SEScalarVolumePerPressure& GetDynamicPulmonaryCompliance();
41 virtual double GetDynamicPulmonaryCompliance(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 HasExpiratoryTidalVolume() const;
64 virtual SEScalarVolume& GetExpiratoryTidalVolume();
65 virtual double GetExpiratoryTidalVolume(const VolumeUnit& unit) const;
66
67 virtual bool HasInspiratoryExpiratoryRatio() const;
68 virtual SEScalar& GetInspiratoryExpiratoryRatio();
69 virtual double GetInspiratoryExpiratoryRatio() const;
70
71 virtual bool HasInspiratoryFlow() const;
72 virtual SEScalarVolumePerTime& GetInspiratoryFlow();
73 virtual double GetInspiratoryFlow(const VolumePerTimeUnit& unit) const;
74
75 virtual bool HasInspiratoryTidalVolume() const;
76 virtual SEScalarVolume& GetInspiratoryTidalVolume();
77 virtual double GetInspiratoryTidalVolume(const VolumeUnit& unit) const;
78
79 virtual bool HasIntrinsicPositiveEndExpiredPressure() const;
80 virtual SEScalarPressure& GetIntrinsicPositiveEndExpiredPressure();
81 virtual double GetIntrinsicPositiveEndExpiredPressure(const PressureUnit& unit) const;
82
83 virtual bool HasLeakFraction() const;
84 virtual SEScalar0To1& GetLeakFraction();
85 virtual double GetLeakFraction() const;
86
87 virtual bool HasMeanAirwayPressure() const;
88 virtual SEScalarPressure& GetMeanAirwayPressure();
89 virtual double GetMeanAirwayPressure(const PressureUnit& unit) const;
90
91 virtual bool HasPeakInspiratoryPressure() const;
92 virtual SEScalarPressure& GetPeakInspiratoryPressure();
93 virtual double GetPeakInspiratoryPressure(const PressureUnit& unit) const;
94
95 virtual bool HasPlateauPressure() const;
96 virtual SEScalarPressure& GetPlateauPressure();
97 virtual double GetPlateauPressure(const PressureUnit& unit) const;
98
99 virtual bool HasPositiveEndExpiratoryPressure() const;
100 virtual SEScalarPressure& GetPositiveEndExpiratoryPressure();
101 virtual double GetPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
102
103 virtual bool HasPulmonaryResistance() const;
104 virtual SEScalarPressureTimePerVolume& GetPulmonaryResistance();
105 virtual double GetPulmonaryResistance(const PressureTimePerVolumeUnit& unit) const;
106
107 virtual bool HasRespirationRate() const;
108 virtual SEScalarFrequency& GetRespirationRate();
109 virtual double GetRespirationRate(const FrequencyUnit& unit) const;
110
111 virtual bool HasStaticPulmonaryCompliance() const;
112 virtual SEScalarVolumePerPressure& GetStaticPulmonaryCompliance();
113 virtual double GetStaticPulmonaryCompliance(const VolumePerPressureUnit& unit) const;
114
115 virtual bool HasTidalVolume() const;
116 virtual SEScalarVolume& GetTidalVolume();
117 virtual double GetTidalVolume(const VolumeUnit& unit) const;
118
119 virtual bool HasTotalLungVolume() const;
120 virtual SEScalarVolume& GetTotalLungVolume();
121 virtual double GetTotalLungVolume(const VolumeUnit& unit) const;
122
123 virtual bool HasTotalPulmonaryVentilation() const;
124 virtual SEScalarVolumePerTime& GetTotalPulmonaryVentilation();
125 virtual double GetTotalPulmonaryVentilation(const VolumePerTimeUnit& unit) const;
126
127 virtual bool HasSettings() const;
128 virtual SEMechanicalVentilatorSettings& GetSettings();
129 virtual const SEMechanicalVentilatorSettings* GetSettings() const;
130 virtual void RemoveSettings();
131
132protected:
133
158
160};
Definition: SEScalarFrequency.h:8
Definition: Logger.h:71
Definition: PBMechanicalVentilator.h:10
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SEEquipment.h:9
virtual void Clear()
Definition: SEEquipment.cpp:17
Definition: SEMechanicalVentilator.h:10
SEScalar * m_InspiratoryExpiratoryRatio
Definition: SEMechanicalVentilator.h:143
SEScalarVolumePerTime * m_ExpiratoryFlow
Definition: SEMechanicalVentilator.h:141
SEScalarPressure * m_PlateauPressure
Definition: SEMechanicalVentilator.h:150
SEMechanicalVentilatorSettings * m_Settings
Definition: SEMechanicalVentilator.h:159
SEScalarVolumePerPressure * m_StaticPulmonaryCompliance
Definition: SEMechanicalVentilator.h:154
SEScalarPressure * m_PositiveEndExpiratoryPressure
Definition: SEMechanicalVentilator.h:151
SEScalarVolumePerPressure * m_DynamicPulmonaryCompliance
Definition: SEMechanicalVentilator.h:136
SEScalarPressureTimePerVolume * m_PulmonaryResistance
Definition: SEMechanicalVentilator.h:152
SEScalar0To1 * m_EndTidalOxygenFraction
Definition: SEMechanicalVentilator.h:139
SEScalarPressure * m_PeakInspiratoryPressure
Definition: SEMechanicalVentilator.h:149
SEScalarVolumePerTime * m_InspiratoryFlow
Definition: SEMechanicalVentilator.h:144
SEScalarPressure * m_AirwayPressure
Definition: SEMechanicalVentilator.h:134
virtual void StateChange()
Definition: SEMechanicalVentilator.h:26
SEScalarPressure * m_MeanAirwayPressure
Definition: SEMechanicalVentilator.h:148
SEScalarPressure * m_IntrinsicPositiveEndExpiredPressure
Definition: SEMechanicalVentilator.h:146
SEScalar0To1 * m_LeakFraction
Definition: SEMechanicalVentilator.h:147
SEScalarVolume * m_ExpiratoryTidalVolume
Definition: SEMechanicalVentilator.h:142
SEScalarVolumePerTime * m_TotalPulmonaryVentilation
Definition: SEMechanicalVentilator.h:157
SEScalarEnum< eBreathState > m_BreathState
Definition: SEMechanicalVentilator.h:135
SEScalarFrequency * m_RespirationRate
Definition: SEMechanicalVentilator.h:153
SEScalarPressure * m_EndTidalCarbonDioxidePressure
Definition: SEMechanicalVentilator.h:138
SEScalarVolume * m_TidalVolume
Definition: SEMechanicalVentilator.h:155
SEScalarVolume * m_TotalLungVolume
Definition: SEMechanicalVentilator.h:156
SEScalarPressure * m_EndTidalOxygenPressure
Definition: SEMechanicalVentilator.h:140
SEScalarVolume * m_InspiratoryTidalVolume
Definition: SEMechanicalVentilator.h:145
SEScalar0To1 * m_EndTidalCarbonDioxideFraction
Definition: SEMechanicalVentilator.h:137
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:31
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.