5 #include "cdm/system/SESystem.h"
7 enum class eLungCompartment
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
37 extern CDM_DECL
const std::string& eLungCompartment_Name(eLungCompartment cmpt);
38 using LungImpairmentMap = std::map<eLungCompartment, SEScalar0To1*>;
39 using LungVolumeIncrementMap = std::map<eLungCompartment, SEScalarVolume*>;
47 static void FillLungImpairmentMap(LungImpairmentMap& map);
52 void Clear()
override;
56 virtual bool HasAirwayPressure()
const;
58 virtual double GetAirwayPressure(
const PressureUnit& unit)
const;
60 virtual bool HasAlveolarArterialGradient()
const;
62 virtual double GetAlveolarArterialGradient(
const PressureUnit& unit)
const;
64 virtual bool HasAlveolarDeadSpace()
const;
66 virtual double GetAlveolarDeadSpace(
const VolumeUnit& unit)
const;
68 virtual bool HasClinicalPhysiologicDeadSpaceTidalVolumeRatio()
const;
69 virtual SEScalar& GetClinicalPhysiologicDeadSpaceTidalVolumeRatio();
70 virtual double GetClinicalPhysiologicDeadSpaceTidalVolumeRatio()
const;
72 virtual bool HasAnatomicDeadSpace()
const;
74 virtual double GetAnatomicDeadSpace(
const VolumeUnit& unit)
const;
76 virtual bool HasHorowitzIndex()
const;
78 virtual double GetHorowitzIndex(
const PressureUnit& unit)
const;
80 virtual bool HasChestWallCompliance()
const;
84 virtual bool HasElasticWorkOfBreathing()
const;
86 virtual double GetElasticWorkOfBreathing(
const EnergyUnit& unit)
const;
88 virtual bool HasEndTidalCarbonDioxideFraction()
const;
89 virtual SEScalar0To1& GetEndTidalCarbonDioxideFraction();
90 virtual double GetEndTidalCarbonDioxideFraction()
const;
92 virtual bool HasEndTidalCarbonDioxidePressure()
const;
94 virtual double GetEndTidalCarbonDioxidePressure(
const PressureUnit& unit)
const;
96 virtual bool HasEndTidalOxygenFraction()
const;
98 virtual double GetEndTidalOxygenFraction()
const;
100 virtual bool HasEndTidalOxygenPressure()
const;
102 virtual double GetEndTidalOxygenPressure(
const PressureUnit& unit)
const;
104 virtual bool HasExpiratoryFlow()
const;
108 virtual bool HasExpiratoryRespiratoryResistance()
const;
112 virtual bool HasExpiratoryTidalVolume()
const;
114 virtual double GetExpiratoryTidalVolume(
const VolumeUnit& unit)
const;
116 virtual bool HasExtrinsicPositiveEndExpiratoryPressure()
const;
118 virtual double GetExtrinsicPositiveEndExpiratoryPressure(
const PressureUnit& unit)
const;
120 virtual bool HasFractionOfInspiredOxygen()
const;
122 virtual double GetFractionOfInspiredOxygen()
const;
124 virtual bool HasImposedPowerOfBreathing()
const;
126 virtual double GetImposedPowerOfBreathing(
const PowerUnit& unit)
const;
128 virtual bool HasImposedWorkOfBreathing()
const;
130 virtual double GetImposedWorkOfBreathing(
const EnergyUnit& unit)
const;
132 virtual bool HasInspiratoryExpiratoryRatio()
const;
133 virtual SEScalar& GetInspiratoryExpiratoryRatio();
134 virtual double GetInspiratoryExpiratoryRatio()
const;
136 virtual bool HasInspiratoryFlow()
const;
140 virtual bool HasInspiratoryRespiratoryResistance()
const;
144 virtual bool HasInspiratoryTidalVolume()
const;
146 virtual double GetInspiratoryTidalVolume(
const VolumeUnit& unit)
const;
148 virtual bool HasIntrapleuralPressure()
const;
150 virtual double GetIntrapleuralPressure(
const PressureUnit& unit)
const;
152 virtual bool HasIntrapulmonaryPressure()
const;
154 virtual double GetIntrapulmonaryPressure(
const PressureUnit& unit)
const;
156 virtual bool HasIntrinsicPositiveEndExpiratoryPressure()
const;
158 virtual double GetIntrinsicPositiveEndExpiratoryPressure(
const PressureUnit& unit)
const;
160 virtual bool HasLungCompliance()
const;
164 virtual bool HasMaximalInspiratoryPressure()
const;
166 virtual double GetMaximalInspiratoryPressure(
const PressureUnit& unit)
const;
168 virtual bool HasMeanAirwayPressure()
const;
170 virtual double GetMeanAirwayPressure(
const PressureUnit& unit)
const;
172 virtual bool HasOxygenationIndex()
const;
173 virtual SEScalar& GetOxygenationIndex();
174 virtual double GetOxygenationIndex()
const;
176 virtual bool HasOxygenSaturationIndex()
const;
178 virtual double GetOxygenSaturationIndex(
const PressureUnit& unit)
const;
180 virtual bool HasPatientPowerOfBreathing()
const;
182 virtual double GetPatientPowerOfBreathing(
const PowerUnit& unit)
const;
184 virtual bool HasPatientWorkOfBreathing()
const;
186 virtual double GetPatientWorkOfBreathing(
const EnergyUnit& unit)
const;
188 virtual bool HasPeakInspiratoryPressure()
const;
190 virtual double GetPeakInspiratoryPressure(
const PressureUnit& unit)
const;
192 virtual bool HasPhysiologicDeadSpace()
const;
194 virtual double GetPhysiologicDeadSpace(
const VolumeUnit& unit)
const;
196 virtual bool HasPhysiologicDeadSpaceTidalVolumeRatio()
const;
197 virtual SEScalar& GetPhysiologicDeadSpaceTidalVolumeRatio();
198 virtual double GetPhysiologicDeadSpaceTidalVolumeRatio()
const;
200 virtual bool HasPhysiologicShuntFraction()
const;
202 virtual double GetPhysiologicShuntFraction()
const;
204 virtual bool HasRespiratoryCompliance()
const;
208 virtual bool HasRespiratoryElastance()
const;
212 virtual bool HasRelativeTotalLungVolume()
const;
214 virtual double GetRelativeTotalLungVolume(
const VolumeUnit& unit)
const;
216 virtual bool HasResistiveExpiratoryWorkOfBreathing()
const;
218 virtual double GetResistiveExpiratoryWorkOfBreathing(
const EnergyUnit& unit)
const;
220 virtual bool HasResistiveInspiratoryWorkOfBreathing()
const;
222 virtual double GetResistiveInspiratoryWorkOfBreathing(
const EnergyUnit& unit)
const;
224 virtual bool HasRespirationRate()
const;
226 virtual double GetRespirationRate(
const FrequencyUnit& unit)
const;
228 virtual bool HasRespiratoryMuscleFatigue()
const;
230 virtual double GetRespiratoryMuscleFatigue()
const;
232 virtual bool HasRespiratoryMusclePressure()
const;
234 virtual double GetRespiratoryMusclePressure(
const PressureUnit& unit)
const;
236 virtual bool HasSaturationAndFractionOfInspiredOxygenRatio()
const;
237 virtual SEScalar& GetSaturationAndFractionOfInspiredOxygenRatio();
238 virtual double GetSaturationAndFractionOfInspiredOxygenRatio()
const;
240 virtual bool HasSpecificVentilation()
const;
241 virtual SEScalar& GetSpecificVentilation();
242 virtual double GetSpecificVentilation()
const;
244 virtual bool HasTidalVolume()
const;
246 virtual double GetTidalVolume(
const VolumeUnit& unit)
const;
248 virtual bool HasTotalAlveolarVentilation()
const;
252 virtual bool HasTotalDeadSpaceVentilation()
const;
254 virtual double GetTotalDeadSpaceVentilation(
const VolumePerTimeUnit& unit)
const;
256 virtual bool HasTotalLungVolume()
const;
258 virtual double GetTotalLungVolume(
const VolumeUnit& unit)
const;
260 virtual bool HasTotalPositiveEndExpiratoryPressure()
const;
262 virtual double GetTotalPositiveEndExpiratoryPressure(
const PressureUnit& unit)
const;
264 virtual bool HasTotalPowerOfBreathing()
const;
266 virtual double GetTotalPowerOfBreathing(
const PowerUnit& unit)
const;
268 virtual bool HasTotalPulmonaryVentilation()
const;
270 virtual double GetTotalPulmonaryVentilation(
const VolumePerTimeUnit& unit)
const;
272 virtual bool HasTotalWorkOfBreathing()
const;
274 virtual double GetTotalWorkOfBreathing(
const EnergyUnit& unit)
const;
276 virtual bool HasTransairwayPressure()
const;
278 virtual double GetTransairwayPressure(
const PressureUnit& unit)
const;
280 virtual bool HasTransalveolarPressure()
const;
282 virtual double GetTransalveolarPressure(
const PressureUnit& unit)
const;
284 virtual bool HasTransChestWallPressure()
const;
286 virtual double GetTransChestWallPressure(
const PressureUnit& unit)
const;
288 virtual bool HasTransMusclePressure()
const;
290 virtual double GetTransMusclePressure(
const PressureUnit& unit)
const;
292 virtual bool HasTranspulmonaryPressure()
const;
294 virtual double GetTranspulmonaryPressure(
const PressureUnit& unit)
const;
296 virtual bool HasTransrespiratoryPressure()
const;
298 virtual double GetTransrespiratoryPressure(
const PressureUnit& unit)
const;
300 virtual bool HasTransthoracicPressure()
const;
302 virtual double GetTransthoracicPressure(
const PressureUnit& unit)
const;
304 virtual bool HasVentilationPerfusionRatio()
const;
305 virtual SEScalar& GetVentilationPerfusionRatio();
306 virtual double GetVentilationPerfusionRatio()
const;
308 virtual bool HasActiveMechanics()
const;
309 virtual bool HasMechanics()
const;
Definition: SEScalarEnergy.h:8
Definition: SEScalarFrequency.h:8
Definition: PBPhysiology.h:24
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
virtual void Clear()
Definition: SESystem.cpp:17
virtual const SEScalar * GetScalar(const std::string &name)=0
Definition: SEScalarVolumePerPressure.h:8
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8