Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
SEPatientActionCollection.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 class SEAction;
6 class SEPatientAction;
8 class SEAcuteStress;
10 class SEAsthmaAttack;
11 class SEArrhythmia;
12 class SEBrainInjury;
15 class SEChestCompression;
20 class SEConsumeNutrients;
22 class SEDyspnea;
23 class SEExercise;
24 class SEHemorrhage;
25 enum class eHemorrhage_Compartment;
26 class SEHemothorax;
28 class SEIntubation;
38 class SESubstanceBolus;
43 class SETubeThoracostomy;
44 class SEUrinate;
46 class SESubstance;
48 class SESubstanceManager;
49 
50 class CDM_DECL SEPatientActionCollection : public Loggable
51 {
52  friend class PBEngine;//friend the serialization class
53  friend class SEActionManager;
54 protected:
56 public:
58 
59  bool HasAcuteRespiratoryDistressSyndromeExacerbation() const;
60  SEAcuteRespiratoryDistressSyndromeExacerbation& GetAcuteRespiratoryDistressSyndromeExacerbation();
61  const SEAcuteRespiratoryDistressSyndromeExacerbation* GetAcuteRespiratoryDistressSyndromeExacerbation() const;
62  void RemoveAcuteRespiratoryDistressSyndromeExacerbation();
63 
64  bool HasAcuteStress() const;
65  SEAcuteStress& GetAcuteStress();
66  const SEAcuteStress* GetAcuteStress() const;
67  void RemoveAcuteStress();
68 
69  bool HasAirwayObstruction() const;
70  SEAirwayObstruction& GetAirwayObstruction();
71  const SEAirwayObstruction* GetAirwayObstruction() const;
72  void RemoveAirwayObstruction();
73 
74  bool HasArrhythmia() const;
75  SEArrhythmia& GetArrhythmia();
76  const SEArrhythmia* GetArrhythmia() const;
77  void RemoveArrhythmia();
78 
79  bool HasAsthmaAttack() const;
80  SEAsthmaAttack& GetAsthmaAttack();
81  const SEAsthmaAttack* GetAsthmaAttack() const;
82  void RemoveAsthmaAttack();
83 
84  bool HasBrainInjury() const;
85  SEBrainInjury& GetBrainInjury();
86  const SEBrainInjury* GetBrainInjury() const;
87  void RemoveBrainInjury();
88 
89  bool HasBronchoconstriction() const;
90  SEBronchoconstriction& GetBronchoconstriction();
91  const SEBronchoconstriction* GetBronchoconstriction() const;
92  void RemoveBronchoconstriction();
93 
94  bool HasCardiovascularMechanicsModification() const;
95  SECardiovascularMechanicsModification& GetCardiovascularMechanicsModification();
96  const SECardiovascularMechanicsModification* GetCardiovascularMechanicsModification() const;
97  void RemoveCardiovascularMechanicsModification();
98 
99  bool HasActiveCPRAction() const;
100 
101  bool HasChestCompression() const;
102  SEChestCompression& GetChestCompression();
103  const SEChestCompression* GetChestCompression() const;
104  void RemoveChestCompression();
105 
106  bool HasChestCompressionAutomated() const;
107  SEChestCompressionAutomated& GetChestCompressionAutomated();
108  const SEChestCompressionAutomated* GetChestCompressionAutomated() const;
109  void RemoveChestCompressionAutomated();
110 
111  bool HasChestCompressionInstantaneous() const;
112  SEChestCompressionInstantaneous& GetChestCompressionInstantaneous();
113  const SEChestCompressionInstantaneous* GetChestCompressionInstantaneous() const;
114  void RemoveChestCompressionInstantaneous();
115 
116  bool HasChestOcclusiveDressing() const;
117  bool HasLeftChestOcclusiveDressing() const;
118  SEChestOcclusiveDressing& GetLeftChestOcclusiveDressing();
119  const SEChestOcclusiveDressing* GetLeftChestOcclusiveDressing() const;
120  void RemoveLeftChestOcclusiveDressing();
121  bool HasRightChestOcclusiveDressing() const;
122  SEChestOcclusiveDressing& GetRightChestOcclusiveDressing();
123  const SEChestOcclusiveDressing* GetRightChestOcclusiveDressing() const;
124  void RemoveRightChestOcclusiveDressing();
125 
126  bool HasChronicObstructivePulmonaryDiseaseExacerbation() const;
127  SEChronicObstructivePulmonaryDiseaseExacerbation& GetChronicObstructivePulmonaryDiseaseExacerbation();
128  const SEChronicObstructivePulmonaryDiseaseExacerbation* GetChronicObstructivePulmonaryDiseaseExacerbation() const;
129  void RemoveChronicObstructivePulmonaryDiseaseExacerbation();
130 
131  bool HasConsciousRespiration() const;
132  SEConsciousRespiration& GetConsciousRespiration();
133  const SEConsciousRespiration* GetConsciousRespiration() const;
134  void RemoveConsciousRespiration();
135 
136  bool HasConsumeNutrients() const;
137  SEConsumeNutrients& GetConsumeNutrients();
138  const SEConsumeNutrients* GetConsumeNutrients() const;
139  void RemoveConsumeNutrients();
140 
141  bool HasDyspnea() const;
142  SEDyspnea& GetDyspnea();
143  const SEDyspnea* GetDyspnea() const;
144  void RemoveDyspnea();
145 
146  bool HasExercise() const;
147  SEExercise& GetExercise();
148  const SEExercise* GetExercise() const;
149  void RemoveExercise();
150 
151  bool HasHemorrhage() const;
152  bool HasHemorrhage(eHemorrhage_Compartment cmpt) const;
153  SEHemorrhage& GetHemorrhage(eHemorrhage_Compartment cmpt);
154  const SEHemorrhage* GetHemorrhage(eHemorrhage_Compartment cmpt) const;
155  const std::vector<SEHemorrhage*>& GetHemorrhages();
156  const std::vector<const SEHemorrhage*> GetHemorrhages() const;
157  void RemoveHemorrhage(eHemorrhage_Compartment cmpt);
158 
159  bool HasHemothorax() const;
160 
161  bool HasLeftHemothorax() const;
162  SEHemothorax& GetLeftHemothorax();
163  const SEHemothorax* GetLeftHemothorax() const;
164  void RemoveLeftHemothorax();
165 
166  bool HasRightHemothorax() const;
167  SEHemothorax& GetRightHemothorax();
168  const SEHemothorax* GetRightHemothorax() const;
169  void RemoveRightHemothorax();
170 
171  bool HasImpairedAlveolarExchangeExacerbation() const;
172  SEImpairedAlveolarExchangeExacerbation& GetImpairedAlveolarExchangeExacerbation();
173  const SEImpairedAlveolarExchangeExacerbation* GetImpairedAlveolarExchangeExacerbation() const;
174  void RemoveImpairedAlveolarExchangeExacerbation();
175 
176  bool HasIntubation() const;
177  SEIntubation& GetIntubation();
178  const SEIntubation* GetIntubation() const;
179  void RemoveIntubation();
180 
181  bool HasMechanicalVentilation() const;
182  SEMechanicalVentilation& GetMechanicalVentilation();
183  const SEMechanicalVentilation* GetMechanicalVentilation() const;
184  void RemoveMechanicalVentilation();
185 
186  bool HasNeedleDecompression() const;
187  bool HasLeftNeedleDecompression() const;
188  SENeedleDecompression& GetLeftNeedleDecompression();
189  const SENeedleDecompression* GetLeftNeedleDecompression() const;
190  void RemoveLeftNeedleDecompression();
191 
192  bool HasRightNeedleDecompression() const;
193  SENeedleDecompression& GetRightNeedleDecompression();
194  const SENeedleDecompression* GetRightNeedleDecompression() const;
195  void RemoveRightNeedleDecompression();
196 
197  bool HasPericardialEffusion() const;
198  SEPericardialEffusion& GetPericardialEffusion();
199  const SEPericardialEffusion* GetPericardialEffusion() const;
200  void RemovePericardialEffusion();
201 
202  bool HasPneumoniaExacerbation() const;
203  SEPneumoniaExacerbation& GetPneumoniaExacerbation();
204  const SEPneumoniaExacerbation* GetPneumoniaExacerbation() const;
205  void RemovePneumoniaExacerbation();
206 
207  bool HasPrimaryBlastLungInjury() const;
208  SEPrimaryBlastLungInjury& GetPrimaryBlastLungInjury();
209  const SEPrimaryBlastLungInjury* GetPrimaryBlastLungInjury() const;
210  void RemovePrimaryBlastLungInjury();
211 
212  bool HasPulmonaryShuntExacerbation() const;
213  SEPulmonaryShuntExacerbation& GetPulmonaryShuntExacerbation();
214  const SEPulmonaryShuntExacerbation* GetPulmonaryShuntExacerbation() const;
215  void RemovePulmonaryShuntExacerbation();
216 
217  bool HasRespiratoryFatigue() const;
218  SERespiratoryFatigue& GetRespiratoryFatigue();
219  const SERespiratoryFatigue* GetRespiratoryFatigue() const;
220  void RemoveRespiratoryFatigue();
221 
222  bool HasRespiratoryMechanicsConfiguration() const;
223  SERespiratoryMechanicsConfiguration& GetRespiratoryMechanicsConfiguration();
224  const SERespiratoryMechanicsConfiguration* GetRespiratoryMechanicsConfiguration() const;
225  void RemoveRespiratoryMechanicsConfiguration();
226 
227  bool HasRespiratoryMechanicsModification() const;
228  SERespiratoryMechanicsModification& GetRespiratoryMechanicsModification();
229  const SERespiratoryMechanicsModification* GetRespiratoryMechanicsModification() const;
230  void RemoveRespiratoryMechanicsModification();
231 
232  bool HasSubstanceBolus() const;
233  bool HasSubstanceBolus(const SESubstance& sub) const;
234  SESubstanceBolus& GetSubstanceBolus(const SESubstance& sub);
235  const SESubstanceBolus* GetSubstanceBolus(const SESubstance& sub) const;
236  const std::vector<SESubstanceBolus*>& GetSubstanceBoluses();
237  const std::vector<const SESubstanceBolus*> GetSubstanceBoluses() const;
238  void RemoveSubstanceBolus(const SESubstance& sub);
239 
240  bool HasSubstanceInfusion() const;
241  bool HasSubstanceInfusion(const SESubstance& sub) const;
242  SESubstanceInfusion& GetSubstanceInfusion(const SESubstance& sub);
243  const SESubstanceInfusion* GetSubstanceInfusion(const SESubstance& sub) const;
244  const std::vector<SESubstanceInfusion*>& GetSubstanceInfusions();
245  const std::vector<const SESubstanceInfusion*> GetSubstanceInfusions() const;
246  void RemoveSubstanceInfusion(const SESubstance& sub);
247 
248  bool HasSubstanceCompoundInfusion() const;
249  bool HasSubstanceCompoundInfusion(const SESubstanceCompound& sub) const;
250  SESubstanceCompoundInfusion& GetSubstanceCompoundInfusion(const SESubstanceCompound& sub);
251  const SESubstanceCompoundInfusion* GetSubstanceCompoundInfusion(const SESubstanceCompound& sub) const;
252  const std::vector<SESubstanceCompoundInfusion*>& GetSubstanceCompoundInfusions();
253  const std::vector<const SESubstanceCompoundInfusion*> GetSubstanceCompoundInfusions() const;
254  void RemoveSubstanceCompoundInfusion(const SESubstanceCompound& sub);
255 
256  bool HasSupplementalOxygen() const;
257  SESupplementalOxygen& GetSupplementalOxygen();
258  const SESupplementalOxygen* GetSupplementalOxygen() const;
259  void RemoveSupplementalOxygen();
260 
261  bool HasTensionPneumothorax() const;
262 
263  bool HasLeftClosedTensionPneumothorax() const;
264  SETensionPneumothorax& GetLeftClosedTensionPneumothorax();
265  const SETensionPneumothorax* GetLeftClosedTensionPneumothorax() const;
266  void RemoveLeftClosedTensionPneumothorax();
267 
268  bool HasLeftOpenTensionPneumothorax() const;
269  SETensionPneumothorax& GetLeftOpenTensionPneumothorax();
270  const SETensionPneumothorax* GetLeftOpenTensionPneumothorax() const;
271  void RemoveLeftOpenTensionPneumothorax();
272 
273  bool HasRightClosedTensionPneumothorax() const;
274  SETensionPneumothorax& GetRightClosedTensionPneumothorax();
275  const SETensionPneumothorax* GetRightClosedTensionPneumothorax() const;
276  void RemoveRightClosedTensionPneumothorax();
277 
278  bool HasRightOpenTensionPneumothorax() const;
279  SETensionPneumothorax& GetRightOpenTensionPneumothorax();
280  const SETensionPneumothorax* GetRightOpenTensionPneumothorax() const;
281  void RemoveRightOpenTensionPneumothorax();
282 
283  bool HasTubeThoracostomy() const;
284 
285  bool HasLeftTubeThoracostomy() const;
286  SETubeThoracostomy& GetLeftTubeThoracostomy();
287  const SETubeThoracostomy* GetLeftTubeThoracostomy() const;
288  void RemoveLeftTubeThoracostomy();
289 
290  bool HasRightTubeThoracostomy() const;
291  SETubeThoracostomy& GetRightTubeThoracostomy();
292  const SETubeThoracostomy* GetRightTubeThoracostomy() const;
293  void RemoveRightTubeThoracostomy();
294 
295  bool HasUrinate() const;
296  SEUrinate& GetUrinate();
297  const SEUrinate* GetUrinate() const;
298  void RemoveUrinate();
299 
300  void GetAllActions(std::vector<const SEAction*>& v) const;
301  const SEScalar* GetScalar(const std::string& actionName, const std::string& cmptName, const std::string& substance, const std::string& property);
302 
303 protected:
304  void Clear();
305  bool ProcessAction(const SEPatientAction& action);
306 
308 
349 
350  std::vector<SEHemorrhage*> m_Hemorrhages;
351  std::vector<SESubstanceBolus*> m_SubstanceBoluses;
352  std::vector<SESubstanceInfusion*> m_SubstanceInfusions;
353  std::vector<SESubstanceCompoundInfusion*> m_SubstanceCompoundInfusions;
354 };
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: SEAcuteRespiratoryDistressSyndromeExacerbation.h:9
Definition: SEAcuteStress.h:8
Definition: SEAirwayObstruction.h:16
Definition: SEArrhythmia.h:9
Definition: SEAsthmaAttack.h:8
Definition: SEBrainInjury.h:12
Definition: SEBronchoconstriction.h:8
Definition: SECardiovascularMechanicsModification.h:9
Definition: SEChestCompressionAutomated.h:8
Definition: SEChestCompression.h:8
Definition: SEChestCompressionInstantaneous.h:8
Definition: SEChestOcclusiveDressing.h:8
Definition: SEChronicObstructivePulmonaryDiseaseExacerbation.h:9
Definition: SEConsciousRespiration.h:13
Definition: SEConsumeNutrients.h:10
Definition: SEDyspnea.h:8
Definition: SEExercise.h:8
Definition: SEHemorrhage.h:35
Definition: SEHemothorax.h:8
Definition: SEImpairedAlveolarExchangeExacerbation.h:7
Definition: SEIntubation.h:13
Definition: SEMechanicalVentilation.h:13
Definition: SENeedleDecompression.h:8
Definition: SEPatientActionCollection.h:51
SERespiratoryFatigue * m_RespiratoryFatigue
Definition: SEPatientActionCollection.h:338
SESubstanceManager & m_SubMgr
Definition: SEPatientActionCollection.h:307
SETubeThoracostomy * m_RightTubeThoracostomy
Definition: SEPatientActionCollection.h:347
SEMechanicalVentilation * m_MechanicalVentilation
Definition: SEPatientActionCollection.h:331
SEPulmonaryShuntExacerbation * m_PulmonaryShuntExacerbation
Definition: SEPatientActionCollection.h:337
SEArrhythmia * m_Arrhythmia
Definition: SEPatientActionCollection.h:312
SEChestCompressionAutomated * m_ChestCompressionAutomated
Definition: SEPatientActionCollection.h:318
std::vector< SESubstanceInfusion * > m_SubstanceInfusions
Definition: SEPatientActionCollection.h:352
SEConsciousRespiration * m_ConsciousRespiration
Definition: SEPatientActionCollection.h:322
SEHemothorax * m_LeftHemothorax
Definition: SEPatientActionCollection.h:327
SENeedleDecompression * m_LeftNeedleDecompression
Definition: SEPatientActionCollection.h:332
SETensionPneumothorax * m_RightOpenTensionPneumothorax
Definition: SEPatientActionCollection.h:345
SEChestOcclusiveDressing * m_LeftChestOcclusiveDressing
Definition: SEPatientActionCollection.h:320
SEImpairedAlveolarExchangeExacerbation * m_ImpairedAlveolarExchangeExacerbation
Definition: SEPatientActionCollection.h:330
SERespiratoryMechanicsModification * m_RespiratoryMechanicsModification
Definition: SEPatientActionCollection.h:340
SENeedleDecompression * m_RightNeedleDecompression
Definition: SEPatientActionCollection.h:333
SECardiovascularMechanicsModification * m_CardiovascularMechanicsModification
Definition: SEPatientActionCollection.h:316
SEPericardialEffusion * m_PericardialEffusion
Definition: SEPatientActionCollection.h:334
SESupplementalOxygen * m_SupplementalOxygen
Definition: SEPatientActionCollection.h:341
SEPneumoniaExacerbation * m_PneumoniaExacerbation
Definition: SEPatientActionCollection.h:335
SEChestCompressionInstantaneous * m_ChestCompressionInstantaneous
Definition: SEPatientActionCollection.h:319
SEAcuteRespiratoryDistressSyndromeExacerbation * m_ARDSExacerbation
Definition: SEPatientActionCollection.h:309
SEHemothorax * m_RightHemothorax
Definition: SEPatientActionCollection.h:328
SEExercise * m_Exercise
Definition: SEPatientActionCollection.h:326
SEDyspnea * m_Dyspnea
Definition: SEPatientActionCollection.h:325
SEAsthmaAttack * m_AsthmaAttack
Definition: SEPatientActionCollection.h:313
SEPrimaryBlastLungInjury * m_PrimaryBlastLungInjury
Definition: SEPatientActionCollection.h:336
SEBrainInjury * m_BrainInjury
Definition: SEPatientActionCollection.h:314
SETensionPneumothorax * m_LeftClosedTensionPneumothorax
Definition: SEPatientActionCollection.h:342
SEChronicObstructivePulmonaryDiseaseExacerbation * m_COPDExacerbation
Definition: SEPatientActionCollection.h:324
SEUrinate * m_Urinate
Definition: SEPatientActionCollection.h:348
SEAirwayObstruction * m_AirwayObstruction
Definition: SEPatientActionCollection.h:311
SEIntubation * m_Intubation
Definition: SEPatientActionCollection.h:329
std::vector< SEHemorrhage * > m_Hemorrhages
Definition: SEPatientActionCollection.h:350
SETubeThoracostomy * m_LeftTubeThoracostomy
Definition: SEPatientActionCollection.h:346
SETensionPneumothorax * m_LeftOpenTensionPneumothorax
Definition: SEPatientActionCollection.h:343
SEChestOcclusiveDressing * m_RightChestOcclusiveDressing
Definition: SEPatientActionCollection.h:321
SETensionPneumothorax * m_RightClosedTensionPneumothorax
Definition: SEPatientActionCollection.h:344
SEAcuteStress * m_AcuteStress
Definition: SEPatientActionCollection.h:310
SEBronchoconstriction * m_Bronchoconstriction
Definition: SEPatientActionCollection.h:315
SERespiratoryMechanicsConfiguration * m_RespiratoryMechanicsConfiguration
Definition: SEPatientActionCollection.h:339
SEChestCompression * m_ChestCompression
Definition: SEPatientActionCollection.h:317
std::vector< SESubstanceCompoundInfusion * > m_SubstanceCompoundInfusions
Definition: SEPatientActionCollection.h:353
SEConsumeNutrients * m_ConsumeNutrients
Definition: SEPatientActionCollection.h:323
std::vector< SESubstanceBolus * > m_SubstanceBoluses
Definition: SEPatientActionCollection.h:351
Definition: SEPatientAction.h:8
Definition: SEPatientAssessmentRequest.h:9
Definition: SEPericardialEffusion.h:8
Definition: SEPneumoniaExacerbation.h:9
Definition: SEPrimaryBlastLungInjury.h:9
Definition: SEPulmonaryShuntExacerbation.h:8
Definition: SERespiratoryFatigue.h:8
Definition: SERespiratoryMechanicsConfiguration.h:9
Definition: SERespiratoryMechanicsModification.h:9
Definition: SEScalar.h:19
Definition: SESubstanceBolus.h:9
Definition: SESubstanceCompound.h:10
Definition: SESubstanceCompoundInfusion.h:9
Definition: SESubstance.h:15
Definition: SESubstanceInfusion.h:9
Definition: SESubstanceManager.h:9
Definition: SESupplementalOxygen.h:13
Definition: SETensionPneumothorax.h:8
Definition: SETubeThoracostomy.h:8
Definition: SEUrinate.h:8

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.