Skip to content

Illness list

David Galindo edited this page Aug 26, 2026 · 2 revisions

The Extra Illness List

Symptrace can download extra illnesses from this wiki, so the list grows without shipping a new build. The app fetches this file:

https://raw.githubusercontent.com/wiki/nowheremanmail/trackmyillness/Illnesses.json

It is downloaded only when someone opens Settings → Add from an illness → More illnesses, and it never carries anything about the reader — see the Privacy Policy.

Format

{
  "version": 1,
  "illnesses": [
    {
      "id": "hypothyroidism",
      "symbol": "cross.vial.fill",
      "name": { "en": "Hypothyroidism", "es": "Hipotiroidismo" },
      "treatments": [
        { "name": { "en": "Thyroid medication", "es": "Medicación tiroidea" },
          "symbol": "pill.fill", "color": "teal" }
      ],
      "symptoms": [
        { "name": { "en": "Fatigue", "es": "Cansancio" },
          "symbol": "zzz", "color": "purple" }
      ]
    }
  ]
}
Field Required Notes
version yes 1. An app that doesn't understand the version says so rather than guessing.
id yes Stable, unique. An id the app already ships (migraine, asthma, …) is ignored, so a built-in can't be shadowed.
name yes An object of language code → name.
symbol no An SF Symbol name.
color no One of blue, teal, green, yellow, orange, red, pink, purple, indigo, brown, gray.
treatments, symptoms yes At least one of each — an illness with only one kind would leave half the app empty.

Languages

Every name is an object keyed by language code, so one file serves every reader:

"name": { "en": "Vertigo", "es": "Vértigo", "ca": "Vertigen",
          "de": "Schwindel", "fr": "Vertige", "it": "Vertigini",
          "pt": "Vertigem" }

The published file carries every name in the seven languages the app itself ships: en, es, ca, de, fr, it and pt.

The app picks the closest match to the reader's language: the exact tag first (pt-BR), then the base language (pt), then English, and finally any language present — so a name written in only one language still shows up rather than disappearing. Adding a language is just another key; no app change is needed.

What the app does with bad data

This file is downloaded from the network, so the app treats it as untrusted and degrades instead of breaking:

  • An unknown SF Symbol or colour name falls back to a sensible default rather than drawing a blank.
  • Names are trimmed and capped at 60 characters.
  • An illness with no readable name, no id, or no treatments or no symptoms is skipped entirely.
  • The same id twice keeps the first one.
  • At most 60 illnesses and 40 items per kind are read, and the file itself is capped at 512 KB.

House style

  • These are tracking labels, not medical advice. Keep them generic ("rescue medication", not a brand or a dose) — what someone actually takes is between them and their doctor.
  • Never set a default dose.
  • Reuse the exact wording of names that already exist in other illnesses. The app matches on name, ignoring case and accents, so a shared symptom is created once instead of twice.

Clone this wiki locally