# Proveniența datelor medicale explicată

> Ce înregistrează proveniența la fiecare scriere pe un înregistrare FHIR R4 — tipul autorului, persoana, organizația, sistemul sursă, versiunile — cum să o setați cu anteturi, cum să o citiți și cum etichetează datele furnizate modelelor AI.

Source: https://developers.anpheros.com/ro/guides/medical-data-provenance

**Proveniența este înregistrarea de unde provine o piesă de date medicale: cine a scris-o, în numele cărei organizații, din ce sistem, când și ce s-a schimbat în fiecare versiune.** Într-o înregistrare care colectează date de la pacienți, dispozitive, clinici, laboratoare și AI, proveniența este ceea ce face o valoare demnă de încredere: o citire a tensiunii arteriale tastată acasă și una măsurată într-o clinică arată identic fără ea. În Anpheros, fiecare scriere pe o înregistrare HL7 FHIR R4 produce automat o resursă FHIR `Provenance`. Această pagină explică ce conține, cum să o completați corect și cum să o citiți.

## De ce contează proveniența

- **Încredere clinică.** Un medic cântărește un rezultat de laborator diferit de o valoare introdusă de pacient sau de un număr extras de o inteligență artificială dintr-o fotografie.
- **Siguranța AI.** Un model căruia i se oferă un fișier trebuie să știe care elemente sunt fapte și care sunt note scrise de un alt model. Fără etichete, le tratează la fel.
- **Corecții și dispute.** Când o valoare se modifică, toată lumea trebuie să știe care a fost valoarea anterioară, cine a modificat-o și de ce.
- **Responsabilitate.** Conform GDPR și Spațiului European pentru Datele de Sănătate, o organizație trebuie să poată demonstra ce a făcut cu datele de sănătate ale unei persoane.
- **Partajare.** Când un pacient permite unei a doua clinici să îi citească fișierul, acea clinică trebuie să știe ce date a scris prima clinică.

## Ce înregistrează Anpheros la fiecare scriere

| Întrebare | Unde este înregistrată | Cum o setați |
|---|---|---|
| Ce fel de autor? | `agent.who.identifier` (tip autor) | `author_type` în `/v1`, sau antetul `X-Anpheros-Author-Type`: `patient`, `practitioner`, `device`, `import`, `ai` |
| Ce persoană? | `agent.who.reference` | `X-Anpheros-Author-Ref: Practitioner/<id>`, sau `X-Anpheros-Acting-As` |
| Pentru ce organizație? | `agent.onBehalfOf` | organizația din `PractitionerRole`, sau `X-Anpheros-On-Behalf-Of: Organization/<id>` |
| Din ce sistem? | `entity` cu rolul `source` | `X-Anpheros-Source-System: <name>` |
| Ce înregistrare în acel sistem? | id origine | `X-Anpheros-Origin-Id: <id>` |
| Când și ce s-a întâmplat? | `recorded`, `activity` (CREATE, UPDATE, DELETE) | automat |
| Ce versiune? | `target` indică `<Resource>/<id>/_history/<version>` | automat |

Dacă nu specificați cine este autorul, platforma înregistrează `import`. Nu presupune niciodată `patient`, deoarece o valoare atribuită greșit pacientului este mai rea decât una etichetată corect ca fiind importată.

## O scriere cu proveniență completă

Un cardiolog dintr-o clinică înregistrează o frecvență cardiacă în timpul unei vizite, prin intermediul software-ului clinicii:

```bash
curl -X POST https://platform.anpheros.com/fhir/R4/Observation -H "Authorization: Bearer $KEY" \
     -H "Content-Type: application/fhir+json" \
     -H "X-Anpheros-Author-Type: practitioner" \
     -H "X-Anpheros-Acting-As: PractitionerRole/$ROLE" \
     -H "X-Anpheros-Source-System: ccn-emr" \
     -d '{ "resourceType": "Observation", "status": "final", "code": {"coding": [{"system": "http://loinc.org", "code": "8867-4"}]}, … }'
```

Provenance pe care platforma o scrie:

```json
{"resourceType": "Provenance",
 "target": [{"reference": "Observation/8660eb7c-…/_history/1"}],
 "recorded": "2026-10-12T20:41:47.469000Z",
 "activity": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-DataOperation", "code": "CREATE"}]},
 "agent": [{"type": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type", "code": "author"}]},
            "who": {"reference": "PractitionerRole/e6d8c227-…",
                    "identifier": {"system": "https://anpheros.com/fhir/CodeSystem/author-type", "value": "practitioner"}},
            "onBehalfOf": {"reference": "Organization/c3a56a4b-…", "display": "Clinica Cardio Nord"}}],
 "entity": [{"role": "source", "what": {"identifier": {"system": "ccn-emr"}}}]}
```

Rolul medicului, clinica sa, tipul autorului și sistemul sursă sunt toate acolo, în standardul FHIR. `PractitionerRole` trebuie să existe în directorul proiectului dvs. și să fie activ. O cerere care numește practicianul altei persoane este refuzată:

```json
{"resourceType": "OperationOutcome", "issue": [{"severity": "error", "code": "invalid",
  "diagnostics": "Unknown or inactive Practitioner in X-Anpheros-Acting-As."}]}
```

