AnpherosAnpheros PlatformDevelopers

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

Ako integrovať klinické systémy s FHIR backendom

Návod: pripojte EMR kliniky k FHIR R4 záznamom pacientov — adresár lekárov, párovanie podľa čísla záznamu, návšteva ako jedna transakcia s lekárom ako autorom, laboratórne správy, údaje od iných poskytovateľov a webhooks.

Tento tutoriál pripája softvér kliniky (EMR, systém na správu praxe alebo rezervačný nástroj) k HL7 FHIR R4 záznamom pacientov v Anpheros: klinika a jej lekári sú zaregistrovaní v adresári, pacienti sú spárovaní podľa čísla záznamu kliniky, návšteva je zaznamenaná ako jedna transakcia s lekárom uvedeným ako autor a klinika sa dozvie o dátach, ktoré pridávajú iní poskytovatelia. Každý požiadavok je curl proti bezplatnému sandboxu a odpovede sú vlastné platformy.

Integrácia beží na serveri kliniky s API kľúčom projektu pre pacientov, ktorých klinika registruje, a pre ľudí, ktorí už majú Anpheros záznam, s OAuth grantom, ktorý schvália.

Čo sa na čo mapuje

V klinickom systéme Vo FHIR R4
klinika, jej oddelenia Organization
lekár alebo sestra Practitioner
táto osoba pracujúca na tejto klinike, so špecializáciou PractitionerRole
súbor pacienta a jeho číslo Patient s identifier v systéme kliniky
návšteva Encounter
vitálne funkcie, výsledky merané počas návštevy Observation prepojené s Encounter
diagnóza Condition (ICD-10), s verificationStatus predbežná alebo potvrdená
predpis, súčasná liečba MedicationStatement (ATC)
list, prepúšťacia správa, sken DocumentReference so súborom
laboratórne výsledky laboratórny konektor, do Observation

Krok 1: registrácia kliniky a jej lekárov

Adresárové zdroje nemajú pacienta. Iné projekty v rovnakom prostredí ich môžu čítať, takže iní poskytovatelia pacienta vidia, kto čo napísal, ale meniť ich môže iba váš projekt.

export BASE=https://platform.anpheros.com/fhir/R4
export KEY=sk_test_…
H=(-H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json")

curl -X POST $BASE/Organization "${H[@]}" -d '{"resourceType": "Organization", "active": true, "name": "Clinica Cardio Nord",
  "identifier": [{"system": "https://clinic.example/org", "value": "CCN"}]}'

curl -X POST $BASE/Practitioner "${H[@]}" -d '{"resourceType": "Practitioner", "active": true,
  "name": [{"family": "Popescu", "given": ["Ana"], "prefix": ["Dr."]}]}'

curl -X POST $BASE/PractitionerRole "${H[@]}" -d '{"resourceType": "PractitionerRole", "active": true,
  "practitioner": {"reference": "Practitioner/'$PRACTITIONER'"},
  "organization": {"reference": "Organization/'$ORG'"},
  "code": [{"text": "Cardiologist"}]}'

Uchovajte si vrátené ID vedľa záznamov vášho personálu. Keď niekto odíde, nastavte jeho PractitionerRole na "active": false; jeho minulé zápisy si zachovajú jeho meno a už nemôže konať prostredníctvom vášho systému.

Krok 2: párovanie pacientov

Pre pacientov, ktorých klinika registruje, vytvorte Patient s registračným číslom kliniky ako identifikátorom:

curl -X POST $BASE/Patient "${H[@]}" -d '{"resourceType": "Patient",
  "identifier": [{"system": "https://clinic.example/mrn", "value": "MRN-20981"}],
  "name": [{"family": "Dinu", "given": ["Andrei"]}], "gender": "male", "birthDate": "1968-11-05"}'

Odteraz vyhľadávajte pacienta podľa tohto čísla, nikdy podľa mena a dátumu narodenia:

