#include <Endocrine.h>
Public Member Functions | |
virtual | ~Endocrine () override |
const char * | classname () const override |
size_t | hash_code () const override |
void | Clear () override |
void | Initialize () override |
Initializes system properties to valid homeostatic values. More... | |
virtual bool | Load (const CDM::BioGearsEndocrineSystemData &in) |
virtual CDM::BioGearsEndocrineSystemData * | Unload () const override |
void | AtSteadyState () override |
Notify systems that steady state has been achieved. More... | |
void | PreProcess () override |
Endocrine Preprocess function. More... | |
void | Process () override |
Endocrine process function. More... | |
void | PostProcess () override |
Endocrine PostProcess function. More... | |
Public Member Functions inherited from biogears::SEEndocrineSystem | |
SEEndocrineSystem (Logger *logger) | |
~SEEndocrineSystem () override | |
const SEScalar * | GetScalar (const char *name) override |
const SEScalar * | GetScalar (const std::string &name) override |
bool | Load (const CDM::EndocrineSystemData &in) |
Tree< const char * > | GetPhysiologyRequestGraph () const override |
bool | HasInsulinSynthesisRate () const |
SEScalarAmountPerTime & | GetInsulinSynthesisRate () |
double | GetInsulinSynthesisRate (const AmountPerTimeUnit &unit) const |
bool | HasGlucagonSynthesisRate () const |
SEScalarAmountPerTime & | GetGlucagonSynthesisRate () |
double | GetGlucagonSynthesisRate (const AmountPerTimeUnit &unit) const |
Public Member Functions inherited from biogears::SESystem | |
SESystem (Logger *logger) | |
virtual | ~SESystem () |
bool | Load (const CDM::SystemData &in) |
Public Member Functions inherited from biogears::Loggable | |
Loggable () | |
Loggable (Logger *log) | |
virtual | ~Loggable () |
virtual Logger * | GetLogger () const |
Static Public Member Functions | |
static size_t | TypeHash () |
static constexpr char const *const | TypeTag () |
Static Public Member Functions inherited from biogears::SEEndocrineSystem | |
static size_t | TypeHash () |
static constexpr char const *const | TypeTag () |
Static Public Member Functions inherited from biogears::SESystem | |
static const SEScalar * | GetScalar (const char *name, std::vector< SESystem * > *systems) |
static const SEScalar * | GetScalar (const std::string &name, std::vector< SESystem * > *systems) |
Protected Member Functions | |
Endocrine (BioGears &bg) | |
virtual void | Unload (CDM::BioGearsEndocrineSystemData &data) const |
void | SetUp () override |
void | ProcessOverride () |
determine override requirements from user defined inputs More... | |
void | OverrideControlLoop () |
Protected Member Functions inherited from biogears::SEEndocrineSystem | |
void | Unload (CDM::EndocrineSystemData &data) const |
Protected Member Functions inherited from biogears::SESystem | |
void | Unload (CDM::SystemData &data) const |
Protected Member Functions inherited from biogears::Loggable | |
virtual void | Debug (const char *msg, const char *origin="") const |
virtual void | Debug (const std::string &msg, const std::string &origin=empty) const |
virtual void | Debug (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Info (const char *msg, const char *origin="") const |
virtual void | Info (const std::string &msg, const std::string &origin=empty) const |
virtual void | Info (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Warning (const char *msg, const char *origin="") const |
virtual void | Warning (const std::string &msg, const std::string &origin=empty) const |
virtual void | Warning (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Error (const char *msg, const char *origin="") const |
virtual void | Error (const std::string msg, const std::string origin=empty) const |
virtual void | Error (std::ostream &msg, const std::string &origin=empty) const |
virtual void | Fatal (const char *msg, const char *origin="") const |
virtual void | Fatal (const std::string &msg, const std::string &origin=empty) const |
virtual void | Fatal (std::ostream &msg, const std::string &origin=empty) const |
Protected Member Functions inherited from biogears::BioGearsSystem | |
virtual void | LoadState () |
Static Protected Member Functions | |
static auto | make_unique (BioGears &bg) -> std::unique_ptr< Endocrine > |
Protected Attributes | |
BioGears & | m_data |
Protected Attributes inherited from biogears::SEEndocrineSystem | |
SEScalarAmountPerTime * | m_InsulinSynthesisRate |
SEScalarAmountPerTime * | m_GlucagonSynthesisRate |
Protected Attributes inherited from biogears::SESystem | |
std::stringstream | m_ss |
Protected Attributes inherited from biogears::Loggable | |
Logger * | m_Logger |
Private Member Functions | |
void | SynthesizeInsulin () |
Calculate the rate of insulin production. More... | |
void | SynthesizeGlucagon () |
Calculate the rate of glucagon production. More... | |
void | ReleaseEpinephrine () |
Release epinephrine into the bloodstream and handle sympathetic responses. More... | |
Private Attributes | |
double | m_dt_s |
double | m_InsulinMolarMass_g_Per_mol |
double | m_AverageBiologicalDebt |
double | m_GlucagonMolarMass_g_Per_mol |
SELiquidSubstanceQuantity * | m_AortaGlucose = nullptr |
SELiquidSubstanceQuantity * | m_AortaEpinephrine = nullptr |
SELiquidSubstanceQuantity * | m_rKidneyEpinephrine = nullptr |
SELiquidSubstanceQuantity * | m_lKidneyEpinephrine = nullptr |
SELiquidSubstanceQuantity * | m_SplanchnicInsulin = nullptr |
SELiquidSubstanceQuantity * | m_SplanchnicGlucagon = nullptr |
Friends | |
class | BioGears |
class | BioGearsEngineTest |
Additional Inherited Members | |
Static Public Attributes inherited from biogears::Loggable | |
static const std::string | empty |
static const char * | empty_cStr |
Detailed Description
The BioGears® endocrine system is a rudimentary system with only one stimulus (increased carbon dioxide partial pressure in the blood stream) and two hormones (epinephrine and norepinephrine). The release of the hormones in response to the stimuli to represent the response of the sympathetic nervous system. In the future, additional stimuli and additional hormones will be added.
Constructor & Destructor Documentation
|
protected |
|
overridevirtual |
Member Function Documentation
|
overridevirtual |
Notify systems that steady state has been achieved.
Reimplemented from biogears::BioGearsSystem.
|
inlineoverridevirtual |
Reimplemented from biogears::SEEndocrineSystem.
|
overridevirtual |
Reimplemented from biogears::SEEndocrineSystem.
|
inlineoverridevirtual |
Reimplemented from biogears::SEEndocrineSystem.
|
overridevirtual |
Initializes system properties to valid homeostatic values.
Reimplemented from biogears::BioGearsSystem.
|
virtual |
|
staticprotected |
|
protected |
|
overridevirtual |
Endocrine PostProcess function.
The Endocrine system does not currently have any PostProcess functionality.
Implements biogears::BioGearsSystem.
|
overridevirtual |
Endocrine Preprocess function.
Currently, only three hormones exist in the BioGears system: epinephrine, insulin, and glucagon. These functions determine the release of these hormones. The hormones will then circulate using the transport and substances methodologies.
Implements biogears::BioGearsSystem.
|
overridevirtual |
Endocrine process function.
The Endocrine system does not currently have any Process functionality.
Implements biogears::BioGearsSystem.
|
protected |
determine override requirements from user defined inputs
User specified override outputs that are specific to the cardiovascular system are implemented here. If overrides aren't present for this system then this function will not be called during preprocess.
|
private |
Release epinephrine into the bloodstream and handle sympathetic responses.
Epinephrine is released at a basal rate of .18 ug/min [22] from the kidneys. During certain events, the release rate of epinephrine increases. This is sympathetic response.
|
overrideprotectedvirtual |
Implements biogears::BioGearsSystem.
|
private |
Calculate the rate of glucagon production.
The glucagon production rate is set based on the aorta glucose concentration to values that allow it to have stable concentrations when paired with the clearance rate of 9 mL/min kg from https://www.ncbi.nlm.nih.gov/pubmed/773949
|
private |
Calculate the rate of insulin production.
The insulin production rate is calculated based on the relevant range of glucose and instantaneous concentration of glucose in the aorta (representative of the body). The equation for insulin production is from [tolic2000insulin] Patients with diabetes mellitus may have a reduced capacity for insulin production or insulin resistance, based on severity.
|
inlinestatic |
|
inlinestatic |
|
overridevirtual |
Reimplemented from biogears::SEEndocrineSystem.
|
protectedvirtual |
Friends And Related Function Documentation
|
friend |
|
friend |
Member Data Documentation
|
private |
|
private |
|
private |
|
protected |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |