Health-GPS
1.2.2.0
Global Health Policy Simulation model (Health-GPS)
|
Top-level namespace for Health-GPS C++ API. More...
Namespaces | |
core | |
Top-level namespace for Health-GPS Core C++ API. | |
data | |
Top-level namespace for Health-GPS Data C++ API. | |
detail | |
Internal details namespace for private data types and functions. | |
Classes | |
class | AnalysisDefinition |
Burden of diseases (BoD) analysis module definition data type. More... | |
class | AnalysisModule |
Implements the burden of diseases (BoD) analysis module. More... | |
class | BaselineScenario |
Defines the baseline scenario data type. More... | |
class | Channel |
Thread-safe communication channel data type. More... | |
class | DataSeries |
Defines the Simulation results container for time series data. More... | |
class | DefaultCancerModel |
Defines the cancer disease model data type. More... | |
class | DefaultDiseaseModel |
Defines the standard diseases (non-cancer) model data type. More... | |
struct | PopulationRecord |
Define the population record data type for the demographic dataset. More... | |
class | PopulationModule |
Implements the population demographic module data type. More... | |
class | DiseaseModule |
Defines the disease module container to hold disease models. More... | |
struct | DiseaseParameter |
Defines the cancer disease parameters data type. More... | |
class | DiseaseDefinition |
Implements the disease full definition data type. More... | |
struct | MeasureKey |
Disease measures key mapping. More... | |
class | DiseaseMeasure |
Defines the disease measures collection data type. More... | |
class | DiseaseTable |
Defines the disease measure table data type. More... | |
struct | FactorDynamicEquation |
Defines a factor linear regression equation. More... | |
struct | AgeGroupGenderEquation |
Define the age group dynamic equations data type. More... | |
class | EnergyBalanceHierarchicalModel |
Implements the dynamic hierarchical linear model (energy balance) type. More... | |
class | LiteHierarchicalModelDefinition |
Defines the lite hierarchical linear model data type. More... | |
class | EnergyBalanceModel |
Implements the energy balance model type. More... | |
class | EnergyBalanceModelDefinition |
Defines the energy balance model data type. More... | |
struct | ErrorEventMessage |
Implements the simulation error event message data type. More... | |
struct | EventHandlerIdentifier |
Defines the event handler identifier type. More... | |
class | EventSubscriber |
Defines the event subscriber interface type. More... | |
class | EventAggregator |
Defines the event aggregator interface type. More... | |
class | DefaultEventBus |
Implements the default memory-based simulation event bus type. More... | |
struct | EventMessage |
Simulation event messages interface. More... | |
class | EventSubscriberHandler |
Implements the event subscriber handler data type. More... | |
class | EventMessageVisitor |
Event message types visitor interface (double dispatcher) More... | |
class | Finally |
Define a scoped reset state data type. More... | |
struct | FiscalPolicyDefinition |
Fiscal policy intervention definition data type. More... | |
class | FiscalPolicyScenario |
Implements the fiscal policy intervention scenario. More... | |
struct | AdjustmentFactor |
Defined the risk factor adjustment data type. More... | |
struct | PolicyCoverage |
Define the policy population coverage data type. More... | |
struct | TransferCoefficient |
Define the transfer coefficient data type. More... | |
struct | FoodLabellingDefinition |
Food labelling intervention definition data type. More... | |
class | FoodLabellingScenario |
Implements the food labelling intervention scenario. More... | |
class | GenderTable |
Defines the gender column lookup table data type. More... | |
class | AgeGenderTable |
Defines the age and gender lookup table data type. More... | |
struct | GenderValue |
Defines a gender associated value data type. More... | |
class | HealthGPS |
Defines the simulation engine data type class. More... | |
struct | Coefficient |
Regression coefficients data type. More... | |
struct | LinearModel |
Defines a linear regression model data type. More... | |
struct | HierarchicalLevel |
Defines a hierarchical level data type. More... | |
class | StaticHierarchicalLinearModel |
Implements the static hierarchical linear model type. More... | |
class | HierarchicalLinearModelDefinition |
Defines the full hierarchical linear model data type. More... | |
struct | InfoEventMessage |
Implements the simulation information event message data type. More... | |
class | SimulationModule |
Simulation modules interface. More... | |
class | UpdatableModule |
Generic disease module interface to host multiple diseases model. More... | |
class | DiseaseHostModule |
Generic disease module interface to host multiple disease models. More... | |
class | RiskFactorHostModule |
Generic risk factors module interface to host hierarchical models. More... | |
class | DemographicModule |
Demographic prospects module interface. More... | |
class | HierarchicalLinearModel |
Hierarchical linear model interface. More... | |
class | RiskFactorModelDefinition |
Risk factor model definition interface. More... | |
class | DiseaseModel |
Diseases model interface. More... | |
class | InterventionScenario |
Health-GPS scripted intervention policy scenario interface. More... | |
class | DynamicInterventionScenario |
Health-GPS dynamic intervention policy scenario interface. More... | |
struct | PolicyImpact |
Defines the policy impact on risk factors data structure. More... | |
struct | PolicyInterval |
Defines the policy active interval. More... | |
struct | PolicyDynamic |
Defines the policy dynamic parameters. More... | |
struct | Birth |
Define the birth data type. More... | |
class | LifeTable |
Defines the population life table data type. More... | |
struct | LmsRecord |
Defines the LMS (lambda-mu-sigma) parameters record data type. More... | |
class | LmsDefinition |
LMS (lambda-mu-sigma) model definition data type. More... | |
class | LmsModel |
Implements the LMS (lambda-mu-sigma) model for children growth. More... | |
class | Map2d |
Defines the two-dimensional map (lookup table) data type. More... | |
struct | FactorRange |
Defines the risk factor allowed range data type. More... | |
class | MappingEntry |
Defines risk factor mapping entry data type. More... | |
class | HierarchicalMapping |
Defines the hierarchical model mapping data type. More... | |
struct | MarketingDynamicDefinition |
Dynamic marketing intervention definition data type. More... | |
class | MarketingDynamicScenario |
Implements the dynamic marketing regulation intervention scenario. More... | |
struct | MarketingPolicyDefinition |
Marketing intervention definition data type. More... | |
class | MarketingPolicyScenario |
Implements the marketing regulation intervention scenario. More... | |
struct | ResultByGender |
Defines the measure by gender result data type. More... | |
struct | DALYsIndicator |
Defines the DALYs indicator result data type. More... | |
struct | ModelResult |
Defines the model results data type. More... | |
struct | RunInfo |
Defines the Simulation run information data type. More... | |
struct | SESDefinition |
Defines the socio-economic status (SES) model data type. More... | |
class | ModelInput |
Defines the Simulation model inputs data type. More... | |
class | ModelRunner |
Defines the simulation executive data type class. More... | |
class | SimulationModuleFactory |
Defines the SimulationModule factory data type. More... | |
class | MonotonicVector |
Defines a monotonic vector container type. More... | |
class | MTRandom32 |
Mersenne Twister random number generator algorithm. More... | |
struct | Disease |
Defines the disease history data type. More... | |
struct | Person |
Defines a virtual population person data type. More... | |
struct | PhysicalActivityDefinition |
Physical activity intervention definition data type. More... | |
class | PhysicalActivityScenario |
Implements the physical activity regulation intervention scenario. More... | |
class | Population |
Defines the virtual population data type. More... | |
class | Random |
General purpose Random number generator algorithms. More... | |
class | RandomBitGenerator |
Pseudo-random number generator algorithm interface. More... | |
class | RelativeRiskLookup |
Defines the relative risk factors lookup data type. More... | |
struct | RelativeRisk |
Defines the relative risk factors data type. More... | |
class | Repository |
Define the data repository interface for input datasets and back-end storage. More... | |
class | CachedRepository |
Implements the cached data repository for input datasets and back-end storage. More... | |
struct | ResultEventMessage |
Implements the simulation results event message data type. More... | |
class | RiskFactorModule |
Defines the risk factors module container to hold hierarchical linear models. More... | |
class | RiskfactorAdjustmentModel |
Defines the baseline risk factors adjustment model. More... | |
struct | BaselineAdjustment |
Defines the risk factor baseline adjustment data type. More... | |
struct | FirstMoment |
Defines the first statistical moment type. More... | |
struct | RunnerEventMessage |
Implements the simulation executive event message data type. More... | |
class | RuntimeContext |
Defines the Simulation runtime context data type. More... | |
class | RuntimeMetric |
Defines the Simulation run-time metrics container data type. More... | |
class | Scenario |
Health-GPS simulation scenario interface. More... | |
class | SESNoiseModule |
Implements the socio-economic status (SES) module. More... | |
class | Settings |
Defines the simulation experiment settings data type. More... | |
struct | SimplePolicyDefinition |
Simple intervention policy definition data type. More... | |
class | SimplePolicyScenario |
Defines the simple development intervention scenario. More... | |
class | Simulation |
Defines the simulation class interface. More... | |
struct | SimulationDefinition |
Simulation experiment definition data type. More... | |
class | SyncMessage |
Scenario data synchronisation message data type. More... | |
class | SyncDataMessage |
Implements a synchronisation message with payload. More... | |
struct | TwoStepValue |
Defines a two step value data type. More... | |
class | UnivariateVisitor |
Implements an core::UnivariateSummary visitor for core::DataTable columns. More... | |
class | WeightModel |
Weight classification model polymorphic wrapper class. More... | |
Typedefs | |
using | ResidualMortalityMessage = SyncDataMessage< GenderTable< int, double > > |
Defines the residual mortality synchronisation message. More... | |
using | NetImmigrationMessage = SyncDataMessage< IntegerAgeGenderTable > |
Defines the net immigration synchronisation message. More... | |
using | BaselineAdjustmentMessage = SyncDataMessage< FactorAdjustmentTable > |
Defines the baseline risk factors adjustment synchronisation message. More... | |
using | ParameterLookup = const std::map< int, DoubleGenderValue > |
Disease definition parameter value lookup by age and gender. More... | |
using | IntegerAgeGenderTable = AgeGenderTable< int > |
Age and Gender lookup table for integer values. More... | |
using | FloatAgeGenderTable = AgeGenderTable< float > |
Age and Gender lookup table for single precision floating-point values. More... | |
using | DoubleAgeGenderTable = AgeGenderTable< double > |
Age and Gender lookup table for double precision floating-point values. More... | |
using | IntegerGenderValue = GenderValue< int > |
Gender value for integer value. More... | |
using | FloatGenderValue = GenderValue< float > |
Gender value for single precision floating-point value. More... | |
using | DoubleGenderValue = GenderValue< double > |
Gender value for double precision floating-point value. More... | |
template<typename T > | |
using | case_insensitive_map = std::map< std::string, T, core::case_insensitive::comparator > |
Defines a map template with case insensitive string keys and type. More... | |
using | Mortality = GenderValue< float > |
Mortality by gender. More... | |
using | LmsDataset = std::map< unsigned int, std::map< core::Gender, LmsRecord > > |
Defines the LMS (lambda-mu-sigma) model dataset. More... | |
using | ElapsedTime = std::chrono::duration< double, std::milli > |
using | RelativeRiskTableMap = std::map< core::Identifier, FloatAgeGenderTable > |
Defines the relative risk factor table type. More... | |
using | RelativeRiskLookupMap = std::map< core::Identifier, std::map< core::Gender, RelativeRiskLookup > > |
Defines the relative risk factor lookup type. More... | |
using | FactorAdjustmentTable = Map2d< core::Gender, core::Identifier, std::vector< double > > |
Defines the risk factors adjustment table type. More... | |
using | SyncChannel = Channel< std::unique_ptr< SyncMessage > > |
Scenario data synchronisation channel type. More... | |
Enumerations | |
enum class | EventType : uint8_t { runner , info , result , error } |
Event Message type enumeration. More... | |
enum class | FiscalImpactType : uint8_t { pessimist , optimist } |
Health GPS policy impact types enumeration. More... | |
enum class | ModelAction { start , update , stop } |
Enumerates simulation model actions. More... | |
enum class | SimulationModuleType : uint8_t { RiskFactor , SES , Demographic , Disease , Analysis } |
Health GPS simulation modules types enumeration. More... | |
enum class | HierarchicalModelType : uint8_t { Static , Dynamic } |
Health GPS risk factor module types enumeration. More... | |
enum class | DiseaseStatus : uint8_t { free , active } |
Disease status enumeration. More... | |
enum class | RunnerAction { start , run_begin , cancelled , run_end , finish } |
Enumerates the simulation executive actions. More... | |
enum class | ScenarioType : uint8_t { baseline , intervention } |
Health GPS policy scenario types enumeration. More... | |
enum class | PolicyImpactType : uint8_t { absolute , relative } |
Health GPS policy impact types enumeration. More... | |
enum class | WeightCategory : uint8_t { normal , overweight , obese } |
Enumerates the Person weight categories. More... | |
Functions | |
std::unique_ptr< AnalysisModule > | build_analysis_module (Repository &repository, const ModelInput &config) |
Builds a new instance of the AnalysisModule using the given data infrastructure. More... | |
std::unique_ptr< PopulationModule > | build_population_module (Repository &repository, const ModelInput &config) |
Builds a new instance of the PopulationModule using the given data infrastructure. More... | |
std::unique_ptr< DiseaseModule > | build_disease_module (Repository &repository, const ModelInput &config) |
Builds a new instance of the DiseaseModule using the given data infrastructure. More... | |
std::map< core::DiseaseGroup, detail::DiseaseModelBuilder > | get_default_disease_model_registry () |
Create the default disease model builder registry for disease group. More... | |
template<typename F > | |
Finally< F > | make_finally (F &&f) |
Makes a finally instance. More... | |
FiscalImpactType | parse_fiscal_impact_type (std::string impact_type) |
template<core::Numerical TYPE> | |
GenderTable< int, TYPE > | create_integer_gender_table (const core::IntegerInterval &rows_range) |
Creates an instance of the gender lookup table for integer rows breakpoints value. More... | |
template<core::Numerical TYPE> | |
AgeGenderTable< TYPE > | create_age_gender_table (const core::IntegerInterval &age_range) |
Creates an instance of the age and gender lookup table. More... | |
bool | operator> (const MappingEntry &lhs, const MappingEntry &rhs) |
bool | operator< (const MappingEntry &lhs, const MappingEntry &rhs) |
template<core::Numerical TYPE> | |
bool | is_strict_monotonic (const std::vector< TYPE > &values) noexcept |
Determine whether a vector data is strict monotonic. More... | |
std::unique_ptr< RiskFactorModule > | build_risk_factor_module (Repository &repository, [[maybe_unused]] const ModelInput &config) |
std::unique_ptr< RiskFactorModule > | build_risk_factor_module (Repository &repository, const ModelInput &config) |
std::unique_ptr< SESNoiseModule > | build_ses_noise_module ([[maybe_unused]] Repository &repository, const ModelInput &config) |
std::unique_ptr< SESNoiseModule > | build_ses_noise_module (Repository &repository, const ModelInput &config) |
Builds a new instance of the SESNoiseModule using the given data infrastructure. More... | |
SimulationModuleFactory | get_default_simulation_module_factory (Repository &manager) |
Create the default simulation modules factory for production usage. More... | |
std::string | weight_category_to_string (WeightCategory value) |
Converts a WeightCategory to a string representation. More... | |
Variables | |
constexpr double | DALY_UNITS = 100'000.0 |
DALYs result unit conversion constant. More... | |
constexpr int | FOP_NO_EFFECT = -2 |
Food labelling: the entity qualify but is not affected by the policy identifier. More... | |
const core::Identifier | InterceptKey = core::Identifier{"intercept"} |
The constant in the regression model presentation identifier. More... | |
constexpr int | MARKETING_NEVER = -1 |
Dynamic marketing: Never applied the intervention status identifier. More... | |
constexpr int | MARKETING_FORMER = -2 |
Dynamic marketing: Previous applied the intervention status identifier. More... | |
constexpr int | PA_CHILD_EFFECT = -1 |
Physical activity: children effect identifier. More... | |
constexpr int | PA_NO_EFFECT = -2 |
Physical activity: no-effect identifier. More... | |
Top-level namespace for Health-GPS C++ API.
using hgps::BaselineAdjustmentMessage = typedef SyncDataMessage<FactorAdjustmentTable> |
Defines the baseline risk factors adjustment synchronisation message.
using hgps::case_insensitive_map = typedef std::map<std::string, T, core::case_insensitive::comparator> |
Defines a map template with case insensitive string keys and type.
T | The map value data type |
using hgps::DoubleAgeGenderTable = typedef AgeGenderTable<double> |
Age and Gender lookup table for double precision floating-point values.
using hgps::DoubleGenderValue = typedef GenderValue<double> |
Gender value for double precision floating-point value.
using hgps::ElapsedTime = typedef std::chrono::duration<double, std::milli> |
using hgps::FactorAdjustmentTable = typedef Map2d<core::Gender, core::Identifier, std::vector<double> > |
Defines the risk factors adjustment table type.
using hgps::FloatAgeGenderTable = typedef AgeGenderTable<float> |
Age and Gender lookup table for single precision floating-point values.
using hgps::FloatGenderValue = typedef GenderValue<float> |
Gender value for single precision floating-point value.
using hgps::IntegerAgeGenderTable = typedef AgeGenderTable<int> |
Age and Gender lookup table for integer values.
using hgps::IntegerGenderValue = typedef GenderValue<int> |
Gender value for integer value.
using hgps::LmsDataset = typedef std::map<unsigned int, std::map<core::Gender, LmsRecord> > |
Defines the LMS (lambda-mu-sigma) model dataset.
using hgps::Mortality = typedef GenderValue<float> |
Mortality by gender.
using hgps::NetImmigrationMessage = typedef SyncDataMessage<IntegerAgeGenderTable> |
Defines the net immigration synchronisation message.
using hgps::ParameterLookup = typedef const std::map<int, DoubleGenderValue> |
Disease definition parameter value lookup by age and gender.
using hgps::RelativeRiskLookupMap = typedef std::map<core::Identifier, std::map<core::Gender, RelativeRiskLookup> > |
Defines the relative risk factor lookup type.
using hgps::RelativeRiskTableMap = typedef std::map<core::Identifier, FloatAgeGenderTable> |
Defines the relative risk factor table type.
using hgps::ResidualMortalityMessage = typedef SyncDataMessage<GenderTable<int, double> > |
Defines the residual mortality synchronisation message.
using hgps::SyncChannel = typedef Channel<std::unique_ptr<SyncMessage> > |
Scenario data synchronisation channel type.
|
strong |
Disease status enumeration.
Enumerator | |
---|---|
free | Declared free from condition. |
active | Current with the condition. |
|
strong |
Event Message type enumeration.
Enumerator | |
---|---|
runner | Simulation executive message. |
info | General notification and progress message. |
result | Simulation result message. |
error | General error reporting message. |
|
strong |
|
strong |
|
strong |
Enumerates simulation model actions.
Enumerator | |
---|---|
start | Simulation has started, time = start. |
update | Simulation time has updated, time = time + 1. |
stop | Simulation has stopped, time = end. |
|
strong |
|
strong |
Enumerates the simulation executive actions.
Enumerator | |
---|---|
start | Start simulation experiment. |
run_begin | Begin a new simulation run. |
cancelled | Simulation experiment has been cancelled. |
run_end | End a simulation run. |
finish | Finish simulation experiment. |
|
strong |
|
strong |
Health GPS simulation modules types enumeration.
Enumerator | |
---|---|
RiskFactor | Risk factor module. |
SES | Socio-economic status module. |
Demographic | Demographic module. |
Disease | Disease module coordinator. |
Analysis | Statistical analysis module, e.g. BoD module. |
|
strong |
Enumerates the Person weight categories.
Enumerator | |
---|---|
normal | Normal body fat weight. |
overweight | Above a weight considered normal or desirable. |
obese | A person who has excess body fat. |
std::unique_ptr< AnalysisModule > hgps::build_analysis_module | ( | Repository & | repository, |
const ModelInput & | config | ||
) |
Builds a new instance of the AnalysisModule using the given data infrastructure.
repository | The data repository instance |
config | The model inputs instance |
std::logic_error | for invalid disease analysis definition |
std::unique_ptr< DiseaseModule > hgps::build_disease_module | ( | Repository & | repository, |
const ModelInput & | config | ||
) |
Builds a new instance of the DiseaseModule using the given data infrastructure.
repository | The data repository instance |
config | The model inputs instance |
std::out_of_range | for unknown disease definition identifier |
std::unique_ptr< PopulationModule > hgps::build_population_module | ( | Repository & | repository, |
const ModelInput & | config | ||
) |
Builds a new instance of the PopulationModule using the given data infrastructure.
repository | The data repository instance |
config | The model inputs instance |
std::unique_ptr<RiskFactorModule> hgps::build_risk_factor_module | ( | Repository & | repository, |
[[maybe_unused] ] const ModelInput & | config | ||
) |
std::unique_ptr<RiskFactorModule> hgps::build_risk_factor_module | ( | Repository & | repository, |
const ModelInput & | config | ||
) |
std::unique_ptr<SESNoiseModule> hgps::build_ses_noise_module | ( | [[maybe_unused] ] Repository & | repository, |
const ModelInput & | config | ||
) |
std::unique_ptr<SESNoiseModule> hgps::build_ses_noise_module | ( | Repository & | repository, |
const ModelInput & | config | ||
) |
Builds a new instance of the SESNoiseModule using the given data infrastructure.
repository | The data repository instance |
config | The model inputs instance |
std::out_of_range | for unknown disease definition identifier |
AgeGenderTable<TYPE> hgps::create_age_gender_table | ( | const core::IntegerInterval & | age_range | ) |
Creates an instance of the age and gender lookup table.
TYPE | The values data type |
age_range | The age breakpoints range |
std::out_of_range | for age range 'lower' of negative value or less than the 'upper' value |
GenderTable<int, TYPE> hgps::create_integer_gender_table | ( | const core::IntegerInterval & | rows_range | ) |
Creates an instance of the gender lookup table for integer rows breakpoints value.
TYPE | The cell value type |
rows_range | The rows breakpoints range |
std::out_of_range | for rows range 'lower' of negative value or less than the 'upper' value |
std::map<core::DiseaseGroup, detail::DiseaseModelBuilder> hgps::get_default_disease_model_registry | ( | ) |
Create the default disease model builder registry for disease group.
SimulationModuleFactory hgps::get_default_simulation_module_factory | ( | Repository & | manager | ) |
Create the default simulation modules factory for production usage.
manager | the data repository manger to be used to create the modules. |
|
noexcept |
Determine whether a vector data is strict monotonic.
TYPE | The vector data type |
values | The vector value |
Finally<F> hgps::make_finally | ( | F && | f | ) |
Makes a finally instance.
F | Functor type |
f | The functor instance |
|
inline |
|
inline |
FiscalImpactType hgps::parse_fiscal_impact_type | ( | std::string | impact_type | ) |
std::string hgps::weight_category_to_string | ( | WeightCategory | value | ) |
Converts a WeightCategory to a string representation.
value | Enumeration value to convert |
std::invalid_argument | for unknown weight category value. |
|
inlineconstexpr |
DALYs result unit conversion constant.
|
inlineconstexpr |
Food labelling: the entity qualify but is not affected by the policy identifier.
|
inline |
The constant in the regression model presentation identifier.
|
inlineconstexpr |
Dynamic marketing: Previous applied the intervention status identifier.
|
inlineconstexpr |
Dynamic marketing: Never applied the intervention status identifier.
|
inlineconstexpr |
Physical activity: children effect identifier.
|
inlineconstexpr |
Physical activity: no-effect identifier.