# API dei dati sui sintomi: concetti, terminologia FHIR e sintomi riferiti dal paziente

> Identificatori stabili dei sintomi mappati a ICD-10, serviti come REST e come FHIR CodeSystem, ValueSet e ConceptMap; come appare un sintomo riferito dal paziente Observation e come validarne uno.

Source: https://developers.anpheros.com/it/guides/symptom-data-api

**Anpheros assegna a ogni sintomo un identificatore stabile (`SYM-0047` è mal di testa), lo mappa a ICD-10 e serve l'elenco tramite un endpoint REST e come terminologia FHIR R4 (`CodeSystem`, `ValueSet`, `ConceptMap`, `$lookup`). I sintomi che i pazienti riferiscono vengono archiviati come `Observation` FHIR che contengono entrambi i codici, le parole della persona, l'intensità e, quando nota, quando il sintomo è iniziato e terminato.** Questa pagina mostra come trovare un concetto, come appare un sintomo riferito dal paziente, come verificarne uno che scrivi tu stesso e cosa i dati deliberatamente non contengono.

## Cosa contiene il rilascio

| | |
|---|---|
| Rilascio | `2026.10.4` (ogni risposta indica quale) |
| Concetti | 274: 197 sintomi (ICD-10 R00–R69 e le loro sottocategorie non residue come R06.0 dispnea o R43.0 anosmia, più il codice WHO dove WHO classifica il sintomo altrove: G47, H53.2, H53.8, H93.1, K59.0, L29.9, M25.5, M54) e 77 riscontri (R65, R70–R94) |
| Sistema di identificazione | `https://anpheros.com/fhir/CodeSystem/symptom` |
| Codici | verificati rispetto a WHO ICD-10 Versione 2019 (15 ottobre 2026), con le relative note di inclusione ed esclusione; i titoli ufficiali WHO ICD-10 non vengono forniti finché WHO non conferma la licenza (`icd10.display: null`), il titolo ufficiale inglese è quello ICD-11 |
| ICD-11 | ogni concetto è mappato a un codice ICD-11 MMS 2025-01 (il codice del capitolo 21 per i sintomi) e a un sistema corporeo |
| Etichette fornite | il titolo ufficiale inglese WHO ICD-11 (`source`), le etichette rumene e i termini corrispondenti utilizzati da Anpheros Daily (`in_use`), ed etichette comuni in altre 19 lingue (`ai_reviewed`: traduzioni automatiche riviste con l'assistenza dell'IA, non da un traduttore medico professionista); per i 188 concetti aggiunti nel 2026.10.3 il nome rumeno è anch'esso una traduzione dell'IA |
| Revisione clinica | `clinical_review: false` — nessun clinico ha revisionato il rilascio; nessuna causa o associazione di condizioni |
| Segni di allarme | 32, per 14 concetti, citati parola per parola dalle pagine CDC e NIDDK (`review: source_quoted`) |

Gli identificatori non vengono mai riutilizzati. Un concetto che viene ritirato rimane nell'elenco con `status: deprecated`.

## Trova un concetto (REST)

```bash
export API=https://platform.anpheros.com/v1
export KEY=sk_test_…

curl "$API/terminology/symptoms?q=headache" -H "Authorization: Bearer $KEY"
```

`q` corrisponde all'ID del concetto, ai codici ICD-10 e ICD-11, alle etichette e ai termini di corrispondenza. Altri parametri: `icd10=R51` (il concetto per un codice), `icd11=MB4D`, `body_system=nervous`, `kind=symptom|finding|all`, `lang=de` (la lingua di `display`: l'etichetta preferita, altrimenti l'etichetta comune, altrimenti l'inglese), `limit` e `offset`.

