Health-GPS  1.2.2.0
Global Health Policy Simulation model (Health-GPS)
disease_registry.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "default_cancer_model.h"
5 
6 namespace hgps {
7 namespace detail {
9 using DiseaseModelBuilder = std::function<std::shared_ptr<DiseaseModel>(
10  DiseaseDefinition &definition, WeightModel &&classifier,
11  const core::IntegerInterval &age_range)>;
12 } // namespace detail
13 
16 std::map<core::DiseaseGroup, detail::DiseaseModelBuilder> get_default_disease_model_registry() {
17  auto registry = std::map<core::DiseaseGroup, detail::DiseaseModelBuilder>{
19  [](DiseaseDefinition &definition, WeightModel &&classifier,
20  const core::IntegerInterval &age_range) {
21  return std::make_shared<DefaultDiseaseModel>(definition, std::move(classifier),
22  age_range);
23  }},
24 
26  [](DiseaseDefinition &definition, WeightModel &&classifier,
27  const core::IntegerInterval &age_range) {
28  return std::make_shared<DefaultCancerModel>(definition, std::move(classifier),
29  age_range);
30  }},
31  };
32 
33  return registry;
34 }
35 } // namespace hgps
Implements the disease full definition data type.
Definition: disease_definition.h:45
Weight classification model polymorphic wrapper class.
Definition: weight_model.h:12
Numeric interval representation data type.
Definition: interval.h:10
@ other
Common diseases excluding cancers.
@ cancer
Cancer disease.
std::function< std::shared_ptr< DiseaseModel >(DiseaseDefinition &definition, WeightModel &&classifier, const core::IntegerInterval &age_range)> DiseaseModelBuilder
Defines the disease model builder function signature and required parameters type.
Definition: disease_registry.h:11
Top-level namespace for Health-GPS C++ API.
Definition: analysis_definition.h:8
std::map< core::DiseaseGroup, detail::DiseaseModelBuilder > get_default_disease_model_registry()
Create the default disease model builder registry for disease group.
Definition: disease_registry.h:16