Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
riskfactor.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "hierarchical_model.h"
4 #include "modelinput.h"
5 #include "repository.h"
7 
8 namespace hgps {
9 
11 class RiskFactorModule final : public RiskFactorHostModule {
12  public:
13  RiskFactorModule() = delete;
14 
22  std::map<HierarchicalModelType, std::unique_ptr<HierarchicalLinearModel>> &&models,
23  RiskfactorAdjustmentModel &&adjustments);
24 
25  SimulationModuleType type() const noexcept override;
26 
27  const std::string &name() const noexcept override;
28 
29  std::size_t size() const noexcept override;
30 
31  bool contains(const HierarchicalModelType &modelType) const noexcept override;
32 
33  HierarchicalLinearModel &at(const HierarchicalModelType &model_type) const;
34 
35  void initialise_population(RuntimeContext &context) override;
36 
37  void update_population(RuntimeContext &context) override;
38 
39  void apply_baseline_adjustments(RuntimeContext &context) override;
40 
41  private:
42  std::map<HierarchicalModelType, std::unique_ptr<HierarchicalLinearModel>> models_;
43  RiskfactorAdjustmentModel adjustment_;
44  std::string name_{"RiskFactor"};
45 };
46 
47 std::unique_ptr<RiskFactorModule> build_risk_factor_module(Repository &repository,
48  const ModelInput &config);
49 } // namespace hgps
Hierarchical linear model interface.
Definition: interfaces.h:137
Defines the Simulation model inputs data type.
Definition: modelinput.h:43
Define the data repository interface for input datasets and back-end storage.
Definition: repository.h:18
Generic risk factors module interface to host hierarchical models.
Definition: interfaces.h:99
Defines the risk factors module container to hold hierarchical linear models.
Definition: riskfactor.h:11
void initialise_population(RuntimeContext &context) override
Initialises the virtual population.
Definition: riskfactor.cpp:45
void update_population(RuntimeContext &context) override
Updates the virtual population status.
Definition: riskfactor.cpp:50
SimulationModuleType type() const noexcept override
Gets the module type identifier.
Definition: riskfactor.cpp:29
HierarchicalLinearModel & at(const HierarchicalModelType &model_type) const
Definition: riskfactor.cpp:41
void apply_baseline_adjustments(RuntimeContext &context) override
Apply baseline risk factor adjustments to population.
Definition: riskfactor.cpp:60
const std::string & name() const noexcept override
Gets the module name.
Definition: riskfactor.cpp:33
std::size_t size() const noexcept override
Gets the number of diseases model hosted.
Definition: riskfactor.cpp:35
bool contains(const HierarchicalModelType &modelType) const noexcept override
Indicates whether the host contains a model of type.
Definition: riskfactor.cpp:37
Defines the baseline risk factors adjustment model.
Definition: riskfactor_adjustment.h:11
Defines the Simulation runtime context data type.
Definition: runtime_context.h:21
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
SimulationModuleType
Health GPS simulation modules types enumeration.
Definition: interfaces.h:11
std::unique_ptr< RiskFactorModule > build_risk_factor_module(Repository &repository, [[maybe_unused]] const ModelInput &config)
Definition: riskfactor.cpp:65
Global namespace.
Definition: jsonparser.h:88