Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
disease.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
4 #include <string>
5 #include <vector>
6 
7 #include "forward_type.h"
8 #include "identifier.h"
9 
10 namespace hgps::core {
11 
13 struct DiseaseInfo {
16 
19 
21  std::string name{};
22 };
23 
28 inline bool operator<(const DiseaseInfo &lhs, const DiseaseInfo &rhs) {
29  return lhs.name < rhs.name;
30 }
31 
36 inline bool operator>(const DiseaseInfo &lhs, const DiseaseInfo &rhs) {
37  return lhs.name > rhs.name;
38 }
39 
41 struct DiseaseItem {
43  int with_age;
44 
47 
49  std::map<int, double> measures;
50 };
51 
53 struct DiseaseEntity {
56 
59 
61  std::map<std::string, int> measures;
62 
64  std::vector<DiseaseItem> items;
65 
68  bool empty() const noexcept { return measures.empty() || items.empty(); }
69 };
70 
75 
77  std::vector<std::string> columns;
78 
80  std::vector<std::vector<float>> rows;
81 
84  bool empty() const noexcept { return rows.empty(); }
85 };
86 
90  int at_time{};
91 
93  std::vector<LookupGenderValue> death_weight{};
94 
96  std::vector<LookupGenderValue> prevalence_distribution{};
97 
99  std::vector<LookupGenderValue> survival_rate{};
100 
103  bool empty() const noexcept {
104  return death_weight.empty() || prevalence_distribution.empty() || survival_rate.empty();
105  }
106 };
107 } // namespace hgps::core
Top-level namespace for Health-GPS Core C++ API.
Definition: analysis.h:7
bool operator>(const Country &lhs, const Country &rhs)
Greater-than operation for country data type.
Definition: country.h:25
DiseaseGroup
Enumerates supported diseases types.
Definition: forward_type.h:30
bool operator<(const Country &lhs, const Country &rhs)
Less-than operation for country data type.
Definition: country.h:31
Gender
Enumerates gender types.
Definition: forward_type.h:18
Cancer disease parameters per country data structure.
Definition: disease.h:88
std::vector< LookupGenderValue > prevalence_distribution
The cancer prevalence distribution.
Definition: disease.h:96
std::vector< LookupGenderValue > survival_rate
The cancer survival rates.
Definition: disease.h:99
bool empty() const noexcept
Checks whether the cancer parameters data is empty.
Definition: disease.h:103
std::vector< LookupGenderValue > death_weight
The cancer death weight values.
Definition: disease.h:93
int at_time
The reference time.
Definition: disease.h:90
Country ISO-3166 definition data structure.
Definition: country.h:7
Disease full definition data structure.
Definition: disease.h:53
bool empty() const noexcept
Checks whether the disease data definition is empty.
Definition: disease.h:68
Country country
The associate country.
Definition: disease.h:55
std::map< std::string, int > measures
Data measures lookup by name.
Definition: disease.h:61
DiseaseInfo info
Disease information.
Definition: disease.h:58
std::vector< DiseaseItem > items
The collection of data measure items.
Definition: disease.h:64
Disease information structure.
Definition: disease.h:13
DiseaseGroup group
The disease group.
Definition: disease.h:15
std::string name
Disease full name.
Definition: disease.h:21
Identifier code
Unique identifier.
Definition: disease.h:18
Disease data item structure.
Definition: disease.h:41
std::map< int, double > measures
Associated data measure values.
Definition: disease.h:49
Gender gender
Gender identifier.
Definition: disease.h:46
int with_age
Item age reference.
Definition: disease.h:43
Entity unique identifier data type.
Definition: identifier.h:17
Diseases relative risk effect table data structure.
Definition: disease.h:72
std::vector< std::vector< float > > rows
The table rows with data for each column.
Definition: disease.h:80
std::vector< std::string > columns
The table column identifiers.
Definition: disease.h:77
bool is_default_value
Value indicating whether the rows contain default value only.
Definition: disease.h:74
bool empty() const noexcept
Checks whether the relative risk table data is empty.
Definition: disease.h:84