Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
disease_registry.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace hgps {
7namespace detail {
9using DiseaseModelBuilder = std::function<std::shared_ptr<DiseaseModel>(
10 DiseaseDefinition &definition, WeightModel &&classifier,
11 const core::IntegerInterval &age_range)>;
12} // namespace detail
13
16std::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:46
Weight classification model polymorphic wrapper class.
Definition weight_model.h:12
@ 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 Console host application.
Definition command_options.cpp: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