Pulse adds COVID-19 Simulation Support
×
BloodChemistry.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 #include "PulsePhysiologySystems.h"
6 #include "system/physiology/SEBloodChemistrySystem.h"
11 
20 class PULSE_DECL BloodChemistry : public PulseBloodChemistrySystem
21 {
22  friend class PulseData;
23  friend class PBPulsePhysiology;//friend the serialization class
24  friend class PulseEngineTest;
25 protected:
28 
29 public:
30  virtual ~BloodChemistry();
31 
32  void Clear();
33 
34  // Set members to a stable homeostatic state
35  void Initialize();
36  // Set pointers and other member varialbes common to both homeostatic initialization and loading a state
37  void SetUp();
38 
39  void AtSteadyState();
40  void PreProcess();
41  void Process(bool solve_and_transport=true);
42  void PostProcess(bool solve_and_transport=true);
43 
44  bool CalculateCompleteBloodCount(SECompleteBloodCount& cbc) const;
45  bool CalculateComprehensiveMetabolicPanel(SEComprehensiveMetabolicPanel& cmp) const;
46 
47 protected:
48  void ComputeExposedModelParameters() override;
49 
50  void CheckBloodGasLevels();
51  // Serializable member variables (Set in Initialize and in schema)
54 
55  // Stateless member variable (Set in SetUp())
71 };
SELiquidSubstanceQuantity * m_myocardiumO2
Definition: BloodChemistry.h:63
SELiquidSubstanceQuantity * m_pulmonaryVeinsO2
Definition: BloodChemistry.h:66
SELiquidSubstanceQuantity * m_venaCavaO2
Definition: BloodChemistry.h:69
Definition: SEComprehensiveMetabolicPanel.h:7
Definition: Controller.h:64
SELiquidSubstanceQuantity * m_venaCavaCO2
Definition: BloodChemistry.h:70
virtual void SetUp()=0
Definition: SERunningAverage.h:7
Definition: SELiquidSubstanceQuantity.h:11
PulseData & m_data
Definition: BloodChemistry.h:27
virtual void Process(bool solve_and_transport=true)=0
SELiquidSubstanceQuantity * m_pulmonaryVeinsCO2
Definition: BloodChemistry.h:67
Definition: PBPulsePhysiology.h:18
Definition: SELiquidCompartment.h:10
SELiquidSubstanceQuantity * m_aortaCO
Definition: BloodChemistry.h:61
Definition: SECompleteBloodCount.h:7
virtual void Initialize()
Default system values to their homeostatic values
Definition: System.h:13
SELiquidSubstanceQuantity * m_pulmonaryArteriesO2
Definition: BloodChemistry.h:64
SELiquidSubstanceQuantity * m_pulmonaryArteriesCO2
Definition: BloodChemistry.h:65
SELiquidCompartment * m_venaCava
Definition: BloodChemistry.h:68
SERunningAverage * m_ArterialOxygen_mmHg
Definition: BloodChemistry.h:52
virtual void PostProcess(bool solve_and_transport=true)=0
Definition: BloodChemistry.h:20
virtual void ComputeExposedModelParameters()=0
virtual void Clear()
Deletes all members.
Definition: SEBloodChemistrySystem.cpp:52
SELiquidSubstanceQuantity * m_brainO2
Definition: BloodChemistry.h:62
Definition: EngineTest.h:28
SELiquidCompartment * m_aorta
Definition: BloodChemistry.h:58
SERunningAverage * m_ArterialCarbonDioxide_mmHg
Definition: BloodChemistry.h:53
SELiquidSubstanceQuantity * m_aortaCO2
Definition: BloodChemistry.h:60
virtual void PreProcess()=0
Definition: PulsePhysiologySystems.h:33
SELiquidSubstanceQuantity * m_aortaO2
Definition: BloodChemistry.h:59
double m_redBloodCellVolume_mL
Definition: BloodChemistry.h:56
virtual void AtSteadyState()=0
Notify systems that steady state has been achieved.
double m_HbPerRedBloodCell_ug_Per_ct
Definition: BloodChemistry.h:57

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.