# Piattaforma FHIR: FHIR R4 gestito con consenso del paziente

> Una piattaforma FHIR R4 gestita: 26 tipi di risorse, ricerca, cronologia, transazioni, $everything, IPS, avvio SMART testato da Inferno, consenso e provenienza, più una semplice API REST. Sandbox gratuita.

Source: https://developers.anpheros.com/it/guides/fhir

**Anpheros è una piattaforma FHIR — un database FHIR gestito (data store) che le applicazioni utilizzano come backend FHIR: memorizza ogni cartella clinica del paziente nativamente come risorse HL7 FHIR R4 (4.0.1) ed espone tali risorse a `https://platform.anpheros.com/fhir/R4`,** con consenso, provenienza e un audit aggiunti sopra lo standard. Le applicazioni che già utilizzano FHIR possono usarla direttamente; le applicazioni che non lo fanno possono utilizzare la più semplice API REST (`/v1`), che legge e scrive le stesse risorse con gli stessi ID.

Per le applicazioni AI, questo rende Anpheros il backend FHIR da cui proviene il contesto di un modello: vedere [Applicazioni LLM e dati sanitari](https://developers.anpheros.com/it/guides/llm-healthcare-data).

<!-- visual:fhir-hero -->

## Cos'è HL7 FHIR?

FHIR (Fast Healthcare Interoperability Resources) è lo standard HL7 per lo scambio di dati sanitari sul web. Definisce:

- **risorse** — piccoli documenti JSON (o XML) tipizzati per ogni concetto clinico: un `Patient`, un `Observation`, un `Condition`, un `MedicationStatement`;
- **riferimenti** tra di esse (`"subject": {"reference": "Patient/123"}`), in modo che un record sia un grafo di risorse attorno a un paziente;
- una **API REST** per leggere, cercare, creare, aggiornare ed eliminare risorse, con parametri di ricerca standard;
- **bundle** per inviare più risorse contemporaneamente (transazioni) o come documento (ad esempio, un riassunto del paziente);
- **terminologia binding**, in modo che i valori trasportino codici da sistemi come LOINC o ICD-10;
- **profili** — vincoli per un caso d'uso o un paese, come l'International Patient Summary.

R4 (versione 4.0.1) è la release più ampiamente implementata oggi. Utilizzare FHIR come modello di archiviazione — non solo come formato di esportazione — significa che non c'è alcun livello di traduzione tra ciò che un'applicazione scrive e ciò che un altro sistema FHIR legge.

```json
{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "4548-4", "display": "Hemoglobin A1c"}]},
  "subject": {"reference": "Patient/…"},
  "effectiveDateTime": "2026-09-01T08:00:00Z",
  "valueQuantity": {"value": 6.4, "unit": "%", "system": "http://unitsofmeasure.org", "code": "%"}
}
```

## Dichiarazione di capacità

`GET /fhir/R4/metadata` restituisce la CapabilityStatement: i tipi di risorse supportati, i loro parametri di ricerca e le operazioni. È pubblica ed è l'elenco autorevole; la tabella sottostante la riflette al 28 settembre 2026.

## I 26 tipi di risorse

<!-- visual:fhir-map:replace -->

| Area | Tipi di risorse |
|---|---|
| Paziente e persone | `Patient`, `RelatedPerson` |
| Misurazioni e risultati | `Observation` (segni vitali, laboratorio, sintomi, benessere, attività quotidiana e sonno), `DiagnosticReport` |
| Problemi e assistenza | `Condition`, `EpisodeOfCare`, `Procedure`, `CarePlan`, `Goal`, `ServiceRequest`, `CareTeam`, `FamilyMemberHistory` |
| Farmaci e prevenzione | `MedicationStatement`, `MedicationAdministration`, `Immunization`, `AllergyIntolerance` |
| Documenti e questionari | `DocumentReference`, `QuestionnaireResponse` |
| Visite | `Encounter`, `Appointment` |
| Directory | `Organization`, `Practitioner`, `PractitionerRole` |
| Governance | `Consent`, `Provenance` |
| Punto di estensione | `Basic` |

Ogni tipo con ambito paziente appartiene al compartimento paziente, quindi `Patient/{id}/$everything`, gli ambiti OAuth a livello paziente e i filtri di consenso si applicano a tutti questi. Le risorse della directory (`Organization`, `Practitioner`, `PractitionerRole`) non hanno un paziente; sono leggibili tra i progetti nello stesso ambiente e modificabili solo dal progetto che li ha creati.

## Interazioni e operazioni

<!-- visual:fhir-ops -->

- **Read, search, create, update, delete** su ogni tipo supportato; i parametri di ricerca per tipo sono elencati nella CapabilityStatement. Parametri di ricerca sconosciuti vengono rifiutati con `400` anziché ignorati silenziosamente.
- **History**: `GET /fhir/R4/{type}/{id}/_history` restituisce ogni versione; gli aggiornamenti possono essere resi condizionali con `If-Match` (una mancata corrispondenza della versione risponde con `412`).
- **Transactions and batches**: `POST /fhir/R4` con un `Bundle` di tipo `transaction` o `batch`.
- **`Patient/{id}/$everything`**: l'intero compartimento di un paziente.
- **`Patient/{id}/$summary`**: un documento International Patient Summary (IPS) `Bundle`, in inglese o rumeno (`?lang=`).
- **`Observation/$validate?profile=eu-lab`**: riporta come un risultato di laboratorio si confronta con le regole del report di laboratorio HL7 Europe.
- **Paging**: `_count` fino a 200; `_revinclude` restituisce al massimo 1 000 risorse.
- **Idempotency**: le richieste `POST` accettano un `Idempotency-Key`; ripetere una richiesta con la stessa chiave restituisce la stessa risposta e non crea nulla.

```bash
# latest HbA1c results of one patient, strict FHIR
curl "https://platform.anpheros.com/fhir/R4/Observation?patient=$PID&code=http://loinc.org|4548-4&_sort=-date" \
     -H "Authorization: Bearer $KEY"

# the patient's International Patient Summary
curl "https://platform.anpheros.com/fhir/R4/Patient/$PID/\$summary?lang=en" -H "Authorization: Bearer $KEY"
```

## FHIR e la API REST semplificata

`/v1` esiste per gli sviluppatori che non desiderano lavorare direttamente con le risorse FHIR. Copre pazienti, osservazioni, condizioni, farmaci, documenti, una timeline cronologica e la provenienza, oltre alle funzionalità della piattaforma (contesto, importazione di laboratori, webhook, terminologia). Ogni oggetto `/v1` porta il suo riferimento `fhir`, in modo che un'applicazione possa iniziare con `/v1` e passare a FHIR per le parti in cui necessita del modello completo.

## Standard relativi a FHIR

`$summary` produce un International Patient Summary validato con l'HL7 validator ufficiale (0 errori); i risultati di laboratorio sono controllati secondo le regole di laboratorio HL7 Europe (attualmente consultive); le app di terze parti si connettono tramite SMART on FHIR standalone launch; i messaggi di laboratorio HL7 v2 `ORU^R01` sono accettati in input. I formati, i livelli e gli schemi di scambio sono descritti in [Interoperabilità dei dati sanitari](https://developers.anpheros.com/it/guides/interoperability); i sistemi di codifica per tipo di risorsa in [Sistemi di codifica FHIR](https://developers.anpheros.com/it/guides/fhir-code-systems).

## Domande frequenti

### Cos'è una piattaforma FHIR?
Un servizio che memorizza dati sanitari come risorse HL7 FHIR ed espone tramite la normale API REST FHIR, aggiungendo ciò che le applicazioni necessitano attorno allo standard: autorizzazione, consenso, audit, cronologia e operazioni come `$everything` e `$summary`. Anpheros è una piattaforma FHIR R4 gestita: la si chiama invece di eseguire un server FHIR.

### Qual è la differenza tra un server FHIR e una piattaforma FHIR?
Un server FHIR implementa l'API FHIR su un database. Una piattaforma FHIR la esegue per te e aggiunge lo strato attorno ad essa — consenso del paziente, provenienza, log di accesso, SDK, webhook, importazione di laboratori e una sandbox — in modo che le applicazioni non debbano costruire queste parti.

### Quale versione FHIR supporta Anpheros?
FHIR R4 (4.0.1), con 26 tipi di risorse elencati nella CapabilityStatement pubblica a `/fhir/R4/metadata`.

### La piattaforma FHIR Anpheros è testata in modo indipendente?
Il gruppo SMART App Launch STU2 "Standalone Launch" del kit di test open-source Inferno supera 22 test su 22 (esecuzione del 28 settembre 2026), e l'International Patient Summary viene validato con 0 errori nel validatore ufficiale HL7. EHR launch e Bulk Data export non sono ancora supportati.

### Posso usare la piattaforma FHIR gratuitamente?
Sì. La sandbox è gratuita e include 30 pazienti sintetici per progetto; la produzione inizia da €99 al mese con il primo mese gratuito.

### Devo usare FHIR per usare Anpheros?
No. Una API REST più semplice (`/v1`) legge e scrive le stesse risorse con gli stessi ID, quindi un'applicazione può iniziare con JSON piatto e passare a FHIR dove necessita del modello completo.

<!-- visual:cta-fhir -->

## Correlati

- [FHIR sandbox](https://developers.anpheros.com/it/guides/fhir-sandbox): un server di test FHIR R4 privato e gratuito
- [International Patient Summary (IPS) in FHIR](https://developers.anpheros.com/it/guides/international-patient-summary-fhir)
- [Provenienza dei dati medici spiegata](https://developers.anpheros.com/it/guides/medical-data-provenance): chi ha scritto cosa e come registrarlo
- [Come archiviare cartelle cliniche utilizzando FHIR R4](https://developers.anpheros.com/it/guides/store-medical-records-fhir): tutorial passo-passo con curl
- [FHIR vs. un database medico personalizzato](https://developers.anpheros.com/it/guides/fhir-vs-custom-database): quando progettare le proprie tabelle e quando usare FHIR
- [Database e sandbox FHIR gratuiti](https://developers.anpheros.com/it/guides/free-fhir-database)
- [Come Anpheros si confronta con altri server FHIR](https://developers.anpheros.com/it/guides/fhir-server-comparison)
- [Interoperabilità dei dati sanitari](https://developers.anpheros.com/it/guides/interoperability)
- [Sistemi di codifica FHIR](https://developers.anpheros.com/it/guides/fhir-code-systems)
- [API per dati medici](https://developers.anpheros.com/it/guides/medical-data-api)
- [Creare un'app sanitaria](https://developers.anpheros.com/it/guides/build-a-healthcare-app)
- [Riferimento API (OpenAPI)](https://developers.anpheros.com/docs)
- [DICOM vs FHIR](https://developers.anpheros.com/it/guides/dicom-vs-fhir): dove finisce FHIR e inizia l'imaging medico
