Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
datastore.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "interval.h"
4 #include "poco.h"
5 #include <optional>
6 #include <vector>
7 
8 namespace hgps::core {
9 
13 class Datastore {
14  public:
16  virtual ~Datastore() = default;
17 
20  virtual std::vector<Country> get_countries() const = 0;
21 
25  virtual std::optional<Country> get_country(std::string alpha) const = 0;
26 
31  virtual std::vector<PopulationItem>
33  const std::function<bool(const unsigned int &)> time_filter) const = 0;
34 
39  virtual std::vector<MortalityItem>
41  const std::function<bool(const unsigned int &)> time_filter) const = 0;
42 
45  virtual std::vector<DiseaseInfo> get_diseases() const = 0;
46 
50  virtual std::optional<DiseaseInfo> get_disease_info(Identifier code) const = 0;
51 
56  virtual DiseaseEntity get_disease(DiseaseInfo info, Country country) const = 0;
57 
63  DiseaseInfo target) const = 0;
64 
70  virtual RelativeRiskEntity
72  Identifier risk_factor_key) const = 0;
73 
79  Country country) const = 0;
80 
84  virtual DiseaseAnalysisEntity get_disease_analysis(const Country country) const = 0;
85 
90  virtual std::vector<BirthItem>
92  const std::function<bool(const unsigned int &)> time_filter) const = 0;
93 
96  virtual std::vector<LmsDataRow> get_lms_parameters() const = 0;
97 };
98 } // namespace hgps::core
Defines the Health-GPS back-end data store interface for all implementations.
Definition: datastore.h:13
virtual std::vector< PopulationItem > get_population(Country country, const std::function< bool(const unsigned int &)> time_filter) const =0
Gets the population growth trend for a country filtered by time.
virtual std::vector< LmsDataRow > get_lms_parameters() const =0
Gets the LMS (lambda-mu-sigma) parameters for childhood growth charts.
virtual std::optional< DiseaseInfo > get_disease_info(Identifier code) const =0
Gets a single disease information by identifier.
virtual CancerParameterEntity get_disease_parameter(DiseaseInfo info, Country country) const =0
Gets the parameters required by cancer type diseases for a country.
virtual std::vector< BirthItem > get_birth_indicators(const Country country, const std::function< bool(const unsigned int &)> time_filter) const =0
Gets the population birth indicators for a country filtered by time.
virtual RelativeRiskEntity get_relative_risk_to_risk_factor(DiseaseInfo source, Gender gender, Identifier risk_factor_key) const =0
Gets the relative risk effects for risk factor to disease interactions.
virtual RelativeRiskEntity get_relative_risk_to_disease(DiseaseInfo source, DiseaseInfo target) const =0
Gets the relative risk effects for disease to disease interactions.
virtual std::vector< MortalityItem > get_mortality(Country country, const std::function< bool(const unsigned int &)> time_filter) const =0
Gets the population mortality trend for a country filtered by time.
virtual std::optional< Country > get_country(std::string alpha) const =0
Gets a single country by the alpha code.
virtual DiseaseEntity get_disease(DiseaseInfo info, Country country) const =0
Gets a disease full definition by identifier for a country.
virtual std::vector< Country > get_countries() const =0
Gets the full collection of countries in the store.
virtual DiseaseAnalysisEntity get_disease_analysis(const Country country) const =0
Gets the Burden of Diseases (BoD) analysis dataset for a country.
virtual ~Datastore()=default
Destroys a Datastore instance.
virtual std::vector< DiseaseInfo > get_diseases() const =0
Gets the collection of diseases information in the store.
Top-level namespace for Health-GPS Core C++ API.
Definition: analysis.h:7
Gender
Enumerates gender types.
Definition: forward_type.h:18
Cancer disease parameters per country data structure.
Definition: disease.h:88
Country ISO-3166 definition data structure.
Definition: country.h:7
Burden of Diseases (BoD) analysis for a country data structure.
Definition: analysis.h:25
Disease full definition data structure.
Definition: disease.h:53
Disease information structure.
Definition: disease.h:13
Entity unique identifier data type.
Definition: identifier.h:17
Diseases relative risk effect table data structure.
Definition: disease.h:72