The Anpheros Symptom Engine is an international symptom terminology and coding engine. It turns free-text symptoms, in any of the languages people use, into structured clinical concepts: a stable Anpheros identifier, a WHO ICD-10 code, a WHO ICD-11 code and a body system. It also decides whether each symptom is present, resolved, hypothetical or about someone else, so that only real, current symptoms enter a medical record. It runs in production behind the Anpheros Daily app and is available to any developer through Anpheros Platform.

WHO ICD-10 and ICD-11
86 concepts, each checked against the WHO classifications, with the equivalence of every mapping.

20 languages
People write in their own language; every concept has a name in 20 languages.

Measured, not assumed
Primary code correct in 100 % of test cases; negated symptoms never reported as present.
Key facts
| What it is | A symptom terminology plus an AI coding pipeline, published as HL7 FHIR R4 |
| Concepts | 86: 70 symptoms and 16 clinical findings, identifiers SYM-0001…, never reused |
| Classifications | WHO ICD-10 (2019) and WHO ICD-11 MMS (2025-01), checked code by code |
| Body systems | 13, from the ICD-11 chapter 21 structure (nervous, digestive, respiratory, skin…) |
| Languages | 20 |
| Warning signs | 32, quoted word for word from the CDC and NIDDK, with their source |
| Evaluation | primary code 100 %, presence and subject 98 %, negations reported as present 0 % |
| Used by | Anpheros Daily (iOS, Android, Mac, web) and Anpheros Platform |
| Clinical review | not yet; every response says so |
How it works
- Capture. A person notes a symptom in Anpheros Daily, in their own words. The text is stored unchanged, with the time, the phone's time zone and, if given, intensity, onset and end.
- AI normalization. A large language model reads the text and proposes a code for each symptom, but may only choose from the verified vocabulary. A missing or invalid answer is retried, never filed as "unknown".
- Presence and experiencer. The same step decides whether the symptom is present, gone, only possible, or someone else's. "My head doesn't hurt any more" and "my mother has a cough" never become the person's symptoms. This is the problem clinical language processing calls negation, temporality and experiencer detection.
- Deterministic mapping. Fixed tables, not AI, link the ICD-10 code to the Anpheros concept, its ICD-11 code and its body system. The same code always gives the same concept.
- Medical record. Present symptoms become FHIR Observations in the person's record on Anpheros Platform, with both codes and the person's own words. If a symptom is later corrected, the record follows; its history stays.
Built on international standards, checked against the sources
- WHO ICD-10. Every code and title was checked against the WHO ICD-10 browser, including what each code includes and excludes. Where WHO places a symptom outside the symptoms chapter, the engine follows WHO: constipation K59.0, tinnitus H93.1, itching L29.9.
- WHO ICD-11. Every concept also maps to ICD-11, using the symptom codes of chapter 21 rather than disease codes (headache is MB4D, not "headache disorders"). Each choice that differs from the WHO transition table is documented.
- Symptoms, not diagnoses. A person who writes "migraine" reports a headache; the engine codes what is reported, not a diagnosis.
- Warning signs come word for word from public pages of the US CDC (stroke, heart attack) and NIDDK (diarrhea, constipation), with the source next to each one. Where a quote says 9-1-1, the emergency number in Europe is 112.
- HL7 FHIR R4 throughout:
CodeSystem,ValueSet,ConceptMapto ICD-10 and ICD-11, and a validation profile for symptom Observations.
The full scientific description, with the evaluation and its limits: Anpheros Symptom Engine methodology.
Connected to the Anpheros apps
- Anpheros Daily codes every symptom a person notes, shows the result and lets the person correct it by tapping the symptom.
- Anpheros Platform stores symptoms in each person's FHIR record, where doctors and apps can read them with the person's consent.
- AI assistants read the coded symptoms instead of loose text, so their answers can point to exact codes and dates.
- Similar cases (coming in Plus and Max): with explicit consent, people whose symptoms and abnormal lab results are very similar can find each other in the Community. Common complaints such as a headache are never enough on their own; nobody learns who the others are.
For developers and clinics
The same terminology is open through Anpheros Platform:
GET /v1/terminology/symptomssearches by text, ICD-10 or ICD-11 code, identifier or body system, and returns names in the language you ask for.- FHIR
CodeSystem/anpheros-symptom,ValueSet/$expand,ConceptMap/anpheros-symptom-to-icd10andanpheros-symptom-to-icd11,CodeSystem/$lookup. POST /fhir/R4/Observation/$validate?profile=anpheros-symptomchecks the symptom Observations you write.
Requests and responses: Symptom data API guide. A test key is free.
What is checked and what is not
- Checked against WHO: every code and English title, in ICD-10 and ICD-11.
- Reviewed with AI assistance, not by a medical translator: the names in 18 more languages.
- Quoted exactly, not reviewed by a doctor: the warning signs.
- Not done by the engine: diagnosis, causes, or links between symptoms and diseases.
Frequently asked questions
What is the Anpheros Symptom Engine?
An international symptom terminology and an AI pipeline that codes symptoms written in free text to WHO ICD-10 and ICD-11, detects whether each one is present and whose it is, and stores the result as HL7 FHIR Observations. It is part of Anpheros, a European health record platform.
Is it a symptom checker?
No. A symptom checker suggests possible illnesses. The Symptom Engine names and codes the symptoms a person reports, so that they can be tracked, shared with a doctor and read by other systems. It does not diagnose.
Which languages does it support?
People can write in their own language; every concept has names in 20 languages, including English, Spanish, French, German, Italian, Portuguese, Romanian, Polish, Turkish, Russian, Ukrainian, Arabic, Hindi, Chinese, Japanese and Korean.
How accurate is it?
On a fixed set of 100 test cases, 32 of them deliberately not present (negated, resolved, hypothetical or about someone else), the engine chose the correct primary code in 100 % of cases and the correct presence and subject in 98 %; it never reported a negated symptom as present. The test set is synthetic and has not been reviewed by a clinician.
Can I use it in my own application?
Yes, through the Anpheros Platform REST and FHIR API, with a free test key. The terminology, the ICD-10 and ICD-11 mappings and the validation profile are the same ones Anpheros Daily uses.
Where is the data stored?
Personal health data is stored in the European Union and is never sold. The terminology itself contains no personal data.