```json
{
  "data": [{
    "concept_id": "SYM-0047",
    "system": "https://anpheros.com/fhir/CodeSystem/symptom",
    "kind": "symptom",
    "status": "active",
    "display": "Headache, not elsewhere classified",
    "display_lang": "en",
    "icd10": {"system": "http://hl7.org/fhir/sid/icd-10", "code": "R51", "display": null, "equivalence": "equivalent"},
    "icd11": {"system": "http://id.who.int/icd/release/11/mms", "code": "MB4D", "display": "Headache, not elsewhere classified", "equivalence": "equivalent"},
    "body_system": {"code": "nervous", "display": "Symptoms, signs or clinical findings of the nervous system", "icd11_block": "BlockL1-MB4"},
    "labels": [
      {"lang": "ro", "use": "preferred", "text": "Durere de cap (cefalee)", "review": "in_use"},
      {"lang": "de", "use": "lay", "text": "Kopfschmerzen", "review": "ai_reviewed"}
    ],
    "match_terms": [{"lang": "ro", "text": "durere de cap"}, {"lang": "ro", "text": "cefalee"}],
    "clinical_review": false,
    "release": "2026.10.2"
  }],
  "total": 1,
  "release": "2026.10.2"
}
```

`labels` elenca ogni etichetta servita (20 lingue; abbreviata qui). Un concetto: `GET $API/terminology/symptoms/SYM-0047`.

## Lo stesso elenco della terminologia FHIR

```bash
export BASE=https://platform.anpheros.com/fhir/R4

curl "$BASE/CodeSystem/anpheros-symptom" -H "Authorization: Bearer $KEY"
curl "$BASE/CodeSystem/\$lookup?system=https://anpheros.com/fhir/CodeSystem/symptom&code=SYM-0047&displayLanguage=ro" -H "Authorization: Bearer $KEY"
curl "$BASE/ValueSet/\$expand?url=https://anpheros.com/fhir/ValueSet/anpheros-symptoms&filter=cough" -H "Authorization: Bearer $KEY"
curl "$BASE/ConceptMap/anpheros-symptom-to-icd10" -H "Authorization: Bearer $KEY"
curl "$BASE/ConceptMap/anpheros-symptom-to-icd11" -H "Authorization: Bearer $KEY"
```

- `CodeSystem/anpheros-symptom` — `content: complete`, `status: draft` (la release non è stata revisionata da un clinico); proprietà `kind`, `status`, `icd10`; etichette rumene, corrispondenza di termini ed etichette colloquiali come `designation`.
- `ValueSet/anpheros-symptoms` — i sintomi attivi (esclusi i riscontri); `$expand` prende `filter`, `displayLanguage`, `count` e `offset`.
- `ConceptMap/anpheros-symptom-to-icd10` — `equivalent`, o `wider` quando il codice ICD-10 copre più del concetto (H53.8 "Altri disturbi visivi" è più ampio della visione offuscata).
- Tutti sono di sola lettura e elencati nel `CapabilityStatement` del server (`GET $BASE/metadata`).

## Un sintomo riferito dal paziente

Ecco come Anpheros Daily registra un sintomo che una persona ha riferito come presente, riguardo a sé stessa:

```json
{
  "resourceType": "Observation",
  "status": "final",
  "meta": {"profile": ["https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation"]},
  "category": [{"coding": [{"system": "urn:anpheros:observation-category", "code": "symptom"}]}],
  "code": {
    "text": "Mă doare capul de 3 zile",
    "coding": [
      {"system": "http://hl7.org/fhir/sid/icd-10", "code": "R51"},
      {"system": "https://anpheros.com/fhir/CodeSystem/symptom", "code": "SYM-0047", "display": "Headache"}
    ]
  },
  "subject": {"reference": "Patient/…"},
  "effectivePeriod": {"start": "2026-10-11T08:00:00+03:00", "end": "2026-10-14T18:00:00+03:00"},
  "valueQuantity": {"value": 6, "unit": "1-10", "system": "http://unitsofmeasure.org", "code": "{score}"}
}
```

- `code.text` sono sempre le parole della persona, nella sua lingua (`Observation.language`); i codici sono accanto.
- `effectivePeriod` viene utilizzato quando la persona ha indicato quando è iniziato o terminato; altrimenti `effectiveDateTime` è il momento in cui lo ha annotato. Gli orari mantengono l'offset del telefono che li ha registrati.
- `valueQuantity` è l'intensità su una scala da 1 a 10; senza di essa non c'è valore.
- Quando la persona modifica un sintomo, la stessa risorsa ottiene una nuova versione — leggi quelle precedenti con `GET $BASE/Observation/{id}/_history`.
- Filtra per categoria con `?category=symptom`; gli scope di consenso come `patient/Observation.rs?category=symptom` funzionano allo stesso modo.

