AnpherosAnpheros PlatformDevelopers

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

Klinikai rendszerek integrálása FHIR backenddel

Oktatóanyag: csatlakoztasson egy klinikai EMR-t a páciensek FHIR R4 rekordjaihoz – orvosok címtára, rekord számmal való egyeztetés, egy vizit mint egyetlen tranzakció az orvossal mint szerzővel, laboreredmények, más szolgáltatók adatai és webhookok.

Ez a tutorial egy klinika szoftverét (EMR, praxismenedzsment rendszer vagy foglalási eszköz) csatlakoztatja a páciensek HL7 FHIR R4 rekordjaihoz az Anpherosban: a klinika és orvosai regisztrálva vannak a címtárban, a páciensek a klinika rekord száma alapján kerülnek egyeztetésre, egy látogatás egy tranzakcióként kerül rögzítésre az orvossal mint szerzővel, és a klinika értesül a más szolgáltatók által hozzáadott adatokról. Minden kérés curl az ingyenes sandbox ellen történik, és a válaszok a platform sajátjai.

Az integráció a klinika szerverén fut, egy projekt API kulccsal a klinika által regisztrált páciensek számára, és azok számára, akiknek már van Anpheros rekordjuk, egy általuk jóváhagyott OAuth engedéllyel.

Mi mihez rendelődik

A klinikai rendszerben FHIR R4-ben
a klinika, annak osztályai Organization
orvos vagy nővér Practitioner
az adott klinikán dolgozó személy, szakterülettel PractitionerRole
a páciens aktája és annak száma Patient a klinika rendszerében lévő identifier-mal
egy vizit Encounter
életjelek, a vizit során mért eredmények Observation a Encounter-hoz kapcsolva
egy diagnózis Condition (ICD-10), verificationStatus ideiglenes vagy megerősített státusszal
egy recept, jelenlegi kezelés MedicationStatement (ATC)
egy levél, zárójelentés, lelet DocumentReference az aktához
laboreredmények a lab csatlakozó segítségével, Observation-ként

1. lépés: A klinika és orvosai regisztrálása

A könyvtár erőforrások nem tartalmaznak beteget. Az azonos környezetben lévő többi projekt olvashatja őket, így a beteg más szolgáltatói látják, ki mit írt, de csak a saját projektje módosíthatja azokat.

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

Tartsa meg a visszaadott azonosítókat a személyzeti nyilvántartásai mellett. Amikor valaki távozik, állítsa a PractitionerRole értékét "active": false-ra; korábbi bejegyzései megőrzik a nevüket, és nem tudnak többé a rendszerén keresztül eljárni.

2. lépés: páciensek egyeztetése

A klinika által regisztrált páciensek esetében hozzon létre egy Patient rekordot a klinika nyilvántartási számával mint azonosítóval:

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"}'

Ettől kezdve a pácienst ezen a számon keresztül keresse, soha név és születési dátum alapján:

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

Ha az illetőnek már van Anpheros rekordja, a saját alkalmazásából vagy egy másik szolgáltatótól, a klinika nem hoz létre másodikat. Hozzáférést kér az illetőtől OAuth segítségével, egy táblagépen a recepción, vagy a látogatás előtt küldött linken keresztül, egy bizalmas alkalmazás használatával (a klinika szervere tartja titokban a titkot). Az illető kiválasztja a rekordját és azt, hogy mennyi ideig férhet hozzá a klinika. A lépések a Hogyan implementálható a páciens hozzájárulás SMART on FHIR segítségével dokumentumban találhatók; a token patient mezője az az azonosító, amelyet a fájljával együtt tárolnia kell.

3. lépés: Látogatás írása egy tranzakcióként

Egy látogatás több, összetartozó erőforrást hoz létre. Küldje el őket egy transaction-ként, hogy egyszerre vagy egyáltalán ne legyenek tárolva, és adja meg, ki dolgozik: a X-Anpheros-Acting-As megnevezi az orvos szerepét. Ez lesz a szerző a Provenance-ben, bekerül a hozzáférési naplóba, és név szerint megjelenik a betegnek.

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

A transaction-response tartalmazza a 201 Created-t az Encounter, az Observation és a Condition számára. Az Observation és a Condition most a valódi Encounter/0ca25459-…-ra mutat. Mindegyik Provenance-e megnevezi az orvos szerepét, a klinikát és a forrásrendszert:

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

