AnpherosAnpheros PlatformDevelopers

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

Egészségügyi nyilvántartások tárolása FHIR R4 segítségével

Oktatóanyag: hozzon létre egy Pácienst, egy vérnyomás megfigyelést (Observation) és egy Állapotot (Condition), használjon tranzakciót, keressen, frissítsen történettel és olvassa el az eredetet – minden kérés curl-lel és a valós válasz, az ingyenes sandboxon.

Ez az oktatóanyag egy kis orvosi nyilvántartást tárol HL7 FHIR R4 erőforrásként: egy Patient, egy vérnyomás Observation és egy diagnózis mint Condition, majd egy beteget és egy mérést együtt egyetlen tranzakcióban. Keresi ezeket, frissíti a diagnózist az előző verzió elvesztése nélkül, és elolvassa, ki mit írt. Minden kérés egyszerű curl az ingyenes Anpheros sandbox ellen, és minden megjelenített válasz az, amit az API visszaad.

Ha új a FHIR-ben, olvassa el először a FHIR platform oldalt a koncepciók megértéséhez. Ez az oldal a gyakorlati rész.

A három erőforrás, amellyel a legtöbb rekord kezdődik

Erőforrás Mit tartalmaz Kódolva
Patient kire vonatkozik a rekord: név, születési dátum, nem, azonosítók más rendszerekből az Ön azonosító rendszerei
Observation bármi, amit mértek vagy jelentettek: vitális jelek, laboreredmények, súly, tünetek pontszáma LOINC, UCUM egységek
Condition egy diagnózis vagy egészségügyi probléma, annak időbeli státuszával ICD-10 (SNOMED CT licencjelző mögött)

A gyógyszerek (MedicationStatement), allergiák (AllergyIntolerance), immunizálások és dokumentumok ugyanazt a mintát követik; a 26 támogatott erőforrástípus a képességnyilatkozat sorolja fel a /fhir/R4/metadata címen.

Kezdés előtt

Szerezzen be egy sandbox kulcsot (sk_test_…) a platform.anpheros.com/dashboard oldalon a Get a sandbox key gombbal. Az itt létrehozott adatok nem valós betegek adatai, és nem láthatók más projektek számára.

export BASE=https://platform.anpheros.com/fhir/R4
export KEY=sk_test_…

1. lépés: Beteg létrehozása

curl -X POST "$BASE/Patient" -H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json" -d '{
  "resourceType": "Patient",
  "identifier": [{"system": "https://clinic.example/mrn", "value": "MRN-10442"}],
  "name": [{"family": "Marin", "given": ["Ioana"]}],
  "gender": "female",
  "birthDate": "1979-04-12"
}'

201 Created, a szerver által hozzárendelt azonosítóval és verzióval:

{"resourceType": "Patient",
 "identifier": [{"system": "https://clinic.example/mrn", "value": "MRN-10442"}],
 "name": [{"family": "Marin", "given": ["Ioana"]}], "gender": "female", "birthDate": "1979-04-12",
 "id": "d09e3942-ed86-4458-b099-fa674ab21b84",
 "meta": {"versionId": "1", "lastUpdated": "2026-10-12T20:16:51.043Z"}}

Tartsa meg saját azonosítóit a identifier-ban egy általad vezérelt system-tal (itt egy klinika nyilvántartási száma), így mindig megtalálhatja a beteget a GET $BASE/Patient?identifier=https://clinic.example/mrn|MRN-10442 segítségével. A FHIR id a platform azonosítója, és specifikus a projektedre: egy másik projekt ugyanazt a személyt más azonosítóval látja.

export PID=d09e3942-ed86-4458-b099-fa674ab21b84

2. lépés: Mérési eredmény tárolása megfigyelésként (Observation)

A vérnyomás egy olyan megfigyelés, amely két komponensből áll: szisztolés és diasztolés, mindkettőnek saját LOINC kódja van. Mondja meg, ki mérte: itt egy otthoni eszköz.

