54
1 Tietohiisi, Mika Tuomainen HL7 Finland koulutus FHIR profilointi perusteet 13.6.-14.6.2018, Helsinki

HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

1

Tietohiisi, Mika Tuomainen

HL7 Finland koulutusFHIR profilointi perusteet13.6.-14.6.2018, Helsinki

Page 2: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

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

Page 3: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

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

Page 4: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

4

Sisältö

• Yleistä taustaa profiloinnille

• FHIR Conformance resurssit

• Profiilit

• Profilointi

Page 5: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

5

Taustaa profiloinnille

Page 6: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

6

Miksi profilointia tarvitaan?

• Ydin FHIR standardi kuvaa alustan, joukon resursseja ja APIn, joista voidaankäyttää useissa eri terveydenhuollon konteksteissa. • Monta eri terveydenhuollon kontekstia mutta vain yksi setti resursseja

• On kuitenkin olemassa paljon eroavaisuuksia eri käyttökontekstien välillä• Lainsäädännösssä, eri terveydenhuollon ekosysteemien käytännöissä, vaatimuksissa,

säännöissä• Jokainen resurssipalvelin voi toteuttaa tietyn alijoukon FHIR määrittelystä

(kyvykkyydet, tietosisältö, formaatti, tiedonsiirtomalit)• Näin joudutaan tekemään valintoja, mitkä näistä johtuvat toimet ovat mahdollisia

ja/tai hyödyllisiä.

• Tästä syystä FHIR määritelty “alustamäärittelyksi”• Se luo yleisen alustan / perustan, jolle useat erilaiset ratkaisut voidaan toteuttaa.• 80 / 20 malli

• Yleisyyden vuoksi FHIR vaatii soveltamista/mukauttamista = profilointia tietyn kontekstin käyttötarpeisiin

Page 7: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

7

Periytetyt profiilit (derived profiles, layered profiles)

Resurssit

Suomiprofiilit

USprofiilit

…… Organisaatio-kohtaiset profiilitPHR profiilit

Kansallisetprofiilit

Ydin (Core) resrussit

Page 8: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

8

Mitä profilointi on?

• Kuvaa resurssien soveltamisen eri käyttökohteisiin ja erikäyttökonteksteihin:• Mitä resurssin elementtejä käytetään ja miten

• Mitä resurssin elementtejä ei käytetä

• Mitä lisäelementtejä, joita ei löydy pohjamäärittelystä, resurssiin on lisätty

• Mitä koodistoja käytetään tietyissä koodatun tiedon elementeissä

• Mitä FHIRin RESTful APIn, sanomien (messaging) ja dokumenttien(documents) ominaisuuksia käytetään ja miten

• Hakuparametrit

• Kuvaukset miten resurssin elementtejä ja APIn ominaisuuksiakäytetään paikallisiin vaatimuksiin ja / tai toteutuksiin

Page 9: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

9

Esim. Kanta PHR tarpeet

• Itse tehdyt fysiologiset mittaukset, itsehoitolääkitys, kyselyt ja vastaukset, suostumus, omahoitosuunnitelmat…

• Resurssi-instanssien tiedon oikeellisuuden varmentaminen mahdollisimman pitkälle serveripään validoinnilla

• esim. mittayksiköt, valuesetit, koodistot jne..

• validointi tehdään profiileja vasten (ei tarvetta erillisille validointisäännöille!!!)

• samaa tietoa lukee ja kirjoittaa eri sovellukset (kansallinen konteksti vs. oma sovellus ja oma resurssipalvelin)

• Omakanta näyttää Omatietovarannon tiedot kansalaiselle

• Lokiraporttien tuottamiseen vaadittavat tiedot

• APIn ominaisuudet• Mitä resurssityyppejä tuetaan, mitä profiileja tuetaan

• Mitä CRUD operaatioita tuetaan per resurssi

• Mitä hakuparametreja tuetaan per resurssi

• Syntaksituki (Kanta PHR vain JSON)

Page 10: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

10

FHIR profiloinnin tuomia etuja

• FHIR:ssa profilointi on sisäänrakennettu (FHIR Conformance resurssit)• Aiemmin HL7:ssa profiilit tehtiin eri syntaksilla kuin itse standardit

(Schematron, Word, Skeemat, HTML..)

• FHIR:ssa profiilit ja implementointoppaat ovat itsekin FHIR resursseja

