FHIR

FHIR profilok és kiegészítések magyarázata: hogyan szűkít egy implementációs útmutató egy erőforrást, és hogyan lehet ellene validálni

FHIR profilok: StructureDefinition-ök, melyek leszűkítik az alap erőforrásokat (kötelező elemek, kódok, stb.). Kiegészítések pótolják a hiányzókat. Profil publikálás, meta.profile jelentése, validátorok általi ellenőrzés, példákkal illusztrálva.

Szerző: Megjelent: 6 perc olvasási idő

Rövid válasz: az alap FHIR erőforrások szándékosan rugalmasak: szinte minden opcionális, és a legtöbb kód csak példa, így egy szabvány minden országra illeszkedik. A profil egy StructureDefinition, amely egy erőforrást szűkít egy adott használatra: ebben a kontextusban a Patientnek rendelkeznie kell egy azonosítóval ebből a típusból, az Observation.code-nak a megadott listából származó LOINC kódnak kell lennie, ezt az elemet támogatni kell, azt pedig nem szabad megjeleníteni. Az extension egy olyan elemet ad hozzá, amely hiányzik az alap erőforrásból, és amelyet egy URL azonosít, és saját StructureDefinition definiál. Az implementációs útmutatók (US Core, IPS, nemzeti útmutatók) profilok, extension-ök, értékkészletek és példák gyűjteményei. Egy erőforrás a meta.profile mezőben jelzi, hogy mely profiloknak felel meg, és egy validátor ellenőrzi azt.

Mit változtathat meg egy profil

A FHIR profil csak szűkíteni tudja az erőforrást: szigoríthatja a kardinalitást, megjelölhet elemeket kötelezőként, rögzíthet értékeket vagy mintákat, értékrendszerekhez kötheti az elemeket egy erősséggel, szeletelheti a listákat nevesített részekre, korlátozhatja a választási típusokat, FHIRPath invariánsokat adhat hozzá, és korlátozhatja a hivatkozási célokat. Egy profil nem adhat hozzá elemeket, nem nevezhet át semmit, és nem lazíthatja el az alap specifikációt.

Megszorítás Mit csinál Példa
Kardinalitás Az opcionális elemeket kötelezővé teszi, vagy megtiltja őket Patient.identifier 1..*; Patient.photo 0..0
Támogatni kell (Must support) A fogadóknak képesnek kell lenniük az elem tárolására és megjelenítésére, ha elküldik Az US Core a birthDate-t must-supportként jelöli
Rögzített érték vagy minta (Fixed value or pattern) Egy elemet egyetlen értékre rögzít Observation.category rögzítve vital-signs értékre
Kötés (Binding) Egy elemet egy értékkészlethez köt, meghatározott erősséggel Observation.code kötve a vital signs listához, kötelező
Szeletelés (Slicing) Egy listát elnevezett részekre oszt, saját szabályokkal Vérnyomás: a komponens szeletelve szisztolés és diasztolés részekre
Típuskorlátozás (Type restriction) Korlátozza a választási lehetőséget value[x] korlátozva valueQuantity-ra
Invariáns (Invariant) Egy FHIRPath szabály, amelynek teljesülnie kell "effective[x] must be present" vagy "value or dataAbsentReason"
Hivatkozási cél (Reference target) Korlátozza, mire mutathat egy hivatkozás subject csak Patient lehet, és csak erre a profilra érvényes betegekre

Egy profil csak szűkíteni tud. Nem adhat hozzá elemeket (erre valók az extension-ök), nem nevezhet át semmit, és nem lazíthat az alapokon.

Kötési erősség (Binding strength)

A FHIR négy kötési erősséget határoz meg. required: a kódnak az értékrendszerből kell származnia. extensible: használja az értékrendszert, ha egy koncepció illeszkedik; egyébként más kód is megengedett. preferred: ajánlott, nem kötelező. example: csak illusztratív, ami a legtöbb alap erőforrásnál van. Az extensible téves értelmezése required-ként gyakori oka a hamis érvényesítési hibáknak.

Egy olvasható profil kivonata

