eLab posistemės integracijos dokumentacija
0.3.3 - versija Lithuania flag

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

Nurodymai

Š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.

Veiklos procesai

Duomenų apsikeitimo modelis

Projekto metu bus realizuotos ar patobulintos šios integracijos:

  • universali laboratorinių tyrimų formų apsikeitimo sąsaja, sujungianti HIS ir LIS (standartizuoto duomenų apsikeitimo protokolo parengimas);
  • nomenklatūrų ir klasifikatorių, reikalingų laboratorinių tyrimų turinio standartizavimui gavimas iš MNKV IS;
  • nomenklatūrų ir klasifikatorių pateikimas į HIS ir LIS

Žemiau pateiktoje diagramoje pavaizduota, kaip HIS ir LIS galėtų keistis duomenimis bendru standartiniu atveju.

Duomenu mainai

Pateikiame keletą paaiškinimų dėl aiškesnio integracinių schemų suvokimo:

  • Klaidos bus pateiktos atsakyme HIS ar LIS, kuriame bus pateiktas klaidos aprašymas. Jei apdorojant formą nebuvo įvykių, kurie generuotų klaidą, bus grąžinama žinutė, kuri informuos, kad ELAB posistemė sėkmingai išsaugojo pateiktą formą. Analogiškai, visais atvejais, kai ESPBI IS pateikia duomenų paketus išorinėms sistemoms, gali būti siunčiamas klaidos aprašymas apie užklausoje aptiktą klaidą ar sistemoje apdorojimo metu įvykusią klaidą;
  • grąžindama informaciją, ELAB posistemė į sąrašą įtrauks tiks įstaigai priskirtus resursus.
  • ėminio informacija gali būti sukurta tiek SPĮ, tiek laboratorijoje;
  • užsakyme gali būti pateikiami keli tyrimai, jeigu jiems yra tinkamas tas pats ėminio tipas;
  • kiekvienam užsakomam tyrimui yra priskiriamas requisition ID, kurio dėka šie tyrimai yra apjungiami į vieną užsakymo formą.

Techniniai realizacijos sprendimai

Resursai

  • Visiems Elab sistemoje esantiems resursams id reikšmės bus priskiriamos automatiškai pagal UUID v4 standartą.

E200/a tyrimų užsakymo forma

Apžvalga

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:

  1. E200-U (Tyrimo užsakymas). Pvz.
  2. E200-R (Ėminio(-ų) registravimas). Pvz.
  3. E200-Ats (Atsakymo pateikimas). Pvz.

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).

Naudojamos tyrimų, ėminių ir panelių nomenklatūros

Š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-nomenklatura
  • ServiceRequest.extension:specimenType - https://lmb.lt/collected-specimen
  • Specimen.code - https://lmb.lt/processed-specimen
  • Specimen.collection:extension:bodyPosition - http://esveikata.lt/Classifiers/BodyPosition
  • Observation.code - https://lmb.lt/lt-klt-nomenklatura
  • Observation.method - https://lmb.lt/lt-methods

FHIR Transackcija

Kiekvieną 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.

Apsilankymas - Encounter

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“.

Resursų keitimo/šalinimo veiklos duomenys - Provenance

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 įdarbinimas įstaigoje - PractitionerRole

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.

E200-U užsakymas

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.

Tyrimo užsakymas - ServiceRequest

Š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ę.

Requisition

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ą.

Užsakymą pateikęs specialistas

requester laukelyje nurodomas prašymą pateikusio specialisto įdarbinimas.

Užsakymą priimanti įstaiga

performer laukas nurodo aukščiausio lygio įstaigą, kuri turėtų priimti gaunamą tyrimo užklausą.

Pateikimo laikas

authoredOn laukas nurodo užklausos pateikimo laiką ir datą.

E200-R ėminio registracija

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.

Ėminys - Specimen

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.

Įstaiga, paimanti ėminį - performer

extension:performer plėtinys šiame resurse pažymi įstaigą arba skyrių, kuris atlieka ėminio paėmimo ir registravimo procedūras.

Ėminį paėmęs specialistas

Lauke collection.collector žymimas specialistas, paėmęs ėminį ir skyrius, kuriame jis dirbo užklausos pateikimo metu.

Ėminio gavėjas

collection.extension:receivedBy plėtinys yra nuoroda į specialistą, kuris priėmė mėginį bei įstaigą, kurioje jis tuo metu dirbo.

Ėminio paėmimo laikas

collection.collectedDateTime laukas žymi tikslų laiką, kada buvo paimtas mėginys.

E200-Ats rezultatų ataskaita

E200-Ats dalį sudaro diagnostikos ataskaita DiagnosticReport, turinti bent vieną panelę arba analitę (Observation).

Tyrimo ataskaitos protokolas - DiagnosticReport

Tai yra pagrindinis resursas, kurio pagrindu formuojama ataskaita. Jis turi būti susietas su atitinkamais Specimen, ServiceRequest ir Observation resursais esamame E200/a kontekste.

Ataskaitos rengėjas

performer laukas nurodo specialistą, kuris parengė ataskaitą, ir įstaigą, kurioje jis tuo metu dirbo.

Ataskaitos tvirtintojas

resultsInterpreter lauke galima nurodyti specialistą, kuris patikrino ir patvirtino ataskaitos rezultatus bei įstaigą, kurioje jis tuo metu dirbo.

Ataskaitos pateikimo laikas

effectiveDateTime žymi laiką, kada ataskaita buvo pirmą kartą pateikta.

Ataskaitos patvirtinimo laikas

issued yra nurodomas tikslus laikas, kada buvo patikrinti ir patvirtinti ataskaitos rezultatai.

Panelė/analitė - Observation

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.

Tyrimą atlikęs specialistas

performer lauke nurodomas specialisto, atlikusio analitės tyrimą ir atsakingo už jo rezultatą, įdarbinimas.

Tyrimą patvirtinęs specialistas

extension:resultsInterpreter plėtinys analitėje arba panelėje nurodo specialistą, kuris patikrino ir patvirtino analitės arba panelės tyrimų rezultatus.

Tyrimo atlikimo laikas

effectiveDateTime laukas naudojamas apibūdinti laiką, kada buvo atliktas tyrimas.

Tyrimo patvirtinimo laikas

issued lauke gali būti nurodytas tikslus laikas, kada buvo patikrintos ir patvirtintos analitės arba panelės.

E200/a tyrimo protokolas - Composition

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.

Dokumento autorius

Kompozicijos author laukas nurodo specialistą, kuris pateikė kompoziciją. Kompozicija sukuriama kuomet yra pateikiamas tyrimo atsakymas, todėl kompozicijos autorius yra laboratorijos darbuotojas.

Dokumentą patvirtinęs specialistas

attester laukas nurodo dokumentą patvirtinusį specialistą.

Dokumentą pateikusi įstaiga.

custodian laukas nurodo įstaigą, kuri pateikė šį dokumentą, ir yra atsakinga už dokumento turinį.

Dokumento skyriaus autorius

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.

Paskutinio pakeitimo data

Composition.date nurodo laiką, kada buvo atlikti paskutiniai pakeitimai, arba tais atvejais, kai kompozicija nebuvo modifikuota – sukūrimo laiko.

FHIR resursų siejimas tarpusavyje

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.

ESPBI posistemėje esančių resursų siejimas su Elab posistemės resursais

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.

E200/a tyrimo protokolo PDF

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.