• Ohjelmallisesti käsiteltävässä muodossa• Profiilien hallinta ja ylläpito rakenteisessa muodossa

• -> profiilit määritelty samalla standardilla kuin resurssitkin

• Validointi• -> FHIR palvelimet voivat validoida suoraan resurssi-instansseja profiileja vasten (ks.

https://www.hl7.org/fhir/validation.html)

• Koodin generointi profiilien pohjalta

• Kommunikointiväline eri osapuolten välillä

Page 11: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

11

FHIR Conformance resurssit

Page 12: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

12

Conformance resurssit ja niiden suhteet

https://www.hl7.org/fhir/conformance-module.html

Page 13: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

13

FHIR Conformance resurssit

• FHIR tarjoaa joukon resursseja, joita voidaan käyttää edellisten kalvojensoveltamistarpeiden esittämiseen ja hyödyntämiseen ohjelmallisesti.

• Näitä resursseja kutsutaan Conformance resursseiksi. • Näitä resursseja käytetään Implementation Guide-

(Implementointioppaissa) ja Capability Statement- (järjestelmänkyvykkyydet) kuvauksissa mutta voidaan käyttää myös omina erillisinäyksittäisinä resursseinaan• Implementointioppaat (Implementation Guides) ovat tietyn sovellusalueen,

organisaation / instituution tai toimittajan julkaisemia dokumentteja, jotka kuvaavatmiten FHIR standardia on sovellettu tukemaa tiettyä käyttötarkoitusta / käyttötapausta (käyttötapauksia). Implementointiopas yhdistää joukon Conformance resursseja ja näihin liittyvän tekstimuotoisen ohjeistuksen toteuttajienhyödynnettäväksi dokumentiksi.

• Capability Statement käyttää Conformance resursseja dokumentoimaan, mitenasiakaspää (client) tai palvelin (server) toteuttavat FHIRiä, esim. mitkä standardintukemat paradigmat ja API ominaisuudet ovat toteutettu ja miten

Page 14: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

14

FHIR Conformance resurssit

• Implementointioppaan (soveltamisoppaan) sisältö kuvataan käyttämällä resurssiaImplementationGuide

• Capability Statementin sisältö kuvataan käyttämällä resurssia CapabilityStatement

• Huom. CapabilityStatement on itse asiassa yksi Conformance resursseista, se kuvaa järjestelmän ominaisuudet (kyvykkyydet)

• ImplementationGuide on joukko Conformance resursseja:• StructureDefinition• CapabilityStatement• MessageDefinition• OperationDefinition• SearchParameter• CompartmentDefinition• DataElement

• Conformance resursseja voidaan käyttää myös itsenäisesti, ei välttämättä vain implementointioppaassa tai Capability statementin määrityksessä.

Page 15: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

15

Conformance resurssit ja niiden suhteet

https://www.hl7.org/fhir/conformance-module.html

Page 16: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

16

FHIR Conformance resurssit

• StructureDefinition• Resurssi, joka kuvaa miten tiettyä rakennetta

(resurssi, laajennus, tietotyyppi) käytetään• Miten resurssin/tietotyypin olemassa olevia

elementtejä käytetään• Mitä olemassa olevia elementtäjä ei käytetä• Mitä laajennuksia voidaan käyttää

resurssissa/tietotyypissä• Viittaukset Value Setteihin, jotka määrittävät

käytettävien kooditettujen elementtien tietojensisällöt

• Capability Statement• Resurssi, joka käyttää muita Conformance

resursseja dokumentoimaan, miten asiakaspää(client) tai palvelin (server) toteuttavat FHIRiä

• Esim. mitkä standardin tukemat paradigmat ja API ominaisuudet ovat toteutettu ja miten

• MessageDefinition• Resurssi, joka kuvaa sanomat, joita voidaan

lähettää ja vastaanottaa• Ml. tapahtumat jotka liittyvät

sanomaviestintään, välitettävä sanomantietosisältö, sanoman vastaanottajan vastuut

• OperationDefinition• Resurssi, jolla voidaan kuvata lisäoperaatiot,

jotka eivät löydy pohjastandardista

• SearchParameter• Resurssi, jolla voidaan kuvata

lisähakuominaisuukisa, joita ei löydypohjastandardista

• CompartmentDefinition• Resurssi, joka kuvataan resurssien loogista

ryhmittely (käytetään pääsynhallinnassa ja hakujen kuvauksissa)

• DataElement• Resurssi, jolla voidaan kuvata yhden yksittäisen

erillisen tiedon rakenne (esim. raportointiavarten)

Page 17: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

17

FHIR ydinmäärittelyt tehty conformance resursseilla

• FHIR Core tietotyyppien määrittelyt

• FHIR Core resurssien määrittelyt

• REST operaatiot

• Standardissa määritellythakuparametrit

• Standardissa kiinnitetytkoodistot

• Profiilien määrittelyt

• Laajennusten määrittelyt

• Loogisten mallien (Logical Models) määrittelyt

Page 18: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

18

StructureDefinition

• Julkaistaan rekisterissä

• Hyödynnettävissä ohjelmallisesti!• Voidaan tehdä vertailua

• Voidaan tehdä muunnoksia

• Voidaan validoida resursseja

• Voidaan genoroida koodia

• Voidaan generoida käyttöliittymää

Page 19: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

19

CapabilityStatement

• Määrittelee FHIR palvelimen kyvykkyydet• Miten asiakaspää (client) tai palvelin (server) toteuttavat FHIRiä

• Mitkä standardin paradigmat tuettuna• Mitkä REST ominaisuudet ovat toteutettu ja miten• Mitkä hakuparametrit per resurssi käytössä

• Tuetut formaatit• XML, JSON, RDF

• Tuetut resurssityypit• Operaatiot• Tuetut profiilit• Tietoturvapalvelut

• Sitoo Conformance resursseja yhteen

• Hyödynnettävissä ohjelmallisesti

Page 20: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

20

OperationDefinition

• Määrittelee REST interaktiot• Operaation nimi

• Input/output parametrit

• Toiminnan kuvaus

• Mille resursseille määritelty

• Voidaan laajentaa ja rajoittaa perus REST APIa

• Hyödynnettävissä ohjelmallisesti

Page 21: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

21

SearchParameter

• Määrittelee nimetyt REST APIssakäytettävät hakuparametrit• Nimi• Miten hakuparametriin viitataan

client-päässä• Miten hakuparametria käsitellään

palvelinpäässä• Mitä resurssin elementtiä

hakuparametri vastaa

• Voidaan laajentaa ja rajoittaa perusREST APIa

• Hyödynnettävissä ohjelmallisesti

• Lisähakukriteerien määrittely• Hakukriteerit voidaan jakaa eri

kategorioihin:• Haut, jotka kohdistuvat

ydinelementteihin mutta näilleydinelementeille ei ole standardissahakukriteerejä (esim. Haetaanhavaintoja, jotka kuuluvat normaaliinviitearvoon)

• Haut, jotka kohdistuvat tiettyynlaajennukseen

• Haut, jotka eivät kohdistu yhteentiettyyn elementtiin vaan näidenelementtien yhdistelmiin tai elementteiin kohdistuvaan laskentaan(esim. Haetaan tietyn ikäisiä potilaita)

• Nämä lisähaut määritelläänSearchParameter resurssilla.

Page 22: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

22

ImplementationGuide

• Kuvaa käytön kohdeympäristön/kontekstin

• Kuvaa vaatimukset FHIR toteutukselle

• Määrittelee linkit• Oleellisiin FHIR artifakteihin (profiilit, muut soveltamisohjeet)

• Oppaan toimittamiseen liittyvät tiedot

• Käyttö• Mahdollistaa implementointioppaan julkaisun

• Mahdollistaa työkalupohjaiset määrittelyjen mukaisuuden validoinnin

• Hyödynnettävissä ohjelmallisesti

Page 23: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

23

Resurssien tunnisteet (Canonical Url)

• Conformance resurssin yksilöivä tunniste

• Käytetään viittauksissa conformance resurssiin

• Resurssin määrittelijän määrittelmä

• HUOM. Ero resurssin loogiseen id:hen, joka on serverin muodostama

• Esim.• http://hl7.org/fhir/StructureDefinition/Observation

• http://hl7.org/fhir/StructureDefinition/vitalsigns

• http://hl7.org/fhir/StructureDefinition/11179-de-administrative-status

• http://hl7.org/fhir/StructureDefinition/HumanName

• http://phr.kanta.fi/StructureDefinition/fiphr-bloodglucose-stu3

Page 24: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

24

Profiilit / profilointi

Page 25: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

25

FHIR:n profilointi

• Profiloinnin kaksikohdetta• CapabilityStatement

resurssi

• StructureDefinitionresurssi

Page 26: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

26

CapabilityStatement

Page 27: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

27

CapabilityStatement

• Määrittelee FHIR palvelimenkyvykkyydet• Miten asiakaspää (client) tai

palvelin (server) toteuttavat FHIRiä

• Tuetut formaatit

• Tuetut resurssityypit

• Operaatiot

• Tuetut profiilit

• Tietoturvapalvelut

Page 28: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

28

FHIR:n profilointi - CapabilityStatement

• APIn kuvaaminen ja rajoittaminen• Listaa REST interaktiot (read, update, search, jne.), jotka resurssipalvelin

tarjoaa + jokaiseen inteaktioon liittyvät lisätiedot

• Voidaan käyttää listaamaan myös joukko tuettuja toiminnallisuuksia (esim. välttämättä kaikki REST interaktiot ei käytettävissä).

• Ainoa pakollinen interaktio ja toiminnallisuus on itse CapabilityStatementresurssin noutaminen palvelimelta.

• APIn laajentaminen• FHIRin tarjoamien operaatioiden lisäksi palvelimet voivat tarjota myös

erikseen määriteltyjä lisäoperaatioita (jotka eivät ole osa FHIR standardia)

• Nämä määritellään Operation frameworkilla ja OperationDefinition resurssilla(tunnistaa etuliitteestä $)

Page 29: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

29

Esim. Kanta PHR CapabilityStatement

• http://fhirsandbox.kanta.fi/phr-resourceserver/baseStu3/metadata

Page 30: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

30

Page 31: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

31

StructureDefinition

Page 32: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

32

FHIR:n profilointi - StructureDefinition

• (FHIR Core tietotyyppien ja resurssien määrittelyt ovat StructureDefinition resursseja)

• Resurssin laajentaminen ja rajoittaminen• Edellisistä johdettujen profiilien

määrittelyt• Laajennusten määrittelyt

• Yleensä kun puhutaan resurssinprofiloinnista, tarkoitetaanStructureDefinition resurssinprofilointia

• Jatkossa koulutuksessa keskitytään nimenomaan StructureDefinitionresurssin profilointiin

Page 33: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

33

StructureDefinition resurssi

• Resurssin rakennekuvauksensisällön yleistiedot / ominaisuudet• Canonical Url

• Nimi (Name), Otsikko (Title)

• Status (draft, active)

• Päivämäärä (Date), Versio(Version, author assigned)

• Tekijä (Author), Julkaisija(publisher), Yhteystiedot (contact), …

• Profiili johon rakenne pohjautuu(Base profile)

Page 34: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

34

StructureDefinition resurssi

• Mapping:• Ulkoiset määrittely, johon sisältö voidaan mapata

• Differential vs Snapshot• Element

• ElementDefinition

• Resurssin tietolementtienmäärittelyt (ElementDefinitions)• Nimi (Name), kardinaliteetit

(cardinality), tietotyyppi (data type)• Määritelmät (Definitions), käytön

huomiot (usage notes), vaatimukset(requirements)

• Oletus (Default) tai vakioarvot (fixed values)

• Rajoitukset (constraints), pituusrajat(length limits)

• Koodistojen kiinnittämiset(Terminology bindings)

• Mappaukset toisiin määrittelyihin(Mappings to other specifications)

Page 35: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

35

Differential vs. Snapshot

• Differential Component• Lista elementtien rajoituksista,

joita profiilissa on määritelty• Määrittelee vain elementtien

rajoitukset• Mallintajan ylläpitämä• Suhteellisen pieni tiedostokoko

(KBs)• Voidaan hyödyntää tehokkaaseen

tietojen vaihtamaiseen ja tallentamiseen (riippuen hyödyntävän järjestelmän kyvyistä)

• Snapshot Component• Täydellinen lista kaikista resurssien

ja tietotyyppien elementtienmäärittelyistä

• Määrittelee kaikki rajoitukset + määrittelyt jotka periytyvätpohjamäärittelystä (resurssi, tietotyyppi)

• Ohjelmallisesti muodostettava (FHIR Operation)

• Suhteellisen suuri tiedostokoko (MBs)

• Prosessointia varten (validointi, koodin generointi jne.)

Page 36: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

36

FHIR rakenteen määrittely (StructureDefinition)

StructureDefinition

DomainResource

Resource

Element

Primitive Data Type

Complex Data Type

BackboneElement

Metadata Data Type

Spec.purp. Data Type

ElementDefinition

ResurssiTietotyyppiLaajennusProfiili

Backbone: Rakenne-elementtiuseammasta elementistäkoostuvalle rakenteelle (ei ole tietotyyppi)

Page 37: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

37

StructureDefinition resurssin käyttäminen

• StructureDefinition resurssilla (profiililla) voidaan määritellärajoituksia FHIR resurssin elementteihin tai tietotyyppeihin, tai lisärajoituksia jo olemassa oleviin profiileihin.

• StructureDefinition:ssa otetaan käyttöön koko rakenteelle tai tietylleelementille määrittellyt laajennukset

• StructeDefinition tunnistetaan yksiöllisellä URL:lla ja tämän URL:in pitäisi olla sama jota käytetään StructureDefinition:in julkaisussa.

• StructeDefinition on käytännössä lineaarinen lista elementtienmäärittelyjä (ElementDefinitions)

Page 38: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

38

StructureDefinition resurssin käyttäminen

• Elementin kardinaliteetin muuttaminen, esim. pohjaresurssi sallii0..*, 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 (eivain päätasolle)

Page 39: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

39

StructureDefinition resurssin käyttäminen

• Rajoittaa vain tietyt sallitut elementin tyypit, jos elementissä sallittuuseita eri tyyppejä (choice)

• Vaatia elementin tietotyypille käytettäväksi tietotyypille määriteltyprofiili (tietotyyppiä voidaan rajoittaa myös suoraan profiilissa muttarajoitus on tällöin profiilikohtainen)

• Tehdä toistuville elementeille elementtikohtaisia rajoituksia (slicing, “slaissaus”)

• Määrittää koodatulle tiedolle sidonta tiettyyn ValueSet:iin

Page 40: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

40

StructureDefinition resurssin käyttäminen

• Tarkentaa / muuttaa elementtien määritelmiä, kommentteja, käyttöohjeita vastaamaan profiilin käyttökontekstia

• Määrittää tarkempia tai lisämappauksia (esim. verrattuna HL7 v2 tai HL7 v3)

• Määrätä, että yhtä tai useampaa rakenteen elementtiä on pakkotukea (must support)

Page 41: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

41

Resurssin profilointi esimerkkejä

41

Vaaditaan, että identierissa on

käyttävä kansallista tunnistetta

Rajoitetaan nimen toistuminen 0..1

(instead of 0..*)

Sidotaan maritalStatus tietoon uusi

valueset, joka laajentaa HL7

kansainvälistä valuesettiä

Lisätään laajennus “RaceCode”

Huom. Pohjassa ei

juuri mitään pakollista.

Page 42: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

42

Määritelmien, kommenttien, vaatimusten jnemäärittely vastaamaan profiilin käyttökontekstia

• Käytännössä ylikirjoitetaan pohjamäärittelyn elementtien 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)

