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
 
DataTrackGetDataTrack ()
 
SaturationCalculatorGetSaturationCalculator ()
 
const SaturationCalculatorGetSaturationCalculator () const
 
DiffusionCalculatorGetDiffusionCalculator ()
 
const DiffusionCalculatorGetDiffusionCalculator () const
 
BioGearsSubstancesGetSubstances ()
 
const BioGearsSubstancesGetSubstances () const
 
SEPatientGetPatient ()
 
const SEPatientGetPatient () const
 
bool GetPatientAssessment (SEPatientAssessment &assessment)
 
SEBloodChemistrySystemGetBloodChemistry ()
 
SECardiovascularSystemGetCardiovascular ()
 
SEDrugSystemGetDrugs ()
 
SEEndocrineSystemGetEndocrine ()
 
SEEnergySystemGetEnergy ()
 
SEGastrointestinalSystemGetGastrointestinal ()
 
SEHepaticSystemGetHepatic ()
 
SENervousSystemGetNervous ()
 
SERenalSystemGetRenal ()
 
SERespiratorySystemGetRespiratory ()
 
SETissueSystemGetTissue ()
 
SEEnvironmentGetEnvironment ()
 
SEAnesthesiaMachineGetAnesthesiaMachine ()
 
SEElectroCardioGramGetECG ()
 
SEInhalerGetInhaler ()
 
SEActionManagerGetActions ()
 
SEConditionManagerGetConditions ()
 
BioGearsCircuitsGetCircuits ()
 
BioGearsCompartmentsGetCompartments ()
 
const BioGearsConfigurationGetConfiguration ()
 
const SEScalarTimeGetEngineTime ()
 
const SEScalarTimeGetSimulationTime ()
 
const SEScalarTimeGetTimeStep ()
 
CDM::enumBioGearsAirwayMode::value GetAirwayMode ()
 
CDM::enumOnOff::value GetIntubation ()
 
const SEBloodChemistrySystemGetBloodChemistry () const
 
const SECardiovascularSystemGetCardiovascular () const
 
const SEDrugSystemGetDrugs () const
 
const SEEndocrineSystemGetEndocrine () const
 
const SEEnergySystemGetEnergy () const
 
const SEGastrointestinalSystemGetGastrointestinal () const
 
const SEHepaticSystemGetHepatic () const
 
const SENervousSystemGetNervous () const
 
const SERenalSystemGetRenal () const
 
const SERespiratorySystemGetRespiratory () const
 
const SETissueSystemGetTissue () const
 
const SEEnvironmentGetEnvironment () const
 
const SEAnesthesiaMachineGetAnesthesiaMachine () const
 
const SEElectroCardioGramGetECG () const
 
const SEInhalerGetInhaler () const
 
const SEActionManagerGetActions () const
 
const SEConditionManagerGetConditions () const
 
const BioGearsCircuitsGetCircuits () const
 
const BioGearsCompartmentsGetCompartments () const
 
const BioGearsConfigurationGetConfiguration () const
 
const SEScalarTimeGetEngineTime () const
 
const SEScalarTimeGetSimulationTime () const
 
const SEScalarTimeGetTimeStep () 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)
 
LoggerGetLogger () 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
 
DataTrackm_DataTrack
 
std::unique_ptr< SEScalarTimem_CurrentTime
 
std::unique_ptr< SEScalarTimem_SimulationTime
 
CDM::enumBioGearsAirwayMode::value m_AirwayMode
 
CDM::enumOnOff::value m_Intubation
 
std::unique_ptr< BioGearsConfigurationm_Config
 
std::unique_ptr< SaturationCalculatorm_SaturationCalculator
 
std::unique_ptr< DiffusionCalculatorm_DiffusionCalculator
 
std::unique_ptr< BioGearsSubstancesm_Substances
 
std::unique_ptr< SEActionManagerm_Actions
 
std::unique_ptr< SEConditionManagerm_Conditions
 
std::unique_ptr< BioGearsCircuitsm_Circuits
 
std::unique_ptr< BioGearsCompartmentsm_Compartments
 
std::unique_ptr< Environmentm_Environment
 
std::unique_ptr< BloodChemistrym_BloodChemistrySystem
 
std::unique_ptr< Cardiovascularm_CardiovascularSystem
 
std::unique_ptr< Endocrinem_EndocrineSystem
 
std::unique_ptr< Energym_EnergySystem
 
std::unique_ptr< Gastrointestinalm_GastrointestinalSystem
 
std::unique_ptr< Hepaticm_HepaticSystem
 
std::unique_ptr< Nervousm_NervousSystem
 
std::unique_ptr< Renalm_RenalSystem
 
std::unique_ptr< Respiratorym_RespiratorySystem
 
std::unique_ptr< Drugsm_DrugSystem
 
std::unique_ptr< Tissuem_TissueSystem
 
std::unique_ptr< ECGm_ECG
 
std::unique_ptr< AnesthesiaMachinem_AnesthesiaMachine
 
std::unique_ptr< Inhalerm_Inhaler
 
std::unique_ptr< SEPatientm_Patient
 
bool m_logger_self_managed
 
Loggerm_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