feat(vaccinations): Add dengue and tuberculosis to the catalogue

Dengue: Two doses three months apart and no booster. It's listed with the
travel vaccines.

Tuberculosis: One dose at birth and no booster. It's listed under childhood,
since that's where it appears on most vaccination cards.

Both cite the relevant WHO position paper. The names are translated in
all eight languages, and the OpenAPI spec is regenerated to include the
two new vaccines.
This commit is contained in:
Janne Asmala committed 2026-10-22 18:58:15 +08:00
1 parent f08277e595
commit 8ea0ba5297
11 files changed
+64 -2

No files matched your search

+9
View File
@@ -1,5 +1,14 @@
# Changelog
## [Unreleased]
### Added
- **Dengue and tuberculosis in the vaccine catalogue.** Dengue is listed
with the travel vaccines (two doses three months apart) and tuberculosis
with the childhood ones (one dose at birth); neither has a booster. Each
cites its WHO position paper, and searching "bcg" finds tuberculosis.
## [1.44.1] — 2026-10-22
### Security
+6 -2
View File
@@ -33383,7 +33383,7 @@ components:
maxLength: 100
components:
minItems: 1
maxItems: 26
maxItems: 28
type: array
items:
type: string
@@ -33414,6 +33414,8 @@ components:
- yellow-fever
- japanese-encephalitis
- cholera
- dengue
- tuberculosis
typicalSeriesDoses:
anyOf:
- type: integer
@@ -33442,7 +33444,7 @@ components:
maxLength: 100
components:
minItems: 1
maxItems: 26
maxItems: 28
type: array
items:
type: string
@@ -33473,6 +33475,8 @@ components:
- yellow-fever
- japanese-encephalitis
- cholera
- dengue
- tuberculosis
typicalSeriesDoses:
anyOf:
- type: integer
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "Gelbfieber",
"japanese-encephalitis": "Japanische Enzephalitis",
"cholera": "Cholera",
"dengue": "Dengue",
"tuberculosis": "Tuberkulose",
"td": "Td (Tetanus, Diphtherie)",
"tdap": "Tdap (Tetanus, Diphtherie, Pertussis)",
"tdap-ipv": "Tdap-IPV (Vierfachimpfung)",
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "Yellow fever",
"japanese-encephalitis": "Japanese encephalitis",
"cholera": "Cholera",
"dengue": "Dengue",
"tuberculosis": "Tuberculosis",
"td": "Td (tetanus, diphtheria)",
"tdap": "Tdap (tetanus, diphtheria, pertussis)",
"tdap-ipv": "Tdap-IPV (four-in-one)",
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "Fiebre amarilla",
"japanese-encephalitis": "Encefalitis japonesa",
"cholera": "Cólera",
"dengue": "Dengue",
"tuberculosis": "Tuberculosis",
"td": "Td (tétanos, difteria)",
"tdap": "Tdap (tétanos, difteria, tos ferina)",
"tdap-ipv": "Tdap-IPV (tetravalente)",
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "Fièvre jaune",
"japanese-encephalitis": "Encéphalite japonaise",
"cholera": "Choléra",
"dengue": "Dengue",
"tuberculosis": "Tuberculose",
"td": "dT (tétanos, diphtérie)",
"tdap": "dTca (tétanos, diphtérie, coqueluche)",
"tdap-ipv": "dTca-VPI (quadruple)",
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "Febbre gialla",
"japanese-encephalitis": "Encefalite giapponese",
"cholera": "Colera",
"dengue": "Dengue",
"tuberculosis": "Tubercolosi",
"td": "Td (tetano, difterite)",
"tdap": "Tdap (tetano, difterite, pertosse)",
"tdap-ipv": "Tdap-IPV (tetravalente)",
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "황열",
"japanese-encephalitis": "일본뇌염",
"cholera": "콜레라",
"dengue": "뎅기열",
"tuberculosis": "결핵",
"td": "Td(파상풍, 디프테리아)",
"tdap": "Tdap(파상풍, 디프테리아, 백일해)",
"tdap-ipv": "Tdap-IPV(4종 혼합)",
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "Gele koorts",
"japanese-encephalitis": "Japanse encefalitis",
"cholera": "Cholera",
"dengue": "Dengue",
"tuberculosis": "Tuberculose",
"td": "Td (tetanus, difterie)",
"tdap": "Tdap (tetanus, difterie, kinkhoest)",
"tdap-ipv": "Tdap-IPV (vier-in-één)",
+2
View File
@@ -10426,6 +10426,8 @@
"yellow-fever": "Żółta gorączka",
"japanese-encephalitis": "Japońskie zapalenie mózgu",
"cholera": "Cholera",
"dengue": "Denga",
"tuberculosis": "Gruźlica",
"td": "Td (tężec, błonica)",
"tdap": "Tdap (tężec, błonica, krztusiec)",
"tdap-ipv": "Tdap-IPV (poczwórna)",
+33
View File
@@ -77,6 +77,8 @@ export const ANTIGEN_SLUGS = [
"yellow-fever",
"japanese-encephalitis",
"cholera",
"dengue",
"tuberculosis",
] as const;
export type AntigenSlug = (typeof ANTIGEN_SLUGS)[number];
@@ -317,6 +319,21 @@ export const VACCINE_CATALOG: readonly VaccineSeed[] = [
source: STIKO,
synonyms: ["human papillomavirus"],
},
{
// One dose, at birth where tuberculosis is common, and no booster after
// it: revaccination is advised against. Off the standing-committee
// schedule since 1998, so it cites the WHO position paper instead — but
// older Passes carry it, and in much of the world it is the first line
// of a child's.
slug: "tuberculosis",
atc: "J07AN01",
components: ["tuberculosis"],
typicalSeriesDoses: 1,
boosterIntervalMonths: null,
category: "childhood",
source: "WHO position paper on BCG vaccines",
synonyms: ["bcg", "tb", "bacillus calmette-guérin"],
},
// ── Monovalent: by indication ───────────────────────────────────────────
{
@@ -420,6 +437,22 @@ export const VACCINE_CATALOG: readonly VaccineSeed[] = [
category: "travel",
source: "WHO position paper on cholera vaccines",
},
{
// Two doses three months apart: the schedule of the live-attenuated
// tetravalent preparation in current use. No booster has been
// established after it, so null rather than an interval invented to
// fill the field. The older preparation runs three doses and is limited
// to people with a confirmed past infection; the record's own
// `seriesDoses` override is there for the Pass that says three.
slug: "dengue",
atc: "J07BX04",
components: ["dengue"],
typicalSeriesDoses: 2,
boosterIntervalMonths: null,
category: "travel",
source: "WHO position paper on dengue vaccines",
synonyms: ["dengue fever", "breakbone fever"],
},
// ── Combinations ────────────────────────────────────────────────────────
{