AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Wyjaśnienie pochodzenia danych medycznych

Co rejestruje pochodzenie przy każdym zapisie do repozytorium FHIR R4 — typ autora, osoba, organizacja, system źródłowy, wersje — jak ustawić je za pomocą nagłówków, jak je odczytać i jak oznacza dane przekazane modelom AI.

Pochodzenie to zapis, skąd pochodzi fragment danych medycznych: kto go napisał, w imieniu jakiej organizacji, z jakiego systemu, kiedy i co się zmieniło w każdej wersji. W rekordzie zbierającym dane od pacjentów, urządzeń, klinik, laboratoriów i AI, pochodzenie jest tym, co czyni wartość godną zaufania: odczyt ciśnienia krwi wprowadzony w domu i zmierzony w klinice wyglądają identycznie bez niego. W Anpheros każdy zapis rekordu HL7 FHIR R4 automatycznie generuje zasób FHIR Provenance. Ta strona wyjaśnia, co zawiera, jak go poprawnie wypełnić i jak go odczytać.

Dlaczego proweniencja ma znaczenie

Co Anpheros zapisuje przy każdej operacji zapisu

Pytanie Gdzie jest zapisywane Jak to ustawić
Jaki rodzaj autora? agent.who.identifier (typ autora) author_type w /v1, lub nagłówek X-Anpheros-Author-Type: patient, practitioner, device, import, ai
Która osoba? agent.who.reference X-Anpheros-Author-Ref: Practitioner/<id>, lub X-Anpheros-Acting-As
Dla której organizacji? agent.onBehalfOf organizacja PractitionerRole, lub X-Anpheros-On-Behalf-Of: Organization/<id>
Z którego systemu? entity z rolą source X-Anpheros-Source-System: <name>
Który rekord w tym systemie? origin id X-Anpheros-Origin-Id: <id>
Kiedy i co się wydarzyło? recorded, activity (CREATE, UPDATE, DELETE) automatycznie
Która wersja? target wskazuje na <Resource>/<id>/_history/<version> automatycznie

Jeśli nie podasz, kto jest autorem, platforma zapisze import. Nigdy nie zakłada patient, ponieważ wartość błędnie przypisana pacjentowi jest gorsza niż ta uczciwie oznaczona jako zaimportowana.

Zapis z pełnym pochodzeniem

Kardiolog w przychodni rejestruje tętno podczas wizyty za pomocą oprogramowania przychodni:

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 zapisywany przez platformę:

{"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"}}}]}

Rola lekarza, jego przychodnia, rodzaj autora i system źródłowy są zawarte w standardzie FHIR. PractitionerRole musi istnieć w katalogu projektu i być aktywny. Żądanie nazwania praktyka innej osoby jest odrzucane:

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

Konfiguracja katalogu jest opisana w Jak zintegrować systemy przychodni z backendem FHIR.

Wersje: nic nie jest nadpisywane w sposób ukryty

Każda aktualizacja tworzy nową wersję zasobu i nowy obiekt Provenance dla tej wersji. Po poprawieniu tętna z 92 na 88:

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

zwraca wersję 2 (88) i wersję 1 (92). Widok REST podsumowuje Provenance każdej wersji:

curl https://platform.anpheros.com/v1/patients/$PID/provenance/Observation/$OBS -H "Authorization: Bearer $KEY"
{"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}

Usunięcia są miękkie: usunięty zasób znika z wyników wyszukiwania, ale jego historia i Provenance pozostają.

Odczytywanie proweniencji

# 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}

Proweniencja w kontekstach AI

API kontekstu przenosi proweniencję do każdego elementu, który przekazuje modelowi, jako author_type i source. W formie tekstowej:

- 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]

Pomiary zapisane za pomocą author_type: ai nigdy nie pojawiają się wśród tych faktów. Są one wymienione osobno w sekcji ai_notes i oznaczone jako niezweryfikowane, dzięki czemu model nie może pomylić wcześniejszego przypuszczenia modelu z pomiarem. Powiedz modelowi, co oznaczają etykiety i poproś o ich cytowanie; Jak zbudować aplikację AI dla służby zdrowia z backendem FHIR pokazuje przykład takiego zapytania.

Co widzi pacjent

Provenance to również to, co widzi pacjent. Jego rekord pokazuje, kto dodał każdy element, a lista połączeń pokazuje, dla każdej aplikacji, kto uzyskał dostęp do czego, podając imię i nazwisko, gdy działał lekarz ("Dr Ana Popescu · Clinica Cardio Nord odczytał Twoje wyniki badań laboratoryjnych"). Zobacz Model zgody i dostępu.

Zasady zapewniające użyteczność danych o pochodzeniu

  1. Zawsze ustaw typ autora. Kosztuje to jedno pole i jest najważniejszą etykietą w rekordzie.
  2. Podaj imię i nazwisko osoby, gdy napisała ona wpis. Użyj X-Anpheros-Acting-As dla personelu klinicznego.
  3. Podaj nazwę systemu źródłowego i przekaż własne identyfikatory źródła jako identyfikatory pochodzenia, jeśli istnieją.
  4. Koryguj poprzez aktualizację, nigdy poprzez usunięcie i ponowne utworzenie. Aktualizacja utrzymuje powiązanie między starą a nową wartością.
  5. Oznaczaj dane wygenerowane przez AI jako ai, w tym wartości wyodrębnione przez model z dokumentu. Wartości pochodzące z dokumentu mogą również wskazywać z powrotem na niego za pomocą derived_from.

Często zadawane pytania

Czym jest pochodzenie danych w opiece zdrowotnej?

Dokumentowane pochodzenie i historia fragmentu danych medycznych: kto je utworzył lub zmienił, w czyim imieniu, z jakiego systemu i kiedy. W HL7 FHIR jest reprezentowane przez zasób Provenance, który wskazuje na dokładną wersję zasobu, który opisuje.

Czy pochodzenie jest tym samym co dziennik audytu?

Nie. Pochodzenie opisuje dane: kto napisał każdą wersję. Dziennik audytu opisuje dostęp: kto, kiedy i na podstawie jakiej zgody, co odczytał lub zapisał. Anpheros przechowuje oba; pacjent widzi dziennik dostępu dla każdej aplikacji podłączonej do jego rekordu.

Czy mogę tworzyć własne zasoby Provenance?

Anpheros tworzy jeden dla każdego utworzenia, aktualizacji i usunięcia, więc zazwyczaj nie musisz tego robić. Użyj powyższych nagłówków, aby to doprecyzować. Pochodzenie dostarczone przez klienta musi być skierowane do zasobów pojedynczego pacjenta.

Powiązane tematy

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy