eLab posistemės integracijos dokumentacija
0.3.3 - versija
eLab posistemės integracijos dokumentacija - Local Development build (v0.3.3) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Šiame puslapyje yra pateikiami ESBPI IS laboratorinių tyrimų posistemės (ELAB posistemė) HL7 FHIR R5 resursų, skirtų duomenų mainams su HIS/ LIS sistemomis, naudojimo nurodymai. Išsamesnė informacija apie kiekvieną naudojamą FHIR resursą ir jų profilius yra pateikiama resursų ir profilių puslapyje.
Kuriant naująjį E200/a laboratorinio tyrimo protokolą buvo stengiamasi naudotis esamais FHIR R5 standarto numatytais resursų laukais vengiant kurti papildomus plėtinius.
Projekto metu bus realizuotos ar patobulintos šios integracijos:
Žemiau pateiktoje diagramoje pavaizduota, kaip HIS ir LIS galėtų keistis duomenimis bendru standartiniu atveju.
Pateikiame keletą paaiškinimų dėl aiškesnio integracinių schemų suvokimo:
E200/a tyrimų užsakymo forma susideda iš 3 skirtingų komponentų: E200-U užsakymo, E200-R mėginio ir E200-Ats ataskaitos, kurios turi būti pateiktos tokia tvarka:
Vienoje užklausoje galima pateikti 2 arba visas 3 E200/a formos dalis, tačiau jos turi būti pateiktos ta pačia tvarka (tai reiškia, kad galima pateikti E200-U ir E200-R, kai trūksta E200-Ats, bet negalima pateikti E200-R ir E200-Ats, kai trūksta E200-U).
Šiuo metu Lietuvos Medicinos Biblioteka vykdo naujų Lietuvos tyrimų, ėminių ir panelių nomenklatūrų kūrimą kuris dar nėra baigtas, dėl to pabaigus darbus pavyzdinėse strukūrose bei resursų profilių struktūrose gali keistis šiuose laukuose naudojamos kodo sistemos:
ServiceRequest.code
- https://lmb.lt/lt-klt-nomenklaturaServiceRequest.extension:specimenType
- https://lmb.lt/collected-specimenSpecimen.code
- https://lmb.lt/processed-specimenSpecimen.collection:extension:bodyPosition
- http://esveikata.lt/Classifiers/BodyPositionObservation.code
- https://lmb.lt/lt-klt-nomenklaturaObservation.method
- https://lmb.lt/lt-methodsKiekvieną E200/a dalį gali sudaryti ir paprastai sudaro keli FHIR resursai, todėl FHIR tranzakcija yra tinkamiausias būdas siųsti duomenis. Nors tai yra pageidaujamas duomenų įterpimo metodas tačiau mažoms vieno resurso atnaujinimo operacijoms taip pat bus galima naudoti resursų lygio FHIR API. Visas atitinkamų resursų turinys išsamiai aprašytas FHIR profiliuose.
Encounter resursas yra vienas iš pagrindinių E200 užsakymo resursų, skirtas susieti laboratorinių tyrimų protokolą su
konkrečiu apsilankymu gydymo įstaigoje, tačiau pats resursas nebus saugomas Elab sistemoje, jis bus kuriamas ir
išsaugomas pagrindinėje ESPBI sistemoje. Susiejimui su kitais FHIR resursais bus naudojama identifikatoriumi pagrįsta
nuoroda. Identifikatoriaus sistema: http://esveikata.lt/Identifier/Encounter/ESPBI
, o reikšmė - Encounter resurso ID
dabartiniame ESPBI. Susiejimas bus reikalingas šiuose FHIR resursuose: „ServiceRequest“, „DiagnosticReport“,
„Composition“.
Provenance resuras yra naudojamas kiekvienos transakcijos metu įvykdytų pakeitimų autentiškumo ir neišsiginamumo užtikrinimui. Transakcijos metu šis resursas privalo būti susietas su visais transakcijos metu keičiamais resurais bei specialisto, kuris atlieką veiksmą, įdarbinimu kartu nurodant vykdomos veiklos tipą.
Nuorodos į pavyzdžius:
Specialisto įdarbinimui konkrečioje įstaigoje ar skyriuje, bus naudojamas naujas resursas, susiejantis specialistą su atitinkamu įstaigos FHIR resursu. Kiekvienas PractitionerRole resursas turės ESPBI id identifikatorių, siejantį jį su ESPBI sistemoje esančiu atitinkamu Practitioner resursu. Daugiau informacijos apie šiuo metu naudojamą PractitionerRole struktūrą galima rasti FHIR profiliuose ir skirtumų puslapyje.
Pats E200-U nėra resursas, tai resursų rinkinys, susidedantis iš 1 ar daugiau ServiceRequest resursų, kurie visi turi bendrą užsakymo identifikatorių - requisition. E200-U transakcijos užklausos pavyzdį galite rasti čia.
Šis resursas atitinka užsakomą laboratorinį tyrimą, kurių viename užsakyme gali būti vienas arba daugiau. E200-U
užklausoje vienas ServiceRequest reiškia vieną užsakomą tyrimą arba tyrimo panelę. Dideli užsakymai paprastai susidaro
iš keleto ir daugiau ServiceRequest resursų, susietų tarpusavyje naudojant bendrą requisition
lauko reikšmę.
Tyrimai, užsakomi vieno užsakymo metu privalo turėti bendrą requisition
lauko reikšmę, kuri privalo būti unikali
kiekvienam atskiram užsakymui. Šio lauko reikšmė turi būti priskirta kliento aplikacijos pusėje ir turi atitikti 4-os
versijos UUID (Universal Unique Identifier) standartą. Šis standartas užtikrina sugeneruotų ID reikšmių unikalumą tarp
skirtingų sistemų. Requisition pavyzdys:
"requisition": {
"system": "http://esveikata.lt/ServiceRequest/Identifier#Requisition",
"value": "d2d8cab7-8955-4797-aacc-b08513393833"
}
Generavimas JAVA:
import java.util.UUID;
...
UUID.randomUUID()
Generavimas PHP 7+:
function guidv4() {
$data = random_bytes(16);
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
arba galima naudoti bet kurią UUID generavimui skirtą biblioteką.
requester
laukelyje nurodomas prašymą pateikusio specialisto įdarbinimas.
performer
laukas nurodo aukščiausio lygio įstaigą, kuri turėtų priimti gaunamą tyrimo užklausą.
authoredOn
laukas nurodo užklausos pateikimo laiką ir datą.
E200-R dalis susideda iš 1 ar daugiau ėminių, kurie buvo paimti siekiant įvykdyti E200-U užsakymą. E200-R užklausos pavyzdį galite rasti čia.
Specimen yra vienintelis resursas, kuris yra neatsiejama E200-R formos dalis. Kiekvienas Specimen turi būti susietas su
vienu arba keliais ServiceRequest resursais toje pačioje užsakymo formoje. Šis ryšys nurodomas Specimen.request
lauke.
Kiekvienas Specimen turi turėti unikalų nacionalinio registracijos kodo identifikatorių, nurodomą Specimen.identifier
lauke.
extension:performer
plėtinys šiame resurse pažymi įstaigą arba skyrių, kuris atlieka ėminio paėmimo ir
registravimo procedūras.
Lauke collection.collector
žymimas specialistas, paėmęs ėminį ir skyrius, kuriame jis dirbo užklausos pateikimo metu.
collection.extension:receivedBy
plėtinys yra nuoroda į specialistą, kuris priėmė mėginį bei įstaigą, kurioje jis
tuo metu dirbo.
collection.collectedDateTime
laukas žymi tikslų laiką, kada buvo paimtas mėginys.
E200-Ats dalį sudaro diagnostikos ataskaita DiagnosticReport, turinti bent vieną panelę arba analitę (Observation).
Tai yra pagrindinis resursas, kurio pagrindu formuojama ataskaita. Jis turi būti susietas su atitinkamais Specimen, ServiceRequest ir Observation resursais esamame E200/a kontekste.
performer
laukas nurodo specialistą, kuris parengė ataskaitą, ir įstaigą, kurioje jis tuo metu dirbo.
resultsInterpreter
lauke galima nurodyti specialistą, kuris patikrino ir patvirtino ataskaitos rezultatus bei
įstaigą, kurioje jis tuo metu dirbo.
effectiveDateTime
žymi laiką, kada ataskaita buvo pirmą kartą pateikta.
issued
yra nurodomas tikslus laikas, kada buvo patikrinti ir patvirtinti ataskaitos rezultatai.
Yra 2 Observation resurso profiliai: vienas skirtas panelei, kitas – analitei. Jie abu išplečia bendrą Observation resurso profilį.
Panelės resursas apjungia analičių grupę nurodydamas visas analites ir/arba analičių panėles
lauke Observation.hasMember
.
Paprasta analitė yra Observation resursas kurio lauke Observation.value[x]
nurodomas analitės tyrimo rezultatas.
performer
lauke nurodomas specialisto, atlikusio analitės tyrimą ir atsakingo už jo rezultatą, įdarbinimas.
extension:resultsInterpreter
plėtinys analitėje arba panelėje nurodo specialistą, kuris patikrino ir patvirtino
analitės arba panelės tyrimų rezultatus.
effectiveDateTime
laukas naudojamas apibūdinti laiką, kada buvo atliktas tyrimas.
issued
lauke gali būti nurodytas tikslus laikas, kada buvo patikrintos ir patvirtintos analitės arba panelės.
Composition resursas apjungia tyrimo duomenis į vieną bendrą dokumentą. Jis gali būti perduodamas toje pačioje operacijoje kaip E200-Ats ataskaita arba atskirai. Pavyzdį rasite čia. Composition galima sukurti tik tada, kai yra visos 3 E200/a formos dalys. Kompozicijos kūrimo užklausos metu yra naudojamos neversijuotos nuorodos, kadangi kompozicijos kūrimo metu sistema pati automatiškai nustatys ir priskirs naujausias resursų versijas.
Tyrimo užsakymo skyrius – įtraukiami visi ServiceRequest resursai, autorius yra tyrimo užsakymą pateikusio specialisto įdarbinimą atitinkantis PractitionerRole resursas.
Ėminio pateikimo skyrius – įtraukiami visų ėminių Specimen resursai, autorius yra ėminį pateikusio specialisto įdarbinimą atitinkantis PractitionerRole resursas.
Tyrimo atsakymo skyrius – įtraukiamas vienas DiagnosticReport resursas - viena ataskaita, autorius yra ataskaitą pateikusio specialisto įdarbinimą atitinkantis PractitionerRole resursas.
Kompoziciją pateikęs specialistas turės būti nurodomas Composition.author
lauke.
Kompozicijos author
laukas nurodo specialistą, kuris pateikė kompoziciją. Kompozicija sukuriama kuomet yra pateikiamas
tyrimo atsakymas, todėl kompozicijos autorius yra laboratorijos darbuotojas.
attester
laukas nurodo dokumentą patvirtinusį specialistą.
custodian
laukas nurodo įstaigą, kuri pateikė šį dokumentą, ir yra atsakinga už dokumento turinį.
Kiekviena dokumento dalis turi atskirą autorių. Tie patys specialistai taipogi turi būti nurodyti Composition.author
lauke. E200-U skyriaus autorius turi būti nustatomas pagal ServiceRequest.requester
, E200-R skyriaus autorius turi
būti nustatomas pagal Specimen.collection.collector
ir E200-Ats skyriaus autorius turi būti nustatomas
pagal DiagnosticReport.performer
.
Composition.date
nurodo laiką, kada buvo atlikti paskutiniai pakeitimai, arba tais atvejais, kai kompozicija nebuvo
modifikuota – sukūrimo laiko.
Kadangi ELAB posistemėje bus pasiekiama tik dalis resursų, o likusieji resursai bus prieinami ESPBI IS sistemoje, tam tikri resursai turės būti susieti naudojantis FHIR resursų identifikatoriumi vietoje resurso ID.
Resursų, kuriuos bus galima susieti naudojantis ESPBI identifikatorių nuorodomis sąrašas: Patient, Practitioner Organization, PractitionerRole.
Įstaiga susiejama naudojant JAR kodą:
{
"identifier": {
"system": "http://esveikata.lt/classifiers/Identifier/JAR",
"value": "666534555"
}
}
Pacientas susiejamas naudojant ESPBI Patient resurso Id:
{
"identifier": {
"system": "http://esveikata.lt/Identifier/Patient/ESPBI",
"value": "104345325"
}
}
Specialistas susiejamas naudojant ESPBI Practitioner resurso Id ir įstaigos, kurioje jis dirba, JAR kodą:
{
"extension": [
{
"url": "http://esveikata.lt/fhir/StructureDefinition/reference-practitionerEspbiId",
"valueString": "18749704477"
},
{
"url": "http://esveikata.lt/fhir/StructureDefinition/reference-organizationJar",
"valueString": "666534555"
}
]
}
Jeigu užklausos pateikimo metu ELAB sistemoje šios informacijos nėra, tuomet sistema automatiškai sukurs ją su naujausiais duomenimis, paimtais iš ESPBI IS. Tada identifikatoriaus nuoroda bus paversta į įprastą FHIR nuorodą su ELAB sistemos ID.
Užpildžius E200/a ir pateikus dokumento kompoziciją, ją turi pasirašyti specialistas. Pasirašymo metu pagal kompozicijos duomenis generuojamas PDF. Platesnis aprašymas bus vėliau.