A FHIR profil egy StructureDefinition, amelynek differenciálja csak az alap erőforrástól eltérő korlátozásokat sorolja fel, míg a pillanatfelvétel minden elemet felsorol. Az alábbi olvasható kivonat egy otthoni vérnyomásmérésre korlátozza az Observation-t: a kód rögzítve van LOINC 85354-9-re, és a komponens pontosan egy szisztolés és egy diasztolés részre van szeletelve.

Egy profil differenciálja csak azt listázza, ami az alaphoz képest változott; a pillanatfelvétel (snapshot) mindent listáz. Ez a differenciál azt mondja, hogy egy vérnyomás Observation-nek LOINC 85354-9 kódot és pontosan két komponenst kell tartalmaznia:

{
  "resourceType": "StructureDefinition",
  "url": "https://example.org/fhir/StructureDefinition/bp-home",
  "name": "HomeBloodPressure",
  "status": "active",
  "kind": "resource",
  "abstract": false,
  "type": "Observation",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
  "derivation": "constraint",
  "differential": {"element": [
    {"id": "Observation.code", "path": "Observation.code",
     "patternCodeableConcept": {"coding": [{"system": "http://loinc.org", "code": "85354-9"}]}},
    {"id": "Observation.component", "path": "Observation.component", "min": 2, "max": "2",
     "slicing": {"discriminator": [{"type": "pattern", "path": "code"}], "rules": "closed"}},
    {"id": "Observation.component:systolic", "path": "Observation.component", "sliceName": "systolic", "min": 1, "max": "1"},
    {"id": "Observation.component:systolic.code", "path": "Observation.component.code",
     "patternCodeableConcept": {"coding": [{"system": "http://loinc.org", "code": "8480-6"}]}},
    {"id": "Observation.component:diastolic", "path": "Observation.component", "sliceName": "diastolic", "min": 1, "max": "1"},
    {"id": "Observation.component:diastolic.code", "path": "Observation.component.code",
     "patternCodeableConcept": {"coding": [{"system": "http://loinc.org", "code": "8462-4"}]}}
  ]}
}

