Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
modelinput.h
Go to the documentation of this file.
1#pragma once
2
5#include <map>
6
8#include "mapping.h"
9#include "settings.h"
10
11#include <optional>
12
13namespace hgps {
14
16struct RunInfo {
18 unsigned int start_time{};
19
21 unsigned int stop_time{};
22
24 unsigned int sync_timeout_ms{};
25
27 std::optional<unsigned int> seed{};
28
31
33 unsigned int comorbidities{};
34
36 unsigned int policy_start_year{0};
37};
38
42 std::string fuction_name;
43
45 std::vector<double> parameters;
46};
47
50 public:
51 ModelInput() = delete;
52
65 std::vector<core::DiseaseInfo> diseases,
68 std::optional<hgps::input::IndividualIdTrackingConfig>
69 individual_id_tracking_config = std::nullopt);
70
73 const Settings &settings() const noexcept;
74
77 const core::DataTable &data() const noexcept;
78
81 unsigned int start_time() const noexcept;
82
85 unsigned int stop_time() const noexcept;
86
89 unsigned int sync_timeout_ms() const noexcept;
90
93 const std::optional<unsigned int> &seed() const noexcept;
94
97 const RunInfo &run() const noexcept;
98
101 const SESDefinition &ses_definition() const noexcept;
102
105 const HierarchicalMapping &risk_mapping() const noexcept;
106
109 const std::vector<core::DiseaseInfo> &diseases() const noexcept;
110
113 bool enable_income_analysis() const noexcept;
114
117 const hgps::input::PIFInfo &population_impact_fraction() const noexcept;
118
122 const hgps::input::ProjectRequirements &project_requirements() const noexcept;
123
126 const std::optional<hgps::input::IndividualIdTrackingConfig> &
127 individual_id_tracking_config() const noexcept;
128
129 private:
130 std::reference_wrapper<core::DataTable> input_data_;
131 Settings settings_;
132 RunInfo run_info_;
133 SESDefinition ses_definition_;
134 HierarchicalMapping risk_mapping_;
135 std::vector<core::DiseaseInfo> diseases_;
136 hgps::input::ProjectRequirements project_requirements_{};
137 bool enable_income_analysis_{
138 true}; // This is to set if results be categorised by income or not. Set to TRUE for now.
139 hgps::input::PIFInfo pif_info_;
140 std::optional<hgps::input::IndividualIdTrackingConfig> individual_id_tracking_config_{};
141};
142} // namespace hgps
Defines the hierarchical model mapping data type.
Definition mapping.h:61
Defines the Simulation model inputs data type.
Definition modelinput.h:49
const hgps::input::ProjectRequirements & project_requirements() const noexcept
Gets the per-project requirements (demographics, income, PA, risk factors, trend, two-stage)
Definition modelinput.cpp:48
const HierarchicalMapping & risk_mapping() const noexcept
Gets the Hierarchical risk factors model mappings definition.
Definition modelinput.cpp:35
ModelInput()=delete
const hgps::input::PIFInfo & population_impact_fraction() const noexcept
Gets the Population Impact Fraction configuration.
Definition modelinput.cpp:44
const std::optional< unsigned int > & seed() const noexcept
Gets the user custom seed to initialise the pseudo-number generator.
Definition modelinput.cpp:29
unsigned int sync_timeout_ms() const noexcept
Gets the scenarios data synchronisation timeout (milliseconds)
Definition modelinput.cpp:27
const SESDefinition & ses_definition() const noexcept
Gets the Socio-economic status (SES) model information.
Definition modelinput.cpp:33
const std::optional< hgps::input::IndividualIdTrackingConfig > & individual_id_tracking_config() const noexcept
Gets optional individual ID tracking config (MAHIMA: per-person CSV output).
Definition modelinput.cpp:53
const core::DataTable & data() const noexcept
Gets the risk factors model dataset.
Definition modelinput.cpp:21
bool enable_income_analysis() const noexcept
Gets whether income-based analysis is enabled.
Definition modelinput.cpp:39
const RunInfo & run() const noexcept
Gets the simulation run information.
Definition modelinput.cpp:31
const Settings & settings() const noexcept
Gets the simulation experiment settings definition.
Definition modelinput.cpp:19
unsigned int start_time() const noexcept
Gets the experiment start time.
Definition modelinput.cpp:23
unsigned int stop_time() const noexcept
Gets the experiment stop time.
Definition modelinput.cpp:25
const std::vector< core::DiseaseInfo > & diseases() const noexcept
Gets the collection of diseases to include in experiment.
Definition modelinput.cpp:37
Defines the simulation experiment settings data type.
Definition settings.h:9
Defines a Datatable for in memory data class.
Definition datatable.h:16
VerboseMode
Verbosity mode enumeration.
Definition forward_type.h:9
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
Global namespace.
Definition column_iterator.h:123
Defines the Simulation run information data type.
Definition modelinput.h:16
unsigned int start_time
Experiment start time.
Definition modelinput.h:18
unsigned int stop_time
Experiment stop time.
Definition modelinput.h:21
unsigned int sync_timeout_ms
Scenarios data synchronisation timeout in milliseconds.
Definition modelinput.h:24
core::VerboseMode verbosity
The application logging verbosity.
Definition modelinput.h:30
unsigned int comorbidities
Maximum number of comorbidities to include in results.
Definition modelinput.h:33
std::optional< unsigned int > seed
Custom seed to initialise the pseudo-number generator engine.
Definition modelinput.h:27
unsigned int policy_start_year
Calendar year when intervention policies start (e.g. 2024)
Definition modelinput.h:36
Defines the socio-economic status (SES) model data type.
Definition modelinput.h:40
std::string fuction_name
Socio-economic status (SES) function identification.
Definition modelinput.h:42
std::vector< double > parameters
The SES model function parameters.
Definition modelinput.h:45
Population Impact Fraction (PIF) configuration.
Definition poco.h:211