Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
SEMechanicalVentilatorContinuousPositiveAirwayPressure.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"
7 
9 {
10  friend class PBEquipmentAction;//friend the serialization class
11 public:
12 
15 
16  static constexpr char const* Name = "CPAP";
17  std::string GetName() const override { return Name; }
18 
19  void Clear() override;
20  virtual void Copy(const SEMechanicalVentilatorContinuousPositiveAirwayPressure& src, const SESubstanceManager& subMgr, bool /*preserveState*/ = false);
21  // Merges the mode parameters,and clears/copies the supplemental settings
22  virtual void MergeMode(const SEMechanicalVentilatorContinuousPositiveAirwayPressure& src, const SESubstanceManager& subMgr, eMergeType mt);
23  virtual bool ToSettings(SEMechanicalVentilatorSettings& s, SESubstanceManager& subMgr, eMergeType mt) override;
24 
25  bool IsValid() const override;
26  bool IsActive() const override;
27  void Deactivate() override;
28 
29  virtual bool HasDeltaPressureSupport() const;
30  virtual SEScalarPressure& GetDeltaPressureSupport();
31  virtual double GetDeltaPressureSupport(const PressureUnit& unit) const;
32 
33  virtual bool HasExpirationWaveform() const;
34  virtual eDriverWaveform GetExpirationWaveform() const;
35  virtual void SetExpirationWaveform(eDriverWaveform w);
36 
37  virtual bool HasExpirationCycleFlow() const;
38  virtual SEScalarVolumePerTime& GetExpirationCycleFlow();
39  virtual double GetExpirationCycleFlow(const VolumePerTimeUnit& unit) const;
40 
41  virtual bool HasExpirationCyclePressure() const;
42  virtual SEScalarPressure& GetExpirationCyclePressure();
43  virtual double GetExpirationCyclePressure(const PressureUnit& unit) const;
44 
45  virtual bool HasFractionInspiredOxygen() const;
46  virtual SEScalar0To1& GetFractionInspiredOxygen();
47  virtual double GetFractionInspiredOxygen() const;
48 
49  virtual bool HasInspirationWaveform() const;
50  virtual eDriverWaveform GetInspirationWaveform() const;
51  virtual void SetInspirationWaveform(eDriverWaveform w);
52 
53  virtual bool HasInspirationPatientTriggerFlow() const;
54  virtual SEScalarVolumePerTime& GetInspirationPatientTriggerFlow();
55  virtual double GetInspirationPatientTriggerFlow(const VolumePerTimeUnit& unit) const;
56 
57  virtual bool HasInspirationPatientTriggerPressure() const;
58  virtual SEScalarPressure& GetInspirationPatientTriggerPressure();
59  virtual double GetInspirationPatientTriggerPressure(const PressureUnit& unit) const;
60 
61  virtual bool HasPositiveEndExpiratoryPressure() const;
62  virtual SEScalarPressure& GetPositiveEndExpiratoryPressure();
63  virtual double GetPositiveEndExpiratoryPressure(const PressureUnit& unit) const;
64 
65  virtual bool HasSlope() const;
66  virtual SEScalarTime& GetSlope();
67  virtual double GetSlope(const TimeUnit& unit) const;
68 
69  const SEScalar* GetScalar(const std::string& name) override;
70 
71 protected:
72 
74  eDriverWaveform m_ExpirationWaveform;
78  eDriverWaveform m_InspirationWaveform;
83 };
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: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:9
SEScalar0To1 * m_FractionInspiredOxygen
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:77
eDriverWaveform m_ExpirationWaveform
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:74
SEScalarVolumePerTime * m_InspirationPatientTriggerFlow
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:79
SEScalarPressure * m_PositiveEndExpiratoryPressure
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:81
SEScalarPressure * m_DeltaPressureSupport
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:73
SEScalarTime * m_Slope
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:82
eDriverWaveform m_InspirationWaveform
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:78
SEScalarPressure * m_ExpirationCyclePressure
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:76
SEScalarPressure * m_InspirationPatientTriggerPressure
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:80
SEScalarVolumePerTime * m_ExpirationCycleFlow
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:75
std::string GetName() const override
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:17
Definition: SEMechanicalVentilator.h:10
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: SEMechanicalVentilatorSettings.h:14
Definition: SEScalar0To1.h:8
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.