What’s New in the Pulse Physiology Engine 4.4.0
×
SEMechanicalVentilatorVolumeControl.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3#pragma once
4#include "cdm/system/equipment/mechanical_ventilator/actions/SEMechanicalVentilatorMode.h"
5
6// Keep enums in sync with appropriate schema/cdm/MechanicalVentilatorActions.proto file !!
7enum class eMechanicalVentilator_VolumeControlMode { AssistedControl = 0, ContinuousMandatoryVentilation };
8extern CDM_DECL const std::string& eMechanicalVentilator_VolumeControlMode_Name(eMechanicalVentilator_VolumeControlMode m);
9
11{
12 friend class PBEquipmentAction;//friend the serialization class
13public:
14
17
18 static constexpr char const* Name = "Volume Control";
19 virtual std::string GetName() const override { return Name; }
20
21 void Clear() override;
22 virtual void Copy(const SEMechanicalVentilatorVolumeControl& src, const SESubstanceManager& subMgr, bool /*preserveState*/ = false);
23 // Merges the mode parameters,and clears/copies the supplemental settings
24 virtual void MergeMode(const SEMechanicalVentilatorVolumeControl& src, const SESubstanceManager& subMgr, eMergeType mt);
25 virtual bool ToSettings(SEMechanicalVentilatorSettings& s, SESubstanceManager& subMgr, eMergeType mt) override;
26
27 bool IsValid() const override;
28 bool IsActive() const override;
29 void Deactivate() override;
30
31 virtual eMechanicalVentilator_VolumeControlMode GetMode() const;
32 virtual void SetMode(eMechanicalVentilator_VolumeControlMode c);
33
34 virtual bool HasFlow() const;
35 virtual SEScalarVolumePerTime& GetFlow();
36 virtual double GetFlow(const VolumePerTimeUnit& unit) const;
37
38 virtual bool HasFractionInspiredOxygen() const;
39 virtual SEScalar0To1& GetFractionInspiredOxygen();
40 virtual double GetFractionInspiredOxygen() const;
41
42 virtual bool HasInspirationPatientTriggerFlow() const;
43 virtual SEScalarVolumePerTime& GetInspirationPatientTriggerFlow();
44 virtual double GetInspirationPatientTriggerFlow(const VolumePerTimeUnit& unit) const;
45
46 virtual bool HasInspirationPatientTriggerPressure() const;
47 virtual SEScalarPressure& GetInspirationPatientTriggerPressure();
48 virtual double GetInspirationPatientTriggerPressure(const PressureUnit& unit) const;
49
50 virtual bool HasInspirationWaveform() const;
51 virtual eDriverWaveform GetInspirationWaveform() const;
52 virtual void SetInspirationWaveform(eDriverWaveform w);
53
54 virtual bool HasInspiratoryPeriod() const;
55 virtual SEScalarTime& GetInspiratoryPeriod();
56 virtual double GetInspiratoryPeriod(const TimeUnit& unit) const;
57
58 virtual bool HasPositiveEndExpiratoryPressure() const;
59 virtual SEScalarPressure& GetPositiveEndExpiratoryPressure();
60 virtual double GetPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
61
62 virtual bool HasRespirationRate() const;
63 virtual SEScalarFrequency& GetRespirationRate();
64 virtual double GetRespirationRate(const FrequencyUnit& unit) const;
65
66 virtual bool HasSlope() const;
67 virtual SEScalarTime& GetSlope();
68 virtual double GetSlope(const TimeUnit& unit) const;
69
70 virtual bool HasTidalVolume() const;
71 virtual SEScalarVolume& GetTidalVolume();
72 virtual double GetTidalVolume(const VolumeUnit& unit) const;
73
74
75 const SEScalar* GetScalar(const std::string& name) override;
76
77protected:
78
79 eMechanicalVentilator_VolumeControlMode m_Mode;
84 eDriverWaveform m_InspirationWaveform;
90};
Definition: SEScalarFrequency.h:8
Definition: Logger.h:71
Definition: PBEquipmentActions.h:41
Definition: SEScalarPressure.h:8
virtual const SEScalar * GetScalar(const std::string &name)=0
static SEAction * Copy(const SEAction &, const SESubstanceManager &)
Definition: SEAction.cpp:53
void Deactivate() override
Definition: SEEquipmentAction.h:19
Definition: SEMechanicalVentilatorMode.h:8
bool IsValid() const override
Definition: SEMechanicalVentilatorMode.cpp:30
virtual bool ToSettings(SEMechanicalVentilatorSettings &s, SESubstanceManager &subMgr, eMergeType mt)
Definition: SEMechanicalVentilatorMode.cpp:46
bool IsActive() const override
Definition: SEMechanicalVentilatorMode.cpp:39
void Clear() override
Definition: SEMechanicalVentilatorMode.cpp:21
Definition: SEMechanicalVentilatorSettings.h:14
Definition: SEMechanicalVentilatorVolumeControl.h:11
virtual std::string GetName() const override
Definition: SEMechanicalVentilatorVolumeControl.h:19
eMechanicalVentilator_VolumeControlMode m_Mode
Definition: SEMechanicalVentilatorVolumeControl.h:79
SEScalarTime * m_InspiratoryPeriod
Definition: SEMechanicalVentilatorVolumeControl.h:85
eDriverWaveform m_InspirationWaveform
Definition: SEMechanicalVentilatorVolumeControl.h:84
SEScalarVolumePerTime * m_InspirationPatientTriggerFlow
Definition: SEMechanicalVentilatorVolumeControl.h:82
SEScalarPressure * m_InspirationPatientTriggerPressure
Definition: SEMechanicalVentilatorVolumeControl.h:83
SEScalar0To1 * m_FractionInspiredOxygen
Definition: SEMechanicalVentilatorVolumeControl.h:81
SEScalarTime * m_Slope
Definition: SEMechanicalVentilatorVolumeControl.h:88
SEScalarVolume * m_TidalVolume
Definition: SEMechanicalVentilatorVolumeControl.h:89
SEScalarPressure * m_PositiveEndExpiratoryPressure
Definition: SEMechanicalVentilatorVolumeControl.h:86
SEScalarVolumePerTime * m_Flow
Definition: SEMechanicalVentilatorVolumeControl.h:80
SEScalarFrequency * m_RespirationRate
Definition: SEMechanicalVentilatorVolumeControl.h:87
Definition: SEScalar0To1.h:8
Definition: SEScalarFrequency.h:26
Definition: SEScalar.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarTime.h:28
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SESubstanceManager.h:10
Definition: SEScalarTime.h:8
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.