1 HL7 Finland koulutus FHIR profilointi osa 1 13.6.2018, Helsinki Tietohiisi, Mika Tuomainen
2 Kiitokset Materiaalissa hyödynnetty seuraavien tekijöiden esityksiä (CC by author): Rene Spronk Mirjam Baltus Ewout Kramer Lloyd McKenzie Michel Rutten Grahame Grieve David Hay
3 Koulutuksen sisältö Päivä 1 FHIR perusteet FHIR profilointi perusteet FHIR profilointi 1/2 Päivä 2 FHIR profilointi 2/2 Simplifier profiilirekisteri
4 Sisältö Forge profiilieditori Uuden profiilin tekeminen: case-esimerkki ja siitä johdetut valitun FHIR resurssin profilointitarpeet StructureDefinition resurssin käyttäminen Resurssin elementtien pakollisuuksien profilointi Resurssin choice-rakenteiden profilointi Tietotyyppien ja rakenteiden profilointi
Forge profiilieditori 5
6 Profiilinen luominen ja ylläpito Editointivaihtoehdot http://wiki.hl7.org/index.php?title =Profile_Tooling Profiilien luominen ja ylläpitäminen on mahdollista XML (/JSON) editorilla tai Exceltaulukolla (+ HL7 build tool) Tämä on kuitenkin virhealtista ja vaatii SructreDefinition resurssin tuntemusta Työkalut Manuaalissti XML/JSON Excel (+ build tool) Lantana Trifolia Workbench https://trifolia.lantanagroup.com/ MDHT UML-based modelling tool https://projects.eclipse.org/projects/ modeling.mdht Forge https://simplifier.net/forge/
7 Profilointi Forgella Forge Työkalu profiilien luontiin ja käsittelyyn Latausosoite: https://simplifier.net/forge Käyttöohjeet: http://docs.simplifier.net/forge/index.html Profiling academy: https://simplifier.net/guide/profilingacademy/modules Windows-pohjainen työpöytäsovellus Graafinen käyttöliittymä Integorituu Simplifier profiilirekisteriin, muihin FHIR rekistereihin + FHIR palvelimiin Jatkuvan kehityksen alla (tuki DSTU2 -> STU3 -> R4 tulossa) Käyttää ja tuottaa XML-formaattia (JSON tuki tulossa)
8 Forge ominaisuudet FHIR profiilien luonti ja editointi Rajoitusten määrittelyt Slicing määrittelyt Koodistojen sidonta (value set binding) Mapping määrittelyt FHIR laajennusten luonti ja editointi FHIR conformance resurssien luonti ja editointi FHIR profiilien validointi Profiilien hakeminen ja julkaisu FHIR palvelimelta/palvelimelle Profiilien hakeminen ja julkaisu FHIR rekisteristä/rekisteriin Periytettyjen profiilien määrittely ( profiles on profiles )
9 Forge käyttöliittymä File Options
10 Forge käyttöliittymä Session Explorer File Properties Profile on <ResourceType> Properties Narrative Element Tree Element Properties Element Grid XML
Uuden profiilin tekeminen: caseesimerkki ja siitä johdetut valitun FHIR resurssin profilointitarpeet 11
12 Case-esimerkki Itsehoitomittaukset: kehon lämpö, paino Omakannan Omatietovaranto (Kanta PHR / Finnish PHR) Profiloidaan profiilit kehon lämmölle (Body Temperature) ja painolle (Body Weight) FHIR:sta (/Kanta PHRstä) löytyisi näille valmiit profiilit mutta tehdään silti harjoituksen vuoksi omat Ja jotta profilointi olisi mielekästä, mennään suljetulla mallinnuksella -> mahd. paljon profiloitavaa
13 Case-esimerkki Tarvittava tietosisältö mallinnettu jo etukäteen (ks. Seuraava kalvo) Etsitään mittauksia varten ensin sopiva resurssi https://www.hl7.org/fhir/resourceguide.html Sen jälkeen mapataan mallinnettu tieto valitun resurssin tietoihin Vain mallinnettu tieto, muut pois (suljettu mallinnustapa) Ks. erillinen taulukko Aloitetaan profiloinnit Forge työvälineellä
14 Case-esimerkkien tietosisältö Itsehoitomittaus: Kehon lämpö (Body Temperature) Mittauksen LOINC koodi: 8310-5 Mittauksen arvo: desimaali Mittauksen UCUM yksikkö: Cel Potilas: Viittaus ulkoiseen potilastietoon (resurssi) Mittauksen tapahtuma-aika: aika ja pvm Kommentit liittyen mittaukseen: vapaamuotoiset kommenttit Laajennus: appsi josta tieto lähetetty palvelimelle Itsehoitomittaus: Paino (Body Weight) Mittauksen LOINC koodi: 29463-7 Mittauksen arvo: desimaali Mittauksen yksikkö: kg Potilas: Viittaus ulkoiseen potilastietoon (resurssi) Mittauksen tapahtuma-aika: aika ja pvm Kommentit liittyen mittaukseen: vapaamuotoiset kommenttit Laajennus: appsi josta tieto lähetetty palvelimelle
15 Sopiva resurssi / sopivat resurssit Mittauksille? Potilaalle?
Profiilin luominen 16
17 Profiilin luominen Forgella Avataan Forge File New profile Resource profile (/Datatype profile/extension defintion / Derived profile / Logical model) Nimi (voi jättää tässä oletuksiksi) URL (voi jättää tässä oletuksiksi) File name (voi jättää tässä oletuksiksi)
18 Profiilin luominen Forgella Properties (= StructureDefinition resurssin tietoja) URL Resource ID Name Description Version Publishing date Lifecycle status Experimental Title Purpose Copyright Publisher Kind Derivation Type Abstract Base definition FHIR version
19 Profiilin luominen Forgella Narrative (StructereDefinition.text) Status Div Element Tree (StructeDefinition.snapshot/differential.element) Pohjaresurssin elementit ja niiden määrittelyt joita voi profiloida
StructureDefinition resurssin käyttäminen profilointiin 20
21 Perusprofiloinnit Elementin kardinaliteetin muuttaminen, esim. pohjaresurssi sallii 0..*, tämä voidaan rajoitaa tukemaan vain 1..2 Elementti voidaan poistaa käytöstä määrittelemällä max. kardinaliteetti 0 Elementin sisältö voidaan rajoittaa tiettyyn fiksattuun arvoon (fixed value) Tehdä lisärajoituksia syvemmällä hierarkiassa oleviin elementteihin (ei vain päätasolle) Esim. Patient contact Rajoittaa vain tietyt sallitut elementin tyypit, jos elementissä sallittu useita eri tyyppejä (choice)
Määritelmien, kommenttien, vaatimusten jne määrittely vastaamaan profiilin käyttökontekstia Käytännössä ylikirjoitetaan pohjamäärittelyn kenttiä short : string 1..1 formal : string 1..1 comments : string 0..1 requirements : string 0..1 synonym : string 0..* example[x] : 0..1 (example value!) mappings : 0..* (more specific mappings) 22
Elementtien kardinaliteetit 23
Kardinaliteettien rajoitukset 1..2 1..1 0..0 Tunnisteen kardinaliteetin rajoitus 1..2 Nimiä saa olla vain yksi ja nimi pakolliseksi 1..1 Yhteystieto kokonaan pois 0..0 Huom. Pohjamäärittelyn pakollista tietoa ei voi muuttaa profiilissa vapaaehtoiseksi 24
25 Huomioitavaa muutoksissa kardinaliteetteihin Yksi profiilien päätehtävä on muuttaa elementtien kardinaliteettaja. Profiilissa voidaan rajoittaa elementtejä pohjaresrussin sallimissa rajoissa: Kun profiili rajoittaa toista profiilia, niin rajoittavaan profiiliin pätevät samat yllä olevat säännöt verattuna pohjana olevaan profiiliin
Huomioitavaa muissa muutoksissa olemassa oleviin FHIR resursseihin ja tietotyyppeihin 26 Profiilit eivät saa rikkoa pohjamäärittelyn sääntöjä (esim. edellä kuvatut kardinaliteetit) Profiileissa ei saa määritellä elementeille vakioarvoja tai merkityksiä (huom. ero fixed!) Profiileissa ei saa muuttaa elementtien nimiä Resurssia on voitava käsitellä turvallisesti tuntematta profiilia Jos näin ei ole -> käytettävä modifier extensionia kertomaan tästä Esim. jos profiilissa halutaan kuvata, että suunniteltua toimenpidettä ei olekaan suoritettu, voidaan se ilmaista negaatiolla. Tätä ei kuitenkaan voi antaa suoraan profiilissa (joka kuvaa mitä profiili tarkoittaa), sen sijaan profiilissa voidaan ilmaista tämä tieto laajennuksen avullla (modifier extension).
27 Fixed arvo Määrittelee, että elementin arvona pitää olla resurssi-instanssissa juuri tietty määritelty arvo Vertailussa merkityksettömät välilyönnit jätetään huomiotta ja kaikkien arvojen pitää vastata tarkasti ja olla merkkikoosta riippuvaisia Fiksataan status tiedoksi final, category tiedoksi vital-signs
Fixed arvon määrääminen = true Only allow active Patients 28
29 Fixed profiloinnit Observation.status = final (vain tämä on sallittu) Obseravation.valueQuantity.unit = kg.code = kg.system = http://unitsofmeasure.org
Choice 30
Choice rajoitteet: Rajoitetaan arvon sovelluskohdetta Tieto kuolemasta annetaan päivämääränä, ei booleanina 31
32 Choice rajoitteet Tietotyyppi Voidaan valita listasta käytettävä tietotyyppi Viittaus resurssiin Voidaan valita listasta käytettävä resurssit Edellä mainittujen profiilit Valinnan kohteena voi olla tietotyypin profiili Valinnan kohteena voi olla resurssin profiili