docs/panels/disease-outbreaks.mdx
The Disease Outbreaks panel shows active outbreak alerts worldwide — confirmed cases, affected regions, case counts, and a per-event threat level. It is the public-health signal layer of the dashboard.
A severity-ranked list of active outbreak events. Each row shows the disease, the affected country/region, the alert level, the case count (when reported), and a relative timestamp. The list is sorted by severity (alerts first) and then by recency.
ALERT (red), WARNING (orange), WATCH (yellow). Click a pill to toggle the filter; click again to clear.target="_blank"). Clicking the source-name link opens the upstream advisory. The row itself has no click handler — only the inline link is active.Panel id is disease-outbreaks; canonical component is src/components/DiseaseOutbreaksPanel.ts.
FULL_PANELS in src/config/panels.ts.A single RPC backs the panel:
GET /api/health/v1/list-disease-outbreaksThe seeder (scripts/seed-disease-outbreaks.mjs) fans out across:
Note: the in-panel info tooltip summarises this as "WHO, ProMED, and health ministries" for brevity. The above is the full upstream list as implemented in the seeder. Results are normalised, deduplicated, and written to health:disease-outbreaks:v1 in Redis with a 72-hour TTL (3× the daily cron interval).
The seeder runs on a daily cadence. The key is allowed up to 48 hours in api/health.js (maxStaleMin: 2880) before the health surface escalates — 2× the nominal interval — to absorb transient upstream flakiness without triggering false-positive alerts.
Disease Outbreaks is free. No premium flag in src/config/panels.ts; the RPC is public.
list-disease-outbreaks and list-air-quality-alerts.