Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
modelinput.h
Go to the documentation of this file.
1 #pragma once
2 
5 #include <map>
6 
7 #include "mapping.h"
8 #include "settings.h"
9 
10 namespace hgps {
11 
13 struct RunInfo {
15  unsigned int start_time{};
16 
18  unsigned int stop_time{};
19 
21  unsigned int sync_timeout_ms{};
22 
24  std::optional<unsigned int> seed{};
25 
28 
30  unsigned int comorbidities{};
31 };
32 
34 struct SESDefinition {
36  std::string fuction_name;
37 
39  std::vector<double> parameters;
40 };
41 
43 class ModelInput {
44  public:
45  ModelInput() = delete;
46 
54  ModelInput(core::DataTable &data, const Settings &settings, const RunInfo &run_info,
55  const SESDefinition &ses_info, const HierarchicalMapping &risk_mapping,
56  const std::vector<core::DiseaseInfo> &diseases);
57 
60  const Settings &settings() const noexcept;
61 
64  const core::DataTable &data() const noexcept;
65 
68  const unsigned int &start_time() const noexcept;
69 
72  const unsigned int &stop_time() const noexcept;
73 
76  const unsigned int &sync_timeout_ms() const noexcept;
77 
80  const std::optional<unsigned int> &seed() const noexcept;
81 
84  const RunInfo &run() const noexcept;
85 
88  const SESDefinition &ses_definition() const noexcept;
89 
92  const HierarchicalMapping &risk_mapping() const noexcept;
93 
96  const std::vector<core::DiseaseInfo> &diseases() const noexcept;
97 
98  private:
99  std::reference_wrapper<core::DataTable> input_data_;
100  Settings settings_;
101  RunInfo run_info_;
102  SESDefinition ses_definition_;
103  HierarchicalMapping risk_mapping_;
104  std::vector<core::DiseaseInfo> diseases_;
105 };
106 } // namespace hgps
Defines the hierarchical model mapping data type.
Definition: mapping.h:128
Defines the Simulation model inputs data type.
Definition: modelinput.h:43
const unsigned int & stop_time() const noexcept
Gets the experiment stop time.
Definition: modelinput.cpp:17
const HierarchicalMapping & risk_mapping() const noexcept
Gets the Hierarchical risk factors model mappings definition.
Definition: modelinput.cpp:29
ModelInput()=delete
const unsigned int & start_time() const noexcept
Gets the experiment start time.
Definition: modelinput.cpp:15
const std::optional< unsigned int > & seed() const noexcept
Gets the user custom seed to initialise the pseudo-number generator.
Definition: modelinput.cpp:23
const SESDefinition & ses_definition() const noexcept
Gets the Socio-economic status (SES) model information.
Definition: modelinput.cpp:27
const core::DataTable & data() const noexcept
Gets the risk factors model dataset.
Definition: modelinput.cpp:13
const unsigned int & sync_timeout_ms() const noexcept
Gets the scenarios data synchronisation timeout (milliseconds)
Definition: modelinput.cpp:19
const RunInfo & run() const noexcept
Gets the simulation run information.
Definition: modelinput.cpp:25
const Settings & settings() const noexcept
Gets the simulation experiment settings definition.
Definition: modelinput.cpp:11
const std::vector< core::DiseaseInfo > & diseases() const noexcept
Gets the collection of diseases to include in experiment.
Definition: modelinput.cpp:31
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 C++ API.
Definition: analysis_definition.h:8
Global namespace.
Definition: jsonparser.h:88
Defines the Simulation run information data type.
Definition: modelinput.h:13
unsigned int start_time
Experiment start time.
Definition: modelinput.h:15
unsigned int stop_time
Experiment stop time.
Definition: modelinput.h:18
unsigned int sync_timeout_ms
Scenarios data synchronisation timeout in milliseconds.
Definition: modelinput.h:21
core::VerboseMode verbosity
The application logging verbosity.
Definition: modelinput.h:27
unsigned int comorbidities
Maximum number of comorbidities to include in results.
Definition: modelinput.h:30
std::optional< unsigned int > seed
Custom seed to initialise the pseudo-number generator engine.
Definition: modelinput.h:24
Defines the socio-economic status (SES) model data type.
Definition: modelinput.h:34
std::string fuction_name
Socio-economic status (SES) function identification.
Definition: modelinput.h:36
std::vector< double > parameters
The SES model function parameters.
Definition: modelinput.h:39