What’s New in the Pulse Physiology Engine 4.4.0
×
SEMechanicalVentilatorSettings.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/CommonDefs.h"
6#include "cdm/substance/SESubstanceManager.h"
7#include "cdm/substance/SESubstanceConcentration.h"
8#include "cdm/substance/SESubstanceFraction.h"
9
12
14{
15 friend class PBMechanicalVentilator;//friend the serialization class
16public:
17
20
21 bool SerializeToString(std::string& output, eSerializationFormat m) const;
22 bool SerializeToFile(const std::string& filename) const;
23 bool SerializeFromString(const std::string& src, eSerializationFormat m, const SESubstanceManager& subMgr);
24 bool SerializeFromFile(const std::string& filename, const SESubstanceManager& subMgr);
25
26 virtual void ProcessConfiguration(SEMechanicalVentilatorConfiguration& config, SESubstanceManager& subMgr);
27
28 virtual void Clear();
29 virtual void Copy(const SEMechanicalVentilatorSettings& src, const SESubstanceManager&);
30 virtual void Merge(const SEMechanicalVentilatorSettings& from, SESubstanceManager& subMgr);
31
32 virtual const SEScalar* GetScalar(const std::string& name);
33
34 virtual bool HasConnection() const;
35 virtual eSwitch GetConnection() const;
36 virtual void SetConnection(eSwitch c);
37
38 virtual bool HasConnectionVolume() const;
39 virtual SEScalarVolume& GetConnectionVolume();
40 virtual double GetConnectionVolume(const VolumeUnit& unit) const;
41
42 virtual bool HasCompliance() const;
43 virtual SEScalarVolumePerPressure& GetCompliance();
44 virtual double GetCompliance(const VolumePerPressureUnit& unit) const;
45
46 virtual bool HasDriverDampingParameter() const;
47 virtual SEScalarFrequency& GetDriverDampingParameter();
48 virtual double GetDriverDampingParameter(const FrequencyUnit& unit) const;
49
50 virtual bool HasPositiveEndExpiratoryPressure() const;
51 virtual SEScalarPressure& GetPositiveEndExpiratoryPressure();
52 virtual double GetPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
53
54 virtual bool HasFunctionalResidualCapacity() const;
55 virtual SEScalarPressure& GetFunctionalResidualCapacity();
56 virtual double GetFunctionalResidualCapacity(const PressureUnit& unit) const;
57
58 virtual bool HasExpirationCycleFlow() const;
59 virtual SEScalarVolumePerTime& GetExpirationCycleFlow();
60 virtual double GetExpirationCycleFlow(const VolumePerTimeUnit& unit) const;
61
62 virtual bool HasExpirationCyclePressure() const;
63 virtual SEScalarPressure& GetExpirationCyclePressure();
64 virtual double GetExpirationCyclePressure(const PressureUnit& unit) const;
65
66 virtual bool HasExpirationCycleVolume() const;
67 virtual SEScalarVolume& GetExpirationCycleVolume();
68 virtual double GetExpirationCycleVolume(const VolumeUnit& unit) const;
69
70 virtual bool HasExpirationCycleTime() const;
71 virtual SEScalarTime& GetExpirationCycleTime();
72 virtual double GetExpirationCycleTime(const TimeUnit& unit) const;
73
74 virtual bool HasExpirationCycleRespiratoryModel() const;
75 virtual eSwitch GetExpirationCycleRespiratoryModel() const;
76 virtual void SetExpirationCycleRespiratoryModel(eSwitch c);
77
78 virtual bool HasExpirationTubeResistance() const;
79 virtual SEScalarPressureTimePerVolume& GetExpirationTubeResistance();
80 virtual double GetExpirationTubeResistance(const PressureTimePerVolumeUnit& unit) const;
81
82 virtual bool HasExpirationValveResistance() const;
83 virtual SEScalarPressureTimePerVolume& GetExpirationValveResistance();
84 virtual double GetExpirationValveResistance(const PressureTimePerVolumeUnit& unit) const;
85
86 virtual bool HasExpirationWaveform() const;
87 virtual eDriverWaveform GetExpirationWaveform() const;
88 virtual void SetExpirationWaveform(eDriverWaveform w);
89
90 virtual bool HasExpirationWaveformPeriod() const;
91 virtual SEScalarTime& GetExpirationWaveformPeriod();
92 virtual double GetExpirationWaveformPeriod(const TimeUnit& unit) const;
93
94 virtual bool HasInspirationLimitFlow() const;
95 virtual SEScalarVolumePerTime& GetInspirationLimitFlow();
96 virtual double GetInspirationLimitFlow(const VolumePerTimeUnit& unit) const;
97
98 virtual bool HasInspirationLimitPressure() const;
99 virtual SEScalarPressure& GetInspirationLimitPressure();
100 virtual double GetInspirationLimitPressure(const PressureUnit& unit) const;
101
102 virtual bool HasInspirationLimitVolume() const;
103 virtual SEScalarVolume& GetInspirationLimitVolume();
104 virtual double GetInspirationLimitVolume(const VolumeUnit& unit) const;
105
106 virtual bool HasInspirationPauseTime() const;
107 virtual SEScalarTime& GetInspirationPauseTime();
108 virtual double GetInspirationPauseTime(const TimeUnit& unit) const;
109
110 virtual bool HasPeakInspiratoryPressure() const;
111 virtual SEScalarPressure& GetPeakInspiratoryPressure();
112 virtual double GetPeakInspiratoryPressure(const PressureUnit& unit) const;
113
114 virtual bool HasInspirationTargetFlow() const;
115 virtual SEScalarVolumePerTime& GetInspirationTargetFlow();
116 virtual double GetInspirationTargetFlow(const VolumePerTimeUnit& unit) const;
117
118 virtual bool HasInspirationMachineTriggerTime() const;
119 virtual SEScalarTime& GetInspirationMachineTriggerTime();
120 virtual double GetInspirationMachineTriggerTime(const TimeUnit& unit) const;
121
122 virtual bool HasInspirationPatientTriggerFlow() const;
123 virtual SEScalarVolumePerTime& GetInspirationPatientTriggerFlow();
124 virtual double GetInspirationPatientTriggerFlow(const VolumePerTimeUnit& unit) const;
125
126 virtual bool HasInspirationPatientTriggerPressure() const;
127 virtual SEScalarPressure& GetInspirationPatientTriggerPressure();
128 virtual double GetInspirationPatientTriggerPressure(const PressureUnit& unit) const;
129
130 virtual bool HasInspirationPatientTriggerRespiratoryModel() const;
131 virtual eSwitch GetInspirationPatientTriggerRespiratoryModel() const;
132 virtual void SetInspirationPatientTriggerRespiratoryModel(eSwitch c);
133
134 virtual bool HasInspirationTubeResistance() const;
135 virtual SEScalarPressureTimePerVolume& GetInspirationTubeResistance();
136 virtual double GetInspirationTubeResistance(const PressureTimePerVolumeUnit& unit) const;
137
138 virtual bool HasInspirationValveResistance() const;
139 virtual SEScalarPressureTimePerVolume& GetInspirationValveResistance();
140 virtual double GetInspirationValveResistance(const PressureTimePerVolumeUnit& unit) const;
141
142 virtual bool HasExpirationLimbVolume() const;
143 virtual SEScalarVolume& GetExpirationLimbVolume();
144 virtual double GetExpirationLimbVolume(const VolumeUnit& unit) const;
145
146 virtual bool HasExpirationValveVolume() const;
147 virtual SEScalarVolume& GetExpirationValveVolume();
148 virtual double GetExpirationValveVolume(const VolumeUnit& unit) const;
149
150 virtual bool HasInspirationLimbVolume() const;
151 virtual SEScalarVolume& GetInspirationLimbVolume();
152 virtual double GetInspirationLimbVolume(const VolumeUnit& unit) const;
153
154 virtual bool HasInspirationValveVolume() const;
155 virtual SEScalarVolume& GetInspirationValveVolume();
156 virtual double GetInspirationValveVolume(const VolumeUnit& unit) const;
157
158 virtual bool HasReliefValveThreshold() const;
159 virtual SEScalarPressure& GetReliefValveThreshold();
160 virtual double GetReliefValveThreshold(const PressureUnit& unit) const;
161
162 virtual bool HasYPieceVolume() const;
163 virtual SEScalarVolume& GetYPieceVolume();
164 virtual double GetYPieceVolume(const VolumeUnit& unit) const;
165
166 virtual bool HasInspirationWaveform() const;
167 virtual eDriverWaveform GetInspirationWaveform() const;
168 virtual void SetInspirationWaveform(eDriverWaveform w);
169
170 virtual bool HasInspirationWaveformPeriod() const;
171 virtual SEScalarTime& GetInspirationWaveformPeriod();
172 virtual double GetInspirationWaveformPeriod(const TimeUnit& unit) const;
173
174 bool HasFractionInspiredGas() const;
175 bool HasFractionInspiredGas(const SESubstance& substance) const;
176 const std::vector<SESubstanceFraction*>& GetFractionInspiredGases();
177 const std::vector<const SESubstanceFraction*>& GetFractionInspiredGases() const;
178 SESubstanceFraction& GetFractionInspiredGas(const SESubstance& substance);
179 const SESubstanceFraction* GetFractionInspiredGas(const SESubstance& substance) const;
180 void RemoveFractionInspiredGas(const SESubstance& substance);
181 void RemoveFractionInspiredGases();
182
183 bool HasConcentrationInspiredAerosol() const;
184 bool HasConcentrationInspiredAerosol(const SESubstance& substance) const;
185 const std::vector<SESubstanceConcentration*>& GetConcentrationInspiredAerosols();
186 const std::vector<const SESubstanceConcentration*>& GetConcentrationInspiredAerosols() const;
187 SESubstanceConcentration& GetConcentrationInspiredAerosol(const SESubstance& substance);
188 const SESubstanceConcentration* GetConcentrationInspiredAerosol(const SESubstance& substance) const;
189 void RemoveConcentrationInspiredAerosol(const SESubstance& substance);
190 void RemoveConcentrationInspiredAerosols();
191
192 virtual bool HasAlarms() const;
193 virtual SEMechanicalVentilatorAlarms& GetAlarms();
194 virtual const SEMechanicalVentilatorAlarms* GetAlarms() const;
195 virtual void RemoveAlarms();
196
197protected:
198
203
204 // Expiratory Baseline Properties (Only set 1)
207
208 // Expriatory Cycle Properties (Only Set 1)
214
219 eDriverWaveform m_ExpirationWaveform;
221
222 // Inspiratory Limit Properties (Only set 1)
226
228
229 // Inspiratory Target Properties (Only set 1)
232
233 // Inspiratory Machine Trigger Properties (Only set 1)
235
236 // Inspiratory Patient Trigger Properties (Only set 1)
240
245 eDriverWaveform m_InspirationWaveform;
247
250
251 std::vector<SESubstanceFraction*> m_FractionInspiredGases;
252 std::vector<const SESubstanceFraction*> m_cFractionInspiredGases;
253
254 std::vector<SESubstanceConcentration*> m_ConcentrationInspiredAerosols;
255 std::vector<const SESubstanceConcentration*> m_cConcentrationInspiredAerosols;
256
258};
Definition: SEScalarFrequency.h:8
Definition: Logger.h:23
Definition: Logger.h:71
Definition: PBMechanicalVentilator.h:11
static void Copy(const SEMechanicalVentilatorSettings &src, SEMechanicalVentilatorSettings &dst, const SESubstanceManager &subMgr)
Definition: PBMechanicalVentilator.cpp:464
static bool SerializeFromFile(const std::string &filename, SEMechanicalVentilatorSettings &dst, const SESubstanceManager &subMgr)
Definition: PBMechanicalVentilator.cpp:493
static bool SerializeFromString(const std::string &src, SEMechanicalVentilatorSettings &dst, eSerializationFormat m, const SESubstanceManager &subMgr)
Definition: PBMechanicalVentilator.cpp:485
static bool SerializeToFile(const SEMechanicalVentilatorSettings &src, const std::string &filename)
Definition: PBMechanicalVentilator.cpp:478
static bool SerializeToString(const SEMechanicalVentilatorSettings &src, std::string &output, eSerializationFormat m)
Definition: PBMechanicalVentilator.cpp:472
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SEMechanicalVentilatorAlarms.h:8
Definition: SEMechanicalVentilatorConfiguration.h:9
Definition: SEMechanicalVentilatorSettings.h:14
eSwitch m_Connection
Definition: SEMechanicalVentilatorSettings.h:199
SEScalarFrequency * m_DriverDampingParameter
Definition: SEMechanicalVentilatorSettings.h:202
SEScalarVolumePerPressure * m_Compliance
Definition: SEMechanicalVentilatorSettings.h:201
SEScalarVolume * m_InspirationLimbVolume
Definition: SEMechanicalVentilatorSettings.h:243
std::vector< const SESubstanceConcentration * > m_cConcentrationInspiredAerosols
Definition: SEMechanicalVentilatorSettings.h:255
SEScalarVolumePerTime * m_InspirationLimitFlow
Definition: SEMechanicalVentilatorSettings.h:223
SEScalarPressure * m_ReliefValveThreshold
Definition: SEMechanicalVentilatorSettings.h:249
SEScalarPressureTimePerVolume * m_InspirationTubeResistance
Definition: SEMechanicalVentilatorSettings.h:241
eDriverWaveform m_ExpirationWaveform
Definition: SEMechanicalVentilatorSettings.h:219
SEScalarPressure * m_PositiveEndExpiratoryPressure
Definition: SEMechanicalVentilatorSettings.h:205
SEScalarPressure * m_FunctionalResidualCapacity
Definition: SEMechanicalVentilatorSettings.h:206
SEScalarVolume * m_ExpirationLimbVolume
Definition: SEMechanicalVentilatorSettings.h:217
std::vector< const SESubstanceFraction * > m_cFractionInspiredGases
Definition: SEMechanicalVentilatorSettings.h:252
eSwitch m_InspirationPatientTriggerRespiratoryModel
Definition: SEMechanicalVentilatorSettings.h:239
SEScalarTime * m_ExpirationCycleTime
Definition: SEMechanicalVentilatorSettings.h:212
SEScalarTime * m_InspirationWaveformPeriod
Definition: SEMechanicalVentilatorSettings.h:246
SEScalarVolume * m_InspirationValveVolume
Definition: SEMechanicalVentilatorSettings.h:244
SEScalarTime * m_InspirationMachineTriggerTime
Definition: SEMechanicalVentilatorSettings.h:234
SEScalarTime * m_InspirationPauseTime
Definition: SEMechanicalVentilatorSettings.h:227
SEScalarVolume * m_InspirationLimitVolume
Definition: SEMechanicalVentilatorSettings.h:225
SEScalarVolumePerTime * m_InspirationTargetFlow
Definition: SEMechanicalVentilatorSettings.h:231
SEScalarVolume * m_YPieceVolume
Definition: SEMechanicalVentilatorSettings.h:248
std::vector< SESubstanceFraction * > m_FractionInspiredGases
Definition: SEMechanicalVentilatorSettings.h:251
SEScalarPressure * m_PeakInspiratoryPressure
Definition: SEMechanicalVentilatorSettings.h:230
SEScalarVolume * m_ExpirationValveVolume
Definition: SEMechanicalVentilatorSettings.h:218
SEScalarVolume * m_ConnectionVolume
Definition: SEMechanicalVentilatorSettings.h:200
SEScalarPressureTimePerVolume * m_InspirationValveResistance
Definition: SEMechanicalVentilatorSettings.h:242
SEScalarPressure * m_InspirationLimitPressure
Definition: SEMechanicalVentilatorSettings.h:224
SEMechanicalVentilatorAlarms * m_Alarms
Definition: SEMechanicalVentilatorSettings.h:257
SEScalarVolumePerTime * m_ExpirationCycleFlow
Definition: SEMechanicalVentilatorSettings.h:209
SEScalarPressure * m_ExpirationCyclePressure
Definition: SEMechanicalVentilatorSettings.h:210
std::vector< SESubstanceConcentration * > m_ConcentrationInspiredAerosols
Definition: SEMechanicalVentilatorSettings.h:254
eSwitch m_ExpirationCycleRespiratoryModel
Definition: SEMechanicalVentilatorSettings.h:213
SEScalarPressureTimePerVolume * m_ExpirationValveResistance
Definition: SEMechanicalVentilatorSettings.h:216
SEScalarVolume * m_ExpirationCycleVolume
Definition: SEMechanicalVentilatorSettings.h:211
SEScalarPressureTimePerVolume * m_ExpirationTubeResistance
Definition: SEMechanicalVentilatorSettings.h:215
SEScalarVolumePerTime * m_InspirationPatientTriggerFlow
Definition: SEMechanicalVentilatorSettings.h:237
eDriverWaveform m_InspirationWaveform
Definition: SEMechanicalVentilatorSettings.h:245
SEScalarPressure * m_InspirationPatientTriggerPressure
Definition: SEMechanicalVentilatorSettings.h:238
SEScalarTime * m_ExpirationWaveformPeriod
Definition: SEMechanicalVentilatorSettings.h:220
Definition: SEScalarFrequency.h:26
Definition: SEScalar.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarTime.h:28
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerPressure.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SESubstanceConcentration.h:10
Definition: SESubstanceFraction.h:9
Definition: SESubstance.h:16
Definition: SESubstanceManager.h:10
Definition: SEScalarTime.h:8
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.