---
title: "Disease Outbreaks"
description: "Active disease-outbreak alerts worldwide, severity-ranked and searchable, aggregated from WHO DON, CDC HAN, Outbreak News Today, and ThinkGlobalHealth's ProMED-backed tracker."
---

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](/api/HealthService.openapi.yaml) — covers `list-disease-outbreaks` and `list-air-quality-alerts`.
