63 virtual const
std::
string &
name() const noexcept = 0;
83 virtual std::size_t
size() const noexcept = 0;
88 virtual
bool contains(const core::Identifier &disease_id) const noexcept = 0;
94 virtual
double get_excess_mortality(const core::Identifier &disease_id,
95 const
Person &entity) const noexcept = 0;
103 virtual std::size_t
size() const noexcept = 0;
126 virtual const std::map<int, PopulationRecord> &
148 virtual
std::
string name() const noexcept = 0;
166 virtual std::unique_ptr<HierarchicalLinearModel>
create_model()
const = 0;
181 virtual const core::Identifier &disease_type() const noexcept = 0;
198 virtual
double get_excess_mortality(const
Person &entity) const noexcept = 0;
Demographic prospects module interface.
Definition: interfaces.h:116
virtual const std::map< int, PopulationRecord > & get_population_distribution(int time_year) const =0
Gets the population age distribution at a specific point in time.
virtual void update_population(RuntimeContext &context, const DiseaseHostModule &disease_host)=0
Updates the virtual population status.
virtual std::size_t get_total_population_size(int time_year) const noexcept=0
Gets the total population at a specific point in time.
Generic disease module interface to host multiple disease models.
Definition: interfaces.h:79
virtual std::size_t size() const noexcept=0
Gets the number of diseases model hosted.
Diseases model interface.
Definition: interfaces.h:170
virtual core::DiseaseGroup group() const noexcept=0
Gets the disease group.
virtual ~DiseaseModel()=default
Destroys a DiseaseModel instance.
Hierarchical linear model interface.
Definition: interfaces.h:137
virtual ~HierarchicalLinearModel()=default
Destroys a HierarchicalLinearModel instance.
virtual HierarchicalModelType type() const noexcept=0
Gets the model type identifier.
Generic risk factors module interface to host hierarchical models.
Definition: interfaces.h:99
virtual std::size_t size() const noexcept=0
Gets the number of diseases model hosted.
Risk factor model definition interface.
Definition: interfaces.h:160
virtual std::unique_ptr< HierarchicalLinearModel > create_model() const =0
Creates a new risk factor model from this definition.
virtual ~RiskFactorModelDefinition()=default
Destroys a RiskFactorModelDefinition instance.
Defines the Simulation runtime context data type.
Definition: runtime_context.h:21
Simulation modules interface.
Definition: interfaces.h:52
virtual ~SimulationModule()=default
Destroys a SimulationModule instance.
virtual void initialise_population(RuntimeContext &context)=0
Initialises the virtual population.
virtual const std::string & name() const noexcept=0
Gets the module name.
virtual SimulationModuleType type() const noexcept=0
Gets the module type identifier.
Generic disease module interface to host multiple diseases model.
Definition: interfaces.h:71
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 C++ API.
Definition: analysis_definition.h:8
HierarchicalModelType
Health GPS risk factor module types enumeration.
Definition: interfaces.h:29
@ Static
Static hierarchical model.
@ Dynamic
Dynamic hierarchical model.
SimulationModuleType
Health GPS simulation modules types enumeration.
Definition: interfaces.h:11
@ Demographic
Demographic module.
@ Analysis
Statistical analysis module, e.g. BoD module.
@ SES
Socio-economic status module.
@ RiskFactor
Risk factor module.
@ Disease
Disease module coordinator.
std::map< std::string, T, core::case_insensitive::comparator > case_insensitive_map
Defines a map template with case insensitive string keys and type.
Definition: interfaces.h:40
Global namespace.
Definition: jsonparser.h:88
Defines a virtual population person data type.
Definition: person.h:40
Define the population record data type for the demographic dataset.
Definition: demographic.h:14