How imperialchepi/healthgps works
Health-GPS is a C++ microsimulation for evaluating health and economic effects of policy scenarios. A user supplies configuration and project data; the console host parses and validates inputs, assembles model input, runs baseline or intervention trials, and writes result files. The documented simulation stages cover demographics, socioeconomic factors, risk factors, and disease outcomes. The tree and excerpts support the host, input, repository, and output layers; several domain connections are documented in the README rather than visible in sampled implementations.
Main entry points: program.cpp Console host · simulation.cpp Simulation engine · event_bus.cpp Event bus · runner.cpp Trial runner
Components 19
Host and orchestration
- Console host
src/HealthGPS.Console/program.cpp - Trial runner
src/HealthGPS/runner.cpp - Simulation engine
src/HealthGPS/simulation.cpp
Configuration and data
- Configuration
src/HealthGPS.Input/configuration.cpp - Model parser
src/HealthGPS.Input/model_parser.cpp - Data manager
src/HealthGPS.Input/datamanager.cpp - Cached repository
src/HealthGPS/repository.cpp - Model input
src/HealthGPS/modelinput.h
Simulation domains
- Demographics
src/HealthGPS/demographic.cpp - Socioeconomic factors
src/HealthGPS/ses_noise_module.cpp - Risk factors
src/HealthGPS/riskfactor.cpp - Disease outcomes
src/HealthGPS/disease.cpp - Policy scenarios
src/HealthGPS/intervention_scenario.h - Analysis
src/HealthGPS/analysis_module.cpp
Events and results
- Event bus
src/HealthGPS/event_bus.cpp - Event monitor
src/HealthGPS.Console/event_monitor.cpp - Result writer
src/HealthGPS.Console/result_file_writer.cpp - Result files
Other components
- Researcher
Connections 18
- Researcher → Console host: starts run
- Console host → Configuration: loads configuration
src/HealthGPS.Console/program.cpp - Console host → Model parser: parses models
src/HealthGPS.Console/program.cpp - Console host → Model input: assembles inputs
src/HealthGPS.Console/program.cpp - Model parser → Data manager: loads data
- Cached repository → Data manager: fetches data
src/HealthGPS/repository.cpp - Console host → Trial runner: runs trials
src/HealthGPS.Console/program.cpp - Trial runner → Simulation engine: executes trials
- Simulation engine → Demographics: simulates population
- Demographics → Socioeconomic factors: feeds
- Socioeconomic factors → Risk factors: feeds
- Risk factors → Disease outcomes: feeds
- Policy scenarios → Simulation engine: configures policy
- Simulation engine → Analysis: analyzes outcomes
- Console host → Event bus: sets up events
src/HealthGPS.Console/program.cpp - Event bus → Event monitor: delivers events
- Event bus → Result writer: delivers results
- Result writer → Result files: writes files