hl7 finland koulutus1 tietohiisi, mika tuomainen hl7 finland koulutus fhir profilointi osa 2...
TRANSCRIPT
1
Tietohiisi, Mika Tuomainen
HL7 Finland koulutusFHIR profilointi osa 214.6.2018, Helsinki
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ö
• StructureDefinition resurssin käyttäminen• Tietotyyppien profilointi• Koodatun tiedon sidonta tiettyyn ValueSet:iin (koodistojen liittäminen
koodattuun tietoon), koodiston rakenne, valuesetin rakenne• Toistuvien elementtien elementtikohtaiset rajoitukset (slicing,
“slaissaus”)• Resurssiviittausten määrittely• Laajennuksen (extension) tekeminen ja liittäminen profiiliin• Määräys, että yhtä tai useampaa rakenteen elementtiä on pakko tukea
(must support)• Tarkempien tai lisämappausten määrittely (esim. verrattuna HL7 v2 tai
HL7 v3)
• Periytettävät profiilit
5
Tietotyyppien profilointi
6
Tietotyyppien profilointi
• Tietotyypille voidaan määritellä profiili, jossa tietotyyppiä rajoitetaantai laajennetaan
• Tietotyyppiä voidaan rajoittaa myös suoraan profiilissa mutta rajoituson tällöin profiilikohtainen
• Tietotyypin profiili otetaan käyttöön resurssin profiilin elementinmäärityksissä (tietotyypille käytettäväksi profiili)
7
Identifier profilointi
• Profiloidaan Identifier tietotyypistä pois use, type, period ja assignerelementit
• Kaksi vaihtoehtoa• Suoraan resurssin profiilissa
• Profilointi käytössä tällöin vain kyseisessä resurssissa
• Profiloimalla Identifier tietotyypille oma profiili• Voidaan käyttää eri profiileissa
• Forge – New profile – Datatype profile…
• Itse asiassa on kolmaskin tapa• Jos tehdään pohjaprofiili, voidaan tietotyyppi profiloida suoraan resurssin
profiilissa ja sen on tällöin käytössä pohjasta periytetyissä profiileissa
8
Rajoitetaan tietotyyppiä
8
AddressNL
Käytetään profiloitua
tietotyyppiä
9
Koodistot: Koodatun tiedon sidonta tiettyynValueSet:iin (koodistojen liittäminen koodattuun tietoon), koodiston rakenne, valuesetin rakenne
10
Koodistot - CodeSystem
Code System:
Määritteleen joukon
koodeja tiettyy
tarkoitukseen
Code
Display
Definition
‣ SNOMED CT
‣ LOINC, FinLOINC
‣ ICPC
‣ ICD-10
‣ ….
11
Koodistot - ValueSet
Code System:
Määritteleen joukon
koodeja tiettyy
tarkoitukseen
Code
Display
Definition
Value Set:
Joukko koodiston
koodeja (arvojoukko),
jotka valittu tiettyä
käyttökontekstia varten
Valitsee
12
Koodistot - ElementDefinition
Code System:
Määritteleen joukon
koodeja tiettyy
tarkoitukseen
Code
Display
Definition
Value Set:
Joukko koodiston
koodeja (arvojoukko),
jotka valittu tiettyä
käyttökontekstia varten
Element Definition:
Tietotyyppi ja ValueSet
viittaus
Valitsee Sitoo
13
Koodistot – Resurssi-instassi
Code System:
Määritteleen joukon
koodeja tiettyy
tarkoitukseen
Code
Display
Definition
Value Set:
Joukko koodiston
koodeja (arvojoukko),
jotka valittu tiettyä
käyttökontekstia varten
Element:
code/
Coding/
CodeableConcept
Element Definition:
Tietotyyppi ja ValueSet
viittaus
Valitsee Sitoo
Viittaa
Noudattaa
Määrittely
Instanssi
14
Koodistojen sidontojen määrittelyt
• Koodattujen tietojen elementit sidotaan käytettävään koodistoon
• Sidonta identifioi käytettävän koodiston/koodistot ja määritteleemiten tarkkaan koodeja on tulkittava
• Koodistot sidotaan koodattuun elementtiin joko ValueSe resurssilla tai sitten yleisellä viittauksella web sisältöön joka määrittelee käytettävätkoodit (jälkimmäinen silloin kun koodit tulevat jostain ulkoisestastandardista, esim. Mime tyypit). Lisäksi on vaihtoehtoisestimahdollista antaa vain tekstikuvaus käytettävistä koodeista (esim. Kehityksen alla olevat)
• Sidonnassa on ominaisuus, joka määrittelee miten tarkkaantoteutusten on noudatettava määriteltyjä koodeja (binding strength, ks. Seur. Kalvo)
15
Sidonnan vahvuus (Binding Strenght)
Sidonnan vahvuus Kustomointi profiilissa
required ValueSet voi sisältää vain koodeja, jotkaovat määritelty FHIR standardissa (tai profiilissa)
extensible ValueSet voi sisältää koodeja, joita ei löydyValueSetistä. Näillä lisäkoodeilla ei saa(SHOULD NOT) olla samaa merkitystä kuinValueSetissä määritellyillä koodeilla.
preferred ValueSet voi sisältää mitä tahansapaikalliseen käyttöön soveltuvia koodeja. ValueSetissä olevia koodeja suositellaankuitenkin käytettäväksi.
example ValueSet voi sisältää mitä tahansapaikalliseen käyttöön soveltuvia koodeja, annettu ValueSet on vain mukana esimerkinomaisesti.
16
Sidonnan vahvuuden muuttaminen profiilissa
Profiili
Pohjamäärittely
required extensible preferred example
required yes no no no
extensible yes yes no no
preferred yes yes yes no
example yes yes yes yes
17
Terminologia resurssit ja niiden suhteet
https://www.hl7.org/fhir/terminology-module.html
18
Koodistojen käyttö resursseissa
• 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
19
CodeSystem ja ValueSet
• ValueSet ei näy itse resurssi-instanssissa 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"
}]
},
20
Työkalut koodistoille ja ValueSeteille
• clinFHIR (David Hay)• CodeSystem builder
• http://clinfhir.com/codeSystem.html
• ValueSet explorer• http://clinfhir.com/valuesetCreator.html
21
CodeSystem resurssi
• CodySystem• Koodiston ”metatiedot”
• ConceptDefinition• Varsinaiset koodit
• Designation• Käännökset
• Lisäksi mahdollista määritellä Filttereitä (Valuesettejä varten) ja Propertyjä (muita koodeihin liittyviä ominaisuuksia, esim. voimassaolo jne.
22
{"resourceType": "CodeSystem","id": "e7bad262-db28-4250-afb5-7a20d9dce454","meta": {
"versionId": "4","lastUpdated": "2018-02-28T14:38:26.81+02:00"
},"url": "http://phr.kanta.fi/fiphr-cs-medicationcontext","version": "0.02","name": "Code System Finnish PHR Medication Context","status": "draft","experimental": true,"date": "2018-02-06T06:00:00+00:00","publisher": "Kela ","description": "Finnish PHR Medication Context codes.","caseSensitive": true,"content": "complete","concept": [
{"code": "1","display": "Before medication","definition": "Before medication","designation": [
{"language": "fi","value": "Ennen lääkkeenottoa"
},{
"language": "sv","value": "Före läkemedelsintag"
}]
},
23
},{
"code": "2","display": "After medication","definition": "After medication","designation": [
{"language": "fi","value": "Lääkkeenoton jälkeen"
},{
"language": "sv","value": "Efter läkemedelsintag"
}]
},{
"code": "3","display": "Medication is not used","definition": "Medication is not used","designation": [
{"language": "fi","value": "Lääkettä ei ole käytetty"
},{
"language": "sv","value": "Läkemedel används inte"
}]
}]
}
24
ValueSet resurssi
• ValueSet• ValueSetin ”metatiedot”
• Compose• Mistä koodeista ValueSet
muodostuu (ValueSetin sisältö)
• Expansion• Terminologia palvelujen kautta
muodostetun koodiston sisältö
25
{"resourceType": "ValueSet","id": "499a8861-a833-4075-b900-99971878113d","meta": {
"versionId": "4","lastUpdated": "2018-02-28T14:39:26.657+02:00"
},"url": "http://phr.kanta.fi/ValueSet/fiphr-vs-medicationcontext","version": "0.01","name": "Value Set Finnish PHR Medication Context","status": "draft","date": "2016-11-23T06:00:00+00:00","publisher": "Kela","description": "Finnish PHR Medication Context value set.","compose": {
"include": [{
"system": "http://phr.kanta.fi/fiphr-cs-medicationcontext"}
]}
}
26
{"resourceType":"ValueSet","id":"fiphr-vs-reasonnottaken","url":"http://phr.kanta.fi/ValueSet/fiphr-vs-reasonnottaken","version":"0.01","name":"Value Set Finnish PHR Reason Not Taken","status":"draft","date":"2016-11-23T06:00:00+00:00","publisher":"Kela","description":"Finnish PHR Reason not taken value set for medication resources.","compose":{
"include": [{
"system":"urn:oid:1.2.246.537.6.600"}
]}
}
27
{"resourceType": "ValueSet","id": "1bb2b789-ccfa-4166-aa68-577a476fa1cc","meta": {
"versionId": "1","lastUpdated": "2018-05-15T08:44:41.156+03:00"
},"url": "http://phr.kanta.fi/ValueSet/fiphr-vs-vitalsigns","version": "1.0","name": "fiphr-vs-vitalsigns","title": "Value Set Finnish PHR Vital Signs","status": "active","date": "2018-03-16T14:00:00+02:00","publisher": "Kela","description": "This value set indicates the allowed vital sign result types in Finnish PRH. ","copyright": "This content from LOINC? is copyright ? 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the
license at http://loinc.org/terms-of-use","compose": {
"include": [{
"system": "http://loinc.org","concept": [
{"code": "9279-1","display": "Respiratory rate","designation": [
{"language": "fi","value": "Hengitystiheys"
28
Koodatun tiedon profilointia
• Sidotaan resurssin code-elementtiin ValueSet• Haetaan ValueSet omalle koneelle
• Profiloidaan lisäksi code.coding (1..1), code.coding.system (1..1, systemiksi käytetty koodisto), code.coding.value (1..1, fiksatuksi tietty koodiston arvo) ja code.coding.display (1..1)
29
Slicing, ”slaissaus”
30
Slicing, ”slaissaus”
• Yksi yleinen rajoitus on määritellä toistuville elementeille rajoitteita• Itse toistuman kardinaliteettia voidaan rajoittaa mutta lisäksi jokaiselle
toistumalle voidaan antaa omat rajoitteet
• Tämä tehdään määrittelemällä toistumille alielementtejä
• FHIR:ssa tätä toimenpidettä kutsutaan käsitteellä Slicing (“slaissaus”)
• Slaissauksessa toistuva elementti slaissataan alielementeiksi, joissajokaisessa on vain yksi elementti ja näitä kutakin elementtiärajoitetaan erikseen
• Samaa tekniikkaa voidaan käyttää myös elementeille, joilla on valittavissa useampi tietotyyppi
31
Verenpaineen mittauksen slaissaus
• Yksi esimerkki slaissauksesta on verenpaineen ylä- ja alapaineenilmoittaminen Observation resurssilla
• Ylä- ja alapaine ilmoitetaantoistuvanObservation.componentelementin avulla
• Component elementti sisältääkoodin (mittaus: systolic ja diastolic) ja arvon (Quantity)
• Elementtien erottavana tekijänä on mittauksen koodi
32
Dokumentin rakenteen slaissaus
• Slaissataan dokumentille tietty rakenne rajoittamalla Section elementintoistumaa
• Fiksataan joka toistumalle oma tunniste (code), joka toimii osien erottimena
32
Compositiontype = “34133-9”
“Summarization of
episode note”
Sectioncode = 42348-3 (“Advance directives”)
Sectioncode =11450-4 (“Problem list”)
Sectioncode = 18776-5 (“Treatment plan”)
…
33
Usemman toistuman tarkempi määrittely
• Esim. sallitaan vain 2 toistumaa ja toisen niistä oltava pakollinen ja henkilötunnus, toisen vapaaehtoinen erillinen potilastunnus
• Esim. kuumeen mittaus tunnistetaan pakollisella LOINC koodilla mutta koodia voi tarkentaa toisella tarkemmalla LOINC koodilla, jota varten määritellään toisen toistuman tarkemmat tiedot
• Näitä kahta edellistä profiloidaan kohta Forgella
34
Slicing ja diskriminaattori (discriminator)
• Slaissien erottamiseksi toisistaanFHIR:ssa määriteltydiskriminaattori (discriminator)
• Diskriminaattori on elementintietty kenttä tai tietty joukkokenttiä
• Diskriminaattori on uniikkijokaisella slaissille
value Slaisseilla on eri arvot nimitetyissäelementeissä
exists Slaissit erotellaan sen perusteellaovatko olemassa vai puuttuvatko ne nimitetyistä elementeistä
pattern Slaisseilla on nimitetyissä elementeissäeri arvot, joita testataanElement.pattern[x] määrittelyä vasten
type Slaissit erotetaan nimitetyn elementinprofiilissa määritetyn tyypin perusteella
profile Slaissit erotetaan nimitetyn elementinprofiilissa määritetyn conformance määrittelynt perusteella
• Diskriminaattoreita on viisi erilaista tyyppiä
35
Slicing: järjestys (ordered) + säännöt (rules)
• Slaissien järjestys (ordered)
• Annetaan Boolean arvona
• Määrittää onko lista järjestetty (true) vai ei (false)
• Slicing Rules• http://hl7.org/fhir/resource-slicing-rules
Code Display Definition
closed Closed Vain profiilissa slaisseille määriteltysisältö on sallittu
open Open Lisätiedot on sallittu missä kohdn vain alielementtejä (elementtilistaa)
openAtEnd Open at End Lisätiedot on sallittu mutta vain elementtilistan lopussa. Huom. Tämävaatii, että slaissien on oltavajärjestyksessä.
36
Usemman toistuman slaissaus profiiliin
• Esim. sallitaan vain 2 toistumaa ja toisen niistä oltava pakollinen ja henkilötunnus, toisen vapaaehtoinen erillinen potilastunnus
• Patient.identifier
• Diskriminaattori?
• Esim. kuumeen mittaus tunnistetaan pakollisella LOINC koodilla mutta koodia voi tarkentaa toisella tarkemmalla LOINC koodilla, jota varten määritellään toisen toistuman tarkemmat tiedot
• Observation.code
• Diskriminaattori?
• Profiloidaan nämä Forgella
37
"identifier": [{
"system": "urn:oid:1.2.246.21","value": "230474-9999"
},{
"system": "http://tietohiisi.fi/patid","value": "12345"
}],
38
Resurssiviittausten määrittely
39
References
• Viittaukset Referencetietotyypillä viitattavaan resurssiin / profiiliin
• Viittauksissa resursseihin / resurssien profiileihin voidaan ottaa kantaa ”aggregaatioon” (aggregation) = missä viitattava resurssi-instanssi sijaitsee
Code Definition
Contained Viitattava resurssi-instanssi on mukana varsinaisessaresurssi-intanssissa
Referenced Viitattava resurssi-instanssi on ulkoisessa lähteessä(esim. Resurssipalvelimella)
..bundled Viitattavat resurssi-instanssit ovat samassa bundle-resurssissa kuin itse resurssi-instanssi
40
Rajoitetaan viitattavaa resurssia
40
=“true” Sallitaan viittaus vain
profiloituun resurssiin
OrganizationNL
41
Määritellään viittaus profiiliin
• Sallitaan viittaus vain Patient profiiliin
• Viittauksen aggregaationa sallittu vain referenced (ei saa olla contained, vaan Patient resurssin on löydyttävä palvelimelta)
42
Laajennuksen (extension) tekeminen ja liittäminen profiiliin
43
Laajennukset
• Laajennuksilla voidaan määritellä omia elementtejä itse rakenteenpäätasolle tai sitten rakenteen elementteihin
• Esim: Patient rotu/etnisyys• Rekisteröinti pakollista USA:ssa
• Rekisteröinti laitonta EU:ssa
• Näin tätä tietoa ei voi sisällyttää Patient-resurssin ydinmäärittelyyn!
• Laajennus voidaa näin määritellä kerran ja käyttää eri resursseissaja/tai tietotyypeissä
• Esim. Voidaan määritellä laajennus “hiusten väri” ja käyttää sitä sitten sekäPatient että Person resurssissa
44
Laajennuksen määrittely
• Laajennuksen määrittelyssä määritellään• URL
• joka identifioi laajennuksen
• jota käytetään resursseissa viittaamaan laajennukseen
• Arvo (tietotyyppi/viittaus)• Laajennuksessa käytettävä elementti, joka määritellään samalla tavoin kuin muidenkin
resrussin rakenteiden elementit
• Konteksti• Missä laajennusta voidaan käyttää (resurssi/primitive tietotyyppi/complex tietotyyppi)
45
Primitive laajennus
• Määrittelee yhden yksittäisen elementin
• Elementin tyypin arvo voi olla• Primitiivi tietotyyppi
• Complex tietotyyppi
• Esim:• patient-birthTime (dateTime)
• birthPlace (Address)
46
Complex laajennus
• Määrittelee joukon elementtejä• Elementit voivat olla hierarkisia
• Määrittää kaikkien elementtien tyyppien arvot
• Esim: patient-nationality• code: CodeableConcept
• period: Period
47
Esim. Nimen laajentaminen
47
Laajennuksen avain/tunniste
Laajennuksen arvo
48
Esim. Complex laajennus
48
49
Laajennuksen käyttö resurssissa
• FHIR sallii oletuksena resurssi-instanssien määritellä rajoittamattomanmäärän laajennuselementtejä
• Periytyy elementtien pohjamäärittelystä Element.extension
• Profiilissa voidaan rajoittaa kunkin elementin listaa laajennuksista• Vaaditaan laajennukset
• Estetään tiettyjen laajennusten käyttö
• Profiilien laajennuselementit viittaavat ulkoisiin laajennustenmäärittelyihin
50
Laajennusten käyttöStructureDefinitionFinnish PHR Peak Expiratory Flow profilehttp://phr.kanta.fi/StructureDefinition/fiphr-pef-stu3
Observation.subject: HumanNameObservation.code: Loinc 19935-6…Observation.MedicationContext: Extension (Finnish PHR medicationcontext )
Laajennuksen arvo intanssissa
StructureDefinitionFinnish PHR medicationcontext extensionhttp://phr.kanta.fi/StructureDefinition/fiphr-medicationcontext
PEF mittaus Subject: Matti MeikäläinenCode: 19935-6ValueQuantity: 590 L/min
”Before medication”
- <<<<<<<<<<<<
Observation instanssiObservation profiili
Laajennuksen määritys (profiili)
Noudattaa profiilia
Viittaus ulkoiseenLaajennuksen määritykseen
51
Määritellään laajennus ja otetaan se käyttöön profiilissa
• Laajennus, jossa tieto Appsista, joka tuottanut resurssi-instanssin• Pelkkä nimi riittää
• Forge – New Extension
• Properties – Context• Select Extension Context
• Missä laajennusta voidaan käyttää (resurssi/primitive tietotyyppi/complex tietotyyppi)
• Valitaan sopiva resurssi
• Valitaan mitä kohtaa resurssista ollaan laajentamassa (itse resurssi, tietotyyppi)
52
Must support
53
Must Support, elementin tuettavuus
• Must Support = määrää, että yhtä tai useampaa elementtiä on pakko tukea• Tätä ei määritellä resurssissa tai tietotyypissä, vaan elementin mustSupport
määrittelyssä (ElementDefinition.mustSupport)• Boolean arvo
• True = järjestelmän, joka kertoo tukevansa profiiia, pitää tukea elementtiä (eri asiakuin kardinaliteetti), myös 0..1/0..* kardinaliteetillä olevaa elementtiä on tuettava.
• FHIR määrittely ei määritä mitä tällainen tuki tarkoittaa. Määritelmäannetaan profiilissa ja must supportia käytettäessä profiilissa pitää olla selkeästi kuvattu millaista tukea vaaditaan. Esim.
• Järjestelmän pitää pystyä tallentaan ja hakemaan elementti• Järjestelmän pitää näyttää elementti käyttöliittymässä tai mahdolistaa elementin
tietojen syöttäminen käyttöliittymässä• Elementin on näyttävä raporteissa• Elementti on huomioitava päätöksenteontuessa tai muussa prosessoinnissa• jne.
54
Mappaukset
55
Mapping, mappaukset
• Tarkempien tai lisämappausten määrittely (esim. verrattuna HL7 v2 tai HL7 v3)
• Resurssin mappaus
• Elementtien mappaus
56
Periytettävät profiilit
57
Periytettävä profiili
• Voidaan määritellä pohjaprofiili, josta periytetään tarkemmat profiilit• Ei tarvitse tehdä samankaltaiset profiloinnin kuin kerran
• StructureDefinition.abstract = true, eli ei voi olla resurssi-instanssi
• Esim. Kanta PHR Vital Signs ja siitä johdetut
• Esim. FHIR Vital Signs ja siitä johdetut
• Haetaan Kanta PHR:n Vital Signs pohjaprofiili• https://simplifier.net/finnishphr/fiphr-vitalsigns-stu3
• Avataan se Forgeen File – New Derived Profile
• Tutkiskellaan profiilia
58
Resurssi-instanssin pakottaminen käyttämään profiiliviittausta
59
Resurssi-instanssin pakottaminen käyttämään profiiliviittausta
• StructureDefinition.meta.profile• Fixed value:ksi kyseisen profiilin url