Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
poco.h
Go to the documentation of this file.
1 #pragma once
2 #include <map>
3 #include <optional>
4 #include <string>
5 #include <unordered_map>
6 #include <vector>
7 
8 namespace host::poco {
9 struct FileInfo {
10  std::string name;
11  std::string format;
12  std::string delimiter;
13  std::string encoding;
14  std::map<std::string, std::string> columns;
15 };
16 
17 struct SettingsInfo {
18  std::string country{};
19  float size_fraction{};
20  std::vector<int> age_range;
21 };
22 
23 struct SESInfo {
24  std::string function;
25  std::vector<double> parameters;
26 };
27 
28 struct BaselineInfo {
29  std::string format;
30  std::string delimiter;
31  std::string encoding;
32  std::map<std::string, std::string> file_names;
33 };
34 
36  std::string name;
37  short level{};
38  std::string proxy;
39  std::vector<double> range;
40 };
41 
42 struct ModellingInfo {
43  std::vector<RiskFactorInfo> risk_factors;
44  std::string dynamic_risk_factor;
45  std::unordered_map<std::string, std::string> risk_factor_models;
47 };
48 
49 struct OutputInfo {
50  unsigned int comorbidities{};
51  std::string folder{};
52  std::string file_name{};
53 };
54 
56  int start_time{};
57  std::optional<int> finish_time;
58 
59  std::string to_finish_time_str() const {
60  if (finish_time.has_value()) {
61  return std::to_string(finish_time.value());
62  }
63 
64  return "null";
65  }
66 };
67 
69  std::string risk_factor{};
70  double impact_value{};
71  unsigned int from_age{};
72  std::optional<unsigned int> to_age{};
73  std::string to_age_str() const {
74  if (to_age.has_value()) {
75  return std::to_string(to_age.value());
76  }
77 
78  return "null";
79  }
80 };
81 
83  std::string risk_factor{};
84  double value{};
85 };
86 
88  std::string identifier{};
90  std::vector<double> dynamics;
91  std::vector<double> coefficients;
92  std::vector<double> coverage_rates;
93  std::optional<unsigned int> coverage_cutoff_time{};
94  std::optional<unsigned int> child_cutoff_age{};
95  std::vector<PolicyAdjustmentInfo> adjustments;
96  std::string impact_type{};
97  std::vector<PolicyImpactInfo> impacts;
98 
99  std::string to_coverage_cutoff_time_str() const {
100  if (coverage_cutoff_time.has_value()) {
101  return std::to_string(coverage_cutoff_time.value());
102  }
103 
104  return "null";
105  }
106 
107  std::string to_child_cutoff_age_str() const {
108  if (child_cutoff_age.has_value()) {
109  return std::to_string(child_cutoff_age.value());
110  }
111 
112  return "null";
113  }
114 };
115 } // namespace host::poco
Plain old class object (POCO) types for loading configuration file.
Definition: jsonparser.cpp:3
Definition: poco.h:28
std::string encoding
Definition: poco.h:31
std::map< std::string, std::string > file_names
Definition: poco.h:32
std::string delimiter
Definition: poco.h:30
std::string format
Definition: poco.h:29
Definition: poco.h:9
std::string delimiter
Definition: poco.h:12
std::map< std::string, std::string > columns
Definition: poco.h:14
std::string encoding
Definition: poco.h:13
std::string format
Definition: poco.h:11
std::string name
Definition: poco.h:10
Definition: poco.h:42
std::vector< RiskFactorInfo > risk_factors
Definition: poco.h:43
std::string dynamic_risk_factor
Definition: poco.h:44
BaselineInfo baseline_adjustment
Definition: poco.h:46
std::unordered_map< std::string, std::string > risk_factor_models
Definition: poco.h:45
Definition: poco.h:49
std::string file_name
Definition: poco.h:52
unsigned int comorbidities
Definition: poco.h:50
std::string folder
Definition: poco.h:51
double value
Definition: poco.h:84
std::string risk_factor
Definition: poco.h:83
Definition: poco.h:68
std::optional< unsigned int > to_age
Definition: poco.h:72
unsigned int from_age
Definition: poco.h:71
double impact_value
Definition: poco.h:70
std::string to_age_str() const
Definition: poco.h:73
std::string risk_factor
Definition: poco.h:69
Definition: poco.h:55
int start_time
Definition: poco.h:56
std::string to_finish_time_str() const
Definition: poco.h:59
std::optional< int > finish_time
Definition: poco.h:57
Definition: poco.h:87
std::vector< PolicyImpactInfo > impacts
Definition: poco.h:97
PolicyPeriodInfo active_period
Definition: poco.h:89
std::string to_coverage_cutoff_time_str() const
Definition: poco.h:99
std::vector< double > coefficients
Definition: poco.h:91
std::optional< unsigned int > child_cutoff_age
Definition: poco.h:94
std::vector< double > coverage_rates
Definition: poco.h:92
std::optional< unsigned int > coverage_cutoff_time
Definition: poco.h:93
std::vector< double > dynamics
Definition: poco.h:90
std::string impact_type
Definition: poco.h:96
std::string identifier
Definition: poco.h:88
std::string to_child_cutoff_age_str() const
Definition: poco.h:107
std::vector< PolicyAdjustmentInfo > adjustments
Definition: poco.h:95
Definition: poco.h:35
std::vector< double > range
Definition: poco.h:39
short level
Definition: poco.h:37
std::string proxy
Definition: poco.h:38
std::string name
Definition: poco.h:36
Definition: poco.h:23
std::vector< double > parameters
Definition: poco.h:25
Definition: poco.h:17
float size_fraction
Definition: poco.h:19
std::vector< int > age_range
Definition: poco.h:20
std::string country
Definition: poco.h:18