curl -X POST "$BASE/Observation" -H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json" \
     -H "X-Anpheros-Author-Type: device" -H "Idempotency-Key: bp-2026-10-10-0830" -d '{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "85354-9", "display": "Blood pressure panel"}]},
  "subject": {"reference": "Patient/'$PID'"},
  "effectiveDateTime": "2026-10-10T08:30:00Z",
  "component": [
    {"code": {"coding": [{"system": "http://loinc.org", "code": "8480-6"}]},
     "valueQuantity": {"value": 138, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}},
    {"code": {"coding": [{"system": "http://loinc.org", "code": "8462-4"}]},
     "valueQuantity": {"value": 88, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}}
  ]
}'

A válasz a tárolt erőforrás, amely tartalmazza a id és a meta.versionId: "1". Három részlet számít egy használható rekord szempontjából:

A laboreredmények ugyanazok az erőforrások, category laboratory és általában egy referenceRange. A teljes laborjelentések behozatalához lásd: Laboreredmények importálása FHIR rekordba.

3. lépés: Diagnózis rögzítése Conditionként

curl -X POST "$BASE/Condition" -H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json" \
     -H "X-Anpheros-Author-Type: practitioner" -d '{
  "resourceType": "Condition",
  "subject": {"reference": "Patient/'$PID'"},
  "clinicalStatus": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/condition-clinical", "code": "active"}]},
  "verificationStatus": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/condition-ver-status", "code": "confirmed"}]},
  "code": {"coding": [{"system": "http://hl7.org/fhir/sid/icd-10", "code": "I10", "display": "Essential (primary) hypertension"}]},
  "onsetDateTime": "2026-03-02"
}'

A clinicalStatus (aktív, feloldott, remisszióban) és a verificationStatus (megerősített, ideiglenes) szándékosan külön vannak kezelve: a gyanított diagnózis nem ugyanaz, mint a megerősített, és a feloldott probléma továbbra is a kórtörténet része.

4. lépés: Kapcsolódó erőforrások létrehozása egy tranzakcióban

Amikor egy páciens és az első mérése együtt érkezik, például egy klinikai rendszerből, küldje el őket egy transaction Bundle-ként. Vagy minden tárolódik, vagy semmi. Az új erőforrások közötti hivatkozások ideiglenes urn:uuid: azonosítókat használnak, amelyeket a szerver lecserél:

curl -X POST "$BASE" -H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json" -d '{
  "resourceType": "Bundle", "type": "transaction",
  "entry": [
    {"fullUrl": "urn:uuid:9f1c0d1e-0000-4000-8000-000000000001",
     "resource": {"resourceType": "Patient", "name": [{"family": "Stan", "given": ["Mihai"]}], "gender": "male", "birthDate": "1990-02-01"},
     "request": {"method": "POST", "url": "Patient"}},
    {"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": "29463-7", "display": "Body weight"}]},
       "subject": {"reference": "urn:uuid:9f1c0d1e-0000-4000-8000-000000000001"},
       "effectiveDateTime": "2026-10-10",
       "valueQuantity": {"value": 82.4, "unit": "kg", "system": "http://unitsofmeasure.org", "code": "kg"}},
     "request": {"method": "POST", "url": "Observation"}}
  ]
}'

A transaction-response minden erőforráshoz tartalmaz egy bejegyzést, benne a "status": "201 Created"-vel, annak location-vel és a tárolt erőforrással. Az Observation subject-je most már a valós Patient/fad3665a-…-re mutat.

5. lépés: keresés

curl "$BASE/Observation?patient=$PID&code=http://loinc.org|85354-9&date=ge2026-10-01&_sort=-date" \
     -H "Authorization: Bearer $KEY"

Egy searchset Bundle-t kap, amely total és a hozzá illeszkedő erőforrásokat tartalmazza, a legújabbak elöl. Más gyakran használt keresések: Condition?patient=$PID&clinical-status=active, Observation?patient=$PID&category=laboratory és Patient/$PID/$everything a teljes rekordhoz.

6. lépés: frissítés előzmények elvesztése nélkül

A magas vérnyomás megszűnik. Módosítsa az állapotot és adja hozzá a befejezési dátumot, és használja a If-Match azonosítót az olvasott verzióval, hogy soha ne írjon felül mások módosításait:

curl -X PUT "$BASE/Condition/$CID" -H "Authorization: Bearer $KEY" -H "Content-Type: application/fhir+json" \
     -H 'If-Match: W/"1"' -d '{ …the same Condition…, "clinicalStatus": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/condition-clinical", "code": "resolved"}]}, "abatementDateTime": "2026-10-11" }'

