Skip to main content
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.

What the panel shows

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-level pills at the top let you filter by severity: ALERT (red), WARNING (orange), WATCH (yellow). Click a pill to toggle the filter; click again to clear.
  • Search — free-text match against country / region / disease. Lowercased substring match.
  • Source link in-row — each row renders the upstream source name as an inline link (sanitised URL, 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.

How you reach it

  • Cmd+K: type disease or outbreak.
  • Availability by variant: registered and enabled by default in the full/geopolitical variant only. Not present in the tech, finance, commodity, or happy variants. Source: FULL_PANELS in src/config/panels.ts.

Data sources

A single RPC backs the panel:
  • GET /api/health/v1/list-disease-outbreaks
The seeder (scripts/seed-disease-outbreaks.mjs) fans out across:
  • WHO Disease Outbreak News — official WHO DON JSON API. Primary source for globally significant outbreaks.
  • CDC Health Alert Network (HAN) — US-centric feed that supplements WHO for North American events.
  • Outbreak News Today — third-party aggregator that folds in WHO, CDC, and regional health-ministry alerts.
  • ThinkGlobalHealth disease tracker — open bundle of ~1,600+ ProMED-sourced real-time alerts with lat/lng (kept to a 90-day lookback so the map isn’t flooded with old events).
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).

Refresh cadence

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.

Tier & gating

Disease Outbreaks is free. No premium flag in src/config/panels.ts; the RPC is public.

API reference

  • Health service — covers list-disease-outbreaks and list-air-quality-alerts.