42

Page 43: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

43

Rakenteinen ja julkaistavissa

• Profiili on “normaali” resurssi• -> Minkä tahansa FHIR palvelimen pitäisi pystyä tukemaan profiilia (kuten se

tukee Patient, Observation jne resursseja)

• -> Mikä tahansa FHIR palvelin on tavallaan profiilirekisteri

• -> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa bundle rakenteessa (jos palvelin tukee Bundle resurssia, ja tietyn profiilin mukaistaresurssia, yleensä profiilit ladataan erikseen palvelimelle)

• Jokaiseen profiiliin voi viitata sen URI:lla• e.g. https://hl7.org/fhir/StructureDefinition/iso-21090

43

Page 44: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

44

Profiilien käyttäminen

• Kun resurssi-instansseja välitetään, niissä viitataan profiiliin jota instanssi noudattaa

• Palvelimelle voidaan määritellä, että se hyväksyy vain resurssi-instanseja, joissa viitataan tiettyyn profiiliin ja resurssi-instanssin on oltava tämän profiilin mukainen

• Palvelin validoi resurssi-instanssin profiilia vasten

44

Page 45: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

45

Viittaaminen profiiliin resurssi-instanssissa

Observation pituusmittauksen resurssi-instanssi

- Observation.code: 8302-2- Observation.valueQuantity: 178 cm

