SEOverride.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/cdm/patient/actions/SEPatientAction.h>
15 
16 #include <biogears/schema/cdm/PatientActions.hxx>
17 #include <biogears/cdm/properties/SEScalarPressure.h>
18 #include <biogears/cdm/properties/SEScalarMass.h>
19 #include <biogears/cdm/properties/SEScalarTemperature.h>
20 #include <biogears/cdm/properties/SEScalarFrequency.h>
21 #include <biogears/cdm/properties/SEScalarPower.h>
22 #include <biogears/cdm/properties/SEScalarVolumePerTime.h>
23 #include <biogears/cdm/properties/SEScalarVolume.h>
24 #include <biogears/cdm/properties/SEScalarAmountPerTime.h>
25 #include <biogears/cdm/properties/SEScalarMassPerTime.h>
26 #include <biogears/cdm/properties/SEScalarFlowCompliance.h>
27 #include <biogears/cdm/properties/SEScalarFlowResistance.h>
28 #include <biogears/cdm/properties/SEScalarOsmolality.h>
29 #include <biogears/cdm/properties/SEScalarMassPerVolume.h>
30 #include <biogears/cdm/properties/SEScalarAmountPerVolume.h>
31 
32 class Serializer;
33 
34 namespace biogears {
35 
36 class BIOGEARS_API SEOverride : public SEPatientAction {
37 public:
38  SEOverride();
39  virtual ~SEOverride();
40 
41  static constexpr const char* TypeTag() { return "SEOverride"; };
42  const char* classname() const override { return TypeTag(); }
43 
44  virtual void Clear() override; //clear memory
45 
46  virtual bool IsValid() const override;
47  virtual bool IsActive() const override;
48 
49  virtual bool Load(const CDM::OverrideData& in);
50  virtual CDM::OverrideData* Unload() const override;
51 
52 protected:
53  virtual void Unload(CDM::OverrideData& data) const;
54 
55 public:
56  CDM::enumOnOff::value GetOverrideState() const;
57  void SetOverrideState(CDM::enumOnOff::value state);
58  bool HasOverrideState() const;
59  void InvalidateOverrideState();
60  CDM::enumOnOff::value GetOverrideConformance() const;
61  void SetOverrideConformance(CDM::enumOnOff::value valid);
62  bool HasOverrideConformance() const;
63  void InvalidateOverrideConformance();
64 
65  //Blood Chemistry
66  bool HasArterialPHOverride() const;
67  SEScalar& GetArterialPHOverride();
68  double GetArterialPHOverride() const;
69  bool HasVenousPHOverride() const;
70  SEScalar& GetVenousPHOverride();
71  double GetVenousPHOverride() const;
72  bool HasCO2SaturationOverride() const;
73  SEScalarFraction& GetCO2SaturationOverride();
74  double GetCO2SaturationOverride() const;
75  bool HasCOSaturationOverride() const;
76  SEScalarFraction& GetCOSaturationOverride();
77  double GetCOSaturationOverride() const;
78  bool HasO2SaturationOverride() const;
79  SEScalarFraction& GetO2SaturationOverride();
80  double GetO2SaturationOverride() const;
81  bool HasPhosphateOverride() const;
82  SEScalarAmountPerVolume& GetPhosphateOverride();
83  double GetPhosphateOverride(const AmountPerVolumeUnit& unit) const;
84  bool HasWBCCountOverride() const;
85  SEScalarAmountPerVolume& GetWBCCountOverride();
86  double GetWBCCountOverride(const AmountPerVolumeUnit& unit) const;
87  bool HasTotalBilirubinOverride() const;
88  SEScalarMassPerVolume& GetTotalBilirubinOverride();
89  double GetTotalBilirubinOverride(const MassPerVolumeUnit& unit) const;
90  bool HasCalciumConcentrationOverride() const;
91  SEScalarMassPerVolume& GetCalciumConcentrationOverride();
92  double GetCalciumConcentrationOverride(const MassPerVolumeUnit& unit) const;
93  bool HasGlucoseConcentrationOverride() const;
94  SEScalarMassPerVolume& GetGlucoseConcentrationOverride();
95  double GetGlucoseConcentrationOverride(const MassPerVolumeUnit& unit) const;
96  bool HasLactateConcentrationOverride() const;
97  SEScalarMassPerVolume& GetLactateConcentrationOverride();
98  double GetLactateConcentrationOverride(const MassPerVolumeUnit& unit) const;
99  bool HasPotassiumConcentrationOverride() const;
100  SEScalarMassPerVolume& GetPotassiumConcentrationOverride();
101  double GetPotassiumConcentrationOverride(const MassPerVolumeUnit& unit) const;
102  bool HasSodiumConcentrationOverride() const;
103  SEScalarMassPerVolume& GetSodiumConcentrationOverride();
104  double GetSodiumConcentrationOverride(const MassPerVolumeUnit& unit) const;
105 
106  bool HasBloodChemistryOverride() const;
107 
108  //Cardiovascular
109  bool HasBloodVolumeOverride() const;
110  SEScalarVolume& GetBloodVolumeOverride();
111  double GetBloodVolumeOverride(const VolumeUnit& unit) const;
112  bool HasCardiacOutputOverride() const;
113  SEScalarVolumePerTime& GetCardiacOutputOverride();
114  double GetCardiacOutputOverride(const VolumePerTimeUnit& unit) const;
115  bool HasDiastolicArterialPressureOverride() const;
116  SEScalarPressure& GetDiastolicArterialPressureOverride();
117  double GetDiastolicArterialPressureOverride(const PressureUnit& unit) const;
118  bool HasMAPOverride() const;
119  SEScalarPressure& GetMAPOverride();
120  double GetMAPOverride(const PressureUnit& unit) const;
121  bool HasHeartRateOverride() const;
122  SEScalarFrequency& GetHeartRateOverride();
123  double GetHeartRateOverride(const FrequencyUnit& unit) const;
124  bool HasHeartStrokeVolumeOverride() const;
125  SEScalarVolume& GetHeartStrokeVolumeOverride();
126  double GetHeartStrokeVolumeOverride(const VolumeUnit& unit) const;
127  bool HasSystolicArterialPressureOverride() const;
128  SEScalarPressure& GetSystolicArterialPressureOverride();
129  double GetSystolicArterialPressureOverride(const PressureUnit& unit) const;
130  bool HasCardiovascularOverride() const;
131 
132  //Endocrine
133  bool HasInsulinSynthesisRateOverride() const;
134  SEScalarAmountPerTime& GetInsulinSynthesisRateOverride();
135  double GetInsulinSynthesisRateOverride(const AmountPerTimeUnit& unit) const;
136  bool HasGlucagonSynthesisRateOverride() const;
137  SEScalarAmountPerTime& GetGlucagonSynthesisRateOverride();
138  double GetGlucagonSynthesisRateOverride(const AmountPerTimeUnit& unit) const;
139  bool HasEndocrineOverride() const;
140 
141  //Energy
142  bool HasAchievedExerciseLevelOverride() const;
143  SEScalarFraction& GetAchievedExerciseLevelOverride();
144  double GetAchievedExerciseLevelOverride() const;
145  bool HasCoreTemperatureOverride() const;
146  SEScalarTemperature& GetCoreTemperatureOverride();
147  double GetCoreTemperatureOverride(const TemperatureUnit& unit) const;
148  bool HasCreatinineProductionRateOverride() const;
149  SEScalarAmountPerTime& GetCreatinineProductionRateOverride();
150  double GetCreatinineProductionRateOverride(const AmountPerTimeUnit& unit) const;
151  bool HasExerciseMeanArterialPressureDeltaOverride() const;
152  SEScalarPressure& GetExerciseMeanArterialPressureDeltaOverride();
153  double GetExerciseMeanArterialPressureDeltaOverride(const PressureUnit& unit) const;
154  bool HasFatigueLevelOverride() const;
155  SEScalarFraction& GetFatigueLevelOverride();
156  double GetFatigueLevelOverride() const;
157  bool HasLactateProductionRateOverride() const;
158  SEScalarAmountPerTime& GetLactateProductionRateOverride();
159  double GetLactateProductionRateOverride(const AmountPerTimeUnit& unit) const;
160  bool HasSkinTemperatureOverride() const;
161  SEScalarTemperature& GetSkinTemperatureOverride();
162  double GetSkinTemperatureOverride(const TemperatureUnit& unit) const;
163  bool HasSweatRateOverride() const;
164  SEScalarMassPerTime& GetSweatRateOverride();
165  double GetSweatRateOverride(const MassPerTimeUnit& unit) const;
166  bool HasTotalMetabolicOverride() const;
167  SEScalarPower& GetTotalMetabolicOverride();
168  double GetTotalMetabolicOverride(const PowerUnit& unit) const;
169  bool HasTotalWorkRateLevelOverride() const;
170  SEScalarFraction& GetTotalWorkRateLevelOverride();
171  double GetTotalWorkRateLevelOverride() const;
172  bool HasSodiumLostToSweatOverride() const;
173  SEScalarMass& GetSodiumLostToSweatOverride();
174  double GetSodiumLostToSweatOverride(const MassUnit& unit) const;
175  bool HasPotassiumLostToSweatOverride() const;
176  SEScalarMass& GetPotassiumLostToSweatOverride();
177  double GetPotassiumLostToSweatOverride(const MassUnit& unit) const;
178  bool HasChlorideLostToSweatOverride() const;
179  SEScalarMass& GetChlorideLostToSweatOverride();
180  double GetChlorideLostToSweatOverride(const MassUnit& unit) const;
181 
182  bool HasEnergyOverride() const;
183 
184  //Renal
185  bool HasLeftAfferentArterioleResistanceOverride() const;
186  SEScalarFlowResistance& GetLeftAfferentArterioleResistanceOverride();
187  double GetLeftAfferentArterioleResistanceOverride(const FlowResistanceUnit& unit) const;
188  bool HasLeftGlomerularFiltrationRateOverride() const;
189  SEScalarVolumePerTime& GetLeftGlomerularFiltrationRateOverride();
190  double GetLeftGlomerularFiltrationRateOverride(const VolumePerTimeUnit& unit) const;
191  bool HasLeftReaborptionRateOverride() const;
192  SEScalarVolumePerTime& GetLeftReaborptionRateOverride();
193  double GetLeftReaborptionRateOverride(const VolumePerTimeUnit& unit) const;
194  bool HasRenalBloodFlowOverride() const;
195  SEScalarVolumePerTime& GetRenalBloodFlowOverride();
196  double GetRenalBloodFlowOverride(const VolumePerTimeUnit& unit) const;
197  bool HasRenalPlasmaFlowOverride() const;
198  SEScalarVolumePerTime& GetRenalPlasmaFlowOverride();
199  double GetRenalPlasmaFlowOverride(const VolumePerTimeUnit& unit) const;
200  bool HasRightAfferentArterioleResistanceOverride() const;
201  SEScalarFlowResistance& GetRightAfferentArterioleResistanceOverride();
202  double GetRightAfferentArterioleResistanceOverride(const FlowResistanceUnit& unit) const;
203  bool HasRightGlomerularFiltrationRateOverride() const;
204  SEScalarVolumePerTime& GetRightGlomerularFiltrationRateOverride();
205  double GetRightGlomerularFiltrationRateOverride(const VolumePerTimeUnit& unit) const;
206  bool HasRightReaborptionRateOverride() const;
207  SEScalarVolumePerTime& GetRightReaborptionRateOverride();
208  double GetRightReaborptionRateOverride(const VolumePerTimeUnit& unit) const;
209  bool HasUrinationRateOverride() const;
210  SEScalarVolumePerTime& GetUrinationRateOverride();
211  double GetUrinationRateOverride(const VolumePerTimeUnit& unit) const;
212  bool HasUrineProductionRateOverride() const;
213  SEScalarVolumePerTime& GetUrineProductionRateOverride();
214  double GetUrineProductionRateOverride(const VolumePerTimeUnit& unit) const;
215  bool HasUrineOsmolalityOverride() const;
216  SEScalarOsmolality& GetUrineOsmolalityOverride();
217  double GetUrineOsmolalityOverride(const OsmolalityUnit& unit) const;
218  bool HasUrineVolumeOverride() const;
219  SEScalarVolume& GetUrineVolumeOverride();
220  double GetUrineVolumeOverride(const VolumeUnit& unit) const;
221  bool HasUrineUreaNitrogenConcentrationOverride() const;
222  SEScalarMassPerVolume& GetUrineUreaNitrogenConcentrationOverride();
223  double GetUrineUreaNitrogenConcentrationOverride(const MassPerVolumeUnit& unit) const;
224 
225  bool HasRenalOverride() const;
226 
227  //Respiratory
228  bool HasExpiratoryFlowOverride() const;
229  SEScalarVolumePerTime& GetExpiratoryFlowOverride();
230  double GetExpiratoryFlowOverride(const VolumePerTimeUnit& unit) const;
231  bool HasInspiratoryFlowOverride() const;
232  SEScalarVolumePerTime& GetInspiratoryFlowOverride();
233  double GetInspiratoryFlowOverride(const VolumePerTimeUnit& unit) const;
234  bool HasPulmonaryComplianceOverride() const;
235  SEScalarFlowCompliance& GetPulmonaryComplianceOverride();
236  double GetPulmonaryComplianceOverride(const FlowComplianceUnit& unit) const;
237  bool HasPulmonaryResistanceOverride() const;
238  SEScalarFlowResistance& GetPulmonaryResistanceOverride();
239  double GetPulmonaryResistanceOverride(const FlowResistanceUnit& unit) const;
240  bool HasRespirationRateOverride() const;
241  SEScalarFrequency& GetRespirationRateOverride();
242  double GetRespirationRateOverride(const FrequencyUnit& unit) const;
243  bool HasTidalVolumeOverride() const;
244  SEScalarVolume& GetTidalVolumeOverride();
245  double GetTidalVolumeOverride(const VolumeUnit& unit) const;
246  bool HasTargetPulmonaryVentilationOverride() const;
247  SEScalarVolumePerTime& GetTargetPulmonaryVentilationOverride();
248  double GetTargetPulmonaryVentilationOverride(const VolumePerTimeUnit& unit) const;
249  bool HasTotalAlveolarVentilationOverride() const;
250  SEScalarVolumePerTime& GetTotalAlveolarVentilationOverride();
251  double GetTotalAlveolarVentilationOverride(const VolumePerTimeUnit& unit) const;
252  bool HasTotalLungVolumeOverride() const;
253  SEScalarVolume& GetTotalLungVolumeOverride();
254  double GetTotalLungVolumeOverride(const VolumeUnit& unit) const;
255  bool HasTotalPulmonaryVentilationOverride() const;
256  SEScalarVolumePerTime& GetTotalPulmonaryVentilationOverride();
257  double GetTotalPulmonaryVentilationOverride(const VolumePerTimeUnit& unit) const;
258 
259  bool HasRespiratoryOverride() const;
260 
261  //Tissue
262  bool HasExtravascularFluidVolumeOverride() const;
263  SEScalarVolume& GetExtravascularFluidVolumeOverride();
264  double GetExtravascularFluidVolumeOverride(const VolumeUnit& unit) const;
265  bool HasIntracellularFluidVolumeOverride() const;
266  SEScalarVolume& GetIntracellularFluidVolumeOverride();
267  double GetIntracellularFluidVolumeOverride(const VolumeUnit& unit) const;
268  bool HasLiverGlycogenOverride() const;
269  SEScalarMass& GetLiverGlycogenOverride();
270  double GetLiverGlycogenOverride(const MassUnit& unit) const;
271  bool HasMuscleGlycogenOverride() const;
272  SEScalarMass& GetMuscleGlycogenOverride();
273  double GetMuscleGlycogenOverride(const MassUnit& unit) const;
274  bool HasStoredProteinOverride() const;
275  SEScalarMass& GetStoredProteinOverride();
276  double GetStoredProteinOverride(const MassUnit& unit) const;
277  bool HasStoredFatOverride() const;
278  SEScalarMass& GetStoredFatOverride();
279  double GetStoredFatOverride(const MassUnit& unit) const;
280 
281  bool HasTissueOverride() const;
282 
283  virtual void ToString(std::ostream& str) const override;
284 
285 protected:
352 };
353 }
Definition: SEScalarFlowCompliance.h:36
SEScalarFraction * m_CO2SaturationOR
Definition: SEOverride.h:290
SEScalarVolume * m_IntracellularFluidVolumeOR
Definition: SEOverride.h:347
SEScalarFraction * m_COSaturationOR
Definition: SEOverride.h:291
SEScalarPressure * m_ExerciseMeanArterialPressureDeltaOR
Definition: SEOverride.h:313
SEScalar * m_VenousPHOR
Definition: SEOverride.h:289
SEScalarVolumePerTime * m_RenalBloodFlowOR
Definition: SEOverride.h:326
Definition: SEScalarFrequency.h:18
SEScalarMass * m_StoredProteinOR
Definition: SEOverride.h:350
SEScalarFraction * m_AcheivedExerciseLevelOR
Definition: SEOverride.h:310
SEScalarPower * m_TotalMetabolicOR
Definition: SEOverride.h:318
Definition: SEScalarFrequency.h:36
Definition: SEScalarAmountPerTime.h:38
Definition: SEScalar.h:33
SEScalarVolumePerTime * m_RenalPlasmaOR
Definition: SEOverride.h:327
SEScalarVolume * m_HeartStrokeVolumeOR
Definition: SEOverride.h:306
Definition: SEScalarTemperature.h:36
SEScalarMass * m_MuscleGlycogenOR
Definition: SEOverride.h:349
SEScalarMass * m_PotassiumLostToSweatOR
Definition: SEOverride.h:321
SEScalarMassPerVolume * m_TotalBilirubinOR
Definition: SEOverride.h:295
SEScalarMass * m_ChlorideLostToSweatOR
Definition: SEOverride.h:322
Definition: SEScalarOsmolality.h:34
SEScalarVolumePerTime * m_UrinationRateOR
Definition: SEOverride.h:331
SEScalarVolumePerTime * m_TotalAlveolarVentilationOR
Definition: SEOverride.h:343
CDM::enumOnOff m_OverrideConformance
Definition: SEOverride.h:287
Definition: SEPatientAction.h:18
SEScalarFraction * m_O2SaturationOR
Definition: SEOverride.h:292
SEScalarVolumePerTime * m_InspiratoryFlowOR
Definition: SEOverride.h:337
SEScalarFraction * m_FatigueLevelOR
Definition: SEOverride.h:314
SEScalarTemperature * m_CoreTemperatureOR
Definition: SEOverride.h:311
SEScalarMassPerVolume * m_UrineUreaNitrogenConcentrationOverrideOR
Definition: SEOverride.h:335
SEScalarMassPerVolume * m_SodiumConcentrationOR
Definition: SEOverride.h:300
CDM::enumOnOff m_OverrideState
Definition: SEOverride.h:286
Definition: SEScalarFlowResistance.h:18
SEScalarMassPerVolume * m_LactateConcentrationOR
Definition: SEOverride.h:298
Definition: SEScalarVolumePerTime.h:18
SEScalarVolumePerTime * m_RReabsorptionRateOR
Definition: SEOverride.h:330
SEScalarVolumePerTime * m_CardiacOutputOR
Definition: SEOverride.h:302
SEScalarVolumePerTime * m_ExpiratoryFlowOR
Definition: SEOverride.h:336
Definition: SEScalarTemperature.h:18
SEScalarVolume * m_TidalVolumeOR
Definition: SEOverride.h:341
Definition: SEScalarMass.h:38
Definition: SEScalarOsmolality.h:18
SEScalarMass * m_StoredFatOR
Definition: SEOverride.h:351
SEScalarMass * m_SodiumLostToSweatOR
Definition: SEOverride.h:320
SEScalarVolume * m_BloodVolumeOR
Definition: SEOverride.h:301
Definition: SEScalarFlowCompliance.h:18
SEScalarPressure * m_DiastolicArtPressureOR
Definition: SEOverride.h:303
Definition: SEScalarAmountPerVolume.h:17
Definition: SEScalarAmountPerVolume.h:37
SEScalarAmountPerTime * m_CreatinineProductionRateOR
Definition: SEOverride.h:312
Definition: SEScalarFraction.h:18
static constexpr const char * TypeTag()
Definition: SEOverride.h:41
SEScalarVolumePerTime * m_TargetPulmonaryVentilationOR
Definition: SEOverride.h:342
SEScalarVolume * m_UrineVolumeOR
Definition: SEOverride.h:334
SEScalarPressure * m_SystolicArtPressureOR
Definition: SEOverride.h:307
SEScalarMassPerVolume * m_GlucoseConcentrationOR
Definition: SEOverride.h:297
SEScalarAmountPerVolume * m_WBCCountOR
Definition: SEOverride.h:294
SEScalarFlowResistance * m_LAfferentArterioleResistOR
Definition: SEOverride.h:323
SEScalarVolumePerTime * m_UrineProductionRateOR
Definition: SEOverride.h:332
Definition: SEScalarMassPerTime.h:18
SEScalarFlowCompliance * m_PulmonaryComplianceOR
Definition: SEOverride.h:338
Definition: SEScalarPower.h:38
SEScalarMassPerVolume * m_CalciumConcentrationOR
Definition: SEOverride.h:296
Definition: SEScalarPower.h:18
Definition: SEScalarVolume.h:18
Definition: SEScalarPressure.h:37
Definition: SEScalarVolume.h:37
Enumeration class corresponding to the enumOnOff schema type.
Definition: Properties.hxx:2063
SEScalarMassPerVolume * m_PotassiumConcentrationOR
Definition: SEOverride.h:299
SEScalarVolumePerTime * m_TotalPulmonaryVentilationOR
Definition: SEOverride.h:345
SEScalarFrequency * m_HeartRateOR
Definition: SEOverride.h:305
Definition: SEScalarVolumePerTime.h:40
Definition: SEScalarFlowResistance.h:37
const char * classname() const override
Definition: SEOverride.h:42
SEScalarPressure * m_MeanArtPressureOR
Definition: SEOverride.h:304
Definition: SEScalarAmountPerTime.h:18
SEScalarFlowResistance * m_RAfferentArterioleResistOR
Definition: SEOverride.h:328
SEScalarVolume * m_ExtravascularFluidVolumeOR
Definition: SEOverride.h:346
Definition: SEScalarMassPerTime.h:40
SEScalar * m_ArterialPHOR
Definition: SEOverride.h:288
Definition: SEScalarPressure.h:18
Definition: SEScalarMassPerVolume.h:46
Definition: SEScalarMassPerVolume.h:18
SEScalarOsmolality * m_UrineOsmolalityOR
Definition: SEOverride.h:333
value
Underlying enum type.
Definition: Properties.hxx:2070
SEScalarMass * m_LiverGlycogenOR
Definition: SEOverride.h:348
SEScalarAmountPerVolume * m_PhosphateOR
Definition: SEOverride.h:293
Definition: SEOverride.h:36
SEScalarFrequency * m_RespirationRateOR
Definition: SEOverride.h:340
Definition: SEScalarMass.h:18
Definition: SEElectricalCircuit.h:18
SEScalarVolumePerTime * m_LReabsorptionRateOR
Definition: SEOverride.h:325
Class corresponding to the OverrideData schema type.
Definition: PatientActions.hxx:12647
SEScalarVolumePerTime * m__RightGlomerularFiltrationOR
Definition: SEOverride.h:329
SEScalarAmountPerTime * m_InsulinSynthesisRateOR
Definition: SEOverride.h:308
SEScalarVolumePerTime * m__LeftGlomerularFiltrationOR
Definition: SEOverride.h:324
SEScalarMassPerTime * m_SweatRateOR
Definition: SEOverride.h:317
SEScalarVolume * m_TotalLungVolumeOR
Definition: SEOverride.h:344
SEScalarTemperature * m_SkinTemperatureOR
Definition: SEOverride.h:316
SEScalarFlowResistance * m_PulmonaryResistanceOR
Definition: SEOverride.h:339
SEScalarFraction * m_TotalWorkRateLevelOR
Definition: SEOverride.h:319
SEScalarAmountPerTime * m_GlucagonSynthesisRateOR
Definition: SEOverride.h:309
SEScalarAmountPerTime * m_LactateProductionRateOR
Definition: SEOverride.h:315