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