Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
interfaces.h
Go to the documentation of this file.
1#pragma once
2
5
6#include "person.h"
7#include "risk_factor_model.h"
8#include "runtime_context.h"
9
10namespace hgps {
11
13enum class SimulationModuleType : uint8_t {
16
18 SES,
19
22
24 Disease,
25
28};
29
32 public:
34 virtual ~SimulationModule() = default;
35
38 virtual SimulationModuleType type() const noexcept = 0;
39
42 virtual const std::string &name() const noexcept = 0;
43
46 virtual void initialise_population(RuntimeContext &context) = 0;
47};
48
51 public:
54 virtual void update_population(RuntimeContext &context) = 0;
55};
56
59 public:
62 virtual std::size_t size() const noexcept = 0;
63
67 virtual bool contains(const RiskFactorModelType &modelType) const noexcept = 0;
68};
69
76 PopulationRecord(int pop_age, float num_males, float num_females)
77 : age{pop_age}, males{num_males}, females{num_females} {}
78
80 int age{};
81
83 float males{};
84
86 float females{};
87
90 float total() const noexcept { return males + females; }
91};
92
95 public:
97 virtual ~DiseaseModel() = default;
98
101 virtual core::DiseaseGroup group() const noexcept = 0;
102
105 virtual const core::Identifier &disease_type() const noexcept = 0;
106
109 virtual void initialise_disease_status(RuntimeContext &context) = 0;
110
113 virtual void initialise_average_relative_risk(RuntimeContext &context) = 0;
114
117 virtual void update_disease_status(RuntimeContext &context) = 0;
118
122 virtual double get_excess_mortality(const Person &entity) const noexcept = 0;
123};
124
125} // namespace hgps
Diseases model interface.
Definition interfaces.h:94
virtual core::DiseaseGroup group() const noexcept=0
Gets the disease group.
virtual ~DiseaseModel()=default
Destroys a DiseaseModel instance.
Generic risk factors module interface to host risk factor models.
Definition interfaces.h:58
virtual std::size_t size() const noexcept=0
Gets the number of diseases model hosted.
Defines the Simulation runtime context data type.
Definition runtime_context.h:22
Simulation modules interface.
Definition interfaces.h:31
virtual ~SimulationModule()=default
Destroys a SimulationModule instance.
virtual void initialise_population(RuntimeContext &context)=0
Initialises the virtual population.
virtual SimulationModuleType type() const noexcept=0
Gets the module type identifier.
virtual const std::string & name() const noexcept=0
Gets the module name.
Generic disease module interface to host multiple diseases model.
Definition interfaces.h:50
virtual void update_population(RuntimeContext &context)=0
Updates the virtual population status.
DiseaseGroup
Enumerates supported diseases types.
Definition forward_type.h:30
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
RiskFactorModelType
Health GPS risk factor module types enumeration.
Definition risk_factor_model.h:12
SimulationModuleType
Health GPS simulation modules types enumeration.
Definition interfaces.h:13
@ Demographic
Demographic module.
@ Analysis
Statistical analysis module, e.g. BoD module.
@ SES
Socio-economic status module.
@ RiskFactor
Risk factor module.
Global namespace.
Definition column_iterator.h:123
Defines the disease history data type.
Definition person.h:20
Defines a virtual population person data type.
Definition person.h:39
Define the population record data type for the demographic dataset.
Definition interfaces.h:71
float total() const noexcept
Gets the total number at age.
Definition interfaces.h:90
PopulationRecord(int pop_age, float num_males, float num_females)
Initialise a new instance of the PopulationRecord structure.
Definition interfaces.h:76