Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
disease_table.h
Go to the documentation of this file.
1 #pragma once
2 #include <map>
3 #include <string>
4 
6 #include "HealthGPS.Core/poco.h"
7 
8 namespace hgps {
9 
11 struct MeasureKey final {
12  static inline const std::string prevalence{"prevalence"};
13  static inline const std::string mortality{"mortality"};
14  static inline const std::string remission{"remission"};
15  static inline const std::string incidence{"incidence"};
16 };
17 
21  public:
23  DiseaseMeasure() = default;
24 
27  DiseaseMeasure(const std::map<int, double> &measures);
28 
31  std::size_t size() const noexcept;
32 
37  const double &at(int measure_id) const;
38 
43  const double &operator[](int measure_id) const;
44 
45  private:
46  std::map<int, double> measures_;
47 };
48 
51 class DiseaseTable {
52  public:
53  DiseaseTable() = delete;
54 
59  DiseaseTable(const core::DiseaseInfo &info, std::map<std::string, int> &&measures,
60  std::map<int, std::map<core::Gender, DiseaseMeasure>> &&data);
61 
64  const core::DiseaseInfo &info() const noexcept;
65 
68  std::size_t size() const noexcept;
69 
72  std::size_t rows() const noexcept;
73 
76  std::size_t cols() const noexcept;
77 
81  bool contains(const int age) const noexcept;
82 
85  const std::map<std::string, int> &measures() const noexcept;
86 
91  const int &at(const std::string &measure) const;
92 
97  const int &operator[](const std::string &measure) const;
98 
104  DiseaseMeasure &operator()(const int age, const core::Gender gender);
105 
111  const DiseaseMeasure &operator()(const int age, const core::Gender gender) const;
112 
113  private:
114  core::DiseaseInfo info_;
115  std::map<std::string, int> measures_;
116  std::map<int, std::map<core::Gender, DiseaseMeasure>> data_;
117 };
118 } // namespace hgps
Defines the disease measures collection data type.
Definition: disease_table.h:20
std::size_t size() const noexcept
Gets the size of the measure collection.
Definition: disease_table.cpp:11
const double & at(int measure_id) const
Gets the measure value by identifier.
Definition: disease_table.cpp:13
DiseaseMeasure()=default
Initialises a new instance of the DiseaseMeasure class.
Defines the disease measure table data type.
Definition: disease_table.h:51
Gender
Enumerates gender types.
Definition: forward_type.h:18
Top-level namespace for Health-GPS C++ API.
Definition: analysis_definition.h:8
@ info
General notification and progress message.
Global namespace.
Definition: jsonparser.h:88
Disease measures key mapping.
Definition: disease_table.h:11
static const std::string prevalence
Definition: disease_table.h:12
static const std::string mortality
Definition: disease_table.h:13
static const std::string remission
Definition: disease_table.h:14
static const std::string incidence
Definition: disease_table.h:15
Disease information structure.
Definition: disease.h:13