Manages and controls execution of all data/systems in BioGears. More...

#include <BioGears.h>

Inheritance diagram for biogears::BioGears:

Public Member Functions

 BioGears (Logger *logger)
 
 BioGears (const std::string &logfileName)
 
 BioGears (Logger *logger, const std::string &working_dir)
 
 BioGears (const std::string &logfileName, const std::string &working_dir)
 
virtual ~BioGears ()
 
EngineState GetState ()
 
const EngineState GetState () const
 
DataTrack & GetDataTrack ()
 
SaturationCalculator & GetSaturationCalculator ()
 
const SaturationCalculator & GetSaturationCalculator () const
 
DiffusionCalculator & GetDiffusionCalculator ()
 
const DiffusionCalculator & GetDiffusionCalculator () const
 
BioGearsSubstances & GetSubstances ()
 
const BioGearsSubstances & GetSubstances () const
 
SEPatient & GetPatient ()
 
const SEPatient & GetPatient () const
 
bool GetPatientAssessment (SEPatientAssessment &assessment)
 
SEBloodChemistrySystem & GetBloodChemistry ()
 
SECardiovascularSystem & GetCardiovascular ()
 
SEDrugSystem & GetDrugs ()
 
SEEndocrineSystem & GetEndocrine ()
 
SEEnergySystem & GetEnergy ()
 
SEGastrointestinalSystem & GetGastrointestinal ()
 
SEHepaticSystem & GetHepatic ()
 
SENervousSystem & GetNervous ()
 
SERenalSystem & GetRenal ()
 
SERespiratorySystem & GetRespiratory ()
 
SETissueSystem & GetTissue ()
 
SEEnvironment & GetEnvironment ()
 
SEAnesthesiaMachine & GetAnesthesiaMachine ()
 
SEElectroCardioGram & GetECG ()
 
SEInhaler & GetInhaler ()
 
SEActionManager & GetActions ()
 
SEConditionManager & GetConditions ()
 
BioGearsCircuits & GetCircuits ()
 
BioGearsCompartments & GetCompartments ()
 
const BioGearsConfiguration & GetConfiguration ()
 
const SEScalarTime & GetEngineTime ()
 
const SEScalarTime & GetSimulationTime ()
 
const SEScalarTime & GetTimeStep ()
 
CDM::enumBioGearsAirwayMode::value GetAirwayMode ()
 
CDM::enumOnOff::value GetIntubation ()
 
const SEBloodChemistrySystem & GetBloodChemistry () const
 
const SECardiovascularSystem & GetCardiovascular () const
 
const SEDrugSystem & GetDrugs () const
 
const SEEndocrineSystem & GetEndocrine () const
 
const SEEnergySystem & GetEnergy () const
 
const SEGastrointestinalSystem & GetGastrointestinal () const
 
const SEHepaticSystem & GetHepatic () const
 
const SENervousSystem & GetNervous () const
 
const SERenalSystem & GetRenal () const
 
const SERespiratorySystem & GetRespiratory () const
 
const SETissueSystem & GetTissue () const
 
const SEEnvironment & GetEnvironment () const
 
const SEAnesthesiaMachine & GetAnesthesiaMachine () const
 
const SEElectroCardioGram & GetECG () const
 
const SEInhaler & GetInhaler () const
 
const SEActionManager & GetActions () const
 
const SEConditionManager & GetConditions () const
 
const BioGearsCircuits & GetCircuits () const
 
const BioGearsCompartments & GetCompartments () const
 
const BioGearsConfiguration & GetConfiguration () const
 
const SEScalarTime & GetEngineTime () const
 
const SEScalarTime & GetSimulationTime () const
 
const SEScalarTime & GetTimeStep () const
 
const CDM::enumBioGearsAirwayMode::value GetAirwayMode () const
 
const CDM::enumOnOff::value GetIntubation () const
 
bool CreateCircuitsAndCompartments ()
 
void SetIntubation (CDM::enumOnOff::value s)
 
void SetAirwayMode (CDM::enumBioGearsAirwayMode::value mode)
 
Logger * GetLogger () const
 

Protected Member Functions

void SetupCardiovascular ()
 
void SetupCerebral ()
 
void SetupRenal ()
 
void SetupTissue ()
 
void SetupGastrointestinal ()
 
void SetupRespiratory ()
 
void SetupAnesthesiaMachine ()
 
void SetupInhaler ()
 
