Health-GPS 3.0.0.0
Global Health Policy Simulation model (Health-GPS)
Loading...
Searching...
No Matches
simple_policy_scenario.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <functional>
6#include <map>
7#include <optional>
8
9namespace hgps {
10
12enum class PolicyImpactType : uint8_t {
15
18};
19
28 std::vector<PolicyImpact> sorted_impacts, const PolicyInterval &period)
29 : impact_type{type_of_impact}, impacts{std::move(sorted_impacts)}, active_period{period} {}
30
33
35 std::vector<PolicyImpact> impacts;
36
39};
40
43 public:
45
50
51 SyncChannel &channel() override;
52
53 void clear() noexcept override;
54
55 double apply(Random &generator, Person &entity, int time,
56 const core::Identifier &risk_factor_key, double value) override;
57
58 const PolicyImpactType &impact_type() const noexcept;
59
60 const PolicyInterval &active_period() const noexcept override;
61
62 const std::vector<PolicyImpact> &impacts() const noexcept override;
63
64 private:
65 std::reference_wrapper<SyncChannel> channel_;
66 SimplePolicyDefinition definition_;
67 std::map<core::Identifier, PolicyImpact> factor_impact_;
68};
69} // namespace hgps
Thread-safe communication channel data type.
Definition channel.h:24
Health-GPS scripted intervention policy scenario interface.
Definition intervention_scenario.h:19
General purpose Random number generator algorithms.
Definition random_algorithm.h:8
Defines the simple development intervention scenario.
Definition simple_policy_scenario.h:42
void clear() noexcept override
Clear the scenario log book data.
Definition simple_policy_scenario.cpp:16
double apply(Random &generator, Person &entity, int time, const core::Identifier &risk_factor_key, double value) override
Applies this Scenario to the Person instance.
Definition simple_policy_scenario.cpp:30
SyncChannel & channel() override
Gets the Scenario communication channel.
Definition simple_policy_scenario.cpp:14
const PolicyInterval & active_period() const noexcept override
Gets the intervention active period.
Definition simple_policy_scenario.cpp:22
const std::vector< PolicyImpact > & impacts() const noexcept override
Gets the intervention impacts by risk factor and age range.
Definition simple_policy_scenario.cpp:26
const PolicyImpactType & impact_type() const noexcept
Definition simple_policy_scenario.cpp:18
Top-level namespace for Health-GPS Console host application.
Definition command_options.cpp:8
PolicyImpactType
Health GPS policy impact types enumeration.
Definition simple_policy_scenario.h:12
@ relative
Relative impact.
@ absolute
Absolute impact.
Global namespace.
Definition column_iterator.h:123
Defines a virtual population person data type.
Definition person.h:39
Defines the policy impact on risk factors data structure.
Definition intervention_scenario.h:49
Defines the policy active interval.
Definition intervention_scenario.h:99
Simple intervention policy definition data type.
Definition simple_policy_scenario.h:21
PolicyImpactType impact_type
Intervention impact type.
Definition simple_policy_scenario.h:32
SimplePolicyDefinition(const PolicyImpactType &type_of_impact, std::vector< PolicyImpact > sorted_impacts, const PolicyInterval &period)
Initialise a new instance of the SimplePolicyDefinition structure.
Definition simple_policy_scenario.h:27
PolicyInterval active_period
Active implementation period.
Definition simple_policy_scenario.h:38
std::vector< PolicyImpact > impacts
Intervention impacts on risk factors.
Definition simple_policy_scenario.h:35