curl "$BASE/Patient?identifier=https://clinic.example/mrn|MRN-20981" -H "Authorization: Bearer $KEY"

Ak osoba už má záznam v Anpheros, zo svojej vlastnej aplikácie alebo od iného poskytovateľa, klinika nevytvára druhý záznam. Požiada osobu o prístup pomocou OAuth, z tabletu na recepcii alebo prostredníctvom odkazu zaslaného pred návštevou, pomocou dôvernej aplikácie (server kliniky si uchováva tajný kľúč). Osoba si vyberie svoj záznam a dobu, počas ktorej môže mať klinika k nemu prístup. Kroky sú uvedené v Ako implementovať súhlas pacienta pomocou SMART on FHIR; pole patient tokenu je ID, ktoré si uložíte k svojmu súboru.

Krok 3: Zápis návštevy ako jedna transakcia

Návšteva generuje niekoľko zdrojov, ktoré patria k sebe. Pošlite ich v transaction, aby boli uložené naraz alebo vôbec, a uveďte, kto pracuje: X-Anpheros-Acting-As pomenúva rolu lekára. Stane sa autorom v Provenance, zapíše sa do prístupového denníka a zobrazí sa pacientovi podľa mena.

curl -X POST $BASE "${H[@]}" \
  -H "X-Anpheros-Acting-As: PractitionerRole/$ROLE" \
  -H "X-Anpheros-Author-Type: practitioner" \
  -H "X-Anpheros-Source-System: ccn-emr" -d '{
  "resourceType": "Bundle", "type": "transaction",
  "entry": [
    {"fullUrl": "urn:uuid:aa000000-0000-4000-8000-000000000001",
     "resource": {"resourceType": "Encounter", "status": "finished",
       "class": {"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "AMB", "display": "ambulatory"},
       "subject": {"reference": "Patient/'$PID'"},
       "serviceProvider": {"reference": "Organization/'$ORG'"},
       "participant": [{"individual": {"reference": "PractitionerRole/'$ROLE'"}}],
       "period": {"start": "2026-10-09T10:00:00Z", "end": "2026-10-09T10:30:00Z"}},
     "request": {"method": "POST", "url": "Encounter"}},
    {"resource": {"resourceType": "Observation", "status": "final",
       "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}]}],
       "code": {"coding": [{"system": "http://loinc.org", "code": "8867-4", "display": "Heart rate"}]},
       "subject": {"reference": "Patient/'$PID'"},
       "encounter": {"reference": "urn:uuid:aa000000-0000-4000-8000-000000000001"},
       "effectiveDateTime": "2026-10-09T10:10:00Z",
       "valueQuantity": {"value": 92, "unit": "/min", "system": "http://unitsofmeasure.org", "code": "/min"}},
     "request": {"method": "POST", "url": "Observation"}},
    {"resource": {"resourceType": "Condition",
       "subject": {"reference": "Patient/'$PID'"},
       "encounter": {"reference": "urn:uuid:aa000000-0000-4000-8000-000000000001"},
       "clinicalStatus": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/condition-clinical", "code": "active"}]},
       "verificationStatus": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", "code": "provisional"}]},
       "code": {"coding": [{"system": "http://hl7.org/fhir/sid/icd-10", "code": "I48.0", "display": "Paroxysmal atrial fibrillation"}]}},
     "request": {"method": "POST", "url": "Condition"}}
  ]}'

The transaction-response má 201 Created pre Encounter, Observation a Condition. Observation a Condition teraz odkazujú na skutočný Encounter/0ca25459-…. Provenance každého z nich pomenúva rolu lekára, kliniku a zdrojový systém:

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

Diagnóza je provisional, kým nie je potvrdená. Neskôr ju aktualizujte na confirmed a história si uchová obe. Čo znamená každé pole, je vysvetlené v Vysvetlenie pôvodu lekárskych údajov.

