SEPatientActionCollection.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 #include <biogears/exports.h>
15 
16 #include <biogears/cdm/patient/SEPatient.h>
17 #include <biogears/cdm/patient/actions/SEAcuteRespiratoryDistress.h>
18 #include <biogears/cdm/patient/actions/SEAcuteStress.h>
19 #include <biogears/cdm/patient/actions/SEAirwayObstruction.h>
20 #include <biogears/cdm/patient/actions/SEApnea.h>
21 #include <biogears/cdm/patient/actions/SEAsthmaAttack.h>
22 #include <biogears/cdm/patient/actions/SEBrainInjury.h>
23 #include <biogears/cdm/patient/actions/SEBronchoconstriction.h>
24 #include <biogears/cdm/patient/actions/SEBurnWound.h>
25 #include <biogears/cdm/patient/actions/SECardiacArrest.h>
26 #include <biogears/cdm/patient/actions/SEChestCompressionForce.h>
27 #include <biogears/cdm/patient/actions/SEChestCompressionForceScale.h>
28 #include <biogears/cdm/patient/actions/SEChestOcclusiveDressing.h>
29 #include <biogears/cdm/patient/actions/SEConsciousRespiration.h>
30 #include <biogears/cdm/patient/actions/SEConsumeNutrients.h>
31 #include <biogears/cdm/patient/actions/SEExercise.h>
32 #include <biogears/cdm/patient/actions/SEHemorrhage.h>
33 #include <biogears/cdm/patient/actions/SEInfection.h>
34 #include <biogears/cdm/patient/actions/SEIntubation.h>
35 #include <biogears/cdm/patient/actions/SEMechanicalVentilation.h>
36 #include <biogears/cdm/patient/actions/SENeedleDecompression.h>
37 #include <biogears/cdm/patient/actions/SEOverride.h>
38 #include <biogears/cdm/patient/actions/SEPainStimulus.h>
39 #include <biogears/cdm/patient/actions/SEPatientAssessmentRequest.h>
40 #include <biogears/cdm/patient/actions/SEPericardialEffusion.h>
41 #include <biogears/cdm/patient/actions/SESleep.h>
42 #include <biogears/cdm/patient/actions/SESubstanceBolus.h>
43 #include <biogears/cdm/patient/actions/SESubstanceCompoundInfusion.h>
44 #include <biogears/cdm/patient/actions/SESubstanceInfusion.h>
45 #include <biogears/cdm/patient/actions/SESubstanceNasalDose.h>
46 #include <biogears/cdm/patient/actions/SESubstanceOralDose.h>
47 #include <biogears/cdm/patient/actions/SETensionPneumothorax.h>
48 #include <biogears/cdm/patient/actions/SETourniquet.h>
49 #include <biogears/cdm/patient/actions/SEUrinate.h>
50 #include <biogears/cdm/substance/SESubstanceManager.h>
51 #include <biogears/cdm/system/physiology/SEGastrointestinalSystem.h>
52 
53 namespace biogears {
54 class BIOGEARS_API SEPatientActionCollection : public Loggable {
55 public:
58 
59  void Clear();
60 
61  void Unload(std::vector<CDM::ActionData*>& to);
62 
63  bool ProcessAction(const SEPatientAction& action);
64  bool ProcessAction(const CDM::PatientActionData& action);
65 
66  bool HasAcuteRespiratoryDistress() const;
67  SEAcuteRespiratoryDistress* GetAcuteRespiratoryDistress() const;
68  void RemoveAcuteRespiratoryDistress();
69 
70  bool HasAcuteStress() const;
71  SEAcuteStress* GetAcuteStress() const;
72  void RemoveAcuteStress();
73 
74  bool HasAirwayObstruction() const;
75  SEAirwayObstruction* GetAirwayObstruction() const;
76  void RemoveAirwayObstruction();
77 
78  bool HasApnea() const;
79  SEApnea* GetApnea() const;
80  void RemoveApnea();
81 
82  bool HasAsthmaAttack() const;
83  SEAsthmaAttack* GetAsthmaAttack() const;
84  void RemoveAsthmaAttack();
85 
86  bool HasBrainInjury() const;
87  SEBrainInjury* GetBrainInjury() const;
88  void RemoveBrainInjury();
89 
90  bool HasBronchoconstriction() const;
91  SEBronchoconstriction* GetBronchoconstriction() const;
92  void RemoveBronchoconstriction();
93 
94  bool HasBurnWound() const;
95  SEBurnWound* GetBurnWound() const;
96  void RemoveBurnWound();
97 
98  bool HasCardiacArrest() const;
99  SECardiacArrest* GetCardiacArrest() const;
100  void RemoveCardiacArrest();
101 
102  bool HasChestCompression() const;
103  void RemoveChestCompression();
104  bool HasChestCompressionForce() const;
105  SEChestCompressionForce* GetChestCompressionForce() const;
106  bool HasChestCompressionForceScale() const;
107  SEChestCompressionForceScale* GetChestCompressionForceScale() const;
108 
109  bool HasChestOcclusiveDressing() const;
110  bool HasLeftChestOcclusiveDressing() const;
111  SEChestOcclusiveDressing* GetLeftChestOcclusiveDressing() const;
112  void RemoveLeftChestOcclusiveDressing();
113  bool HasRightChestOcclusiveDressing() const;
114  SEChestOcclusiveDressing* GetRightChestOcclusiveDressing() const;
115  void RemoveRightChestOcclusiveDressing();
116 
117  bool HasConsciousRespiration() const;
118  SEConsciousRespiration* GetConsciousRespiration() const;
119  void RemoveConsciousRespiration();
120 
121  bool HasConsumeNutrients() const;
122  SEConsumeNutrients* GetConsumeNutrients() const;
123  void RemoveConsumeNutrients();
124 
125  bool HasExercise() const;
126  SEExercise* GetExercise() const;
127  void RemoveExercise();
128 
129  bool HasHemorrhage() const;
130  const std::map<std::string, SEHemorrhage*>& GetHemorrhages() const;
131  void RemoveHemorrhage(const char* cmpt);
132  void RemoveHemorrhage(const std::string& cmpt);
133 
134  bool HasInfection() const;
135  SEInfection* GetInfection() const;
136  void RemoveInfection();
137 
138  bool HasIntubation() const;
139  SEIntubation* GetIntubation() const;
140  void RemoveIntubation();
141 
142  bool HasMechanicalVentilation() const;
143  SEMechanicalVentilation* GetMechanicalVentilation() const;
144  void RemoveMechanicalVentilation();
145 
146  bool HasNeedleDecompression() const;
147 
148  bool HasLeftNeedleDecompression() const;
149  SENeedleDecompression* GetLeftNeedleDecompression() const;
150  void RemoveLeftNeedleDecompression();
151 
152  bool HasRightNeedleDecompression() const;
153  SENeedleDecompression* GetRightNeedleDecompression() const;
154  void RemoveRightNeedleDecompression();
155 
156  bool HasPainStimulus() const;
157  const std::map<std::string, SEPainStimulus*>& GetPainStimuli() const;
158  void RemovePainStimulus(const char* loc);
159  void RemovePainStimulus(const std::string& loc);
160 
161  bool HasPericardialEffusion() const;
162  SEPericardialEffusion* GetPericardialEffusion() const;
163  void RemovePericardialEffusion();
164 
165  bool HasSleepState() const;
166  SESleep* GetSleepState() const;
167  void RemoveSleepState();
168 
169  bool HasTensionPneumothorax() const;
170 
171  bool HasLeftClosedTensionPneumothorax() const;
172  SETensionPneumothorax* GetLeftClosedTensionPneumothorax() const;
173  void RemoveLeftClosedTensionPneumothorax();
174 
175  bool HasLeftOpenTensionPneumothorax() const;
176  SETensionPneumothorax* GetLeftOpenTensionPneumothorax() const;
177  void RemoveLeftOpenTensionPneumothorax();
178 
179  bool HasRightClosedTensionPneumothorax() const;
180  SETensionPneumothorax* GetRightClosedTensionPneumothorax() const;
181  void RemoveRightClosedTensionPneumothorax();
182 
183  bool HasRightOpenTensionPneumothorax() const;
184  SETensionPneumothorax* GetRightOpenTensionPneumothorax() const;
185  void RemoveRightOpenTensionPneumothorax();
186 
187 
188  const std::map<const SESubstance*, SESubstanceBolus*>& GetSubstanceBoluses() const;
189  void RemoveSubstanceBolus(const SESubstance& sub);
190 
191  const std::map<const SESubstance*, SESubstanceInfusion*>& GetSubstanceInfusions() const;
192  void RemoveSubstanceInfusion(const SESubstance& sub);
193 
194  const std::map<const SESubstance*, SESubstanceNasalDose*>& GetSubstanceNasalDoses() const;
195  void RemoveSubstanceNasalDose(const SESubstance& sub);
196 
197  const std::map<const SESubstance*, SESubstanceOralDose*>& GetSubstanceOralDoses() const;
198  void RemoveSubstanceOralDose(const SESubstance& sub);
199 
200  const std::map<const SESubstanceCompound*, SESubstanceCompoundInfusion*>& GetSubstanceCompoundInfusions() const;
201  void RemoveSubstanceCompoundInfusion(const SESubstanceCompound& sub);
202 
203  bool HasTourniquet() const;
204  const std::map<std::string, SETourniquet*>& GetTourniquets() const;
205  void RemoveTourniquet(const char* cmpt);
206  void RemoveTourniquet(const std::string& cmpt);
207 
208  bool HasUrinate() const;
209  SEUrinate* GetUrinate() const;
210  void RemoveUrinate();
211 
212  bool HasOverride() const;
213  SEOverride* GetOverride();
214  void RemoveOverride();
215 
216 protected:
217  bool IsValid(const SEPatientAction& action);
218 
247 
248  std::map<std::string, SEHemorrhage*> m_Hemorrhages;
249  std::map<std::string, SETourniquet*> m_Tourniquets;
250  std::map<std::string, SEPainStimulus*> m_PainStimuli;
251  std::map<const SESubstance*, SESubstanceBolus*> m_SubstanceBolus;
252  std::map<const SESubstance*, SESubstanceInfusion*> m_SubstanceInfusions;
253  std::map<const SESubstance*, SESubstanceOralDose*> m_SubstanceOralDoses;
254  std::map<const SESubstance*, SESubstanceNasalDose*> m_SubstanceNasalDoses;
255  std::map<const SESubstanceCompound*, SESubstanceCompoundInfusion*> m_SubstanceCompoundInfusions;
256 
257  bool AdministerSubstance(const CDM::SubstanceAdministrationData& subAdmin);
258 
260  std::stringstream m_ss;
261 };
262 }
std::map< std::string, SEPainStimulus * > m_PainStimuli
Definition: SEPatientActionCollection.h:250
SEConsciousRespiration * m_ConsciousRespiration
Definition: SEPatientActionCollection.h:231
SEConsumeNutrients * m_ConsumeNutrients
Definition: SEPatientActionCollection.h:232
SEBrainInjury * m_BrainInjury
Definition: SEPatientActionCollection.h:224
SEChestOcclusiveDressing * m_RightChestOcclusiveDressing
Definition: SEPatientActionCollection.h:230
SENeedleDecompression * m_LeftNeedleDecompression
Definition: SEPatientActionCollection.h:237
std::map< const SESubstanceCompound *, SESubstanceCompoundInfusion * > m_SubstanceCompoundInfusions
Definition: SEPatientActionCollection.h:255
SEAirwayObstruction * m_AirwayObstruction
Definition: SEPatientActionCollection.h:221
Definition: SETensionPneumothorax.h:20
Definition: SEPatientAction.h:18
SEApnea * m_Apnea
Definition: SEPatientActionCollection.h:222
SEIntubation * m_Intubation
Definition: SEPatientActionCollection.h:235
Definition: SEAcuteRespiratoryDistress.h:20
SETensionPneumothorax * m_LeftClosedTensionPneumothorax
Definition: SEPatientActionCollection.h:241
SEMechanicalVentilation * m_MechanicalVentilation
Definition: SEPatientActionCollection.h:236
std::map< const SESubstance *, SESubstanceInfusion * > m_SubstanceInfusions
Definition: SEPatientActionCollection.h:252
Definition: SEPericardialEffusion.h:20
SEAsthmaAttack * m_AsthmaAttack
Definition: SEPatientActionCollection.h:223
Definition: SESubstanceCompound.h:26
std::map< const SESubstance *, SESubstanceNasalDose * > m_SubstanceNasalDoses
Definition: SEPatientActionCollection.h:254
Definition: SENeedleDecompression.h:18
Definition: SEChestOcclusiveDressing.h:18
Definition: SEAirwayObstruction.h:20
Definition: SEMechanicalVentilation.h:28
SETensionPneumothorax * m_LeftOpenTensionPneumothorax
Definition: SEPatientActionCollection.h:242
Definition: SEBronchoconstriction.h:20
Definition: Logger.h:27
SEUrinate * m_Urinate
Definition: SEPatientActionCollection.h:245
std::map< const SESubstance *, SESubstanceBolus * > m_SubstanceBolus
Definition: SEPatientActionCollection.h:251
SEAcuteRespiratoryDistress * m_AcuteRespiratoryDistress
Definition: SEPatientActionCollection.h:219
SEInfection * m_Infection
Definition: SEPatientActionCollection.h:234
std::map< const SESubstance *, SESubstanceOralDose * > m_SubstanceOralDoses
Definition: SEPatientActionCollection.h:253
Definition: SEChestCompressionForceScale.h:20
Definition: SEChestCompressionForce.h:20
SESleep * m_Sleep
Definition: SEPatientActionCollection.h:240
SEChestOcclusiveDressing * m_LeftChestOcclusiveDressing
Definition: SEPatientActionCollection.h:229
Class corresponding to the SubstanceAdministrationData schema type.
Definition: PatientActions.hxx:9749
SEOverride * m_OverrideAction
Definition: SEPatientActionCollection.h:246
SEChestCompression * m_ChestCompression
Definition: SEPatientActionCollection.h:228
SETensionPneumothorax * m_RightOpenTensionPneumothorax
Definition: SEPatientActionCollection.h:244
Definition: SEExercise.h:25
SEPericardialEffusion * m_PericardialEffusion
Definition: SEPatientActionCollection.h:239
SEBronchoconstriction * m_Bronchoconstriction
Definition: SEPatientActionCollection.h:225
SEExercise * m_Exercise
Definition: SEPatientActionCollection.h:233
Definition: SESubstance.h:49
Definition: SEIntubation.h:18
std::stringstream m_ss
Definition: SEPatientActionCollection.h:260
std::map< std::string, SETourniquet * > m_Tourniquets
Definition: SEPatientActionCollection.h:249
Definition: SEApnea.h:20
Definition: SEConsumeNutrients.h:21
Definition: SESleep.h:22
Definition: SEChestCompression.h:18
Definition: SEInfection.h:23
Definition: SEAsthmaAttack.h:20
Definition: SEUrinate.h:19
SECardiacArrest * m_CardiacArrest
Definition: SEPatientActionCollection.h:227
SEAcuteStress * m_AcuteStress
Definition: SEPatientActionCollection.h:220
Class corresponding to the PatientActionData schema type.
Definition: PatientActions.hxx:743
Definition: SEOverride.h:36
Definition: SECardiacArrest.h:18
Definition: SESubstanceManager.h:23
SENeedleDecompression * m_RightNeedleDecompression
Definition: SEPatientActionCollection.h:238
Definition: SEElectricalCircuit.h:18
Definition: SEBurnWound.h:24
SESubstanceManager & m_Substances
Definition: SEPatientActionCollection.h:259
SETensionPneumothorax * m_RightClosedTensionPneumothorax
Definition: SEPatientActionCollection.h:243
Definition: SEConsciousRespiration.h:24
Definition: SEAcuteStress.h:20
Definition: SEPatientActionCollection.h:54
SEBurnWound * m_BurnWound
Definition: SEPatientActionCollection.h:226
std::map< std::string, SEHemorrhage * > m_Hemorrhages
Definition: SEPatientActionCollection.h:248
Definition: SEBrainInjury.h:20