A profilokat ritkán írják kézzel; a szerzők a FHIR Shorthand (FSH) eszközt használják a SUSHI-val, vagy olyan eszközöket, mint a Forge és a Simplifier, és az HL7 IG Publisher segítségével publikálják őket. Az útmutatók csomagokként (hl7.fhir.us.core#6.1.0, hl7.fhir.uv.ips#1.1.0) terjeszthetők, amelyeket a validátorok és a szerverek betöltenek.

Extension-ök

Az extension egy kulcs-érték elem, amely az extension (vagy modifierExtension, ha megváltoztatja az erőforrás jelentését és nem hagyható figyelmen, mezőben található. Az url az extension StructureDefinition kanonikus URL-je; az értéke egy típusos value[x], vagy beágyazott extension-ök. A születési hely egy HL7 által definiált extension a Patient erőforráson:

{
  "resourceType": "Patient",
  "id": "example",
  "extension": [{
    "url": "http://hl7.org/fhir/StructureDefinition/patient-birthPlace",
    "valueAddress": {"city": "Lyon", "country": "FR"}
  }],
  "name": [{"family": "Doe", "given": ["Jane"]}]
}

A jó gyakorlat szabályai: keressen egy meglévő extension-t (az HL7 regiszterében és a nemzeti útmutatókban), mielőtt újat definiálna; adjon neki egy URL-t egy Ön által ellenőrzött tartomány alatt; definiálja egy StructureDefinition-ben, hogy mások validálni tudják; soha ne használjon extension-t olyan dologra, amit egy alap elem már lefed.

meta.profile és validálás

A meta.profile az a kanonikus URL-ek listája, amelyekhez egy FHIR erőforrás illeszkedni állít, de az állítás nem bizonyíték. Egy validátor ellenőrzi az erőforrást az alap specifikációval és minden állított profillal szemben, vagy az Ön által megnevezett profillal szemben. Az HL7 referenc validátor helyileg fut csomagokkal, és a FHIR szerverek rendelkeznek egy $validate művelettel, amely elfogad egy profil paramétert.

A meta.profile felsorolja azokat a kanonikus URL-eket, amelyeknek az erőforrás állítása szerint megfelel. Az állítás nem bizonyíték: egy validátor ellenőrzi az erőforrást az alap specifikációval és minden állított profillal szemben (vagy az Ön által megadott profillal szemben). Az HL7 referenc validátor (validator_cli.jar) helyileg fut és betölt csomagokat; a szerverek kínálnak POST /Observation/$validate?profile=… végpontot; az IG Publisher validálja az útmutató összes példáját. Egy erőforrás egyszerre több profilnak is megfelelhet (egy nemzeti Patient profil és az IPS Patient), amíg azok nem ütköznek.

Két gyakorlati szabály: egy szerver, amely a CapabilityStatement-ben deklarál egy profilt, el kell utasítsa azokat az erőforrásokat, amelyek nem felelnek meg neki; egy kliens, amely erőforrásokat fogad, ne utasítsa el az ismeretlen extension-öket vagy extra elemeket, amelyeket egy profil nem tiltott meg, mert az alap specifikáció megengedi őket.

Az Anpheros-ban

Az Anpheros Platform egy FHIR R4 szerver, amely LOINC-ot használ megfigyelésekhez, ATC-t gyógyszerekhez és SNOMED CT-t, ahol alkalmazható, és ingyenes validátort kínál, amely ellenőrzi az erőforrás szerkezetét a FHIR R4-hez képest. Amikor egy klinika olyan erőforrásokat küld, amelyeknél a meta.profile nemzeti vagy IPS profilra van állítva, az állítás megmarad, így egy utórendszer ellenőrizheti azt.

Az ingyenes validátor a fejlesztői oldalon található. Magukért az útmutatókért lásd: FHIR implementációs útmutatók magyarázata.

Kapcsolódó oldalak

Források

Gyakori kérdések

Hozhat-e létre egy profil egy új elemet egy erőforrásban?

Nem. A profilok csak korlátoznak. Az új adatok extension-be kerülnek, amelyet a profil aztán megkövetelhet vagy megtilthat, mint bármely más elemet.

Mit követel meg pontosan a must-support?

Az implementációs útmutató határozza meg; általában azt, hogy egy küldő kitölti az elemet, ha rendelkezik az adatokkal, és egy fogadó tárolja és képes megjeleníteni azt. Nem teszi kötelezővé az elemet.

Ha egy erőforrásnak nincs meta.profile-ja, akkor érvénytelen?

Nem. A meta.profile egy állítás, nem követelmény. Egy szerver vagy útmutató megkövetelheti; az alap specifikáció nem. A validátorok kérhetők arra, hogy ellenőrizzék egy olyan profillal szemben, amelyet az erőforrás nem deklarál.

Honnan tudhatom, hogy melyik profilt használjam az országomban?

Minden nemzeti FHIR közösség közzétesz egy alap útmutatót (US Core, UK Core, nl-core, a német Basisprofile, és így tovább); az implementációs útmutatók oldal magyarázza el, hogyan találhatja meg őket. A határokon átnyúló összefoglalók az IPS-t használják.

Anpheros Platform

Próbálja ki ingyen a sandboxban

Az első FHIR-hívás 5 perc alatt. Egy HL7 FHIR R4 API, amely tartalmazza a beteg beleegyezését: próbáld ki a sandboxban, majd csatlakoztasd saját alkalmazásodat vagy klinikai rendszeredet.

Ingyenes · 30 szintetikus beteg · kártya nélkül

Ez az útmutató tájékoztató jellegű, és nem helyettesíti az orvosi tanácsot. Az egészségeddel kapcsolatos döntésekhez beszélj az orvosoddal. Vészhelyzetben hívja a helyi segélyhívó számot (Európában 112).
Szerző:
Az Anpheros csapata

Az Anpheros egy olyan egészségügyi nyilvántartást épít, amelyet a beteg irányít, és megoszthat bármelyik klinikával, egy EU-ban működő HL7 FHIR R4 platformon. Ezek az útmutatók segítenek megérteni és rendszerezni az egészségügyi adataidat; nem helyettesítik az orvosodat.

Tudj meg többet az Anpherosról →