Krok 4: Laboratórne výsledky a dokumenty

Výsledky z vlastného laboratória kliniky alebo správy, ktoré pacient prinesie, prechádzajú cez laboratórny konektor v jednej požiadavke na správu:

curl -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" -H "Authorization: Bearer $KEY" \
     -H "Content-Type: x-application/hl7-v2+er7" -H "X-Anpheros-Source-System: ccn-lab" --data-binary @oru.hl7

Listy a prepúšťacie správy sú dokumenty: vytvorte DocumentReference cez /v1/patients/{id}/documents a nahrajte PDF. Pôvodný súbor sa nikdy nemení a hodnoty z neho extrahované naň odkazujú. Pozri Ako importovať laboratórne výsledky do FHIR záznamu a API pre lekárske údaje.

Krok 5: Prečítajte si, čo napísali iní poskytovatelia, a držte sa svojho

S pacientovým súhlasom klinika prečíta celý záznam v rámci svojich rozsahov, vrátane toho, čo pridali iné kliniky, laboratóriá a pacient. Môže zmeniť iba to, čo napísala sama. Aktualizácia alebo odstránenie zdroja inej organizácie odpovie 403 a originál zostane tak, ako bol. Ak chcete opraviť niečo, čo napísal iný poskytovateľ, napíšte svoj vlastný zdroj (napríklad nový Condition s vaším posúdením) a nechajte záznam zobrazovať oboje, každý so svojím autorom.

Pred návštevou GET $BASE/Patient/$PID/$summary poskytne Medzinárodný súhrn pacienta záznamu: problémy, lieky, alergie a nedávne vitálne funkcie z každého zdroja.

Krok 6: Informácie o nových dátach

Zaregistrujte webhook raz pre projekt kliniky:

curl -X POST https://platform.anpheros.com/v1/webhooks -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
     -d '{"url": "https://ccn.example/anpheros/hook", "events": ["resource.created", "resource.updated", "consent.revoked"]}'

Keď iný projekt zapíše do záznamu, ku ktorému má vaša klinika prístup, udalosť to oznámi pomocou data.external: true a zdroja, takže váš EMR môže zobraziť „nové výsledky z iného laboratória“ bez neustáleho dopytovania. Událosť consent.revoked znamená, že osoba odvolala prístup kliniky: prestaňte synchronizovať tento záznam. Podpisy, opätovné pokusy a užitočné zaťaženia sú popísané v časti Webhooks.

Čo vidí pacient

Pacient vo svojom zázname vidí návštevu, srdcovú frekvenciu a predbežnú diagnózu, pričom každá položka je označená ako pridaná Dr. Ana Popescu z Clinica Cardio Nord. Vo svojich pripojeniach aplikácia kliniky uvádza každý prístup, podľa mena, keď konal lekár. Táto transparentnosť je to, čo pacientov robí ochotnými udeliť prístup ďalšej klinike.

Kontrolný zoznam pre spustenie do prevádzky

Často kladené otázky

Má Anpheros hotový konektor pre môj EMR?

Nie. Neexistujú hotové konektory pre špecifické EMR alebo laboratórne systémy; integrácia je postavená proti FHIR R4 a REST API, zvyčajne ako malá služba vedľa EMR. Laboratórne správy HL7 v2 sú akceptované tak, ako sú.

Môže lekár pracovať pre dve kliniky?

Áno. Jedna Practitioner môže mať PractitionerRole v každej organizácii. Rola uvedená v X-Anpheros-Acting-As rozhoduje, pre ktorú kliniku je každý zápis zaznamenaný.

Čo sa stane, keď pacient odvolá prístup kliniky?

Volania kliniky pre daný záznam odpovedia 401 a odošle sa webhook consent.revoked. To, čo klinika napísala, zostáva v zázname pacienta s jej pôvodom; klinika ho už len nemôže čítať ani meniť.

Súvisiace

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