- Observation.meta.profile: http://phr.kanta.fi/StructureDefinition/fiphr-bodyheight-stu3

Obsrvation pituusmittauksen profiili (Kanta PHR Body height)

- Loinc code: 8302-2- UCUM unit: cm

- url: http://phr.kanta.fi/StructureDefinition/fiphr-bodyheight-stu3

Validoi

Page 46: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

46

Profilointikäytänteitä / -ohjeita

Page 47: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

47

Suunnittelu

• Tarkasta löytyykö jo jotain valmista

• Uudelleenkäytä (kansalliset) profiileita

• Valitse käytätkö avointa mallinnusta (Open modeling) vai suljettuamallinnusta (closed modeling)

• Noudata sovittua nimeämistapaa

Page 48: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

48

Mitä löytyy valmiina

• FHIR standardista

• Profiilirekistereistä• Simplifier

• FHIR registry

• …

Page 49: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

49

Uudelleenkäytä (kansalliset) profiileita

Resurssit

Suomiprofiilit

USprofiilit

…… Organisaatio-kohtaiset profiilitPHR profiilit

Kansallisetprofiilit

Ydin (Core) resrussit

Page 50: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

50

Avoin vs suljettu mallinnustapa

• Riippuen projektin scopesta, voi miettiä käytetäänkö avointa vaisuljettua mallinustapaa• Avoin mallinnustapa on geneerisempi, siinä käytetään vähemmän rajoituksia

