Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
SEEquipmentActionCollection.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 class SEAction;
22 class SEBagValveMask;
28 class SEECMO;
29 class SEECMOAction;
31 class SEInhaler;
32 class SEInhalerAction;
42 class SESubstanceManager;
43 CDM_BIND_DECL(ActionListData)
44 CDM_BIND_DECL(AnyEquipmentActionData)
45 
46 class CDM_DECL SEEquipmentActionCollection : public Loggable
47 {
48  friend class PBEngine;//friend the serialization class
49  friend class SEActionManager;
50 protected:
52 public:
54 
55  // STATE ACTION
56  bool HasAnesthesiaMachineConfiguration() const;
57  SEAnesthesiaMachineConfiguration& GetAnesthesiaMachineConfiguration();
58  const SEAnesthesiaMachineConfiguration* GetAnesthesiaMachineConfiguration() const;
59  void RemoveAnesthesiaMachineConfiguration();
60 
61  bool HasBagValveMaskConfiguration() const;
62  SEBagValveMaskConfiguration& GetBagValveMaskConfiguration();
63  const SEBagValveMaskConfiguration* GetBagValveMaskConfiguration() const;
64  void RemoveBagValveMaskConfiguration();
65 
66  bool HasECMOConfiguration() const;
67  SEECMOConfiguration& GetECMOConfiguration();
68  const SEECMOConfiguration* GetECMOConfiguration() const;
69  void RemoveECMOConfiguration();
70 
71  bool HasInhalerConfiguration() const;
72  SEInhalerConfiguration& GetInhalerConfiguration();
73  const SEInhalerConfiguration* GetInhalerConfiguration() const;
74  void RemoveInhalerConfiguration();
75 
76  bool HasMechanicalVentilatorConfiguration() const;
77  SEMechanicalVentilatorConfiguration& GetMechanicalVentilatorConfiguration();
78  const SEMechanicalVentilatorConfiguration* GetMechanicalVentilatorConfiguration() const;
79  void RemoveMechanicalVentilatorConfiguration();
80 
81  // INCIDENT ACTIONS
82 
83  bool HasAnesthesiaMachineOxygenTankPressureLoss() const;
84  SEAnesthesiaMachineOxygenTankPressureLoss& GetAnesthesiaMachineOxygenTankPressureLoss();
85  const SEAnesthesiaMachineOxygenTankPressureLoss* GetAnesthesiaMachineOxygenTankPressureLoss() const;
86  void RemoveAnesthesiaMachineOxygenTankPressureLoss();
87 
88  bool HasAnesthesiaMachineOxygenWallPortPressureLoss() const;
89  SEAnesthesiaMachineOxygenWallPortPressureLoss& GetAnesthesiaMachineOxygenWallPortPressureLoss();
90  const SEAnesthesiaMachineOxygenWallPortPressureLoss* GetAnesthesiaMachineOxygenWallPortPressureLoss() const;
91  void RemoveAnesthesiaMachineOxygenWallPortPressureLoss();
92 
93  // FAILURE ACTIONS
94 
95  bool HasAnesthesiaMachineExpiratoryValveLeak() const;
96  SEAnesthesiaMachineExpiratoryValveLeak& GetAnesthesiaMachineExpiratoryValveLeak();
97  const SEAnesthesiaMachineExpiratoryValveLeak* GetAnesthesiaMachineExpiratoryValveLeak() const;
98  void RemoveAnesthesiaMachineExpiratoryValveLeak();
99 
100  bool HasAnesthesiaMachineExpiratoryValveObstruction() const;
101  SEAnesthesiaMachineExpiratoryValveObstruction& GetAnesthesiaMachineExpiratoryValveObstruction();
102  const SEAnesthesiaMachineExpiratoryValveObstruction* GetAnesthesiaMachineExpiratoryValveObstruction() const;
103  void RemoveAnesthesiaMachineExpiratoryValveObstruction();
104 
105  bool HasAnesthesiaMachineInspiratoryValveLeak() const;
106  SEAnesthesiaMachineInspiratoryValveLeak& GetAnesthesiaMachineInspiratoryValveLeak();
107  const SEAnesthesiaMachineInspiratoryValveLeak* GetAnesthesiaMachineInspiratoryValveLeak() const;
108  void RemoveAnesthesiaMachineInspiratoryValveLeak();
109 
110  bool HasAnesthesiaMachineInspiratoryValveObstruction() const;
111  SEAnesthesiaMachineInspiratoryValveObstruction& GetAnesthesiaMachineInspiratoryValveObstruction();
112  const SEAnesthesiaMachineInspiratoryValveObstruction* GetAnesthesiaMachineInspiratoryValveObstruction() const;
113  void RemoveAnesthesiaMachineInspiratoryValveObstruction();
114 
115  bool HasAnesthesiaMachineMaskLeak() const;
116  SEAnesthesiaMachineMaskLeak& GetAnesthesiaMachineMaskLeak();
117  const SEAnesthesiaMachineMaskLeak* GetAnesthesiaMachineMaskLeak() const;
118  void RemoveAnesthesiaMachineMaskLeak();
119 
120  bool HasAnesthesiaMachineSodaLimeFailure() const;
121  SEAnesthesiaMachineSodaLimeFailure& GetAnesthesiaMachineSodaLimeFailure();
122  const SEAnesthesiaMachineSodaLimeFailure* GetAnesthesiaMachineSodaLimeFailure() const;
123  void RemoveAnesthesiaMachineSodaLimeFailure();
124 
125  bool HasAnesthesiaMachineTubeCuffLeak() const;
126  SEAnesthesiaMachineTubeCuffLeak& GetAnesthesiaMachineTubeCuffLeak();
127  const SEAnesthesiaMachineTubeCuffLeak* GetAnesthesiaMachineTubeCuffLeak() const;
128  void RemoveAnesthesiaMachineTubeCuffLeak();
129 
130  bool HasAnesthesiaMachineVaporizerFailure() const;
131  SEAnesthesiaMachineVaporizerFailure& GetAnesthesiaMachineVaporizerFailure();
132  const SEAnesthesiaMachineVaporizerFailure* GetAnesthesiaMachineVaporizerFailure() const;
133  void RemoveAnesthesiaMachineVaporizerFailure();
134 
135  bool HasAnesthesiaMachineVentilatorPressureLoss() const;
136  SEAnesthesiaMachineVentilatorPressureLoss& GetAnesthesiaMachineVentilatorPressureLoss();
137  const SEAnesthesiaMachineVentilatorPressureLoss* GetAnesthesiaMachineVentilatorPressureLoss() const;
138  void RemoveAnesthesiaMachineVentilatorPressureLoss();
139 
140  bool HasAnesthesiaMachineYPieceDisconnect() const;
141  SEAnesthesiaMachineYPieceDisconnect& GetAnesthesiaMachineYPieceDisconnect();
142  const SEAnesthesiaMachineYPieceDisconnect* GetAnesthesiaMachineYPieceDisconnect() const;
143  void RemoveAnesthesiaMachineYPieceDisconnect();
144 
145  // ACTIONS
146  bool HasActiveBagValveMaskAction() const;
147 
148  bool HasBagValveMaskAutomated() const;
149  SEBagValveMaskAutomated& GetBagValveMaskAutomated();
150  const SEBagValveMaskAutomated* GetBagValveMaskAutomated() const;
151  void RemoveBagValveMaskAutomated();
152 
153  bool HasBagValveMaskInstantaneous() const;
154  SEBagValveMaskInstantaneous& GetBagValveMaskInstantaneous();
155  const SEBagValveMaskInstantaneous* GetBagValveMaskInstantaneous() const;
156  void RemoveBagValveMaskInstantaneous();
157 
158  bool HasBagValveMaskSqueeze() const;
159  SEBagValveMaskSqueeze& GetBagValveMaskSqueeze();
160  const SEBagValveMaskSqueeze* GetBagValveMaskSqueeze() const;
161  void RemoveBagValveMaskSqueeze();
162 
163  bool HasMechanicalVentilatorHold() const;
164  SEMechanicalVentilatorHold& GetMechanicalVentilatorHold();
165  const SEMechanicalVentilatorHold* GetMechanicalVentilatorHold() const;
166  void RemoveMechanicalVentilatorHold();
167 
168  bool HasMechanicalVentilatorLeak() const;
169  SEMechanicalVentilatorLeak& GetMechanicalVentilatorLeak();
170  const SEMechanicalVentilatorLeak* GetMechanicalVentilatorLeak() const;
171  void RemoveMechanicalVentilatorLeak();
172 
173  bool HasMechanicalVentilatorContinuousPositiveAirwayPressure() const;
174  SEMechanicalVentilatorContinuousPositiveAirwayPressure& GetMechanicalVentilatorContinuousPositiveAirwayPressure();
175  const SEMechanicalVentilatorContinuousPositiveAirwayPressure* GetMechanicalVentilatorContinuousPositiveAirwayPressure() const;
176  void RemoveMechanicalVentilatorContinuousPositiveAirwayPressure();
177 
178  bool HasMechanicalVentilatorPressureControl() const;
179  SEMechanicalVentilatorPressureControl& GetMechanicalVentilatorPressureControl();
180  const SEMechanicalVentilatorPressureControl* GetMechanicalVentilatorPressureControl() const;
181  void RemoveMechanicalVentilatorPressureControl();
182 
183  bool HasMechanicalVentilatorVolumeControl() const;
184  SEMechanicalVentilatorVolumeControl& GetMechanicalVentilatorVolumeControl();
185  const SEMechanicalVentilatorVolumeControl* GetMechanicalVentilatorVolumeControl() const;
186  void RemoveMechanicalVentilatorVolumeControl();
187 
188  void RemoveMechanicalVentilatorActions();
189 
190  void GetAllActions(std::vector<const SEAction*>& v) const;
191  const SEScalar* GetScalar(const std::string& actionName, const std::string& cmptName, const std::string& substance, const std::string& property);
192 
193 protected:
194  void Clear();
195  bool ProcessAction(const SEEquipmentAction& action);
196 
198 
200  //Anesthesia Machine Incidents
203  //Anesthesia Machine Failures
214 
219 
221 
223 
230 };
Definition: Logger.h:23
Definition: PBEngine.h:31
Definition: SEAction.h:14
Definition: SEActionManager.h:12
bool ProcessAction(const SEAction &action)
Definition: SEActionManager.cpp:71
void Clear()
Definition: SEActionManager.cpp:30
const SEScalar * GetScalar(const std::string &actionName, const std::string &cmptName, const std::string &substance, const std::string &property)
Definition: SEActionManager.cpp:108
void GetAllActions(std::vector< const SEAction * > &v) const
Definition: SEActionManager.cpp:101
Definition: SEAnesthesiaMachineAction.h:7
Definition: SEAnesthesiaMachineConfiguration.h:9
Definition: SEAnesthesiaMachineExpiratoryValveLeak.h:7
Definition: SEAnesthesiaMachineExpiratoryValveObstruction.h:7
Definition: SEAnesthesiaMachine.h:24
Definition: SEAnesthesiaMachineInspiratoryValveLeak.h:7
Definition: SEAnesthesiaMachineInspiratoryValveObstruction.h:7
Definition: SEAnesthesiaMachineMaskLeak.h:7
Definition: SEAnesthesiaMachineOxygenTankPressureLoss.h:8
Definition: SEAnesthesiaMachineOxygenWallPortPressureLoss.h:8
Definition: SEAnesthesiaMachineSodaLimeFailure.h:7
Definition: SEAnesthesiaMachineTubeCuffLeak.h:7
Definition: SEAnesthesiaMachineVaporizerFailure.h:7
Definition: SEAnesthesiaMachineVentilatorPressureLoss.h:7
Definition: SEAnesthesiaMachineYPieceDisconnect.h:7
Definition: SEBagValveMaskAction.h:7
Definition: SEBagValveMaskAutomated.h:9
Definition: SEBagValveMaskConfiguration.h:9
Definition: SEBagValveMask.h:14
Definition: SEBagValveMaskInstantaneous.h:9
Definition: SEBagValveMaskSqueeze.h:9
Definition: SEECMOAction.h:7
Definition: SEECMOConfiguration.h:9
Definition: SEECMO.h:10
Definition: SEEquipmentActionCollection.h:47
SEAnesthesiaMachineExpiratoryValveLeak * m_AnesthesiaMachineExpiratoryValveLeak
Definition: SEEquipmentActionCollection.h:204
SEAnesthesiaMachineExpiratoryValveObstruction * m_AnesthesiaMachineExpiratoryValveObstruction
Definition: SEEquipmentActionCollection.h:205
SEMechanicalVentilatorLeak * m_MechanicalVentilatorLeak
Definition: SEEquipmentActionCollection.h:226
SEMechanicalVentilatorHold * m_MechanicalVentilatorHold
Definition: SEEquipmentActionCollection.h:225
SEBagValveMaskSqueeze * m_BagValveMaskSqueeze
Definition: SEEquipmentActionCollection.h:218
SEAnesthesiaMachineVentilatorPressureLoss * m_AnesthesiaMachineVentilatorPressureLoss
Definition: SEEquipmentActionCollection.h:212
SEMechanicalVentilatorPressureControl * m_MechanicalVentilatorPressureControl
Definition: SEEquipmentActionCollection.h:228
SEECMOConfiguration * m_ECMOConfiguration
Definition: SEEquipmentActionCollection.h:220
SEMechanicalVentilatorVolumeControl * m_MechanicalVentilatorVolumeControl
Definition: SEEquipmentActionCollection.h:229
SEMechanicalVentilatorConfiguration * m_MechanicalVentilatorConfiguration
Definition: SEEquipmentActionCollection.h:224
SEAnesthesiaMachineYPieceDisconnect * m_AnesthesiaMachineYPieceDisconnect
Definition: SEEquipmentActionCollection.h:213
SEAnesthesiaMachineMaskLeak * m_AnesthesiaMachineMaskLeak
Definition: SEEquipmentActionCollection.h:208
SEAnesthesiaMachineInspiratoryValveLeak * m_AnesthesiaMachineInspiratoryValveLeak
Definition: SEEquipmentActionCollection.h:206
SEAnesthesiaMachineSodaLimeFailure * m_AnesthesiaMachineSodaLimeFailure
Definition: SEEquipmentActionCollection.h:209
SEAnesthesiaMachineOxygenTankPressureLoss * m_AnesthesiaMachineOxygenTankPressureLoss
Definition: SEEquipmentActionCollection.h:201
SESubstanceManager & m_SubMgr
Definition: SEEquipmentActionCollection.h:197
SEAnesthesiaMachineOxygenWallPortPressureLoss * m_AnesthesiaMachineOxygenWallPortPressureLoss
Definition: SEEquipmentActionCollection.h:202
SEMechanicalVentilatorContinuousPositiveAirwayPressure * m_MechanicalVentilatorContinuousPositiveAirwayPressure
Definition: SEEquipmentActionCollection.h:227
SEAnesthesiaMachineVaporizerFailure * m_AnesthesiaMachineVaporizerFailure
Definition: SEEquipmentActionCollection.h:211
SEBagValveMaskConfiguration * m_BagValveMaskConfiguration
Definition: SEEquipmentActionCollection.h:215
SEInhalerConfiguration * m_InhalerConfiguration
Definition: SEEquipmentActionCollection.h:222
SEAnesthesiaMachineInspiratoryValveObstruction * m_AnesthesiaMachineInspiratoryValveObstruction
Definition: SEEquipmentActionCollection.h:207
SEBagValveMaskInstantaneous * m_BagValveMaskInstantaneous
Definition: SEEquipmentActionCollection.h:217
SEBagValveMaskAutomated * m_BagValveMaskAutomated
Definition: SEEquipmentActionCollection.h:216
SEAnesthesiaMachineTubeCuffLeak * m_AnesthesiaMachineTubeCuffLeak
Definition: SEEquipmentActionCollection.h:210
SEAnesthesiaMachineConfiguration * m_AnesthesiaMachineConfiguration
Definition: SEEquipmentActionCollection.h:199
Definition: SEEquipmentAction.h:7
Definition: SEInhalerAction.h:8
Definition: SEInhalerConfiguration.h:9
Definition: SEInhaler.h:12
Definition: SEMechanicalVentilatorAction.h:7
Definition: SEMechanicalVentilatorConfiguration.h:9
Definition: SEMechanicalVentilatorContinuousPositiveAirwayPressure.h:9
Definition: SEMechanicalVentilatorHold.h:9
Definition: SEMechanicalVentilator.h:10
Definition: SEMechanicalVentilatorLeak.h:9
Definition: SEMechanicalVentilatorPressureControl.h:11
Definition: SEMechanicalVentilatorVolumeControl.h:11
Definition: SEScalar.h:19
Definition: SESubstanceManager.h:9

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.