What’s New in the Pulse Physiology Engine 4.4.0
×
SEExtracorporealMembraneOxygenationDeviceSettings.h
1/* Distributed under the Apache License, Version 2.0.
2 See accompanying NOTICE file for details.*/
3
4#pragma once
5#include "cdm/CommonDefs.h"
6#include "cdm/substance/SESubstanceManager.h"
7#include "cdm/properties/SEScalar.h"
8#include "cdm/properties/SEScalarVolumePerTime.h"
9#include "cdm/properties/SEScalarVolume.h"
10#include "cdm/properties/SEScalarPressureTimePerVolume.h"
11#include "cdm/properties/SEScalarVolumePerTimePressure.h"
12#include "cdm/properties/SEScalar0To1.h"
13#include "cdm/properties/SEScalarPressure.h"
14#include "cdm/engine/SEAction.h"
15
17
18// Keep enums in sync with appropriate schema/cdm/ExtracorporealMembraneOxygenationDevice.proto file !!
19enum class eExtracorporealMembraneOxygenationDevice_CannulationLocation { NullCannulationLocation=0,
20 InternalJugular,
21 RightFemoralVein,
22 LeftFemoralVein,
23 RightSubclavianVein,
24 LeftSubclavianVein,
25 RightFemoralArtery,
26 LeftFemoralArtery,
27 RightAxillaryArtery,
28 LeftAxillaryArtery,
29 CarotidArtery,
30 RightAtrium,
31 AscendingAorta,
32 SuperiorVenaCava,
33 InferiorVenaCava};
34extern CDM_DECL const std::string& eExtracorporealMembraneOxygenationDevice_CannulationLocation_Name(eExtracorporealMembraneOxygenationDevice_CannulationLocation m);
35
37{
38 friend class PBExtracorporealMembraneOxygenationDevice;//friend the serialization class
39public:
40
43
44 virtual void Clear();
45
46 bool SerializeToString(std::string& output, eSerializationFormat m) const;
47 bool SerializeToFile(const std::string& filename) const;
48 bool SerializeFromString(const std::string& src, eSerializationFormat m, const SESubstanceManager& subMgr);
49 bool SerializeFromFile(const std::string& filename, const SESubstanceManager& subMgr);
50
51 virtual void Merge(const SEExtracorporealMembraneOxygenationDeviceSettings& from);
52 virtual void ProcessConfiguration(SEExtracorporealMembraneOxygenationDeviceConfiguration& config, SESubstanceManager& subMgr);
53
54 virtual const SEScalar* GetScalar(const std::string& name);
55
56 virtual bool HasInletLocation() const;
57 virtual eExtracorporealMembraneOxygenationDevice_CannulationLocation GetInletLocation() const;
58 virtual void SetInletLocation(eExtracorporealMembraneOxygenationDevice_CannulationLocation c);
59
60 virtual bool HasOutletLocation() const;
61 virtual eExtracorporealMembraneOxygenationDevice_CannulationLocation GetOutletLocation() const;
62 virtual void SetOutletLocation(eExtracorporealMembraneOxygenationDevice_CannulationLocation c);
63
64 // Pump
65 virtual bool HasPumpFlow() const;
66 virtual SEScalarVolumePerTime& GetPumpFlow();
67 virtual double GetPumpFlow(const VolumePerTimeUnit& unit) const;
68
69 // Oxygenator
70 virtual bool HasCarbonDioxideRate() const;
71 virtual SEScalarVolumePerTime& GetCarbonDioxideRate();
72 virtual double GetCarbonDioxideRate(const VolumePerTimeUnit& unit) const;
73
74 virtual bool HasOxygenRate() const;
75 virtual SEScalarVolumePerTime& GetOxygenRate();
76 virtual double GetOxygenRate(const VolumePerTimeUnit& unit) const;
77
78 // Oxygenator Diffusing Parameters
79 virtual bool HasCarbonDioxideMembraneDiffusingCapacity() const;
80 virtual SEScalarVolumePerTimePressure& GetCarbonDioxideMembraneDiffusingCapacity();
81 virtual double GetCarbonDioxideMembraneDiffusingCapacity(const VolumePerTimePressureUnit& unit) const;
82
83 virtual bool HasFractionOfSweepGasOxygen() const;
84 virtual SEScalar0To1& GetFractionOfSweepGasOxygen();
85 virtual double GetFractionOfSweepGasOxygen() const;
86
87 virtual bool HasOxygenMembraneDiffusingCapacity() const;
88 virtual SEScalarVolumePerTimePressure& GetOxygenMembraneDiffusingCapacity();
89 virtual double GetOxygenMembraneDiffusingCapacity(const VolumePerTimePressureUnit& unit) const;
90
91 virtual bool HasSweepGasPressure() const;
92 virtual SEScalarPressure& GetSweepGasPressure();
93 virtual double GetSweepGasPressure(const PressureUnit& unit) const;
94
95 virtual bool HasSweepGasFlow() const;
96 virtual SEScalarVolumePerTime& GetSweepGasFlow();
97 virtual double GetSweepGasFlow(const VolumePerTimeUnit& unit) const;
98
99 // Fluid Administration
100 virtual bool HasBagCompound() const;
101 virtual void SetBagCompound(const SESubstanceCompound& c);
102 virtual const SESubstanceCompound* GetBagCompound() const;
103 virtual void RemoveBagCompound();
104
105 virtual bool HasBagVolume() const;
106 virtual SEScalarVolume& GetBagVolume();
107 virtual double GetBagVolume(const VolumeUnit& unit) const;
108
109 virtual bool HasInfuserRate() const;
110 virtual SEScalarVolumePerTime& GetInfuserRate();
111 virtual double GetInfuserRate(const VolumePerTimeUnit& unit) const;
112
113 // Volumes
114 virtual bool HasDrainageCannulaVolume() const;
115 virtual SEScalarVolume& GetDrainageCannulaVolume();
116 virtual double GetDrainageCannulaVolume(const VolumeUnit& unit) const;
117
118 virtual bool HasDrainageLimbVolume() const;
119 virtual SEScalarVolume& GetDrainageLimbVolume();
120 virtual double GetDrainageLimbVolume(const VolumeUnit& unit) const;
121
122 virtual bool HasInfuserVolume() const;
123 virtual SEScalarVolume& GetInfuserVolume();
124 virtual double GetInfuserVolume(const VolumeUnit& unit) const;
125
126 virtual bool HasInletProbeVolume() const;
127 virtual SEScalarVolume& GetInletProbeVolume();
128 virtual double GetInletProbeVolume(const VolumeUnit& unit) const;
129
130 virtual bool HasOutletProbeVolume() const;
131 virtual SEScalarVolume& GetOutletProbeVolume();
132 virtual double GetOutletProbeVolume(const VolumeUnit& unit) const;
133
134 virtual bool HasOxygenatorLiquidVolume() const;
135 virtual SEScalarVolume& GetOxygenatorLiquidVolume();
136 virtual double GetOxygenatorLiquidVolume(const VolumeUnit& unit) const;
137
138 virtual bool HasPumpVolume() const;
139 virtual SEScalarVolume& GetPumpVolume();
140 virtual double GetPumpVolume(const VolumeUnit& unit) const;
141
142 virtual bool HasReturnCannulaVolume() const;
143 virtual SEScalarVolume& GetReturnCannulaVolume();
144 virtual double GetReturnCannulaVolume(const VolumeUnit& unit) const;
145
146 virtual bool HasReturnLimbVolume() const;
147 virtual SEScalarVolume& GetReturnLimbVolume();
148 virtual double GetReturnLimbVolume(const VolumeUnit& unit) const;
149
150 // Gas Volumes
151 virtual bool HasOxygenatorGasVolume() const;
152 virtual SEScalarVolume& GetOxygenatorGasVolume();
153 virtual double GetOxygenatorGasVolume(const VolumeUnit& unit) const;
154
155 // Resistances
156 virtual bool HasDrainageCannulaResistance() const;
157 virtual SEScalarPressureTimePerVolume& GetDrainageCannulaResistance();
158 virtual double GetDrainageCannulaResistance(const PressureTimePerVolumeUnit& unit) const;
159
160 virtual bool HasDrainageLimbResistance() const;
161 virtual SEScalarPressureTimePerVolume& GetDrainageLimbResistance();
162 virtual double GetDrainageLimbResistance(const PressureTimePerVolumeUnit& unit) const;
163
164 virtual bool HasOxygenatorResistance() const;
165 virtual SEScalarPressureTimePerVolume& GetOxygenatorResistance();
166 virtual double GetOxygenatorResistance(const PressureTimePerVolumeUnit& unit) const;
167
168 virtual bool HasReturnCannulaResistance() const;
169 virtual SEScalarPressureTimePerVolume& GetReturnCannulaResistance();
170 virtual double GetReturnCannulaResistance(const PressureTimePerVolumeUnit& unit) const;
171
172 virtual bool HasReturnLimbResistance() const;
173 virtual SEScalarPressureTimePerVolume& GetReturnLimbResistance();
174 virtual double GetReturnLimbResistance(const PressureTimePerVolumeUnit& unit) const;
175
176protected:
177 eExtracorporealMembraneOxygenationDevice_CannulationLocation m_InletLocation;
178 eExtracorporealMembraneOxygenationDevice_CannulationLocation m_OutletLocation;
179
180 // Pump
182
183 // Oxygenator
186
187 // Oxygenator Diffusing Parameters
193
194 // Fluid Administration
198
199 // Volumes
209
210 // Gas Volumes
212
213 // Resistances
219};
Definition: Logger.h:23
Definition: Logger.h:71
Definition: PBExtracorporealMembraneOxygenationDevice.h:10
static bool SerializeFromString(const std::string &src, SEExtracorporealMembraneOxygenationDeviceSettings &dst, eSerializationFormat m, const SESubstanceManager &subMgr)
Definition: PBExtracorporealMembraneOxygenationDevice.cpp:283
static bool SerializeFromFile(const std::string &filename, SEExtracorporealMembraneOxygenationDeviceSettings &dst, const SESubstanceManager &subMgr)
Definition: PBExtracorporealMembraneOxygenationDevice.cpp:292
static bool SerializeToFile(const SEExtracorporealMembraneOxygenationDeviceSettings &src, const std::string &filename)
Definition: PBExtracorporealMembraneOxygenationDevice.cpp:276
static bool SerializeToString(const SEExtracorporealMembraneOxygenationDeviceSettings &src, std::string &output, eSerializationFormat m)
Definition: PBExtracorporealMembraneOxygenationDevice.cpp:269
Definition: SEScalarPressureTimePerVolume.h:8
Definition: SEScalarPressure.h:8
Definition: SEExtracorporealMembraneOxygenationDeviceConfiguration.h:9
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:37
SEScalarPressureTimePerVolume * m_OxygenatorResistance
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:216
SEScalar0To1 * m_FractionOfSweepGasOxygen
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:189
SEScalarPressureTimePerVolume * m_ReturnCannulaResistance
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:217
SEScalarPressureTimePerVolume * m_DrainageCannulaResistance
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:214
SEScalarVolume * m_PumpVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:206
SEScalarVolumePerTimePressure * m_OxygenMembraneDiffusingCapacity
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:190
SEScalarPressure * m_SweepGasPressure
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:191
SEScalarPressureTimePerVolume * m_DrainageLimbResistance
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:215
SEScalarVolume * m_OutletProbeVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:204
SEScalarVolumePerTimePressure * m_CarbonDioxideMembraneDiffusingCapacity
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:188
SEScalarVolume * m_ReturnLimbVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:208
SEScalarVolumePerTime * m_OxygenRate
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:185
SEScalarVolume * m_DrainageCannulaVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:200
SEScalarVolume * m_InletProbeVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:203
eExtracorporealMembraneOxygenationDevice_CannulationLocation m_OutletLocation
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:178
SEScalarVolumePerTime * m_CarbonDioxideRate
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:184
SEScalarVolumePerTime * m_SweepGasFlow
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:192
SEScalarVolume * m_DrainageLimbVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:201
SEScalarVolumePerTime * m_InfuserRate
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:197
eExtracorporealMembraneOxygenationDevice_CannulationLocation m_InletLocation
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:177
SEScalarPressureTimePerVolume * m_ReturnLimbResistance
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:218
SEScalarVolume * m_OxygenatorGasVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:211
SEScalarVolume * m_OxygenatorLiquidVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:205
const SESubstanceCompound * m_BagCompound
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:195
SEScalarVolume * m_ReturnCannulaVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:207
SEScalarVolume * m_BagVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:196
SEScalarVolume * m_InfuserVolume
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:202
SEScalarVolumePerTime * m_PumpFlow
Definition: SEExtracorporealMembraneOxygenationDeviceSettings.h:181
Definition: SEScalar0To1.h:8
Definition: SEScalar.h:19
Definition: SEScalarPressure.h:29
Definition: SEScalarPressureTimePerVolume.h:29
Definition: SEScalarVolume.h:28
Definition: SEScalarVolumePerTime.h:32
Definition: SEScalarVolumePerTimePressure.h:27
Definition: SESubstanceCompound.h:10
Definition: SESubstanceManager.h:10
Definition: SEScalarVolumePerTimePressure.h:8
Definition: SEScalarVolumePerTime.h:8
Definition: SEScalarVolume.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.