Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
disease_definition.h
Go to the documentation of this file.
1#pragma once
2
5#include "disease_table.h"
6#include "gender_value.h"
7#include "relative_risk.h"
8
9namespace hgps {
10
12using ParameterLookup = const std::map<int, DoubleGenderValue>;
13
15struct DiseaseParameter final {
17 DiseaseParameter() = default;
18
24 DiseaseParameter(int data_time, const ParameterLookup &prevalence,
25 const ParameterLookup &survival, const ParameterLookup &deaths)
26 : time_year{data_time}, prevalence_distribution{prevalence}, survival_rate{survival},
27 death_weight{deaths}, max_time_since_onset{prevalence.rbegin()->first + 1} {}
28
30 int time_year{};
31
34
37
40
43};
44
46class DiseaseDefinition final {
47 public:
54 RelativeRiskLookupMap &&risk_factors,
56 : measures_table_{std::move(measures_table)}, relative_risk_diseases_{std::move(diseases)},
57 relative_risk_factors_{std::move(risk_factors)}, pif_data_{std::move(pif_data)} {}
58
66 RelativeRiskLookupMap &&risk_factors, DiseaseParameter &&parameter,
68 : measures_table_{std::move(measures_table)}, relative_risk_diseases_{std::move(diseases)},
69 relative_risk_factors_{std::move(risk_factors)}, parameters_{std::move(parameter)},
70 pif_data_{std::move(pif_data)} {}
71
74 const core::DiseaseInfo &identifier() const noexcept { return measures_table_.info(); }
75
78 const DiseaseTable &table() const noexcept { return measures_table_; }
79
83 return relative_risk_diseases_;
84 }
85
89 return relative_risk_factors_;
90 }
91
94 const DiseaseParameter &parameters() const noexcept { return parameters_; }
95
98 const hgps::input::PIFData &pif_data() const noexcept { return pif_data_; }
99
102 void set_pif_data(hgps::input::PIFData &&pif_data) { pif_data_ = std::move(pif_data); }
103
106 bool has_pif_data() const noexcept { return pif_data_.has_data(); }
107
108 private:
109 DiseaseTable measures_table_;
110 RelativeRiskTableMap relative_risk_diseases_;
111 RelativeRiskLookupMap relative_risk_factors_;
112 DiseaseParameter parameters_;
113 hgps::input::PIFData pif_data_;
114};
115} // namespace hgps
Implements the disease full definition data type.
Definition disease_definition.h:46
bool has_pif_data() const noexcept
Checks if PIF data is available for this disease.
Definition disease_definition.h:106
const DiseaseTable & table() const noexcept
Gets the disease measures table, e.g., prevalence, incidence, etc., rates.
Definition disease_definition.h:78
DiseaseDefinition(DiseaseTable &&measures_table, RelativeRiskTableMap &&diseases, RelativeRiskLookupMap &&risk_factors, DiseaseParameter &&parameter, hgps::input::PIFData &&pif_data=hgps::input::PIFData{})
Initialises a new instance of the DiseaseDefinition class for cancer diseases.
Definition disease_definition.h:65
const RelativeRiskTableMap & relative_risk_diseases() const noexcept
Gets the diseases relative risk to disease table.
Definition disease_definition.h:82
const RelativeRiskLookupMap & relative_risk_factors() const noexcept
Gets the risk factors relative risk to disease table.
Definition disease_definition.h:88
const core::DiseaseInfo & identifier() const noexcept
Gets the disease unique identifier.
Definition disease_definition.h:74
void set_pif_data(hgps::input::PIFData &&pif_data)
Sets the PIF data for this disease.
Definition disease_definition.h:102
DiseaseDefinition(DiseaseTable &&measures_table, RelativeRiskTableMap &&diseases, RelativeRiskLookupMap &&risk_factors, hgps::input::PIFData &&pif_data=hgps::input::PIFData{})
Initialises a new instance of the DiseaseDefinition class for standard diseases.
Definition disease_definition.h:53
const DiseaseParameter & parameters() const noexcept
Gets the cancer disease parameters.
Definition disease_definition.h:94
const hgps::input::PIFData & pif_data() const noexcept
Gets the PIF data for this disease.
Definition disease_definition.h:98
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
PIF data container for multiple scenarios.
Definition pif_data.h:74
bool has_data() const noexcept
Check if PIF data is available for any scenario.
Definition pif_data.h:91
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
const std::map< int, DoubleGenderValue > ParameterLookup
Disease definition parameter value lookup by age and gender.
Definition disease_definition.h:12
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 column_iterator.h:123
Defines the cancer disease parameters data type.
Definition disease_definition.h:15
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:24
DiseaseParameter()=default
Initialises a new instance of the DiseaseParameter data structure.
ParameterLookup prevalence_distribution
Cancer prevalence distribution.
Definition disease_definition.h:33
ParameterLookup death_weight
Cancer death weight.
Definition disease_definition.h:39
ParameterLookup survival_rate
Cancer survival rate.
Definition disease_definition.h:36
int time_year
The dataset time reference.
Definition disease_definition.h:30
int max_time_since_onset
The maximum time since onset for the cancer to be cured.
Definition disease_definition.h:42
Disease information structure.
Definition disease.h:14