### Cosa non viene mai pubblicato come sintomo

Solo i sintomi che sono **presenti** e **riguardano il paziente** diventano Osservazioni, e solo dopo che il testo libero è stato normalizzato. "La mia testa non fa più male", "forse febbre domani", "mia madre ha la tosse" o un testo che il normalizzatore non è riuscito a leggere non diventano un sintomo del paziente; se un sintomo pubblicato viene successivamente corretto in uno di questi, la sua Osservazione viene ritirata (soft delete — la cronologia rimane). I reclami dei parenti non vengono trasformati automaticamente in storia familiare.

## Verifica un sintomo che scrivi

```bash
curl -X POST "$BASE/Observation/\$validate?profile=anpheros-symptom" -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/fhir+json" -d @symptom.json
```

Il profilo `anpheros-symptom` (canonico `https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`) riporta, come `OperationOutcome`:

| Regola | Gravità |
|---|---|
| Categoria `urn:anpheros:observation-category\|symptom` (il sistema HL7 `observation-category` non ha un codice `symptom`) | error |
| `code.text` presente | error |
| Un concetto Anpheros che esiste e corrisponde al codice ICD-10 | error |
| `subject` è un Paziente; `status` finale, emendato, corretto o inserito per errore; `effective[x]` presente; `effectivePeriod.end` non prima del `start` | error |
| Intensità come UCUM `{score}` tra 0 e 10 | error |
| Solo testo libero, nessun codice | information (still valid) |

Come gli altri profili, riporta e non rifiuta le scritture. Un `meta.profile` che invii viene mantenuto sulla risorsa memorizzata.

## Limiti

- La release non è stata revisionata da un medico; utilizzarla per la codifica e la ricerca, non per decisioni mediche.
- I segnali di avvertimento sono citati parola per parola da pagine di pubblico dominio federali statunitensi (CDC: segni di ictus e infarto; NIDDK: diarrea e stitichezza) e sono stati verificati rispetto a tali pagine il 15 ottobre 2026. Ogni elemento riporta l'intestazione della fonte (`context`), il suo consiglio (`quote`), il gruppo a cui si applica (`applies_to`), la fonte con licenza e attribuzione, `review: source_verified` e la nota che non si tratta di una diagnosi e non è stata revisionata da un medico. Le fonti sono americane: dove una citazione dice 9-1-1, la nota aggiunge che il numero di emergenza in Europa è 112.
- Nessuna causa o associazione di condizioni viene servita: `associations` rimane vuoto fino a quando un medico non revisiona un elemento. Un'associazione è sempre "può essere associata a".
- I codici SNOMED CT sono scritti solo dove la licenza lo consente (vedere [Sistemi di codici FHIR](https://developers.anpheros.com/it/guides/fhir-code-systems)).
- Le precedenti Osservazioni dei sintomi ricevono la codifica del concetto Anpheros la prossima volta che vengono aggiornate.

## Correlati

- [Anpheros Symptom Engine: metodologia](https://developers.anpheros.com/it/guides/symptom-engine): come i concetti vengono assegnati, verificati e valutati
- [Anpheros Search](https://developers.anpheros.com/it/guides/anpheros-search): una singola ricerca su sintomi, condizioni e trattamenti, con le relative fonti
- [Sistemi di codifica FHIR](https://developers.anpheros.com/it/guides/fhir-code-systems): ogni sistema di codifica per tipo di risorsa
- [API per dati longitudinali del paziente](https://developers.anpheros.com/it/guides/longitudinal-patient-data-api)
- [Come archiviare cartelle cliniche utilizzando FHIR R4](https://developers.anpheros.com/it/guides/store-medical-records-fhir)
- [Piattaforma FHIR](https://developers.anpheros.com/it/guides/fhir)
