82 std::unique_ptr<RiskFactorModelDefinition> definition);
104 void clear_cache() noexcept;
107 mutable
std::mutex mutex_;
108 std::reference_wrapper<core::Datastore> data_manager_;
110 rf_model_definition_;
112 std::vector<core::DiseaseInfo> diseases_info_;
116 void load_disease_definition(const core::DiseaseInfo &info, const
ModelInput &config);
Implements the cached data repository for input datasets and back-end storage.
Definition: repository.h:69
CachedRepository()=delete
Implements the disease full definition data type.
Definition: disease_definition.h:45
LMS (lambda-mu-sigma) model definition data type.
Definition: lms_definition.h:26
Define the data repository interface for input datasets and back-end storage.
Definition: repository.h:18
virtual DiseaseDefinition & get_disease_definition(const core::DiseaseInfo &info, const ModelInput &config)=0
Gets a disease complete definition.
Repository & operator=(const Repository &)=delete
virtual BaselineAdjustment & get_baseline_adjustment_definition()=0
Gets the user provided baseline risk factors adjustment dataset.
virtual LmsDefinition & get_lms_definition()=0
Gets the LMS (lambda-mu-sigma) definition.
virtual ~Repository()=default
Destroys a Repository instance.
virtual const std::vector< core::DiseaseInfo > & get_diseases()=0
Gets the collection of all diseases available in the back-end storage.
Repository(Repository &&)=delete
virtual core::Datastore & manager() noexcept=0
Gets a reference to the back-end storage instance.
virtual std::optional< core::DiseaseInfo > get_disease_info(core::Identifier code)=0
Gets a disease information by identifier.
Repository & operator=(Repository &&)=delete
Repository()=default
Initialises a new instance of the Repository class.
virtual const RiskFactorModelDefinition & get_risk_factor_model_definition(const HierarchicalModelType &model_type) const =0
Gets a user-provided risk factor model definition.
Repository(const Repository &)=delete
Risk factor model definition interface.
Definition: interfaces.h:160
Defines the Health-GPS back-end data store interface for all implementations.
Definition: datastore.h:13
Top-level namespace for Health-GPS C++ API.
Definition: analysis_definition.h:8
HierarchicalModelType
Health GPS risk factor module types enumeration.
Definition: interfaces.h:29
Global namespace.
Definition: jsonparser.h:88
Defines the risk factor baseline adjustment data type.
Definition: riskfactor_adjustment_types.h:14