# Sistemi di codifica FHIR

> Quali sistemi di codifica utilizza ciascun tipo di risorsa FHIR: LOINC per misurazioni e risultati di laboratorio, ICD-10 per condizioni, ATC per farmaci, unità UCUM e SNOMED CT dietro un flag di licenza.

Source: https://developers.anpheros.com/it/guides/fhir-code-systems

Ciò che la piattaforma memorizza e ciò che Anpheros Daily (l'app del paziente) scrive tramite l'API. Le applicazioni possono utilizzare qualsiasi
sistema di codifica consentito da FHIR; questa pagina indica quali la piattaforma riconosce (ricerca display,
controlli IPS, motore di contesto) e quali Anpheros stesso utilizza. Ultimo aggiornamento 22 settembre 2026.

| Risorsa | Elemento | Sistemi di codifica | Note |
|---|---|---|---|
| Observation (segni vitali) | `code` | LOINC (`http://loinc.org`) | 8867-4 frequenza cardiaca, 85354-9 pannello pressione sanguigna (8480-6 / 8462-4 componenti), 8310-5 temperatura corporea, 2339-0 glucosio, 29463-7 peso corporeo, 39156-5 BMI, 59408-5 SpO₂, 8302-2 altezza |
| Observation (laboratorio) | `code` | LOINC; locale `urn:anpheros:lab` quando non è noto LOINC | mappato da Anpheros Daily; intervallo di riferimento in `referenceRange`, documento in `derivedFrom` |
| Observation (sintomo) | `code`, `category` | ICD-10 (`http://hl7.org/fhir/sid/icd-10`) capitolo R; categoria `urn:anpheros:observation-category\|symptom`; SNOMED CT dietro un flag | testo libero rimane in `code.text`; intensità 1–10 in `valueQuantity` (`{score}`). Le risorse scritte prima del 13 ottobre 2026 potrebbero riportare il sistema HL7 `observation-category` con codice `symptom`; filtrare per codice (`category=symptom`), non per sistema. Vengono scritti solo i sintomi che il paziente riporta come presenti, riguardanti sé stesso |
| Observation (sondaggio, benessere) | `code`, `component` | `urn:anpheros:wellbeing` (dimensione: emotiva / mentale / fisica) | intensità come componente `valueQuantity` `{score}`; nota in `note` |
| Observation (attività, riepiloghi giornalieri) | `code` | LOINC: 40443-4 FC a riposo, 8867-4 FC (componenti min/avg/max), 80404-7 HRV (RMSSD), 59408-5 SpO₂, 41950-7 passi, 41981-2 energia, 93832-4 durata del sonno, 93831-6 / 93830-8 fasi del sonno | `effectivePeriod` copre la giornata; categoria `activity` |
| Condition | `code`, `severity`, `clinicalStatus` | ICD-10; gravità SNOMED CT (24484000 grave, 6736007 moderata, 255604002 lieve); `condition-clinical` | categoria `problem-list-item` |
| MedicationStatement | `medicationCodeableConcept` | ATC (`http://www.whocc.no/atc`); `code.text` = nome del prodotto | estensione `daily-medication` per campi specifici dell'app |
| MedicationAdministration | `medicationCodeableConcept`, `supportingInformation` | ATC; il piano di trattamento come `MedicationStatement/{id}` in `supportingInformation` (parametro di ricerca `statement`) | una risorsa per dose assunta o saltata (`status` completata / non eseguita) |
| Immunization | `vaccineCode` | ATC J07 (`http://www.whocc.no/atc`) o la nomenclatura nazionale; `vaccineCode.text` sempre conservato | `occurrenceDateTime` richiesto per la sezione IPS; `protocolApplied.doseNumberPositiveInt` per la dose |
| AllergyIntolerance | `code`, `reaction.manifestation`, `criticality` | SNOMED CT (dietro un flag) o solo `code.text`; ATC per allergie ai farmaci | categoria cibo / farmaco / ambiente / biologico |
| DocumentReference | `type` | Tipi di documenti LOINC (`DOC_KIND_LOINC` in `/v1`) | |
| Encounter | `class`, `type` | v3-ActCode class; tipo SNOMED CT quando noto | `episodeOfCare` → l'EpisodeOfCare di una gravidanza / malattia cronica / trattamento |
| EpisodeOfCare | `type`, `diagnosis.condition` | `urn:anpheros:episode-type` (malattia / trattamento / gravidanza / altro); `diagnosis.condition` → la Condition | uno per condizione di Anpheros Daily ("dosar", 25 settembre 2026); `period` = inizio → fine. Le risorse collegate puntano alla Condition: `Observation.focus`, `MedicationStatement.reasonReference`, `DocumentReference.context.related`, `Appointment.reasonReference` (ricerca: `focus`, `reason-reference`, `related`, `condition`) |
| Appointment | `serviceType` | sistema di codifica `service-type` | |
| RelatedPerson | `relationship` | v3-RoleCode (MTH, FTH, CHILD, SPS, …) | |
| QuestionnaireResponse | `questionnaire` | URL canonici sotto `https://anpheros.com/fhir/Questionnaire/` | |
| Basic | `code` | `urn:anpheros:basic` | via di fuga; ogni codice documentato qui prima dell'uso |
| Provenance | `agent.type` | `provenance-participant-type` | |

## Identificatori ed estensioni

- Identificatori locali delle righe Anpheros Daily: `urn:anpheros:daily:{vital|medication|condition|episode|lab|symptom|document|weight|wellbeing|intake|immunization|allergy|health-day}`.
- Estensione della condizione `daily-condition` (25 Sep 2026): `kind` (malattia / trattamento / gravidanza / altro), `color` (chiave della palette dell'app), `source`, `due_date` (gravidanza). Una gravidanza senza un codice scritto porta ICD-10 `Z33`.
- Le estensioni vivono sotto `https://anpheros.com/fhir/StructureDefinition/daily-*` (`daily-medication`, `daily-symptom`, `daily-condition`, …).
- Le unità sono UCUM (`http://unitsofmeasure.org`) ovunque venga scritta una quantità.

## Concetti sintomatici (release 2026.10.2, 16 ottobre 2026)

`GET /v1/terminology/symptoms?q=&icd10=&kind=symptom|finding|all&lang=&limit=&offset=` e
`GET /v1/terminology/symptoms/{concept_id}` servono i concetti sintomatici di Anpheros: un identificatore stabile
(`SYM-0001`…, mai riutilizzato; sistema `https://anpheros.com/fhir/CodeSystem/symptom`), il mapping ICD-10 con la sua equivalenza (`equivalent`, o `broader` quando il codice ICD-10 copre più del concetto), le etichette e i termini di corrispondenza utilizzati per trovare il concetto nel testo libero.

- 86 concetti: 70 sintomi e 16 riscontri (R70–R94). I sintomi utilizzano ICD-10 R00–R69 e, laddove l'OMS classifica il
  sintomo altrove, il codice OMS: G47 problemi del sonno, H53.2 visione doppia, H53.8 visione offuscata (più ampio), H93.1
  acufene, K59.0 stipsi, L29.9 prurito, M25.5 dolore articolare, M54 mal di schiena.
- Ogni codice e titolo inglese è stato verificato rispetto al browser WHO ICD-10 Versione 2019 il 15 ottobre 2026, incluse
  le sue note di inclusione ed esclusione; `icd10.display` è il titolo OMS.
- Ogni concetto viene mappato anche a **ICD-11 MMS 2025-01** (`icd11`: codice, titolo OMS, equivalenza `equivalent | wider |
  narrower | inexact`) and to a **body system** (`body_system`: the ICD-11 chapter 21 block of that code, e.g. `nervous`,
  `digestive`). Viene utilizzato il codice sintomatico del capitolo 21 anziché un codice di malattia (mal di testa → MB4D, non 8A8Z); ogni
  deviazione dalla tabella di mapping WHO ICD-10 → ICD-11 è elencata in `release.json` (`icd11_departures`). Filtra con
  `?icd11=MB4D` o `?body_system=digestive`.
- Le etichette hanno uno stato `review`: `source` (il titolo ufficiale in inglese dell'OMS), `in_use` (le etichette rumene e i termini di corrispondenza che Anpheros Daily utilizza) o `ai_reviewed` (etichette laiche in 19 lingue: traduzioni automatiche riviste termine per termine rispetto ai titoli OMS con assistenza AI, **non** da un clinico o un traduttore medico professionista). `display`
  è l'etichetta preferita in `lang`, altrimenti l'etichetta laica, altrimenti l'inglese; `display_lang` indica quale.
- Segni di allarme: 32 elementi per 14 concetti, citati parola per parola da pagine di pubblico dominio del CDC e del NIDDK, ciascuno con la sua fonte, `review: source_verified` e una nota "non è una diagnosi". Nessuna causa o associazione di condizioni. Ogni concetto porta `clinical_review: false` fino a quando un clinico qualificato non rivede la release.
- I dati risiedono in `app/terminology/symptoms/` (`concepts.csv`, `labels.csv`, `release.json` con fonti); una modifica
  è un commit revisionato e un nuovo numero di release.
- Anpheros Daily aggiunge il concetto come seconda codifica accanto all'ICD-10 nelle osservazioni sui sintomi.
- Esempio pratico con richieste e risposte: [API dati sintomi](https://developers.anpheros.com/it/guides/symptom-data-api).

### Gli stessi concetti come terminologia FHIR (15 ottobre 2026)

Sola lettura, dalla stessa release, con la stessa regola di pubblicazione (solo etichette revisionate):

| Risorsa | Lettura | Note |
|---|---|---|
| CodeSystem | `GET /fhir/R4/CodeSystem/anpheros-symptom`, `GET /fhir/R4/CodeSystem?url=https://anpheros.com/fhir/CodeSystem/symptom` | `content: complete`, `status: draft` fino a revisione clinica; proprietà `kind`, `status`, `icd10`, `icd11`, `body_system`; etichette rumene, termini di corrispondenza e le etichette laiche come designazioni |
| CodeSystem/$lookup | `GET /fhir/R4/CodeSystem/$lookup?system=https://anpheros.com/fhir/CodeSystem/symptom&code=SYM-0047&displayLanguage=ro` | `Parameters` con display, designazioni e proprietà |
| ValueSet | `GET /fhir/R4/ValueSet/anpheros-symptoms`, `GET /fhir/R4/ValueSet/$expand?url=https://anpheros.com/fhir/ValueSet/anpheros-symptoms&filter=&displayLanguage=&count=&offset=` | sintomi attivi (riscontri esclusi) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd10` | `equivalent`, o `wider` quando il codice ICD-10 copre più del concetto (H53.8) |
| ConceptMap | `GET /fhir/R4/ConceptMap/anpheros-symptom-to-icd11` | ICD-11 MMS 2025-01 (`http://id.who.int/icd/release/11/mms`), con `equivalent`, `wider`, `narrower` o `inexact` |

**Profilo `anpheros-symptom`** (`POST /fhir/R4/Observation/$validate?profile=anpheros-symptom`, canonico
`https://anpheros.com/fhir/StructureDefinition/anpheros-symptom-observation`): categoria
`urn:anpheros:observation-category|symptom` (il codice HL7 `observation-category` viene rifiutato), le parole della persona in
`code.text`, il concetto Anpheros coerente con il codice ICD-10, subject = Patient, status final / amended /
corrected / entered-in-error, effective[x] con `effectivePeriod.end` non prima di `start`, intensità come UCUM `{score}`
0–10. Come gli altri profili, segnala problemi e non rifiuta le scritture.

## Licenze

LOINC, ATC (WHO), ICD-10 (WHO) e UCUM sono utilizzati sotto le loro licenze pubbliche. SNOMED CT richiede una
licenza nazionale o affiliata: le tabelle di mappatura vengono fornite con il codice, ma i codici SNOMED vengono scritti solo quando `TERMINOLOGY_SNOMED_ENABLED` è attivo (in attesa della licenza per la Romania).

Come mappare i dati da diverse fonti a questi sistemi di codifica, con unità, date e convalida: [Come normalizzare i dati medici](https://developers.anpheros.com/it/guides/normalize-medical-data).

Dove cercare questi sistemi di codifica e cosa copre il sottoinsieme incluso: [API di terminologia medica](https://developers.anpheros.com/it/guides/medical-terminology-api).