ja se on näin joustavampi

• Suljettu mallinnustapa on tarkempi ja siinä on käytössä enemmän rajoituksia. Suljetussa mallissa voidaan sopia tarkemmin millaista data otetaan vastaan, joka puolestaan voi nopeuttaa järjestelmien rakentamista (vähemmänvälitettävää tietoa, yksinkertaisemmat tietokannat jne.)

Page 51: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

51

Avoin vs suljettu mallinnus

Avoin mallinnus Suljettu mallinnus

Plussat Eteenpäin yhteensopivuus Ei tarvitse tukea kaikkia elementtejä

Fokus siinä, mitä kaikkea pitää tukea Tarkemmat mallit

Geneerisempi tietojen soveltuvuusPienemmät ja suoraviivaisemmat mallit

Enemmän toteuttajien palautetta

MiinuksetToteuttajat voivat joutua tukemaankaikkien elementtejä.

Enemmän tietokohtaisia malleja.

Isommat ja epätarkemmat mallit Vain taaksepäin yhteensopivuus

Vähemmän palautetta toteuttajilta Uudet elementit vaativat uudet versiot

Page 52: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

52

Nimeämistavat

• Example Nictiz:• http://[domain]/fhir/[ConformanceResource]/[project]-[name]-

[semver.major]• http://fhir.nl/fhir/StructureDefinition/nl-core-patient