void SetupMechanicalVentilator ()
 
void SetupExternalTemperature ()
 
void SetupInternalTemperature ()
 
bool Initialize (const PhysiologyEngineConfiguration *config)
 
bool SetupPatient ()
 
void SetUp ()
 
virtual void AtSteadyState (EngineState state)
 
void PreProcess ()
 
void Process ()
 
void PostProcess ()
 
void ForwardFatal (const std::string &msg, const std::string &origin)
 

Protected Attributes

EngineState m_State
 
DataTrack * m_DataTrack
 
std::unique_ptr< SEScalarTime > m_CurrentTime
 
std::unique_ptr< SEScalarTime > m_SimulationTime
 
CDM::enumBioGearsAirwayMode::value m_AirwayMode
 
CDM::enumOnOff::value m_Intubation
 
std::unique_ptr< BioGearsConfiguration > m_Config
 
std::unique_ptr< SaturationCalculator > m_SaturationCalculator
 
std::unique_ptr< DiffusionCalculator > m_DiffusionCalculator
 
std::unique_ptr< BioGearsSubstances > m_Substances
 
std::unique_ptr< SEActionManager > m_Actions
 
std::unique_ptr< SEConditionManager > m_Conditions
 
std::unique_ptr< BioGearsCircuits > m_Circuits
 
std::unique_ptr< BioGearsCompartments > m_Compartments
 
std::unique_ptr< Environment > m_Environment
 
std::unique_ptr< BloodChemistry > m_BloodChemistrySystem
 
std::unique_ptr< Cardiovascular > m_CardiovascularSystem
 
std::unique_ptr< Endocrine > m_EndocrineSystem
 
std::unique_ptr< Energy > m_EnergySystem
 
std::unique_ptr< Gastrointestinal > m_GastrointestinalSystem
 
std::unique_ptr< Hepatic > m_HepaticSystem
 
std::unique_ptr< Nervous > m_NervousSystem
 
std::unique_ptr< Renal > m_RenalSystem
 
std::unique_ptr< Respiratory > m_RespiratorySystem
 
std::unique_ptr< Drugs > m_DrugSystem
 
std::unique_ptr< Tissue > m_TissueSystem
 
std::unique_ptr< ECG > m_ECG
 
std::unique_ptr< AnesthesiaMachine > m_AnesthesiaMachine
 
std::unique_ptr< Inhaler > m_Inhaler
 
std::unique_ptr< SEPatient > m_Patient
 
bool m_logger_self_managed
 
Logger * m_Logger
 

Friends

class BioGearsEngineTest
 
class BioGearsScenarioExec
 

Detailed Description

Manages and controls execution of all data/systems in BioGears.

Constructor & Destructor Documentation

biogears::BioGears::BioGears ( Logger *  logger)
biogears::BioGears::BioGears ( const std::string &  logfileName)
biogears::BioGears::BioGears ( Logger *  logger,
const std::string &  working_dir 
)
biogears::BioGears::BioGears ( const std::string &  logfileName,
const std::string &  working_dir 
)
biogears::BioGears::~BioGears ( )
virtual

Member Function Documentation

