What’s New in the Pulse Physiology Engine 4.4.0
×
SEMechanicalVentilation.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/patient/actions/SEPatientAction.h"
6class Serializer;
7class SESubstance;
10class SEMechanicalVentilationConfiguration;
11
13{
14 friend class PBPatientAction;//friend the serialization class
15protected:
16
17public:
18
19 SEMechanicalVentilation(Logger* logger=nullptr);
21
22 static constexpr char const* Name = "Mechanical Ventilation";
23 std::string GetName() const override { return Name; }
24
25 void Clear() override;
26 void Copy(const SEMechanicalVentilation& src, const SESubstanceManager& subMgr, bool /*preserveState*/=false);
27
28 const SEScalar* GetScalar(const std::string& name) override;
29
30 bool IsValid() const override;
31 bool IsActive() const override;
32 void Deactivate() override;
33
34 virtual eSwitch GetState() const;
35 virtual void SetState(eSwitch name);
36
37 virtual bool HasFlow() const;
38 virtual SEScalarVolumePerTime& GetFlow();
39 virtual double GetFlow(const VolumePerTimeUnit& unit) const;
40
41 virtual bool HasPressure() const;
42 virtual SEScalarPressure& GetPressure();
43 virtual double GetPressure(const PressureUnit& unit) const;
44
45 virtual bool HasMechanicalDeadSpaceVolume() const;
46 virtual SEScalarVolume& GetMechanicalDeadSpaceVolume();
47 virtual double GetMechanicalDeadSpaceVolume(const VolumeUnit& unit) const;
48
49 bool HasGasFraction() const;
50 bool HasGasFraction(const SESubstance& substance) const;
51 const std::vector<SESubstanceFraction*>& GetGasFractions();
52 const std::vector<SESubstanceFraction*>& GetGasFractions() const;
53 SESubstanceFraction& GetGasFraction(const SESubstance& substance);
54 const SESubstanceFraction* GetGasFraction(const SESubstance& substance) const;
55 void RemoveGasFraction(const SESubstance& substance);
56 void RemoveGasFractions();
57
58 bool HasAerosol() const;
59 bool HasAerosol(const SESubstance& substance) const;
60 const std::vector<SESubstanceConcentration*>& GetAerosols();
61 const std::vector<SESubstanceConcentration*>& GetAerosols() const;
62 SESubstanceConcentration& GetAerosol(const SESubstance& substance);
63 const SESubstanceConcentration* GetAerosol(const SESubstance& substance) const;
64 void RemoveAerosol(const SESubstance& substance);
65 void RemoveAerosols();
66
67protected:
68
69 eSwitch m_State;
73
74 std::vector<SESubstanceFraction*> m_GasFractions;
75 std::vector<SESubstanceConcentration*> m_Aerosols;
76};
Definition: Logger.h:71
Definition: PBPatientActions.h:56
Definition: SEScalarPressure.h:8
virtual const SEScalar * GetScalar(const std::string &name)=0
static SEAction * Copy(const SEAction &, const SESubstanceManager &)
Definition: SEAction.cpp:53
Definition: SEMechanicalVentilation.h:13
std::string GetName() const override
Definition: SEMechanicalVentilation.h:23
eSwitch m_State
Definition: SEMechanicalVentilation.h:69
SEScalarVolume * m_MechanicalDeadSpaceVolume
Definition: SEMechanicalVentilation.h:72
SEScalarVolumePerTime * m_Flow
Definition: SEMechanicalVentilation.h:70
SEScalarPressure * m_Pressure
Definition: SEMechanicalVentilation.h:71
std::vector< SESubstanceConcentration * > m_Aerosols
Definition: SEMechanicalVentilation.h:75
std::vector< SESubstanceFraction * > m_GasFractions
Definition: SEMechanicalVentilation.h:74
Definition: SEPatientAction.h:8
void Deactivate() override
Definition: SEPatientAction.h:23
void Clear() override
Definition: SEPatientAction.h:18
bool IsValid() const override
Definition: SEPatientAction.h:19
bool IsActive() const override
Definition: SEPatientAction.h:22
Definition: SEScalar.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SESubstanceConcentration.h:10
Definition: SESubstanceFraction.h:9
Definition: SESubstance.h:16
Definition: SESubstanceManager.h:10
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.