Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
disease_definition.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "HealthGPS.Core/poco.h"
4 #include "disease_table.h"
5 #include "gender_value.h"
6 #include "relative_risk.h"
7 
8 namespace hgps {
9 
11 using ParameterLookup = const std::map<int, DoubleGenderValue>;
12 
14 struct DiseaseParameter final {
16  DiseaseParameter() = default;
17 
23  DiseaseParameter(int data_time, const ParameterLookup &prevalence,
24  const ParameterLookup &survival, const ParameterLookup &deaths)
25  : time_year{data_time}, prevalence_distribution{prevalence}, survival_rate{survival},
26  death_weight{deaths}, max_time_since_onset{prevalence.rbegin()->first + 1} {}
27 
29  int time_year{};
30 
33 
36 
39 
42 };
43 
45 class DiseaseDefinition final {
46  public:
51  DiseaseDefinition(DiseaseTable &&measures_table, RelativeRiskTableMap &&diseases,
52  RelativeRiskLookupMap &&risk_factors)
53  : measures_table_{std::move(measures_table)}, relative_risk_diseases_{std::move(diseases)},
54  relative_risk_factors_{std::move(risk_factors)}, parameters_{} {}
55 
61  DiseaseDefinition(DiseaseTable &&measures_table, RelativeRiskTableMap &&diseases,
62  RelativeRiskLookupMap &&risk_factors, DiseaseParameter &&parameter)
63  : measures_table_{std::move(measures_table)}, relative_risk_diseases_{std::move(diseases)},
64  relative_risk_factors_{std::move(risk_factors)}, parameters_{std::move(parameter)} {}
65 
68  const core::DiseaseInfo &identifier() const noexcept { return measures_table_.info(); }
69 
72  const DiseaseTable &table() const noexcept { return measures_table_; }
73 
76  const RelativeRiskTableMap &relative_risk_diseases() const noexcept {
77  return relative_risk_diseases_;
78  }
79 
82  const RelativeRiskLookupMap &relative_risk_factors() const noexcept {
83  return relative_risk_factors_;
84  }
85 
88  const DiseaseParameter &parameters() const noexcept { return parameters_; }
89 
90  private:
91  DiseaseTable measures_table_;
92  RelativeRiskTableMap relative_risk_diseases_;
93  RelativeRiskLookupMap relative_risk_factors_;
94  DiseaseParameter parameters_;
95 };
96 } // namespace hgps
Implements the disease full definition data type.
Definition: disease_definition.h:45
const DiseaseParameter & parameters() const noexcept
Gets the cancer disease parameters.
Definition: disease_definition.h:88
const RelativeRiskTableMap & relative_risk_diseases() const noexcept
Gets the diseases relative risk to disease table.
Definition: disease_definition.h:76
const core::DiseaseInfo & identifier() const noexcept
Gets the disease unique identifier.
Definition: disease_definition.h:68
DiseaseDefinition(DiseaseTable &&measures_table, RelativeRiskTableMap &&diseases, RelativeRiskLookupMap &&risk_factors)
Initialises a new instance of the DiseaseDefinition class for standard diseases.
Definition: disease_definition.h:51
DiseaseDefinition(DiseaseTable &&measures_table, RelativeRiskTableMap &&diseases, RelativeRiskLookupMap &&risk_factors, DiseaseParameter &&parameter)
Initialises a new instance of the DiseaseDefinition class for cancer diseases.
Definition: disease_definition.h:61
const RelativeRiskLookupMap & relative_risk_factors() const noexcept
Gets the risk factors relative risk to disease table.
Definition: disease_definition.h:82
const DiseaseTable & table() const noexcept
Gets the disease measures table, e.g., prevalence, incidence, etc., rates.
Definition: disease_definition.h:72
Defines the disease measure table data type.
Definition: disease_table.h:51
const core::DiseaseInfo & info() const noexcept
Gets the disease information.
Definition: disease_table.cpp:42
Top-level namespace for Health-GPS C++ API.
Definition: analysis_definition.h:8
const std::map< int, DoubleGenderValue > ParameterLookup
Disease definition parameter value lookup by age and gender.
Definition: disease_definition.h:11
std::map< core::Identifier, FloatAgeGenderTable > RelativeRiskTableMap
Defines the relative risk factor table type.
Definition: relative_risk.h:72
std::map< core::Identifier, std::map< core::Gender, RelativeRiskLookup > > RelativeRiskLookupMap
Defines the relative risk factor lookup type.
Definition: relative_risk.h:76
Global namespace.
Definition: jsonparser.h:88
Defines the cancer disease parameters data type.
Definition: disease_definition.h:14
DiseaseParameter(int data_time, const ParameterLookup &prevalence, const ParameterLookup &survival, const ParameterLookup &deaths)
Initialises a new instance of the DiseaseParameter data structure.
Definition: disease_definition.h:23
DiseaseParameter()=default
Initialises a new instance of the DiseaseParameter data structure.
ParameterLookup prevalence_distribution
Cancer prevalence distribution.
Definition: disease_definition.h:32
ParameterLookup death_weight
Cancer death weight.
Definition: disease_definition.h:38
ParameterLookup survival_rate
Cancer survival rate.
Definition: disease_definition.h:35
int time_year
The dataset time reference.
Definition: disease_definition.h:29
int max_time_since_onset
The maximum time since onset for the cancer to be cured.
Definition: disease_definition.h:41
Disease information structure.
Definition: disease.h:13