Configurarea directorului este acoperită în [Cum să integrați sistemele clinice cu un backend FHIR](https://developers.anpheros.com/ro/guides/integrate-clinic-systems-fhir).

## Versiuni: nimic nu este suprascris silențios

Fiecare actualizare creează o nouă versiune a resursei și un nou Provenance pentru aceasta. După ce ritmul cardiac de mai sus este corectat de la 92 la 88:

```bash
curl https://platform.anpheros.com/fhir/R4/Observation/$OBS/_history -H "Authorization: Bearer $KEY"
```

returnează versiunea 2 (88) și versiunea 1 (92). Vizualizarea REST rezumă Provenance-ul fiecărei versiuni:

```bash
curl https://platform.anpheros.com/v1/patients/$PID/provenance/Observation/$OBS -H "Authorization: Bearer $KEY"
```

```json
{"data": [
  {"version": 1, "activity": "CREATE", "recorded": "2026-10-12T20:41:47.469000Z", "author_type": "practitioner", "author": "PractitionerRole/e6d8c227-…", "source_system": "ccn-emr", "fhir": "Provenance/6ed91529-…"},
  {"version": 2, "activity": "UPDATE", "recorded": "2026-10-12T20:41:47.500000Z", "author_type": "practitioner", "fhir": "Provenance/3fbf270f-…"}],
 "total": 2}
```

Ștergerile sunt soft: o resursă ștearsă dispare din căutări, dar istoricul și Provenance-ul său rămân.

## Citirea provenienței

```bash
# who wrote this resource (all versions)
GET /fhir/R4/Provenance?target=Observation/{id}
# everything a practitioner recorded
GET /fhir/R4/Provenance?agent=PractitionerRole/{id}
# the same, summarised, per resource
GET /v1/patients/{pid}/provenance/Observation/{id}
```

## Proveniența în contexte AI

[API-ul de context](https://developers.anpheros.com/ro/guides/llm-healthcare-data) poartă proveniența în fiecare element pe care îl oferă unui model, ca `author_type` și `source`. În formă text:

```
- Type 2 diabetes mellitus (E11), active, onset 2024-10-15 [import/anpheros-sandbox]
- Metformin 1000 mg 1 tablet twice daily with meals, active [patient/anpheros-sandbox]
- Glucose [Mass/volume] in Blood: 2026-09-16: 140.0 mg/dL [device/anpheros-sandbox]
```

Măsurătorile scrise cu `author_type: ai` nu apar niciodată printre aceste fapte. Ele sunt listate separat sub `ai_notes` și marcate ca neverificate, astfel încât un model să nu poată confunda o presupunere a unui model anterior cu o măsurătoare. Spuneți modelului ce înseamnă etichetele și cereți-i să le citeze; [Cum să construiești o aplicație AI pentru sănătate cu un backend FHIR](https://developers.anpheros.com/ro/guides/build-ai-healthcare-app) arată un prompt care face acest lucru.

## Ce vede pacientul

Proveniența este, de asemenea, ceea ce vede pacientul. Înregistrarea sa arată cine a adăugat fiecare element, iar lista de conexiuni arată, pentru fiecare aplicație, cine a accesat ce, prin nume atunci când un practician acționa ("Dr. Ana Popescu · Clinica Cardio Nord a citit rezultatele dvs. de laborator"). Vezi [Modelul de consimțământ și acces](https://developers.anpheros.com/ro/guides/consent).

## Reguli care fac proveniența utilă

1. **Setați întotdeauna tipul autorului.** Costă un câmp și este cea mai importantă etichetă din înregistrare.
2. **Denumiți persoana când a scris-o o persoană.** Folosiți `X-Anpheros-Acting-As` pentru personalul clinic.
3. **Denumiți sistemul sursă** și transmiteți ID-ul propriu al sursei ca ID de origine, atunci când există unul.
4. **Corectați prin actualizare, niciodată prin ștergere și recreare.** O actualizare păstrează legătura între valoarea veche și cea nouă.
5. **Etichetați ieșirea AI ca `ai`**, inclusiv valorile extrase de un model dintr-un document. Valorile derivate dintr-un document pot, de asemenea, să facă trimitere înapoi la acesta cu `derived_from`.

## Întrebări frecvente

### Ce este proveniența datelor în domeniul sănătății?
Originea și istoricul documentat al unei piese de date medicale: cine a creat-o sau a modificat-o, în numele cui, din ce sistem și când. În HL7 FHIR, aceasta este reprezentată de resursa `Provenance`, care indică versiunea exactă a resursei pe care o descrie.

### Proveniența este același lucru cu un jurnal de audit?
Nu. Proveniența descrie datele: cine a scris fiecare versiune. Un jurnal de audit descrie accesul: cine a citit sau a scris ce, când, sub ce consimțământ. Anpheros păstrează ambele; pacientul vede jurnalul de acces pentru fiecare aplicație conectată la dosarul său.

### Pot să scriu propriile resurse de Proveniență?
Anpheros scrie una pentru fiecare creare, actualizare și ștergere, deci în mod normal nu este necesar. Utilizați anteturile de mai sus pentru a o face precisă. O resursă de Proveniență furnizată de client trebuie să vizeze resurse ale unui singur pacient.

## Conexe

- [Modelul de consimțământ și acces](https://developers.anpheros.com/ro/guides/consent)
- [Cum să integrați sistemele clinice cu un backend FHIR](https://developers.anpheros.com/ro/guides/integrate-clinic-systems-fhir)
- [Cum să normalizați datele medicale](https://developers.anpheros.com/ro/guides/normalize-medical-data)
- [Interoperabilitatea datelor din domeniul sănătății](https://developers.anpheros.com/ro/guides/interoperability)
- [Securitate, confidențialitate și rezidența datelor](https://developers.anpheros.com/ro/guides/security)