a 200 OK a ETag: W/"2" segítségével. Ha egy másik írási művelet megelőzte, akkor 412 hibát kap, és újra kell olvasnia. A korábbi verzió továbbra is ott lesz:

curl "$BASE/Condition/$CID/_history" -H "Authorization: Bearer $KEY"

mindkét verziót visszaadja: versionId 2 (resolved) és 1 (active). A GET $BASE/Condition/$CID/_history/1 az előzőt olvassa. Egy rekordban semmi sem íródik felül csendben.

7. lépés: Lásd, ki mit írt

Minden írás létrehoz egy Provenance erőforrást. A vérnyomásméréshez:

curl "$BASE/Provenance?target=Observation/$OBS" -H "Authorization: Bearer $KEY"
{"resourceType": "Provenance",
 "target": [{"reference": "Observation/d83d9075-…/_history/1"}],
 "recorded": "2026-10-12T20:16:51.056000Z",
 "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": {"identifier": {"system": "https://anpheros.com/fhir/CodeSystem/author-type", "value": "device"}, "display": "proj_…"},
            "onBehalfOf": {"identifier": {"system": "https://anpheros.com/fhir/sid/organization", "value": "org_…"}, "display": "…"}}]}

Az általad küldött szerző típusa (device) rögzítésre kerül a projekttel és a szervezettel együtt. Küldj X-Anpheros-Author-Ref: Practitioner/<id>-ot, hogy megnevezd az írás mögötti klinikust.

8. lépés: A rekord összefoglalóként

curl "$BASE/Patient/$PID/\$summary" -H "Authorization: Bearer $KEY"

egy Nemzetközi Betegösszefoglalót (International Patient Summary) ad vissza: egy document Bundle-t, amely egy Composition-val kezdődik, és olyan szakaszokat tartalmaz, mint a Problémák, Gyógyszerek, Allergiák és Életjelek, a fenti erőforrásokból felépítve. Ez az a formátum, amelyet átadhat egy másik rendszernek, vagy kinyomtathat egy orvosnak (FHIR platform).

Preferálja a JSON-t FHIR nélkül?

Ugyanazok az adatok elérhetők egy egyszerűbb REST nézeten keresztül is, /v1, ugyanazokkal az azonosítókkal: a POST /v1/patients/{id}/observations a {"code": "85354-9", "category": "vital-signs", "effective_at": "…", "components": […]}-et veszi igénybe, és ugyanazt a FHIR Observation-t tárolja. Használja azt, amelyik illeszkedik a kódjához. Lásd: Medical data API és az SDK-k.

Gyakran ismételt kérdések

Mi a legjobb módja az orvosi nyilvántartások tárolására?

Kódolt, verziózott erőforrásokként, minden egyes bejegyzés írójának rögzítésével. Az HL7 FHIR R4 megadja a struktúrát (Patient, Observation, Condition és mások), szabványos kódrendszereket, mint például a LOINC és az ICD-10, valamint a történetet; egy FHIR backend pedig hozzáadja a keresést, a hozzájárulást és a származást.

Szükségem van FHIR szerverre a FHIR használatához?

Szüksége van egy helyre, amely tárolja és keresi a FHIR erőforrásokat, és érvényesíti, hogy ki olvashatja őket. Futtathat saját maga egy nyílt forráskódú FHIR szervert, vagy használhat egy felügyeltet, mint például az Anpheros; a Hogyan hasonlítható össze az Anpheros más FHIR szerverekkel mérlegeli a lehetőségeket, a FHIR vs. egyedi orvosi adatbázis pedig a saját séma felépítését tárgyalja.

Hogyan tárolhatok vérnyomást FHIR-ben?

Egy Observation-ként a LOINC 85354-9 kóddal és két component bejegyzéssel: szisztolés 8480-6 és diasztolés 8462-4, mindegyik egy valueQuantity-tel mm[Hg]-ben.

Megváltoztathatok egy tárolt erőforrást?

Igen, PUT és If-Match segítségével. Minden változás új verziót hoz létre; a korábbi verziók továbbra is olvashatók a _history-en keresztül, és a Provenance rögzíti, hogy ki végezte el az egyes változtatásokat. A törlések lágyak és megőrzik a történetet.

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