void biogears::BioGears::AtSteadyState ( EngineState  state)
protectedvirtual
bool biogears::BioGears::CreateCircuitsAndCompartments ( )
void biogears::BioGears::ForwardFatal ( const std::string &  msg,
const std::string &  origin 
)
protected
SEActionManager & biogears::BioGears::GetActions ( )
const SEActionManager & biogears::BioGears::GetActions ( ) const
CDM::enumBioGearsAirwayMode::value biogears::BioGears::GetAirwayMode ( )
const CDM::enumBioGearsAirwayMode::value biogears::BioGears::GetAirwayMode ( ) const
SEAnesthesiaMachine & biogears::BioGears::GetAnesthesiaMachine ( )
const SEAnesthesiaMachine & biogears::BioGears::GetAnesthesiaMachine ( ) const
SEBloodChemistrySystem & biogears::BioGears::GetBloodChemistry ( )
const SEBloodChemistrySystem & biogears::BioGears::GetBloodChemistry ( ) const
SECardiovascularSystem & biogears::BioGears::GetCardiovascular ( )
const SECardiovascularSystem & biogears::BioGears::GetCardiovascular ( ) const
BioGearsCircuits & biogears::BioGears::GetCircuits ( )
const BioGearsCircuits & biogears::BioGears::GetCircuits ( ) const
BioGearsCompartments & biogears::BioGears::GetCompartments ( )
const BioGearsCompartments & biogears::BioGears::GetCompartments ( ) const
SEConditionManager & biogears::BioGears::GetConditions ( )
const SEConditionManager & biogears::BioGears::GetConditions ( ) const
const BioGearsConfiguration & biogears::BioGears::GetConfiguration ( )
const BioGearsConfiguration & biogears::BioGears::GetConfiguration ( ) const
DataTrack & biogears::BioGears::GetDataTrack ( )
DiffusionCalculator & biogears::BioGears::GetDiffusionCalculator ( )
const DiffusionCalculator & biogears::BioGears::GetDiffusionCalculator ( ) const
SEDrugSystem & biogears::BioGears::GetDrugs ( )
const SEDrugSystem & biogears::BioGears::GetDrugs ( ) const
SEElectroCardioGram & biogears::BioGears::GetECG ( )
const SEElectroCardioGram & biogears::BioGears::GetECG ( ) const
SEEndocrineSystem & biogears::BioGears::GetEndocrine ( )
const SEEndocrineSystem & biogears::BioGears::GetEndocrine ( ) const
SEEnergySystem & biogears::BioGears::GetEnergy ( )
const SEEnergySystem & biogears::BioGears::GetEnergy ( ) const
const SEScalarTime & biogears::BioGears::GetEngineTime ( )
const SEScalarTime & biogears::BioGears::GetEngineTime ( ) const
SEEnvironment & biogears::BioGears::GetEnvironment ( )
const SEEnvironment & biogears::BioGears::GetEnvironment ( ) const
SEGastrointestinalSystem & biogears::BioGears::GetGastrointestinal ( )
const SEGastrointestinalSystem & biogears::BioGears::GetGastrointestinal ( ) const
SEHepaticSystem & biogears::BioGears::GetHepatic ( )
const SEHepaticSystem & biogears::BioGears::GetHepatic ( ) const
SEInhaler & biogears::BioGears::GetInhaler ( )
const SEInhaler & biogears::BioGears::GetInhaler ( ) const
CDM::enumOnOff::value biogears::BioGears::GetIntubation ( )
const CDM::enumOnOff::value biogears::BioGears::GetIntubation ( ) const
Logger * biogears::BioGears::GetLogger ( ) const
SENervousSystem & biogears::BioGears::GetNervous ( )
const SENervousSystem & biogears::BioGears::GetNervous ( ) const
SEPatient & biogears::BioGears::GetPatient ( )
const SEPatient & biogears::BioGears::GetPatient ( ) const
bool biogears::BioGears::GetPatientAssessment ( SEPatientAssessment &  assessment)
SERenalSystem & biogears::BioGears::GetRenal ( )
const SERenalSystem & biogears::BioGears::GetRenal ( ) const
SERespiratorySystem & biogears::BioGears::GetRespiratory ( )
const SERespiratorySystem & biogears::BioGears::GetRespiratory ( ) const
SaturationCalculator & biogears::BioGears::GetSaturationCalculator ( )
const SaturationCalculator & biogears::BioGears::GetSaturationCalculator ( ) const
const SEScalarTime & biogears::BioGears::GetSimulationTime ( )
const SEScalarTime & biogears::BioGears::GetSimulationTime ( ) const
EngineState biogears::BioGears::GetState ( )
const EngineState biogears::BioGears::GetState ( ) const
BioGearsSubstances & biogears::BioGears::GetSubstances ( )
const BioGearsSubstances & biogears::BioGears::GetSubstances ( ) const
const SEScalarTime & biogears::BioGears::GetTimeStep ( )
const SEScalarTime & biogears::BioGears::GetTimeStep ( ) const
SETissueSystem & biogears::BioGears::GetTissue ( )
const SETissueSystem & biogears::BioGears::GetTissue ( ) const
bool biogears::BioGears::Initialize ( const PhysiologyEngineConfiguration *  config)
protected
void biogears::BioGears::PostProcess ( )
protected
void biogears::BioGears::PreProcess ( )
protected
void biogears::BioGears::Process ( )
protected
void biogears::BioGears::SetAirwayMode ( CDM::enumBioGearsAirwayMode::value  mode)
void biogears::BioGears::SetIntubation ( CDM::enumOnOff::value  s)
void biogears::BioGears::SetUp ( )
protected
void biogears::BioGears::SetupAnesthesiaMachine ( )
protected
void biogears::BioGears::SetupCardiovascular ( )
protected
Todo:
Make these a function of the systolic and diastolic pressure by fitting a curve to the data from the variations test
void biogears::BioGears::SetupCerebral ( )
protected
void biogears::BioGears::SetupExternalTemperature ( )
protected
void biogears::BioGears::SetupGastrointestinal ( )
protected
void biogears::BioGears::SetupInhaler ( )
protected
void biogears::BioGears::SetupInternalTemperature ( )
protected
void biogears::BioGears::SetupMechanicalVentilator ( )
protected
bool biogears::BioGears::SetupPatient ( )
protected

