1 HL7 Finland koulutus FHIR perusteet 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ö FHIR taustat FHIR resurssit (rakenne, viittaukset, laajennukset) FHIR tietotyypit FHIR koodistojen käyttö resursseissa FHIR tiedonsiirtomallit
FHIR perusteet: Taustat 5
6 Mistä lyhenne FHIR tulee? F Fast Nopea toteuttaa H Healthcare Kohdealueena terveydenhuolto (myös sosiaalihuolto tulossa?) I Interoperable Yhteentoimiva R Resources Resurssit (tietojen rakennuspalikat )
7 Miksi HL7 lähti kehittämään FHIRia? Versio 2 oli (ja on edelleen) erittäin suosittu, mutta teknologia on vanhaa ja ei sovellu hyvin uusiin vaatimuksiin. Versio 3, vaikka perustuikin tiukkaan mallintamiseen/rim-malliin, ei ole saanut kovin laajaa hyväksyntää ja on havaittu vaikeaksi toteutettaa CDA on ollut iso menestys mutta on dokumenttistandardi ja sen käyttö ei näin sovellu hyvin muihin käyttötarkoituksiin HL7 standardit eivät soveltuneet hyvin uusiin käyttökohteisiin, esim. mobiililaitteet REST-pohjainen arkkitehtuuri laajasti käytössä muilla sovellusalueilla HL7 standardoinnin työkalut ovat olleet aina haastena, sillä työkalut on pitänyt suunnitella ja rakentaa erityisesti HL7:aa varten. Ja usein tarvittavat työkalut ovat valmistuneet liian myöhään.
8 FHIR ajurit Muutos terveydenhuollossa Potilas keskiöön/vastuu omasta terveydestä, organisaatoiden välinen tiedonvaihto (ei vain organisaation sisällä) Siirtymä offlinesta onlineen PC -> tablet, työpöytäsovellus appsit, työpöytä pilvi Tietojen avoimuus FHIR toimii avoimena rajapintana eri ratkaisujen välillä Tiedon analysointi FHIR käyttää tietorakenteita, joita helppo pilkkoa analytiikkaa varten
9 FHIR innovaatioiden mahdollistajana Suunniteltu hyvin Hyödyntää aiempien standardisukupolvien parhaita käytäntöjä Pohjana valmiit tietomallit ja koodistot aiemmista standardeista Sisällöt sekä käyttäjien luettavia että automaattisesti käsiteltäviä / validoitavia Johdonmukainen ja yksinkertainen käyttää Resurssien ymmärtäminen ei vaadi terveydenhuollon tuntemusta Toisaalta tekninen näkökulma ymmärrettävämpi kliinikoille Kontrolloitu laajentamismekanismi Toteuttajille tutut teknologiat ja välineet REST, XML, JSON, RDF Yleiset web-pohjaisen kehittämisen välineet hyödynnettävissä Standardi vapaasti verkosta saatavilla Esimerkit osana standardia Kasvava joukko toteutuksia (myös avoimella lähdekoodilla) ja testipalvelimia Ekosysteemin perusta
10 Mikä on FHIR? Seuraavan sukupolven HL7 yhteentoimivuusstandardi terveydenhuollon tietojen vaihtoon ja sovellusten liittämiseen Edelleen kehittyvä ja kehityksen alla DSTU2, STU3, R4 Resurssien kehitysasteet (maturity level) Tarkoitettu yksinkertaistamaan ja nopeuttamaan integraatioiden toteuttamista verrattuna aiempiin standardeihin Tavoitteena tukea kaikkia tiedonvaihtotarpeita Huomioitu erityisesti mobiilikäyttö ja reaaliaikaisuus Hyödyntää moderneja tekniikoita Valtava kansainvälinen kiinnostus
11 Mikä on FHIR? Yhtä merkittävä muutos kuin v2 -> v3 Tosin FHIR ei ole v4 Uudet artifaktit Uusi metodologia Uudet välineet (tooling) Uusi julkaisutapa Taustalla edelleen HL7 RIM, koodistot, tietotyypit mutta enemmän piilossa
12 FHIR aikajana (suunniteltu) First Draft 1 st STU ~ 2 nd STU ~ 3 rd STU R4... 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
13 Missä FHIR käyttössä? > 1000 organisaatiota Osallistuneet Connectathon tapahtumiin ja/tai Toteutustyö käynnissä Tosin em. vain tiedossa olevat! Yli 3000 kirjautunutta FHIR Implementer chatissä http://chat.fhir.org 25+ maata
14 Missä FHIR käytössä? Järjestelmät jotka käyttävät HAPI serveriä (2017-05)
Missä FHIR käytössä? 15
16 Gartner hype cycle Erittäin laaja terveydenhuollon tietojärjestelmien toteuttajien ja käyttäjien kiinnostus globaalisti ja yli eri standardointijärjestöjen Kuvan lähde: https://upload.wikimedia.org/wikipedia/commons/9/94/gartner_hype_cycle.svg
17 FHIR teknisestä näkökulmasta Resurssit (Resources) Tietosisältöjen rakennuspalikat Resurssien tietotyypit Resursseissa käytettävät koodistot Tuki useille eri tiedonsiirtotavoille REST rajapinta Sanomat (messages) Dokumentit (documents), Palvelurajapinnat (services) Profiilit (profiles) Resurssin rajoittaminen tiettyyn käyttötarpeen Resurssin laajentaminen Tehtyjen profiilien julkaisu Tuki eri arkkitehtuureille Mobiili, työpöytä, selain, palvelu...
FHIR perusteet: Resurssit 18
19 FHIR resurssi Resurssi Konsepti, jota voidaan ylläpitää itsenäisesti Pienin terveydenhuollossa siirrettävä tietokokonaisuus Vastaa suunnilleen HL7 V2 sanoman segmenttiä 80/20-ajattelumalli tietosisällön kattavuudessa 80 % tietotarpeista ovat yhteisiä ja huomioitu FHIR standardin resurssien tietorakenteissa 20 % tietotarpeista maa-, projekti- tai toteutuskohtaisia ja hoidetaan laajennuksilla
20 Mikä on resurssi ja mikä ei On resurssi Hallinnolliset tiedot: Patient, Location, Encounter, Organization.. Kliiniset konseptit: Observation, Condition, AllergyIntolerance, Questionnaire.. Koodistot: ValueSet, CodeSystem.. Rakenteet: StructureDefinition, Composition, List, Bundle, ImplementationGuide, Capability Statement Ei ole resurssi Sukupuoli: Liian pieni Raskaus Liian laaja Sähköinen kertomus Liian suuri
Resurssiesimerkkejä 21
22 Resurssien kypsyystaso (Maturity Level) Yleisesti voi sanoa FHIR infran oleva jo stabiilin, samoin yksittäisten resurssien. Resursseilla on FHIR:ssa eri kypsyysasteet, osa hyvin testattuja useissa eri ympäristöissä, osalla vasta hyvin vähän tosielämään perustuvaan käyttöä Kypsyysasteet 0. resurssi tai profiili (artifakti) on julkaistu määrittelyssä mutta on vielä Draft statuksella 1. PLUS artifakti ei aiheuta varoituksia ajon aikana ja siitä vastuussa oleva työryhmä (Work Group, WG) on todennut sen valmiiksi toteutuksia varten 2. PLUS artifakti on testattu ja onnistuneesti vaihdettu vähintään kolmen toisistaan riippumattoman toteutuksen väilllä (hyödyntäen 80% artifaktin ydintiedoista semirealistisessa ympäristössä ja skenaarioissa (esim. connectathon). Testien tulosten on oltava raportoituja ja hyväksyttyjä. 3. PLUS artifakti on verifioitu WG toimesta ja sen on vastattava Trial Use laatuvaatimuksia (Trial Use Quality Guidelines). Lisäksi artifakti on ollut mukana balloting prosessissä (äänestyksessä), vähintään 10 toteuttajaa vähintään 3 organisaatiosta on kommentoinut artifaktia. 4. PLUS artifakti on testattu siihen liittyvä scopen osalta, julkistettu virallisessa FHIR julkaisussa (release) ja toteutettu useissa prototyyppiprojekteissa. Lisäksi vastuullinen WG on hyväksynyt artifaktin niin vakaaksi, että voidaan alkaa vaatimaan taaksepäin yhteensopivuutta muutostilanteisiin 5. PLUS artifakti on julkaistu kahdessa virallisessa FHIR julkaisussa ja on toteutettu vähintään 5 riippumattomassa tuotannossa olevassa järjestelmässä useammassa kuin yhdessä maassa 6. "Normative": artifakti on saavuttanut normatiivisen statuksen
23 Resurssien esimerkki käyttökohteita https://www.hl7.org/fhir/resourceguide.html (Guide to Resources) https://www.hl7.org/fhir/integrated-examples.html (Integrated Examples) https://www.hl7.org/fhir/usecases.html (Common Example Scenarios in FHIR)
Resurssin rakenne (resurssi, resurssi-instanssi, profiili) 24 Metadata Resurssin tunniste ja muut metatiedot Narrative (text) Ihmisluettava yhteenveto Extensions Structured Data Laajennukset, joista viittaus erilliseen laajennuksen määrittelyyn Resurssin rakenteiset tietoelementit
<Observation xmlns="http://hl7.org/fhir"> <id value="ebfc1079-ce9f-495c-9717-19a989679955" /> <meta> <versionid value="1" /> <lastupdated value="2018-03-02t16:25:32.202+02:00" /> <profile value="http://phr.kanta.fi/structuredefinition/fiphr-pef-stu3" /> </meta> <language value="fi" /> <text> <status value="extensions" /> <div xmlns="http://www.w3.org/1999/xhtml"> Code: Maximum expiratory gas flow Respiratory system airway by Peak flow meter (19935-6)<br /> Time: 20.11.2017 11:46<br />Result: 610 L/min<br />Medication context: Before medication (1)</div> </text> <extension url="http://phr.kanta.fi/structuredefinition/fiphr-medicationcontext"> <valuecodeableconcept><coding> <system value="http://phr.kanta.fi/fiphr-cs-medicationcontext" /> <code value="1" /> <display value="before medication" /> </coding> </valuecodeableconcept> </extension> <identifier> <system value="urn:ietf:rfc:3986" /> <value value="urn:uuid:103ed5ce-2e9d-4a8e-bc15-e386119bf5ec" /> </identifier> <code> <coding> <system value="http://loinc.org" /> <code value="19935-6" /> <display value="maximum expiratory gas flow Respiratory system airway by Peak flow meter" /> </coding> </code> <subject> <reference value="patient/25a53703-27f9-4354-8f1b-a8b2f8f3ee86" /> </subject> <effectivedatetime value="2017-11-20t11:46:00+02:00" /> <valuequantity> <value value="590" /> <unit value="l/min" /><system value="http://unitsofmeasure.org" /><code value="l/min" /> </valuequantity> </Observation> Resurssin tunniste ja muut metatiedot Ihmisluettava yhteenveto Laajennukset, joista viittaus laajennuksen määrittelyyn Resurssin rakenteiset tietoelementit 25
26 Resurssin tekninen hierarkia Resource resurssi Looginen tunniste Metadata Kieli DomainResource resurssi Narratiivi Contained Extension Nämä periytyvät kaikkiin resursseihin
FHIR resurssin rakenteen määrittely (StructureDefinition) 27 Resource BackboneElement Backbone: Rakenne-elementti useammasta elementistä koostuvalle rakenteelle (ei ole tietotyyppi) DomainResource Primitive Data Type StructureDefinition Resurssi Tietotyyppi Laajennus Profiili Element ElementDefinition Complex Data Type Metadata Data Type Spec.purp. Data Type
Esimerkki: Patient resurssin rakenteiset tietoelementit 28 Viittaukset muihin resursseihin
Viittaukset resurssien välillä 29
30 Resurssin laajentaminen, esim. Potilas resurssi Standardin Patient resurssi kattaa 80% tarpeista Mutta miten annettaisiin esim. kansalaisuus, tyttönimi.. Näitä tietoja varten ovat laajennukset (extensions) FHIR standardissa on valmiita laajennuksia Laajennukset voivat olla kansallisia, sovellusaluekohtaisia, projektikohtaisia Laajennuksia voi määritellä itse
31 Laajennusten esittäminen resurssissa Tunniste = laajennusmäärittelyn tunniste Value = laajennusmäärittelyn mukainen arvo <extension url="http://phr.kanta.fi/structuredefinition/fiphr-medicationcontext"> <valuecodeableconcept> <coding> <system value="http://phr.kanta.fi/fiphr-cs-medicationcontext" /> <code value="1" /> <display value="before medication" /> </coding> </valuecodeableconcept> </extension>
32 Laajennusten kohteita resursseissa Itse resurssi (uusi elementti resurssiin) Olemassa olevan resurssin elementin laajennus Elementin tietotyypin laajennus Toisen laajennuksen laajennus
Skenaario resurssien käytöstä 12-year-old-boy First consultation Complaining of pain in the right ear for 3 days with an elevated temperature. On examination, temperature 38.5 degrees and an inflamed right eardrum with no perforation. Diagnosis Otitis Media, and prescribed Amoxicillin 250mg 3 times per day for 7 days. Follow up consultation 2 days later returned with an itchy skin rash. No breathing difficulties. On examination, urticarial rash on both arms. No evidence meningitis. Diagnosis of penicillin allergy. Antibiotics changes to Erythromycin 250mg 4 times per day for 10 days. Esimerkki: David Hay 33
Skenaario resurssien käytöstä 12-year-old-boy First consultation Complaining of pain in the right ear for 3 days with an elevated temperature. On examination, temperature 38.5 degrees and an inflamed right eardrum with no perforation. Diagnosis Otitis Media, and prescribed Amoxicillin 250mg 3 times per day for 7 days. Follow up consultation 2 days later returned with an itchy skin rash. No breathing difficulties. On examination, urticarial rash on both arms. No evidence meningitis. Diagnosis of penicillin allergy. Antibiotics changes to Erythromycin 250mg 4 times per day for 10 days. Patient Encounter Condition Observation Medication Allergy Intolerance Esimerkki: David Hay 34
Skenaario resurssien käytöstä 12-year-old-boy First consultation Complaining of pain in the right ear for 3 days with an elevated temperature. On examination, temperature 38.5 degrees and an inflamed right eardrum with no perforation. Diagnosis Otitis Media, and prescribed Amoxicillin 250mg 3 times per day for 7 days. Follow up consultation 2 days later returned with an itchy skin rash. No breathing difficulties. On examination, urticarial rash on both arms. No evidence meningitis. Diagnosis of penicillin allergy. Antibiotics changes to Erythromycin 250mg 4 times per day for 10 days. Patient Encounter Condition Observation Medication Allergy Intolerance Esimerkki: David Hay 35
MedicationRequest 36
FHIR perusteet: Tietotyypit 37
38 FHIR resurssien tietotyypit FHIR standardi määrittelee tietotyypit, joita voidaan käyttää resurssien elementeissä Tietotyyppejä on 4 kategoriassa: Primitiivit: yksittäisiä elementtejä primiitiiviarvoilla Complex tyypit: yleisesti käytettävät elementtijoukot Tietotyypit metadatalle Tiettyä käyttötarkoitusta varten määritellyt muut tietotyypit: Reference, Narrative, Extension, Meta, and Dosage
39 Primitiivi tietotyypit Esim. integer XML muoto <score value="14" /> JSON muoto score : 14 Esim perittyjä tietotyyppejä: - string <- code ja <- id, - uri <- oid - rajaavat tietotyyppejä (regex)
Complex tietotyypit 40
41 Complex tietotyyppi esimerkki <name> <family value="everyman" /> <given value="adam" /> <given value="a." /> </name> "valuequantity":{ "value":"120", "unit":"cm", "system":"http://unitsofmeasure.org", "code":"cm" } <valuequantity> <value value="120" /> <unit value="cm" /> <system value="http://unitsofmeasure.org" /> <code value="cm" /> </valuequantity> "name": { "family": "Everyman", "given": [ "Adam", "A." ] }
Choice ominaisuudet 42
43 Koodatut tietotyypit Primitiivi code <code value="g1" /> <code> <coding> <system value="http://hl7.org/fhir/sid/icd-10" /> <code value="g44.1" /> </coding> </code> <concept> <coding> <system value="http://hl7.org/fhir/sid/icd-10" /> <code value="r51" /> </coding> <coding> <system value="http://snomed.info/sct" /> <code value="25064002" /> <display value="headache" /> <userselected value="true" /> </coding> <text value="general headache" /> </concept>
44 Tietotyypit metadata tiedoille ContactDetail Contributor DataRequirement ParameterDefinition RelatedArtifact TriggerDefinition UsageContext
45 Muut erilliset tietotyypit Reference Narrative Extension Meta Dosage
FHIR perusteet: Koodistojen käyttö resursseissa 46
47 Koodistojen käyttö resursseissa Kaksi tärkeää resurssia CodeSystem: koodisto ValueSet: arvojoukko Esim. LOINC koodisto Sisältää tuhansia koodeja Näistä koodeista valitaan vital signs koodit, joita käytetään Kanta PHR:ssä -> muodostetaan Kanta PHR Vital Signs ValueSet -> CodeSystem: LOINC -> ValueSet: Kanta PHR Vital signs
48 CodeSystem ja ValueSet ValueSet ei näy itse resurssiinstanssissa millään tavalla, siellä viitataan mistä CodeSystemistä arvo löytyy ValueSet näkyy resurssin määrittelyssä ValueSet näkyy profiilissa Resurssipalvelimella voidaan validoida että annettu koodi löytyy ValueSetistä "code":{ "coding": [ { "system":"http://loinc.org", "code":"8302-2", "display":"body height" } ] },
49 ValueSetin sidonta resurssielementtiin Käytännössä ValueSet sidotaan (binding) tiettyyn resurssin koodatun tiedon elementtiin Välillisesti tulee sidottua myös koodisto Huom. ValueSettiin on mahdollista määritellä käyttöön useampi koodisto Sidonnan voimakkuus Required (koodin pitää olla tietystä arvojoukosta) Extensible (voidaan käyttää muitakin kuin arvojoukon koodeja, eivät saa olla päällekkäisiä) Preferred (arvojoukon koodeja ei tarvitse käyttää mutta olisi suositeltavaa) Example (arvojoukkoa ei ole määritelty)
50 Terminologia resurssit ja niiden suhteet https://www.hl7.org/fhir/terminology-module.html
FHIR perusteet: Tiedonsiirtomallit 51
52 Tiedonsiirtomallit REST Sanomat (messages) Dokumentit (documents) Palvelut (Services)
53 REST REST = REpresentational State Transfer Data esitetään resursseina Resurssit ovat URI osoitteellisia Käytetään HTTP:tä CRUD operaatioilla (create, read, update, delete) Resursseja voidaan vaihtaa eri esitysmuodoilla
54 REST Käytetään yksinkertaisissa reaaliaikaisissa interaktioissa RESTiä käyttävät Google, Facebook, Amazon Erityisen hyvä mobiilikäytöön GET http://myfhirserver.com/patient/123 GET http://myfhirserver.com/observation?patient=123 POST http://myfhirserver.com/observation PUT http://myfhirserver.com/observation/707
55 FHIR sanomat (messages) Vastaava kuin HL7 V2 sanoma MessageHeader
56 FHIR dokumentit (documents) Vastaava kuin CDA R2 dokumetti Composition Section Entry Entry Entry
57 Palvelut (services) Monimutkaisempia interaktioita varten Esim. lääkkeen määrääminen ja päätöksentuki Esim. tietojen yhdistelyt Service Oriented Architecture (SOA) Ainoa rajoite on, että on viestinnässä välitettävä FHIR resursseja
Riippumatta tiedonsiirtomallista, sisältö on sama 58
59 FHIR materiaalit Linkki voimassa olevaan FHIR versioon (Current officially released version of FHIR) https://www.hl7.org/fhir/ Muut versiot (aiemmat, tulevat) http://hl7.org/fhir/directory.html HL7 Finlandin jäsenille saatavilla aiemmat FHIR koulutukset Eri yhteyksissä olleita FHIR perusteet koulutuksia Hands-on tyyppinen koulutus toteuttajille http://www.hl7.fi/kokoukset-ja-tapahtumat/ (vaatii tunnukset) FHIR wiki http://wiki.hl7.org/index.php?title=fhir