Pulse adds COVID-19 Simulation Support
×

More...

#include <Endocrine.h>

Inherits PulseEndocrineSystem.

Public Member Functions

virtual ~Endocrine ()
 
void Clear ()
 
void Initialize ()
 Initializes system properties to valid homeostatic values. More...
 
void SetUp ()
 Initializes parameters for Endocrine Class. More...
 
void AtSteadyState ()
 Notify systems that steady state has been achieved. More...
 
void PreProcess ()
 
void Process (bool solve_and_transport=true)
 Endocrine process function. More...
 
void PostProcess (bool solve_and_transport=true)
 
- Public Member Functions inherited from PulseEndocrineSystem
 PulseEndocrineSystem (Logger *logger)
 
virtual ~PulseEndocrineSystem ()=default
 
virtual const SEScalarGetScalar (const std::string &name) override
 
- Public Member Functions inherited from SEEndocrineSystem
 SEEndocrineSystem (Logger *logger)
 
virtual ~SEEndocrineSystem ()
 
virtual bool HasInsulinSynthesisRate () const
 
virtual SEScalarAmountPerTimeGetInsulinSynthesisRate ()
 
virtual double GetInsulinSynthesisRate (const AmountPerTimeUnit &unit) const
 
- Public Member Functions inherited from SESystem
 SESystem (Logger *logger)
 
virtual ~SESystem ()
 
- Public Member Functions inherited from Loggable
 Loggable (Logger *logger=nullptr)
 
 Loggable (std::string const &logfile)
 
virtual ~Loggable ()
 
virtual LoggerGetLogger () const
 
virtual void SetLogger (Logger &logger)
 
virtual void Debug (std::string const &msg, std::string const &origin=empty) const
 
virtual void Debug (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Debug (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Info (std::string const &msg, std::string const &origin=empty) const
 
virtual void Info (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (const std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Info (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::string const &msg, std::string const &origin=empty) const
 
virtual void Warning (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Warning (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Error (std::string const &msg, std::string const &origin=empty) const
 
virtual void Error (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Error (std::ostream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::string const &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::stringstream &msg, std::string const &origin=empty) const
 
virtual void Fatal (std::ostream &msg, std::string const &origin=empty) const
 
std::string to_string (int i)
 
std::string to_string (unsigned int i)
 
std::string to_string (size_t t)
 
std::string to_string (float f)
 
std::string to_string (double d)
 

Protected Member Functions

 Endocrine (PulseData &data)
 
void ComputeExposedModelParameters () override
 
void SynthesizeInsulin ()
 Calculate the rate of insulin production. More...
 
void ReleaseEpinephrine ()
 Release epinephrine into the bloodstream and handle sympathetic responses. More...
 

Protected Attributes

PulseDatam_data
 
double m_dt_s
 
double m_insulinMolarMass_g_Per_mol
 
SELiquidSubstanceQuantitym_aortaGlucose = nullptr
 
SELiquidSubstanceQuantitym_aortaEpinephrine = nullptr
 
SELiquidSubstanceQuantitym_rKidneyEpinephrine = nullptr
 
SELiquidSubstanceQuantitym_lKidneyEpinephrine = nullptr
 
SELiquidSubstanceQuantitym_splanchnicInsulin = nullptr
 
- Protected Attributes inherited from SEEndocrineSystem
SEScalarAmountPerTimem_InsulinSynthesisRate
 
- Protected Attributes inherited from SESystem
std::stringstream m_ss
 
- Protected Attributes inherited from Loggable
bool myLogger
 
Loggerm_Logger
 

Friends

class PulseData
 
class PBPulsePhysiology
 
class PulseEngineTest
 

Additional Inherited Members

- Static Public Member Functions inherited from SESystem
static const SEScalarGetScalar (const std::string &name, std::vector< SESystem *> *systems)
 
- Static Public Attributes inherited from Loggable
static const std::string empty
 

Detailed Description

The PulseŽ 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

◆ Endocrine()

Endocrine::Endocrine ( PulseData data)
protected

◆ ~Endocrine()

Endocrine::~Endocrine ( )
virtual

Member Function Documentation

◆ AtSteadyState()

void Endocrine::AtSteadyState ( )
virtual

Notify systems that steady state has been achieved.

Implements PulseSystem.

◆ Clear()

void Endocrine::Clear ( )
virtual

Reimplemented from SEEndocrineSystem.

◆ ComputeExposedModelParameters()

void Endocrine::ComputeExposedModelParameters ( )
overrideprotectedvirtual

Implements PulseEndocrineSystem.

◆ Initialize()

void Endocrine::Initialize ( )
virtual

Initializes system properties to valid homeostatic values.

For stabilization only! Called AFTER Setup when stabilizing a new patient

Reimplemented from PulseSystem.

◆ PostProcess()

void Endocrine::PostProcess ( bool  solve_and_transport = true)
inlinevirtual

Implements PulseSystem.

◆ PreProcess()

void Endocrine::PreProcess ( )
inlinevirtual

Implements PulseSystem.

◆ Process()

void Endocrine::Process ( bool  solve_and_transport = true)
virtual

Endocrine process function.

Currently, only two hormones exists in the Pulse system: epinephrine and insulin. If the metabolic rate rises above the basal rate, epinephrine is released. This is meant to simulate a sympathetic nervous system response. The masses of the hormones are increased in the kidneys' efferent arterioles. The hormones will then circulate using the transport and substances methodology.

Implements PulseSystem.

◆ ReleaseEpinephrine()

void Endocrine::ReleaseEpinephrine ( )
protected

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.

◆ SetUp()

void Endocrine::SetUp ( )
virtual

Initializes parameters for Endocrine Class.

Called during both State loading and Patient Stabilization Pull and setup up our data (can be from other systems) Initialize will be called after this and can overwrite any of this data (only if stabilizing)

Implements PulseSystem.

◆ SynthesizeInsulin()

void Endocrine::SynthesizeInsulin ( )
protected

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]

Friends And Related Function Documentation

◆ PBPulsePhysiology

friend class PBPulsePhysiology
friend

◆ PulseData

friend class PulseData
friend

◆ PulseEngineTest

friend class PulseEngineTest
friend

Member Data Documentation

◆ m_aortaEpinephrine

SELiquidSubstanceQuantity* Endocrine::m_aortaEpinephrine = nullptr
protected

◆ m_aortaGlucose

SELiquidSubstanceQuantity* Endocrine::m_aortaGlucose = nullptr
protected

◆ m_data

PulseData& Endocrine::m_data
protected

◆ m_dt_s

double Endocrine::m_dt_s
protected

◆ m_insulinMolarMass_g_Per_mol

double Endocrine::m_insulinMolarMass_g_Per_mol
protected

◆ m_lKidneyEpinephrine

SELiquidSubstanceQuantity* Endocrine::m_lKidneyEpinephrine = nullptr
protected

◆ m_rKidneyEpinephrine

SELiquidSubstanceQuantity* Endocrine::m_rKidneyEpinephrine = nullptr
protected

◆ m_splanchnicInsulin

SELiquidSubstanceQuantity* Endocrine::m_splanchnicInsulin = nullptr
protected

Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.