A diagnózis provisional, amíg meg nem erősítik. Később frissítse confirmed-re, és a történet mindkettőt megőrzi. Az egyes mezők jelentését a Medical data provenance explained magyarázza el.

4. lépés: Laboratóriumi eredmények és dokumentumok

A klinika saját laboratóriumából származó eredmények, vagy a páciens által hozott jelentések a laboratóriumi összekötőn keresztül, jelentésenként egy kérésben kerülnek feldolgozásra:

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

Levelek és zárójelentések dokumentumok: hozzon létre egy DocumentReference-t a /v1/patients/{id}/documents-en keresztül, és töltse fel a PDF-et. Az eredeti fájl soha nem módosul, és az abból kinyert értékek arra mutatnak vissza. Lásd: Laboratóriumi eredmények importálása FHIR rekordba és Medical data API.

5. lépés: Olvassa el, mit írtak más szolgáltatók, és maradjon a saját hatáskörében

A páciens beleegyezésével a klinika a hatáskörébe tartozó teljes rekordot elolvassa, beleértve azt is, amit más klinikák, laboratóriumok és a páciens adott hozzá. Csak azt változtathatja meg, amit maga írt. Egy másik szervezet erőforrásának frissítése vagy törlése 403-re válaszol, és az eredeti változat változatlan marad. Egy másik szolgáltató által írt dolog javításához írjon saját erőforrást (például egy új Condition-ot az Ön értékelésével), és hagyja, hogy a rekord mindkettőt mutassa, mindegyiket a saját szerzőjével.

Egy látogatás előtt a GET $BASE/Patient/$PID/$summary a rekord Nemzetközi Betegösszefoglalóját adja meg: problémák, gyógyszerek, allergiák és a közelmúltbeli életjelek, minden forrásból.

6. lépés: Értesülj az új adatokról

Regisztrálj egy webhookot egyszer a klinika projektjéhez:

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

Amikor egy másik projekt ír egy olyan rekordba, amelyhez a klinikádnak hozzáférése van, az esemény ezt jelzi a data.external: true és a forrás megadásával, így az EMR-ed "új eredmények egy másik laboratóriumból" üzenetet jeleníthet meg anélkül, hogy lekérdezné az adatokat. A consent.revoked esemény azt jelenti, hogy a személy visszavonta a klinika hozzáférését: állítsd le az adott rekord szinkronizálását. Aláírások, újrapróbálkozások és terhelések a Webhooks részben találhatók.

Mit lát a páciens

A páciens a vizitet, a pulzusszámot és az ideiglenes diagnózist látja a rekordjában, mindegyiket Dr. Ana Popescu jelölte meg a Clinica Cardio Nord-nál hozzáadottként. A kapcsolataiban a klinika alkalmazása felsorolja minden hozzáférést, név szerint, amikor egy gyakorló orvos járt el. Ez az átláthatóság teszi a pácienseket hajlandóvá arra, hogy hozzáférést biztosítsanak a következő klinikának.

Élőre lépés ellenőrzőlista

Gyakran ismételt kérdések

Van az Anpherosnak kész csatlakozója az EMR-emhez?

Nem. Nincsenek kész csatlakozók specifikus EMR-ekhez vagy laboratóriumi rendszerekhez; az integráció a FHIR R4 és a REST API-k ellen épül, általában egy kis szolgáltatásként az EMR mellett. A HL7 v2 laborüzenetek változatlanul elfogadásra kerülnek.

Dolgozhat egy orvos két klinikán?

Igen. Egy Practitioner lehet PractitionerRole minden szervezetnél. A X-Anpheros-Acting-As-ben megnevezett szerepkör határozza meg, hogy melyik klinikára kerül rögzítésre minden írás.

Mi történik, amikor a páciens visszavonja a klinika hozzáférését?

A klinika hívásai erre a rekordra 401-tal válaszolnak, és egy consent.revoked webhook kerül elküldésre. Amit a klinika írt, az a páciens rekordjában marad a származásával együtt; a klinika egyszerűen már nem tudja olvasni vagy módosítani azt.

Kapcsolódó

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