Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
default_disease_model.h
Go to the documentation of this file.
1#pragma once
2
4#include "gender_table.h"
5#include "interfaces.h"
6#include "weight_model.h"
7
8namespace hgps {
9
11class DefaultDiseaseModel final : public DiseaseModel {
12 public:
14
19 DefaultDiseaseModel(DiseaseDefinition &definition, WeightModel &&classifier,
20 const core::IntegerInterval &age_range);
21
24 core::DiseaseGroup group() const noexcept override;
25
28 const core::Identifier &disease_type() const noexcept override;
29
36 void initialise_disease_status(RuntimeContext &context) override;
37
44
50 void update_disease_status(RuntimeContext &context) override;
51
55 double get_excess_mortality(const Person &person) const noexcept override;
56
57 private:
58 std::reference_wrapper<DiseaseDefinition> definition_;
59 WeightModel weight_classifier_;
60 DoubleAgeGenderTable average_relative_risk_;
61
71 DoubleAgeGenderTable calculate_average_relative_risk(RuntimeContext &context);
72
76 double calculate_relative_risk_for_diseases(const Person &person) const;
77
81 double calculate_relative_risk_for_risk_factors(const Person &person) const;
82
86 void update_remission_cases(RuntimeContext &context);
87
92 void update_incidence_cases(RuntimeContext &context);
93};
94
95} // namespace hgps
Defines the standard diseases (non-cancer) model data type.
Definition default_disease_model.h:11
void initialise_disease_status(RuntimeContext &context) override
Initialises the disease status of the population (from prevalence). Disease start_time = 0 disambigua...
Definition default_disease_model.cpp:28
void initialise_average_relative_risk(RuntimeContext &context) override
Initialise average relative risk for disease model on start year. The average relative risks from ris...
Definition default_disease_model.cpp:53
double get_excess_mortality(const Person &person) const noexcept override
Returns the excess mortality for a given person's age and sex.
Definition default_disease_model.cpp:100
void update_disease_status(RuntimeContext &context) override
Simulates disease remission and incidence cases of the population. For each year, this method calls t...
Definition default_disease_model.cpp:94
const core::Identifier & disease_type() const noexcept override
Returns the disease type identifier.
Definition default_disease_model.cpp:24
core::DiseaseGroup group() const noexcept override
Returns the disease group type (other).
Definition default_disease_model.cpp:22
Implements the disease full definition data type.
Definition disease_definition.h:46
Diseases model interface.
Definition interfaces.h:94
Defines the Simulation runtime context data type.
Definition runtime_context.h:22
Weight classification model polymorphic wrapper class.
Definition weight_model.h:12
DiseaseGroup
Enumerates supported diseases types.
Definition forward_type.h:30
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
Global namespace.
Definition column_iterator.h:123
Defines a virtual population person data type.
Definition person.h:39