[108]

[249]

[231]

[326] [38]

[113]

[115]

[284]

cite ganong1995review

[78]

[300]

[plowman2013exercise]

void biogears::BioGears::SetupRenal ( )
protected
Todo:
The bladder is currently not being modeled as a compliance
Todo:
Use a compliance here - make sure you remove the current handling of bladder volume in the renal system as a pressure source
void biogears::BioGears::SetupRespiratory ( )
protected
void biogears::BioGears::SetupTissue ( )
protected

: Use P-V relationship in Himeno2015Mechanisms to get better initial compliance estimate

Todo:
Put Initial Circuit/Compartment data values into the configuration file.

[Mazonni1988Dynamic]

Friends And Related Function Documentation

friend class BioGearsEngineTest
friend
friend class BioGearsScenarioExec
friend

Member Data Documentation

std::unique_ptr<SEActionManager> biogears::BioGears::m_Actions
protected
CDM::enumBioGearsAirwayMode::value biogears::BioGears::m_AirwayMode
protected
std::unique_ptr<AnesthesiaMachine> biogears::BioGears::m_AnesthesiaMachine
protected
std::unique_ptr<BloodChemistry> biogears::BioGears::m_BloodChemistrySystem
protected
std::unique_ptr<Cardiovascular> biogears::BioGears::m_CardiovascularSystem
protected
std::unique_ptr<BioGearsCircuits> biogears::BioGears::m_Circuits
protected
std::unique_ptr<BioGearsCompartments> biogears::BioGears::m_Compartments
protected
std::unique_ptr<SEConditionManager> biogears::BioGears::m_Conditions
protected
std::unique_ptr<BioGearsConfiguration> biogears::BioGears::m_Config
protected
std::unique_ptr<SEScalarTime> biogears::BioGears::m_CurrentTime
protected
DataTrack* biogears::BioGears::m_DataTrack
protected
std::unique_ptr<DiffusionCalculator> biogears::BioGears::m_DiffusionCalculator
protected
std::unique_ptr<Drugs> biogears::BioGears::m_DrugSystem
protected
std::unique_ptr<ECG> biogears::BioGears::m_ECG
protected
std::unique_ptr<Endocrine> biogears::BioGears::m_EndocrineSystem
protected
std::unique_ptr<Energy> biogears::BioGears::m_EnergySystem
protected
std::unique_ptr<Environment> biogears::BioGears::m_Environment
protected
std::unique_ptr<Gastrointestinal> biogears::BioGears::m_GastrointestinalSystem
protected
std::unique_ptr<Hepatic> biogears::BioGears::m_HepaticSystem
protected
std::unique_ptr<Inhaler> biogears::BioGears::m_Inhaler
protected
CDM::enumOnOff::value biogears::BioGears::m_Intubation
protected
Logger* biogears::BioGears::m_Logger
protected
bool biogears::BioGears::m_logger_self_managed
protected
std::unique_ptr<Nervous> biogears::BioGears::m_NervousSystem
protected
std::unique_ptr<SEPatient> biogears::BioGears::m_Patient
protected
std::unique_ptr<Renal> biogears::BioGears::m_RenalSystem
protected
std::unique_ptr<Respiratory> biogears::BioGears::m_RespiratorySystem
protected
std::unique_ptr<SaturationCalculator> biogears::BioGears::m_SaturationCalculator
protected
std::unique_ptr<SEScalarTime> biogears::BioGears::m_SimulationTime
protected
EngineState biogears::BioGears::m_State
protected
std::unique_ptr<BioGearsSubstances> biogears::BioGears::m_Substances
protected
std::unique_ptr<Tissue> biogears::BioGears::m_TissueSystem
protected