What’s New in the Pulse Physiology Engine 4.4.0
×
SERespiratorySystem.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/system/SESystem.h"
6
7enum class eLungCompartment
8{
9 LeftLung = 0,
10 RightLung,
11
12 LeftSuperiorLobe,
13 LeftInferiorLobe,
14 RightSuperiorLobe,
15 RightMiddleLobe,
16 RightInferiorLobe,
17
18 RightSuperiorLobeApical,
19 RightSuperiorLobePosterior,
20 RightSuperiorLobeAnterior,
21 RightMiddleLobeLateral,
22 RightMiddleLobeMedial,
23 RightInferiorLobeSuperior,
24 RightInferiorLobeMedialBasal,
25 RightInferiorLobeAnteriorBasal,
26 RightInferiorLobeLateralBasal,
27 RightInferiorLobePosteriorBasal,
28 LeftInferiorLobePosteriorBasal,
29 LeftInferiorLobeLateralBasal,
30 LeftInferiorLobeAnteromedialBasal,
31 LeftInferiorLobeSuperior,
32 LeftSuperiorLobeInferiorLingula,
33 LeftSuperiorLobeSuperiorLingula,
34 LeftSuperiorLobeAnterior,
35 LeftSuperiorLobeApicoposterior
36};
37extern CDM_DECL const std::string& eLungCompartment_Name(eLungCompartment cmpt);
38using LungImpairmentMap = std::map<eLungCompartment, SEScalar0To1*>;
39using LungVolumeIncrementMap = std::map<eLungCompartment, SEScalarVolume*>;
40
42
43class CDM_DECL SERespiratorySystem : public SESystem
44{
45 friend class PBPhysiology;//friend the serialization class
46public:
47 static void FillLungImpairmentMap(LungImpairmentMap& map);
48
50 virtual ~SERespiratorySystem();
51
52 void Clear() override;
53
54 const SEScalar* GetScalar(const std::string& name) override;
55
56 virtual bool HasAirwayPressure() const;
57 virtual SEScalarPressure& GetAirwayPressure();
58 virtual double GetAirwayPressure(const PressureUnit& unit) const;
59
60 virtual bool HasAlveolarArterialGradient() const;
61 virtual SEScalarPressure& GetAlveolarArterialGradient();
62 virtual double GetAlveolarArterialGradient(const PressureUnit& unit) const;
63
64 virtual bool HasAlveolarDeadSpace() const;
65 virtual SEScalarVolume& GetAlveolarDeadSpace();
66 virtual double GetAlveolarDeadSpace(const VolumeUnit& unit) const;
67
68 virtual bool HasClinicalPhysiologicDeadSpaceTidalVolumeRatio() const;
69 virtual SEScalar& GetClinicalPhysiologicDeadSpaceTidalVolumeRatio();
70 virtual double GetClinicalPhysiologicDeadSpaceTidalVolumeRatio() const;
71
72 virtual bool HasAnatomicDeadSpace() const;
73 virtual SEScalarVolume& GetAnatomicDeadSpace();
74 virtual double GetAnatomicDeadSpace(const VolumeUnit& unit) const;
75
76 virtual bool HasHorowitzIndex() const;
77 virtual SEScalarPressure& GetHorowitzIndex();
78 virtual double GetHorowitzIndex(const PressureUnit& unit) const;
79
80 virtual bool HasChestWallCompliance() const;
81 virtual SEScalarVolumePerPressure& GetChestWallCompliance();
82 virtual double GetChestWallCompliance(const VolumePerPressureUnit& unit) const;
83
84 virtual bool HasElasticWorkOfBreathing() const;
85 virtual SEScalarEnergy& GetElasticWorkOfBreathing();
86 virtual double GetElasticWorkOfBreathing(const EnergyUnit& unit) const;
87
88 virtual bool HasEndTidalCarbonDioxideFraction() const;
89 virtual SEScalar0To1& GetEndTidalCarbonDioxideFraction();
90 virtual double GetEndTidalCarbonDioxideFraction() const;
91
92 virtual bool HasEndTidalCarbonDioxidePressure() const;
93 virtual SEScalarPressure& GetEndTidalCarbonDioxidePressure();
94 virtual double GetEndTidalCarbonDioxidePressure(const PressureUnit& unit) const;
95
96 virtual bool HasEndTidalOxygenFraction() const;
97 virtual SEScalar0To1& GetEndTidalOxygenFraction();
98 virtual double GetEndTidalOxygenFraction() const;
99
100 virtual bool HasEndTidalOxygenPressure() const;
101 virtual SEScalarPressure& GetEndTidalOxygenPressure();
102 virtual double GetEndTidalOxygenPressure(const PressureUnit& unit) const;
103
104 virtual bool HasExpiratoryFlow() const;
105 virtual SEScalarVolumePerTime& GetExpiratoryFlow();
106 virtual double GetExpiratoryFlow(const VolumePerTimeUnit& unit) const;
107
108 virtual bool HasExpiratoryRespiratoryResistance() const;
109 virtual SEScalarPressureTimePerVolume& GetExpiratoryRespiratoryResistance();
110 virtual double GetExpiratoryRespiratoryResistance(const PressureTimePerVolumeUnit& unit) const;
111
112 virtual bool HasExpiratoryTidalVolume() const;
113 virtual SEScalarVolume& GetExpiratoryTidalVolume();
114 virtual double GetExpiratoryTidalVolume(const VolumeUnit& unit) const;
115
116 virtual bool HasExtrinsicPositiveEndExpiratoryPressure() const;
117 virtual SEScalarPressure& GetExtrinsicPositiveEndExpiratoryPressure();
118 virtual double GetExtrinsicPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
119
120 virtual bool HasFractionOfInspiredOxygen() const;
121 virtual SEScalar0To1& GetFractionOfInspiredOxygen();
122 virtual double GetFractionOfInspiredOxygen() const;
123
124 virtual bool HasImposedPowerOfBreathing() const;
125 virtual SEScalarPower& GetImposedPowerOfBreathing();
126 virtual double GetImposedPowerOfBreathing(const PowerUnit& unit) const;
127
128 virtual bool HasImposedWorkOfBreathing() const;
129 virtual SEScalarEnergy& GetImposedWorkOfBreathing();
130 virtual double GetImposedWorkOfBreathing(const EnergyUnit& unit) const;
131
132 virtual bool HasInspiratoryExpiratoryRatio() const;
133 virtual SEScalar& GetInspiratoryExpiratoryRatio();
134 virtual double GetInspiratoryExpiratoryRatio() const;
135
136 virtual bool HasInspiratoryFlow() const;
137 virtual SEScalarVolumePerTime& GetInspiratoryFlow();
138 virtual double GetInspiratoryFlow(const VolumePerTimeUnit& unit) const;
139
140 virtual bool HasInspiratoryRespiratoryResistance() const;
141 virtual SEScalarPressureTimePerVolume& GetInspiratoryRespiratoryResistance();
142 virtual double GetInspiratoryRespiratoryResistance(const PressureTimePerVolumeUnit& unit) const;
143
144 virtual bool HasInspiratoryTidalVolume() const;
145 virtual SEScalarVolume& GetInspiratoryTidalVolume();
146 virtual double GetInspiratoryTidalVolume(const VolumeUnit& unit) const;
147
148 virtual bool HasIntrapleuralPressure() const;
149 virtual SEScalarPressure& GetIntrapleuralPressure();
150 virtual double GetIntrapleuralPressure(const PressureUnit& unit) const;
151
152 virtual bool HasIntrapulmonaryPressure() const;
153 virtual SEScalarPressure& GetIntrapulmonaryPressure();
154 virtual double GetIntrapulmonaryPressure(const PressureUnit& unit) const;
155
156 virtual bool HasIntrinsicPositiveEndExpiratoryPressure() const;
157 virtual SEScalarPressure& GetIntrinsicPositiveEndExpiratoryPressure();
158 virtual double GetIntrinsicPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
159
160 virtual bool HasLungCompliance() const;
161 virtual SEScalarVolumePerPressure& GetLungCompliance();
162 virtual double GetLungCompliance(const VolumePerPressureUnit& unit) const;
163
164 virtual bool HasMaximalInspiratoryPressure() const;
165 virtual SEScalarPressure& GetMaximalInspiratoryPressure();
166 virtual double GetMaximalInspiratoryPressure(const PressureUnit& unit) const;
167
168 virtual bool HasMeanAirwayPressure() const;
169 virtual SEScalarPressure& GetMeanAirwayPressure();
170 virtual double GetMeanAirwayPressure(const PressureUnit& unit) const;
171
172 virtual bool HasOxygenationIndex() const;
173 virtual SEScalar& GetOxygenationIndex();
174 virtual double GetOxygenationIndex() const;
175
176 virtual bool HasOxygenSaturationIndex() const;
177 virtual SEScalarPressure& GetOxygenSaturationIndex();
178 virtual double GetOxygenSaturationIndex(const PressureUnit& unit) const;
179
180 virtual bool HasPatientPowerOfBreathing() const;
181 virtual SEScalarPower& GetPatientPowerOfBreathing();
182 virtual double GetPatientPowerOfBreathing(const PowerUnit& unit) const;
183
184 virtual bool HasPatientWorkOfBreathing() const;
185 virtual SEScalarEnergy& GetPatientWorkOfBreathing();
186 virtual double GetPatientWorkOfBreathing(const EnergyUnit& unit) const;
187
188 virtual bool HasPeakInspiratoryPressure() const;
189 virtual SEScalarPressure& GetPeakInspiratoryPressure();
190 virtual double GetPeakInspiratoryPressure(const PressureUnit& unit) const;
191
192 virtual bool HasPhysiologicDeadSpace() const;
193 virtual SEScalarVolume& GetPhysiologicDeadSpace();
194 virtual double GetPhysiologicDeadSpace(const VolumeUnit& unit) const;
195
196 virtual bool HasPhysiologicDeadSpaceTidalVolumeRatio() const;
197 virtual SEScalar& GetPhysiologicDeadSpaceTidalVolumeRatio();
198 virtual double GetPhysiologicDeadSpaceTidalVolumeRatio() const;
199
200 virtual bool HasPhysiologicShuntFraction() const;
201 virtual SEScalar0To1& GetPhysiologicShuntFraction();
202 virtual double GetPhysiologicShuntFraction() const;
203
204 virtual bool HasRespiratoryCompliance() const;
205 virtual SEScalarVolumePerPressure& GetRespiratoryCompliance();
206 virtual double GetRespiratoryCompliance(const VolumePerPressureUnit& unit) const;
207
208 virtual bool HasRespiratoryElastance() const;
209 virtual SEScalarPressurePerVolume& GetRespiratoryElastance();
210 virtual double GetRespiratoryElastance(const PressurePerVolumeUnit& unit) const;
211
212 virtual bool HasRelativeTotalLungVolume() const;
213 virtual SEScalarVolume& GetRelativeTotalLungVolume();
214 virtual double GetRelativeTotalLungVolume(const VolumeUnit& unit) const;
215
216 virtual bool HasResistiveExpiratoryWorkOfBreathing() const;
217 virtual SEScalarEnergy& GetResistiveExpiratoryWorkOfBreathing();
218 virtual double GetResistiveExpiratoryWorkOfBreathing(const EnergyUnit& unit) const;
219
220 virtual bool HasResistiveInspiratoryWorkOfBreathing() const;
221 virtual SEScalarEnergy& GetResistiveInspiratoryWorkOfBreathing();
222 virtual double GetResistiveInspiratoryWorkOfBreathing(const EnergyUnit& unit) const;
223
224 virtual bool HasRespirationRate() const;
225 virtual SEScalarFrequency& GetRespirationRate();
226 virtual double GetRespirationRate(const FrequencyUnit& unit) const;
227
228 virtual bool HasRespiratoryMuscleFatigue() const;
229 virtual SEScalar0To1& GetRespiratoryMuscleFatigue();
230 virtual double GetRespiratoryMuscleFatigue() const;
231
232 virtual bool HasRespiratoryMusclePressure() const;
233 virtual SEScalarPressure& GetRespiratoryMusclePressure();
234 virtual double GetRespiratoryMusclePressure(const PressureUnit& unit) const;
235
236 virtual bool HasSaturationAndFractionOfInspiredOxygenRatio() const;
237 virtual SEScalar& GetSaturationAndFractionOfInspiredOxygenRatio();
238 virtual double GetSaturationAndFractionOfInspiredOxygenRatio() const;
239
240 virtual bool HasSpecificVentilation() const;
241 virtual SEScalar& GetSpecificVentilation();
242 virtual double GetSpecificVentilation() const;
243
244 virtual bool HasTidalVolume() const;
245 virtual SEScalarVolume& GetTidalVolume();
246 virtual double GetTidalVolume(const VolumeUnit& unit) const;
247
248 virtual bool HasTotalAlveolarVentilation() const;
249 virtual SEScalarVolumePerTime& GetTotalAlveolarVentilation();
250 virtual double GetTotalAlveolarVentilation(const VolumePerTimeUnit& unit) const;
251
252 virtual bool HasTotalDeadSpaceVentilation() const;
253 virtual SEScalarVolumePerTime& GetTotalDeadSpaceVentilation();
254 virtual double GetTotalDeadSpaceVentilation(const VolumePerTimeUnit& unit) const;
255
256 virtual bool HasTotalLungVolume() const;
257 virtual SEScalarVolume& GetTotalLungVolume();
258 virtual double GetTotalLungVolume(const VolumeUnit& unit) const;
259
260 virtual bool HasTotalPositiveEndExpiratoryPressure() const;
261 virtual SEScalarPressure& GetTotalPositiveEndExpiratoryPressure();
262 virtual double GetTotalPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
263
264 virtual bool HasTotalPowerOfBreathing() const;
265 virtual SEScalarPower& GetTotalPowerOfBreathing();
266 virtual double GetTotalPowerOfBreathing(const PowerUnit& unit) const;
267
268 virtual bool HasTotalPulmonaryVentilation() const;
269 virtual SEScalarVolumePerTime& GetTotalPulmonaryVentilation();
270 virtual double GetTotalPulmonaryVentilation(const VolumePerTimeUnit& unit) const;
271
272 virtual bool HasTotalWorkOfBreathing() const;
273 virtual SEScalarEnergy& GetTotalWorkOfBreathing();
274 virtual double GetTotalWorkOfBreathing(const EnergyUnit& unit) const;
275
276 virtual bool HasTransairwayPressure() const;
277 virtual SEScalarPressure& GetTransairwayPressure();
278 virtual double GetTransairwayPressure(const PressureUnit& unit) const;
279
280 virtual bool HasTransalveolarPressure() const;
281 virtual SEScalarPressure& GetTransalveolarPressure();
282 virtual double GetTransalveolarPressure(const PressureUnit& unit) const;
283
284 virtual bool HasTransChestWallPressure() const;
285 virtual SEScalarPressure& GetTransChestWallPressure();
286 virtual double GetTransChestWallPressure(const PressureUnit& unit) const;
287
288 virtual bool HasTransMusclePressure() const;
289 virtual SEScalarPressure& GetTransMusclePressure();
290 virtual double GetTransMusclePressure(const PressureUnit& unit) const;
291
292 virtual bool HasTranspulmonaryPressure() const;
293 virtual SEScalarPressure& GetTranspulmonaryPressure();
294 virtual double GetTranspulmonaryPressure(const PressureUnit& unit) const;
295
296 virtual bool HasTransrespiratoryPressure() const;
297 virtual SEScalarPressure& GetTransrespiratoryPressure();
298 virtual double GetTransrespiratoryPressure(const PressureUnit& unit) const;
299
300 virtual bool HasTransthoracicPressure() const;
301 virtual SEScalarPressure& GetTransthoracicPressure();
302 virtual double GetTransthoracicPressure(const PressureUnit& unit) const;
303
304 virtual bool HasVentilationPerfusionRatio() const;
305 virtual SEScalar& GetVentilationPerfusionRatio();
306 virtual double GetVentilationPerfusionRatio() const;
307
308 virtual bool HasActiveMechanics() const;
309 virtual bool HasMechanics() const;
310 virtual SERespiratoryMechanics& GetMechanics();
311 virtual const SERespiratoryMechanics* GetMechanics() const;
312
313protected:
314
378
380};
Definition: SEScalarEnergy.h:8
Definition: SEScalarFrequency.h:8
Definition: Logger.h:71
Definition: PBPhysiology.h:25
Definition: SEScalarPower.h:8
Definition: SEScalarPressurePerVolume.h:8
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SERespiratoryMechanics.h:8
Definition: SERespiratorySystem.h:44
SEScalarPressureTimePerVolume * m_ExpiratoryRespiratoryResistance
Definition: SERespiratorySystem.h:328
SERespiratoryMechanics * m_Mechanics
Definition: SERespiratorySystem.h:379
SEScalar * m_PhysiologicDeadSpaceTidalVolumeRatio
Definition: SERespiratorySystem.h:350
SEScalarPower * m_TotalPowerOfBreathing
Definition: SERespiratorySystem.h:367
SEScalarVolume * m_ExpiratoryTidalVolume
Definition: SERespiratorySystem.h:329
SEScalarPressure * m_TranspulmonaryPressure
Definition: SERespiratorySystem.h:374
SEScalar * m_SaturationAndFractionOfInspiredOxygenRatio
Definition: SERespiratorySystem.h:360
SEScalarVolumePerTime * m_ExpiratoryFlow
Definition: SERespiratorySystem.h:327
SEScalarPressure * m_TotalPositiveEndExpiratoryPressure
Definition: SERespiratorySystem.h:366
SEScalarEnergy * m_ImposedWorkOfBreathing
Definition: SERespiratorySystem.h:333
SEScalarPressure * m_AlveolarArterialGradient
Definition: SERespiratorySystem.h:316
SEScalarPressure * m_HorowitzIndex
Definition: SERespiratorySystem.h:320
SEScalarVolume * m_AnatomicDeadSpace
Definition: SERespiratorySystem.h:318
SEScalarVolume * m_RelativeTotalLungVolume
Definition: SERespiratorySystem.h:354
SEScalarPressure * m_ExtrinsicPositiveEndExpiratoryPressure
Definition: SERespiratorySystem.h:330
SEScalarEnergy * m_PatientWorkOfBreathing
Definition: SERespiratorySystem.h:347
SEScalarVolumePerTime * m_TotalPulmonaryVentilation
Definition: SERespiratorySystem.h:368
SEScalarPressure * m_RespiratoryMusclePressure
Definition: SERespiratorySystem.h:359
SEScalarPressure * m_TransairwayPressure
Definition: SERespiratorySystem.h:370
SEScalarEnergy * m_ElasticWorkOfBreathing
Definition: SERespiratorySystem.h:322
SEScalarVolume * m_AlveolarDeadSpace
Definition: SERespiratorySystem.h:317
SEScalarVolumePerPressure * m_RespiratoryCompliance
Definition: SERespiratorySystem.h:352
SEScalarPressure * m_MeanAirwayPressure
Definition: SERespiratorySystem.h:343
SEScalarPressure * m_MaximalInspiratoryPressure
Definition: SERespiratorySystem.h:342
SEScalarEnergy * m_ResistiveExpiratoryWorkOfBreathing
Definition: SERespiratorySystem.h:355
SEScalarPressure * m_AirwayPressure
Definition: SERespiratorySystem.h:315
SEScalarEnergy * m_TotalWorkOfBreathing
Definition: SERespiratorySystem.h:369
SEScalarPressure * m_TransMusclePressure
Definition: SERespiratorySystem.h:373
SEScalarPressure * m_EndTidalOxygenPressure
Definition: SERespiratorySystem.h:326
SEScalar * m_OxygenationIndex
Definition: SERespiratorySystem.h:344
SEScalarPressurePerVolume * m_RespiratoryElastance
Definition: SERespiratorySystem.h:353
SEScalar0To1 * m_FractionOfInspiredOxygen
Definition: SERespiratorySystem.h:331
SEScalarVolumePerPressure * m_ChestWallCompliance
Definition: SERespiratorySystem.h:321
SEScalarPressureTimePerVolume * m_InspiratoryRespiratoryResistance
Definition: SERespiratorySystem.h:336
SEScalarVolume * m_InspiratoryTidalVolume
Definition: SERespiratorySystem.h:337
SEScalarVolumePerTime * m_TotalAlveolarVentilation
Definition: SERespiratorySystem.h:363
SEScalar0To1 * m_EndTidalOxygenFraction
Definition: SERespiratorySystem.h:325
SEScalarVolume * m_PhysiologicDeadSpace
Definition: SERespiratorySystem.h:349
SEScalarPressure * m_TransChestWallPressure
Definition: SERespiratorySystem.h:372
SEScalarPressure * m_TransrespiratoryPressure
Definition: SERespiratorySystem.h:375
SEScalar0To1 * m_EndTidalCarbonDioxideFraction
Definition: SERespiratorySystem.h:323
SEScalarPressure * m_IntrinsicPositiveEndExpiratoryPressure
Definition: SERespiratorySystem.h:340
SEScalarPressure * m_IntrapleuralPressure
Definition: SERespiratorySystem.h:338
SEScalarPressure * m_IntrapulmonaryPressure
Definition: SERespiratorySystem.h:339
SEScalar * m_InspiratoryExpiratoryRatio
Definition: SERespiratorySystem.h:334
SEScalar0To1 * m_RespiratoryMuscleFatigue
Definition: SERespiratorySystem.h:358
SEScalarVolumePerTime * m_TotalDeadSpaceVentilation
Definition: SERespiratorySystem.h:364
SEScalar * m_ClinicalPhysiologicDeadSpaceTidalVolumeRatio
Definition: SERespiratorySystem.h:319
SEScalarPower * m_ImposedPowerOfBreathing
Definition: SERespiratorySystem.h:332
SEScalarFrequency * m_RespirationRate
Definition: SERespiratorySystem.h:357
SEScalarVolumePerPressure * m_LungCompliance
Definition: SERespiratorySystem.h:341
SEScalarPressure * m_TransalveolarPressure
Definition: SERespiratorySystem.h:371
SEScalarVolumePerTime * m_InspiratoryFlow
Definition: SERespiratorySystem.h:335
SEScalarVolume * m_TidalVolume
Definition: SERespiratorySystem.h:362
SEScalarPressure * m_PeakInspiratoryPressure
Definition: SERespiratorySystem.h:348
SEScalarPressure * m_EndTidalCarbonDioxidePressure
Definition: SERespiratorySystem.h:324
SEScalarPower * m_PatientPowerOfBreathing
Definition: SERespiratorySystem.h:346
SEScalar * m_SpecificVentilation
Definition: SERespiratorySystem.h:361
SEScalarEnergy * m_ResistiveInspiratoryWorkOfBreathing
Definition: SERespiratorySystem.h:356
SEScalarVolume * m_TotalLungVolume
Definition: SERespiratorySystem.h:365
SEScalarPressure * m_OxygenSaturationIndex
Definition: SERespiratorySystem.h:345
SEScalarPressure * m_TransthoracicPressure
Definition: SERespiratorySystem.h:376
SEScalar * m_VentilationPerfusionRatio
Definition: SERespiratorySystem.h:377
SEScalar0To1 * m_PhysiologicShuntFraction
Definition: SERespiratorySystem.h:351
Definition: SEScalar0To1.h:8
Definition: SEScalarEnergy.h:27
Definition: SEScalarFrequency.h:26
Definition: SEScalar.h:19
Definition: SEScalarPower.h:29
Definition: SEScalarPressure.h:29
Definition: SEScalarPressurePerVolume.h:26
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerPressure.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SESystem.h:8
virtual const SEScalar * GetScalar(const std::string &name)=0
virtual void Clear()
Definition: SESystem.cpp:17
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.