Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
SEMechanicalVentilatorPressureControl.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 !!
7 enum class eMechanicalVentilator_PressureControlMode { AssistedControl = 0, ContinuousMandatoryVentilation };
8 extern CDM_DECL const std::string& eMechanicalVentilator_PressureControlMode_Name(eMechanicalVentilator_PressureControlMode m);
9 
11 {
12  friend class PBEquipmentAction;//friend the serialization class
13 public:
14 
17 
18  static constexpr char const* Name = "Pressure Control";
19  virtual std::string GetName() const override { return Name; }
20 
21  void Clear() override;
22  virtual void Copy(const SEMechanicalVentilatorPressureControl& src, const SESubstanceManager& subMgr, bool /*preserveState*/ = false);
23  // Merges the mode parameters,and clears/copies the supplemental settings
24  virtual void MergeMode(const SEMechanicalVentilatorPressureControl& 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_PressureControlMode GetMode() const;
32  virtual void SetMode(eMechanicalVentilator_PressureControlMode c);
33 
34  virtual bool HasFractionInspiredOxygen() const;
35  virtual SEScalar0To1& GetFractionInspiredOxygen();
36  virtual double GetFractionInspiredOxygen() const;
37 
38  virtual bool HasInspirationPatientTriggerFlow() const;
39  virtual SEScalarVolumePerTime& GetInspirationPatientTriggerFlow();
40  virtual double GetInspirationPatientTriggerFlow(const VolumePerTimeUnit& unit) const;
41 
42  virtual bool HasInspirationPatientTriggerPressure() const;
43  virtual SEScalarPressure& GetInspirationPatientTriggerPressure();
44  virtual double GetInspirationPatientTriggerPressure(const PressureUnit& unit) const;
45 
46  virtual bool HasInspirationWaveform() const;
47  virtual eDriverWaveform GetInspirationWaveform() const;
48  virtual void SetInspirationWaveform(eDriverWaveform w);
49 
50  virtual bool HasInspiratoryPeriod() const;
51  virtual SEScalarTime& GetInspiratoryPeriod();
52  virtual double GetInspiratoryPeriod(const TimeUnit& unit) const;
53 
54  virtual bool HasInspiratoryPressure() const;
55  virtual SEScalarPressure& GetInspiratoryPressure();
56  virtual double GetInspiratoryPressure(const PressureUnit& 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  const SEScalar* GetScalar(const std::string& name) override;
71 
72 protected:
73 
74  eMechanicalVentilator_PressureControlMode m_Mode;
78  eDriverWaveform m_InspirationWaveform;
84 };
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:33
virtual bool ToSettings(SEMechanicalVentilatorSettings &s, SESubstanceManager &subMgr, eMergeType mt)
Definition: SEMechanicalVentilatorMode.cpp:47
bool IsActive() const override
Definition: SEMechanicalVentilatorMode.cpp:40
void Clear() override
Definition: SEMechanicalVentilatorMode.cpp:23
Definition: SEMechanicalVentilatorPressureControl.h:11
SEScalarPressure * m_PositiveEndExpiratoryPressure
Definition: SEMechanicalVentilatorPressureControl.h:81
eDriverWaveform m_InspirationWaveform
Definition: SEMechanicalVentilatorPressureControl.h:78
eMechanicalVentilator_PressureControlMode m_Mode
Definition: SEMechanicalVentilatorPressureControl.h:74
SEScalarPressure * m_InspirationPatientTriggerPressure
Definition: SEMechanicalVentilatorPressureControl.h:77
SEScalarVolumePerTime * m_InspirationPatientTriggerFlow
Definition: SEMechanicalVentilatorPressureControl.h:76
virtual std::string GetName() const override
Definition: SEMechanicalVentilatorPressureControl.h:19
SEScalarTime * m_InspiratoryPeriod
Definition: SEMechanicalVentilatorPressureControl.h:79
SEScalarPressure * m_InspiratoryPressure
Definition: SEMechanicalVentilatorPressureControl.h:80
SEScalarTime * m_Slope
Definition: SEMechanicalVentilatorPressureControl.h:83
SEScalar0To1 * m_FractionInspiredOxygen
Definition: SEMechanicalVentilatorPressureControl.h:75
SEScalarFrequency * m_RespirationRate
Definition: SEMechanicalVentilatorPressureControl.h:82
Definition: SEMechanicalVentilatorSettings.h:14
Definition: SEScalar0To1.h:8
Definition: SEScalarFrequency.h:26
Definition: SEScalar.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarTime.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SESubstanceManager.h:9
Definition: SEScalarTime.h:8
Definition: SEScalarVolumePerTime.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.