• http://nictiz.nl/fhir/StructureDefinition/zib-Dispense-1.0

• Example Germany:• http://fhir.de/StructureDefinition/condition-de-basis

• http://fhir.de/StructureDefinition/condition-de-icd10gm

• Kanta PHR• Finnish PHR profiling guidelines

• http://www.kanta.fi/documents/12105/4106842/Finnish+PHR+profiling+guidelines/abf8af44-ba9c-460c-bee5-407d10928a49

Page 53: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

53

Versiointi – non breaking change(s)

• Muutokset eri versioiden välillä yhteensopivia• Vanha data

• Voidaan validoisa uutta profiilia vasten

• Tulkita oikein uutta profiilia vasten

• Tällöin voidaan käyttää profiilin tunnisteena samaa URLia (canonical url)

• FHIR Version management policy• https://www.hl7.org/fhir/versions.html

Page 54: HL7 Finland koulutus · •Hakukriteerit voidaan jakaa eri kategorioihin: •Haut, jotka kohdistuvat ... •-> Resurssi ja profiili periaatteessa lähetettävissä yhdessä samassa

54

Versiointi - breaking changes

• Epäyhteensopivaa aiempien profiilien kanssa

• Tällöin profiileille täytyy määritellä uusi tunnisteena käytettävä URL canonical url)

• Julkaistujen profiilien ja datojen kanssa sovittava erikseen mitentoimitaan