Source: http://docplayer.fi/626210-Terveydenhuollon-avoimet-sovellusrajapinnat-koodistorajapinnat.html
Timestamp: 2018-01-21 18:57:01+00:00
Document Index: 7209491

Matched Legal Cases: ['kko ', 'kko ', 'kko ', 'kko ', 'kko ', 'kko ', 'kko ', 'kko ', 'kko ', 'kko ', 'kko ']

Terveydenhuollon avoimet sovellusrajapinnat - koodistorajapinnat - PDF
Download "Terveydenhuollon avoimet sovellusrajapinnat - koodistorajapinnat"
1 Terveydenhuollon avoimet sovellusrajapinnat - koodistorajapinnat HL7 Finland ry, SerAPI-projekti, PlugIT-projekti OID: Ydinpalvelurajapinnat Yhteyshenkilö: Versio Hyväksytty HL7 Finland hallituksessa kommentointikierroksen sekä lausuntokierroksen jälkeen viimeksi päivitetty:
2 Tiivistelmä Terveydenhuollon ohjelmistojen sisältämien tietojen luotettava siirto sovellusten välillä tai yhteismitallisen tiedon tuottaminen eri järjestelmistä vaatii sitä, että sovellusohjelmistot voivat jakaa ja käyttää samoja koodistoja ja terminologioita erityisesti rakenteisen tiedon yhteydessä. Koodistojen epäyhteensopivuus, paikalliset ja sovelluskohtaiset koodistot sekä samojen koodistojen epäyhtenäiset versiot aiheuttavat runsaasti yhteensopivuusongelmia sovellusohjelmistojen välillä terveydenhuollossa. Tässä raportissa esitetään taustatiedot, vaatimukset, tekniikkariippumattomat ratkaisut ja tekniset tarkennukset avoimille ohjelmistorajapinnoille keskitettyjen koodistopalveluiden käyttämiseksi. Rajapintoja toteuttamalla voidaan mm. vähentää päällekkäisen tiedon syöttöä eri järjestelmiin, päällekkäistä koodistojen ylläpitoa eri sovelluksissa, saada käyttöön samoja koodistoja ja yhtenäisiä koodistojen versioita eri ohjelmistoissa ja tuottaa uudelleenkäytettäviä ohjelmistopalveluita. Raportin ratkaisuilla voidaan tukea ja täydentää Stakesin Kansallisessa koodistopalvelussa ylläpidettävien koodistojen käyttöönottoa sovellusohjelmistoissa. Määritellyt rajapinnat perustuvat kansainvälisten rajapintastandardien ja Kansallisen koodistopalvelun tietosisällön hyödyntämiseen. Rajapinnat ovat riippumattomia käytetyistä koodistoista, ja myös terveydenhuollon ulkopuolisia koodistoja voidaan hyödyntää rajapintojen avulla. Raportti on tuotettu PlugIT-hankkeessa tutkijoiden, terveydenhuollon organisaatioiden ja ohjelmistoyritysten yhteistyössä vuosina Sen tuottamisessa on hyödynnetty projektin integrointiratkaisujen arviointi- ja määrittelymenetelmiä. Raportti julkaistiin alun perin julkaisusarjassa PlugIT-hankkeen selvityksiä ja raportteja : (http://www.plugit.fi/julkaisut/tilauslomake.html): Juha Mykkänen, Saara Savolainen, Hannu Virkanen: Terveydenhuollon avoimet sovellusrajapinnat: koodistorajapinnat. PlugIT-hankkeen päättymisen jälkeen dokumentti läpäisi HL7 Finland:in kommentointi- ja lausuntokierrokset, ja HL7 hallitus hyväksyi sen Verrattuna PlugIT-julkaisuun, tähän dokumenttiin on lisätty kommentointi- ja lausuntokierrosten kommentit (liite 5), eri osien normatiivisuutta havainnollistava kappale lukuun 1.4 ja HL7:n OID-dokumenttitunnus. Dokumentin muut osat ovat samoja kuin aiemmin julkaistussa raportissa. 2
3 Esipuhe Tämä selvitys on tehty PlugIT-hankkeessa vuosina Selvitys dokumentoi PlugIThankkeessa tuotetut koodistojen avoimet sovellusrajapinnat taustatietoineen ja vaatimuksineen. Selvitys on suunnattu koodistojen hyödyntämisen kehittämiseen osallistuville terveydenhuollon ja tietohallinnon ammattilaisille, ja ohjelmistojen tuottajille. Selvityksen alussa esitetyt tarpeet, vaatimukset ja perusratkaisut ovat hyödyllisiä esimerkiksi kansallisesti ylläpidettävien koodistojen hyödyntämistä suunniteltaessa. Selvitys sisältää myös tarkat rajapintamääritykset, joiden avulla terveydenhuollon sovellusten toteuttajat voivat tuottaa tai hyödyntää avoimia koodistorajapintoja. PlugIT-hanketta ovat rahoittaneet ja siihen ovat osallistuneet TEKES, Mawell konserni, Medimaker Oy Ltd, Medici Data Oy, Mediweb Oy, Mylab Oy, Tietoenator Oyj, WM-data Novo Oyj, Atkos Oy, BEA Systems Oy, Commit; Oy, Enfo Oy, Fujitsu Services Oy, General Electric Healthcare CIS EMEA, Mediconsult Oy, Microsoft Oy, Oracle Finland Oy, Helsingin ja Uudenmaan sairaanhoitopiirin kuntayhtymä, Pirkanmaan sairaanhoitopiirin kuntayhtymä, Pohjois-Savon sairaanhoitopiirin kuntayhtymä, Pohjois-Pohjanmaan sairaanhoitopiirin kuntayhtymä, Satakunnan sairaanhoitopiirin kuntayhtymä, Varsinais-Suomen sairaanhoitopiirin kuntayhtymä, Kuopion kaupungin sosiaali- ja terveyskeskus sekä Siilinjärven ja Maaningan terveydenhuollon kuntayhtymä. Tekijät kiittävät projektiin osallistuvien yritysten ja sairaaloiden edustajia ja kaikkia koodisto- ja ydinrajapintatyöhön osallistuneita projektin työntekijöitä runsaista ja hyvistä ideoista ja kommenteista. Kuopiossa 30. elokuuta 2004 Tekijät 3
4 Sisällys 1 JOHDANTO PlugIT-projekti Sovellusten koodistorajapintojen määrittelyt Dokumentissa käytettyjä käsitteitä Raportin rakenne TAUSTASELVITYKSET Nykytila ja kehittämiskohteet OMG Terminology Query Services (TQS) HL7 version 3 koodistojen tietotyypit HL7 Common Terminology Services (CTS) Stakesin koodistopalvelin OID-yksilöinti INTEGROINTIVAATIMUKSET Tavoitteet ja päärajaukset Osallistuvat ohjelmistot ja sovellusaluevaatimukset Koodistopalvelut Tietosisältö Minimitiedot Monikieliset koodistot, hierarkian käsittely ja edistyneet haut Vapaa tietosisältö Vaatimusten tarkempi kuvaus TEKNIIKKARIIPPUMATTOMAT LIITTYMÄMÄÄRITTELYT Integrointiperiaatteet ja sovellusten vuorovaikutus Tekniikkariippumattomat operaatiomäärittelyt Minimitaso Perustaso (base) Monikieliset koodistot (multilingual) Vapaa tietosisältö (freeelements) Edistyneet haut (advsearch) Hierarkkisten koodistojen käsittely (hierarchical) Paikalliset koodit ja koodien tila (status) Muut tekniikkariippumattomat määritykset Yleiset virhetilanteet Koodistohyödyntäjä-esimerkkejä Integrointitekniikoiden vaatimukset Toteutuksiin kohdistuvat vaatimukset Toteutuskohtaisiksi jätettävät seikat Määrityksen mukaisuus Määrityksen käyttö ja jatkokehitys Tekniikkariippumattomiin määrityksiin tehdyt muutokset TEKNISET LIITTYMÄMÄÄRITTELYT XML- JA HTTP-RAJAPINNOILLE Tavoitteet ja päärajaukset
5 5.2 Aikaisempien määritysten tarkentaminen Tekniikoihin kohdistuvat vaatimukset Rajapintojen ja tasojen yhdistäminen Valitut tekniikat ja niiden käyttötavat Tekniset sovellusosat, niiden vastuut ja tiedonvälitys Operaatio- ja parametrimääritykset Määrityksen palvelutasot ja niillä vaaditut piirteet Codeservice-rajapinta GetSupportedCodeSystems - koodistotarjoajan tukemat koodistot GetSupportedServices - koodistotarjoajan palvelut GetInfo - koodistotarjoajan hallinnolliset ja yhteystiedot Codeset-rajapinta LookupCodesByDesignation - koodien haut selitteillä ListCodes - koodien listaus LookupCodes - koodien muut haut IsCodeValid - koodin validointi GetSupportedCodesetServices - koodistossa tuetut palvelut GetCodesetInfo - Koodiston hallinnolliset tiedot ListLanguages koodiston tukemat kielet GetCodes - yksilöityjen koodien halutun sisällön hakeminen GetSupportedAttributes - koodiston tietokenttien kysely GetHierarchyDepth koodistohierarkian syvyys Code-rajapinta GetDesignation - koodin arvon hakeminen GetParent ylemmän tason koodi GetStatus - koodin tila GetLocal - koodin paikallisuus LookupCompleteCodedConcept - koodin koko sisällön hakeminen LookupProperties - koodin halutun sisällön hakeminen GetHierarchyLevel - koodin hierarkiataso Virhetilanteet Laajennukset ja jatkokehitys Toteutuksiin kohdistuvia vaatimuksia Toteutuskohtaisesti ratkaistavat seikat Määrityksen mukaisuudesta varmistuminen SISÄLTÖMÄÄRITYKSET: RAJAPINNAN LIITTÄMINEN ERI KOODISTOIHIN ICD-10 sisältömääritys TOTEUTUKSET JA JATKOKEHITYS LÄHTEET...96 LIITE 1.STAKESIN KOODISTOPALVELUN JA HL7 MDF:N TIETOELEMENTIT LIITE 2. TEKNISEN MÄÄRITYKSEN OPERAATIOLISTAUS (V2.0) LIITE 3. MÄÄRITYKSEN TASOJEN VAATIMUKSET TOTEUTUKSILLE LIITE 4. TEKNISEN MÄÄRITYKSEN XML-ELEMENTIT LIITE 5. KOMMENTOINTIKIERROKSELLA SAADUT KOMMENTIT JA KYSYMYKSET VASTAUKSINEEN
6 1 JOHDANTO Eri ohjelmistoissa tiedon merkityksen huomioon ottavan (semanttisen) yhteentoimivuuden edellytyksenä on tiedon sallittujen arvojen (arvojoukkojen) yhtenäisyys tai korrelointi varsinaisen tiedon siirtämisen lisäksi. Yhteentoimivuus edellyttää, että sovellukset voivat jakaa ja käyttää samoja rajattuja arvojoukkoja (mm. koodistoja) nimetyissä tietokentissään. Näitä tarpeita on sekä terveydenhuollon sovellusintegraatiossa yleensä että varsinkin sähköisessä potilaskertomuksessa. Koodistojen epäyhteensopivuus, paikalliset ja sovelluskohtaiset koodistot sekä samojen koodistojen epäyhtenäiset versiot aiheuttavat runsaasti yhteensopivuusongelmia sovellusohjelmistojen välillä terveydenhuollossa ja mm. hankaloittavat yhteismitallisen ja vertailtavan päätöksentekoa tukevan tiedon saantia eri järjestelmistä. 1.1 PlugIT-projekti PlugIT on vuosina toteutettu valtakunnallinen Tekes-rahoitteinen tutkimus- ja kehittämishanke, joka tuottaa avoimia ohjelmistorajapintojen määrityksiä sekä niihin liittyviä menetelmiä ja osaamista terveydenhuollon ohjelmistoyrityksille ja niiden asiakkaille. Hankkeen tavoitteena on tukea terveydenhuollon palvelutoimintaa ohjelmistotuotannon palveluketjun kautta, paremmin integroituvien ohjelmistokokonaisuuksien avulla (PlugIT 2004). Tutkimuksen sekä rajapintojen määrittelyn ovat toteuttaneet neljä Kuopion Centekin yksikköä yhteistyössä 15 ohjelmistoyrityksen, kuuden sairaanhoitopiirin (mukaan lukien kaikki yliopistolliset sairaanhoitopiirit) sekä kahden kunnan tai kuntayhtymän kanssa. Tämä raportti dokumentoi projektin osana vuosina tehtyyn koodistojen ohjelmistorajapintojen määrittelytyöhön liittyviä tuloksia. Nämä tulokset on tuotettu lähteessä (Mykkänen ym. 2004c) kuvattuja menetelmiä käyttäen, ja kyseisessä raportissa (luku 7.2) on kuvattu tässä kuvattavien koodistomääritysten etenemistä, käytettyjä menetelmiä ja saatuja kokemuksia. 1.2 Sovellusten koodistorajapintojen määrittelyt Eräs PlugIT-projektissa tunnistetuista ja keskeisiksi nähdyistä integrointikohteista on ollut tuottaa rajapinnat, joilla sovellukset saavat koodistoihin ja organisaatioihin liittyviä palveluita käyttöönsä esim. potilashallinnon ydinjärjestelmästä tai muusta tällaisia palveluja tarjoavasta sovelluksesta (esim. alueellinen koodistopalvelin, sairaalan paikallinen terminologiapalveluita tarjoava sovellus tai terminologiatietojärjestelmä). Terveydenhuollon sovellusten ja PlugIT-projektin ydinrajapintojen perusajatuksena on se, että joukko sovelluksia tarvitsee ja voi käyttää hyväkseen ydinjärjestelmän tarjoamia ydinpalveluita yhtenäisten rajapintojen kautta. Nämä rajapinnat ovat avoimia ja uudelleenkäytettäviä, ja useat eri ydinjärjestelmät voivat tarjota samoja rajapintoja. Sovellusten kannalta voidaan nojautua siihen, että rajapinnan toteuttava ohjelmisto on saatavilla ja tarjoaa rajapinnassa määritellyt palvelut. Näin näitä palveluita ei tarvitse toteuttaa erikseen esim. jokaiseen erillisjärjestelmään, ja liittyminen palvelun toteuttaviin keskitettyihin sovelluksiin on suoraviivaista ja yhdenmukaista eri paikoissa ja eri sovellusten kohdalla. Tämä tehostaa ja helpottaa järjestelmien käyttöönottoa eri ympäristöissä ja vähentää paikallisen sovitustyön tarvetta toistuvassa integroinnissa. Rajapinnan kautta käytettävät tiedot myös ylläpidetään keskitetysti rajapinnan palveluja tarjoavassa sovelluksessa (ks. kuva 1.1). 6
7 Stakesin Koodistopalvelin projektissa määritellään joukko koodistoja, joita tarjotaan keskitetysti valtakunnallisella tasolla. Nämä koodistot siirretään yhdeltä keskitetyltä koodistopalvelimelta koodistojen hyödyntäjille, joita voivat olla esim. alueelliset koodistopalvelimet tai ydinjärjestelmät. Koodistopalvelin-projektissa määritellään myös siirrettävien koodistojen tietosisällöt valituille koodistoille sekä tavat, joilla koodistoja hyödyntävä esim. alueellinen palvelin voi pyytää haluamansa tiedot (esim. kaikki tai tietyn päivämäärän jälkeen muuttuneet koodistojen perustiedot tai koodiarvot). (Koodistopalvelin 2003). Myös HL7 on määritellyt kansainvälisesti mm. koodistoihin liittyviä tietojoukkoja, jotka on syytä vähintään sisällyttää koodistoja koskeviin integrointiratkaisuihin. Stakesin koodistopalvelimen ratkaisu perustuu nykyisellään koodistojen kopiointiin niitä hyödyntävään järjestelmään, ja esim. erillissovellukset eivät saa ottaa suoraan yhteyttä kansalliseen palvelimeen. PlugIT-projektin koodistomäärittelyissä on hyödynnetty Stakesin koodistopalvelun tietosisältöön liittyviä määrityksiä ja määrittelty rajapinnat, joiden avulla sovellukset saavat tarkempia ja sovellusläheisempiä palveluita (esim. ydinjärjestelmältä tai alueelliselta koodistopalvelulta). Näiden rajapintojen toteuttaminen kansallista palvelua hyödyntäviin ohjelmistoihin helpottaisi yhteisesti ja valtakunnallisesti saatavilla olevien koodistojen arkikäyttöön leviämistä sovelluksissa (ks. kuva 1.1). Kuva 1.1. Esimerkkejä koodisto-ydin-rajapinnan hyödyntämisestä. PlugIT-projektissa on aiemmin kerätty integrointiin liittyviä vaatimuksia myös koodistojen hyödyntämistä koskien. Nämä vaatimukset sekä myös jotkin kansallisen Terveyshankkeen valtakunnallisen sähköisen sairauskertomuksen osahankkeessa esitetyt terminologiajärjestelmiin kohdistuvat vaatimukset ovat monilta osin OMG:n määrittelemän TQS (Terminology Query Services)-standardin vaatimusten mukaisia. TQS-standardin määriteltyjä palveluita käytetään koodistopalvelimen tietosi- 7
8 sällön lisäksi mallina ratkaisun määrittelyssä, mutta suora standardinmukainen toteutus ei ole järkevää, koska standardissa käytetty integrointiteknologia ei ole levinnyt Suomen terveydenhuollon tietojärjestelmissä ja sen käyttöönotto aiheuttaisi liikaa ylimääräistä työtä osallistuviin sovelluksiin. (ks. luku 2.2). Tarkempaa tietoa määrityksiin vaikuttaneista taustaselvityksistä ja standardeista on luvussa 2. Tämän dokumentin rakenne, sisällön osat ja sisältö on tuotettu PlugIT-projektin integrointiprosessia ja prosessin vaihedokumentteja soveltaen (Mykkänen ym. 2004c). Tähän dokumenttiin on koostettu eri aikoina syntyneitä vaihedokumentteja yhdeksi paketiksi, mutta eri osiot ovat syntyneet vähittäin työn edetessä, ja samoin niiden itsenäinen jatkokehitys on mahdollista. Työstettävät vaatimus- ja liittymämääritykset on hyväksytty ja julkistettu PlugIT-projektin hyväksymiskäytäntöjen mukaisesti (Mykkänen ym. 2004c, luku 2.2.2). Monista keskeisitä koodistoista löytyy lisätietoja ja linkkejä myös raportista Standardien arviointi ja valinta terveydenhuollon sovellusintegraatiossa (Mykkänen ym. 2004b), ja Suomessa hyödynnettäviä koodistoja on lueteltu runsaasti raportissa (Ensio, Ruotsalainen 2004), jossa on nähty myös tarve koodistopalvelun API-rajapintojen kansalliselle suositukselle. 1.3 Dokumentissa käytettyjä käsitteitä hallinnolliset tiedot koodistoon liittyvät tiedot mm. koodiston ylläpitäjästä, versiosta, voimassaolosta, ohjelmiston tarjoajasta jne. Integrointivaatimukset dokumentti, jossa määritellään integrointimäärittelytyön tavoittteet kenttä koodiston koodin sisältämä yksittäinen tietoelementti, esim. lyhenne, pitkä selite, englanninkielinen selite tai hierarkiataso koodi(elementti) koodiston sisältämä peruselementti, josta koodisto koostuu, elementissä on yleensä ainakin koodiarvo ja selite, mutta usein myös muita kenttiä kuten eri kielisiä tai lyhyitä ja pitkiä selitteitä jne. koodiarvo koodin yksikäsitteinen, yleensä koodiston sisällä yksilöivä arvo, koodin tunniste koodisto määritelty joukko arvoja, jonka tarkoituksena on kuvata mahdolliset vaihtoehdot tietystä arvojoukosta, koodiston yksittäisissä elementeissä on tyypillisesti ainakin koodiarvo ja selite, ks. nimikkeistö, luokitus koodistohyödyntäjä koodistopalvelua käyttävä sovellus tai komponentti koodistotarjoaja koodistopalvelua tarjoava sovellus tai komponentti luokitus nimikkeistö, jossa termit on ryhmitelty; jos niitä voidaan jakaa ylä- ja alaluokkiin, kyseessä on hierarkkinen luokitus, ks. nimikkeistö, koodisto nimikkeistö määritelty lista tietyn aihepiirin termejä, jotka on muodostettu sovituin säännöin, nimikkeillä ei välttämättä ole koodattuja arvoja OID Object IDentifier, numeroista muodostettu merkkijono, jota käytetään olion tunnisteena erilaisissa protokollissa. Merkkijonot määritellään hierarkkisesti ja hierarkkiatasot erotetaan toisistaan pisteillä. Myös CENtietotyyppimäärittelyn (CEN 2003) mukainen OID-tietotyyppi. selite sovellus koodiin liittyvä näytettävä selväkielinen arvo mikä tahansa terveydenhuolto-organisaation tietojärjestelmäkokonaisuuden osa, joka on tarkoitettu tietyn erityisen osatoiminnan tukemiseen. Voi olla erillinen kliininen tai potilashallinnollinen sovellus tai osa laajempaa kokonaisjärjestelmää, kertomusjärjestelmä, portaali, aluetietojärjestelmä, yms. 8
9 Tekniikkariippumaton liittymämäärittely tekninen liittymämäärittely toimiyksikkö TQS Ydinjärjestelmä dokumentti, jossa määritellään integrointiratkaisun sisältö (mm. toiminnallisuus ja tietosisältö) tavalla, joka voidaan toteuttaa usealla eri tekniikalla dokumentti, jossa määritellään integrointiratkaisu valitulla teknisellä toteutustavalla; ratkaisu voidaan näillä valituilla tekniikoilla toteuttaa useisiin eri sovelluksiin toimintayksikkö, joka on organisaatioyksikkö tai sen osa, joka on tehtäviensä hoitamisessa hallinnollisesti ja taloudellisesti itsenäinen. Sosiaali- ja terveydenhuollon toimintayksiköitä ovat esimerkiksi julkiset ja yksityiset sairaalat sekä niiden osat, terveyskeskukset. Tietojärjestelmien kannalta toimintayksikkö on tietojärjestelmää käyttävä organisaatio tai sen osa, jolla on vaikutusta tietojärjestelmän toimintaan. Organisaatiotiedot muodostavat tietojärjestelmissä erilaisia hierarkioita (Stakes 2002). OMG:n Terminology Query Service. Tämän spesifikaation määrittelemät rajapinnat sisältävät yleisiä metodeja, joiden avulla voidaan käyttää terveydenhuollon sovelluksissa tarvittavia luokituksia ja terminologiapalveluita. terveydenhuollon organisaation (sairaalan tai terveyskeskuksen tms.) tietojärjestelmän ne osat, joissa ylläpidetään keskitetysti tärkeimpiä yhteisiä tietoja, kuten potilastietoja, käyttäjätietoja, koodistotietoja, yms. Voi olla yksi tai useampia erillisiä ydinkomponentteja tai -sovelluksia tai osa kokonaisjärjestelmää (esim. monoliittista perinnejärjestelmää). 1.4 Raportin rakenne Tämän dokumentin luvussa 2 esitetään taustaselvityksiä (tarvekartoitukset, standardit ja ulkoiset määrittelyt), jotka ovat vaikuttaneet raportin myöhempien lukujen tuotoksiin. Näin ollen luku 2 ei ole välttämätön niille lukijoille, joille nämä taustaseikat eivät ole olennaisia. Luvussa 3 esitetään tehdyn määrittelytyön tavoitteet, päärajaukset ja ohjelmistotyypit, joihin tehdyt ratkaisut liittyvät. Luku sisältää myös luettelon toiminnoista ja tietosisällöstä, joita tuotettavalta ratkaisulta vaaditaan. Luvussa 4 kuvataan yleinen ratkaisu, jolla asetetut vaatimukset saavutetaan. Luvussa kuvataan integrointitapa sekä sovellusten vuorovaikutus sekä tunnistettujen rajapintojen toiminnot ja tietosisältö siten, että rajapinnat voidaan tarkentaa haluttaessa eri liittymätekniikoilla. Luvussa 4 kuvataan myös määrityksen eri tasot, eli tiettyihin vaatimuksiin liittyvät toimintojoukot. Luvut 3 ja 4 perustuvat PlugIT-hankkeen dokumenttiin Koodistorajapinnat: Integrointivaatimukset ja Tekniikkariippumattomat liittymämäärittelyt, versio 1, Luvussa 5 on tarkennettu luvun 4 rajapintoja valitsemalla integroinnissa käytettävät rajapintatekniikat. Luku sisältää tarkat tekniset määrittelyt ohjelmistorajapintojen toteuttamiseksi sekä käytetyt XML-merkkaukset ja rakenteet. Lisäksi luvussa kuvataan kuinka eri koodistot liitetään rajapinnan kautta käytettäviksi sisältömääritysten avulla. Dokumentin liitteet täydentävät pääosin lukua 5. Lukuun 6 on koottu vaatimukset, jotka kohdistuvat määrittelyt toteuttaviin ohjelmistoihin ja tietoja määrittelyjen mukaisuudesta ja sen toteamisesta. Tämän dokumentin luvut 1-4 ja 7 sekä liite 1 ovat taustamateriaalia ja taustatietoa koodistorajapinnoista. Dokumentin luvut 5 ja 6 sekä liitteet 2-5 muodostavat normatiivisen teknisen rajapintastandardin, jota noudattaen voidaan esim. toteuttaa hyväksytyn määrityksen mukaisia teknisiä rajapintoja tai tehdä tarjouspyyntöjä. 9
10 2 TAUSTASELVITYKSET Tässä luvussa kuvataan tuotettuihin määrityksiin liittyviä taustaselvityksiä, standardeja ja ulkoisia määrittelyitä. Tässä luvussa erikseen mainittujen kyselyiden ja standardien lisäksi tarpeiden, vaatimusten ja ratkaisujen lähteinä on käytetty mm. Satakunnan Makropilotin koodistotuotoksia (Isokorpi ym. 2001) ja ulkoisia terminologiapalveluiden selvityksiä (Duke, Crawford 2001). Lisäksi PlugIT-hankkeessa oli integrointitarpeen tunnistamisen jälkeen myös koodisto- ja organisaatiorajapintoihin oli kerätty vaatimuksia ja kommentteja mm. puolivuosittaisissa työpajoissa (koodistoihin liittyen kolmessa työpajassa vuosina ), sähköpostikyselyillä terveydenhuollon tietohallinnon edustajille ja projektiin osallistuville yrityksille sekä kahdenkeskisissä keskusteluissa. 2.1 Nykytila ja kehittämiskohteet Nykyisellään monet yhteiset, eri sovellusten käyttämät koodistot kopioidaan kunkin sovelluksen omaan tietovarastoon. Joissakin tapauksissa koodistojen jakaminen on toteutettu yhteisen tietokannan tai tietokantanäkymän kautta (esim. useissa Musti-pohjaisissa sekä muutamissa uusissa järjestelmissä sekä niiden integroinnissa). Tietokantapohjainen integrointi on jotakuinkin yksinkertainen ja tehokas tapa jakaa yhteisiä rekistereitä. Se on kuitenkin riippuvaista usein järjestelmäkohtaisesta tietokantamäärittelystä eikä tarjoa tiedon jakamisen lisäksi edistyneempiä terminologiapalveluita, ja tietojen päivitys kunkin sovelluksen omaan tietokantaan voi vaatia ylimääräistä ylläpitotyötä. Stakesin koodistopalvelin-projektin ensimmäisessä vaiheessa on valittu joukko toteutettavia koodistoja (ks. luku 2.5) sekä määritelty koodistojen siirtoon tarvittavat sanomat (Koodistopalvelu 2003). Määrittelyissä on käytetty SOAP-tekniikalla paketoituja XML-kuvauskielellä kuvattuja koodistosanomia. Myös työ organisaatiokoodiston kehittämiseksi on käynnissä. Koodistoja tuottavat Suomessa mm. Stakes, Kuntaliitto, Työterveyslaitos, Kela, KTL, Lääkelaitos, Säteilyturvakeskus, Duodecim, HL7 Finland ja sosiaali- ja terveydenhuollon organisaatiot. Osa näiden organisaatioiden tuottamista koodistoista tulee jaeltavaksi koodistopalvelimen kautta (Koodistopalvelin 2003). Koodistoja käyttävät mm. sosiaali- ja terveydenhuollon organisaatiot, Stakes, Kuntaliitto, tilastokeskus, tutkimuslaitokset sekä ohjelmistotoimittajat ja tietotekniikan käyttöpalvelujen tuottajat (Koodistopalvelin 2003). Tässä määriteltävissä ratkaisuissa keskitytään ohjelmistojen tekijöiden, tietotekniikan käyttöpalvelujen tuottajien sekä sosiaali- ja terveydenhuollon organisaatioiden (sovellusten käyttäjät ja tietohallinto) koodistotarpeisiin sovellusintegraatiossa. Eri sovellukset käyttävät yleensä kyseisen organisaation potilashallinnon organisaatio- ja toimipisterekistereitä. Lisäksi sovelluksissa on omia organisaatiokoodistoja. Koodeja on olemassa tulosyksikkötasolle, laitostasolle tai toimipistetasolle. Organisaatiotietoa hyödynnetään pääsääntöisesti potilaan tietoja tallennettaessa (organisaatiotieto tallennetaan lokitietona) ja käyttöoikeuksia määritettäessä (mm. potilaan suostumus ja hoitosuhteen määräytyminen). Organisaatiotietoa tarvitaan myös nyky- ja tavoitetilassa lausuntojen kierrätykseen, konsultointitarpeisiin, lähete-palautetoimintaan ja tilastointiin. Samoja koodistoja tarvitaan hyvin monenlaisissa sovelluksissa, jotka on voitu toteuttaa pitkän ajan kuluessa käyttäen monia eri tekniikoita ja sovellusarkkitehtuureita. Tuotettavissa integrointiratkaisuissa on otettava tämä heterogeenisuus huomioon suosimalla avoimia tekniikoita ja ratkaisuja, jotka mahdollistavat eri tyyppisten (mm. web ja Windows-) sovellusten osallistumisen ratkaisun mukaiseen integraatioon. 10
11 Hallinnollisten taustarekisterien ja koodistojen käyttö ulkoisesta ohjelmistosta ohjelmointirajapinnan kautta nähtiin eräänä kehityskohteena PlugIT-osapuolille tehdyssä ohjelmistotuotannon nykytila ja kehittämiskohteet-kyselyssä (ks. ao. taulukot kyselyn tuloksista) (Porali ym. 2004). Taulukko 2.1. Ohjelmistotuotannon nykytilakyselyn koodistojen käyttöön liittyviä tuloksia (Porali ym. 2004) Hallinnollisten taustarekisterien ja koodistojen käyttö ulkoisesta ohjelmistosta Frekvenssi Prosentit ohjelmointirajapinnan kautta, nykytila (n=10) ei koskaan 1 10 harvoin 2 20 joskus 3 30 usein 2 20 lähes aina 1 10 en osaa sanoa 1 10 Hallinnollisten taustarekisterien ja koodistojen käyttö ulkoisesta ohjelmistosta ohjelmointirajapinnan kautta, tavoitetaso Frekvenssi (n=7) Validit prosentit joskus 3 42,9 30 usein 3 42,9 30 en osaa sanoa 1 14,3 10 puuttuvat 3-30 Keskiarvo Keskihajonta n Hallinnollisten taustarekisterien ja koodistojen käyttö ulkoisesta 2,00 1,23 10 ohjelmistosta ohjelmointirajapinnan kautta, nykytila Tavoitetaso 2,50 0,55 7 Prosentit Samassa kyselyssä kysymykseen Toteutettavissa järjestelmäintegraatioissa standardien tai yleisten määritysten pohjalta sovittavia asioita -kysymyksessä: asiakasorganisaation organisaatioyksiköt ja organisaatiorakenne kysymyksen tavoitearvo oli 2,86 (nykytila 1,88) tietosisällön eri osissa käytetyt koodistot: tavoitearvo 4,00 (nykytila 3,13). Vastausten jakaumista voidaan tulkita, että vastaajat näkivät yleisten koodistojen ja organisaatiotietojen integroinnissa tarvetta standardointiin ja ohjelmointirajapintojen käyttöön, ja ulkoisten ohjelmointirajapintojen käyttöä koodistojen hyödyntämiseksi haluttiin lisätä. 2.2 OMG Terminology Query Services (TQS) OMG (Object Management Group)-standardointiorganisaation terveydenhuollon ryhmä (Healthcare Domain Task Force) on määritellyt joukon terveydenhuoltospesifejä sovellusten yhteisten palvelujen rajapintoja (Savolainen 2004), joista koodistoja käsittelee TQS (Terminology Query Services). Tämä luku sisältää TQS-standardista tehdyn selvityksen, jonka tavoitteena on ollut arvioida, etsiä ja osoittaa TQS-standardista sellaisia vaatimuksia, osia ja rajapintamäärittelyitä, joita on hyödynnetty projektissa määriteltävissä koodistorajapinnoissa. 11
12 Standardin perustiedot ja sen kattama alue Standardin perustietojen keräämisessä on hyödynnetty PlugIT-projektin Standardien arviointi ja valinta terveydenhuollon sovellusintegraatiossa -raportissa kuvattua arviointimallia (Mykkänen ym. 2004b), jossa on myös viittaukset arvioinnissa käytettyihin viitemalleihin. Taulukko 2.2. TQS-standardin arviointitaulukko. Standardi Terminology Query Service (TQS), ent. Lexicon Query Service (LQS) Standardointijärjestö OMG Healthcare Domain Task Force (ent. Corbamed, 2000). / -perhe Tutkittu versio 1.0, OMG document corbamed/ Kohdealue Tarkoitus Terveydenhuollon terminologia- ja koodistojärjestelmien oliopohjaiset rajapinnat Kohdealue Terveydenhuollon hajautetut sovellukset Ensisijainen RM- Computation: määritellään oliopalveluita ODP-näkökulma Muut RM-ODPnäkökulmagineering) Liittymät on määritelty OMG IDL:llä, toteutus vaatii ORB-tuotteen (En- Ensisijainen 7- Toiminnalliset liittymät (4) IDL:llä määriteltyjen operaatioiden nimet ja tasoisen mallin taso parametrit. Vaikutukset muille Edellyttää CORBA-sovellusinfrastruktuuria (2), käyttää OMG IDL:ää (1), 7-tasomallin tasoille edellyttää puhtaasti sovellettuna hajautettua CORBA-arkkitehtuuria (3), edellyttää sovittimia, jos palveluita halutaan käyttää olemassa olevien sovellusten sisältämien termien tai koodien mediaatioon tai liittää palvelujen hyödyntämistä sovelluksiin (6) Toiminnot ja tietosisältö Tieto- tai käsitemalli Keskeiset käsitteet ja niiden suhteet on määritelty Tietosisältö Liittymien parametrit, voidaan käsitellä erilaisia koodistorakenteita ja eri kenttiä sisältäviä koodistoja, joita ei ole määritelty standardissa. Tietosisällön kuvaaminen OMG IDL-kielen avulla, käytetyt tietotyypit määritelty Tietosisällön merkitys Parametrien merkitys kuvattu standardissa Toimintomalli Liittymien operaatiot Toimintomallin kuvaaminen OMG IDL-kielen avulla Toimintojen merkitys Operaatioiden merkitys kuvattu standardissa Koodistot tai luokituksediaatiota varten). Sisältää mm. ICD-9, UMLS, HL7 (implisiittinen; rakennettu koodistojen ja luokitusten hyödyntämistä ja me- v.2.3-koodisto- Ihmisten (käyttäjien) toiminnan kuvaaminen esimerkkejä. Kuvaa joukon käyttöskenaarioita osana palvelun kuvausta 12
13 Sovellusarkkitehtuuri Osien tunnistaminen Asiakas ja palvelin (hajautettu palvelu) Yhteistoiminnan Oliopohjaisuus perusmalli Integrointitapa Yhteinen infrastruktuuri (oliosanomavälitin) Hajautus Hajautetut palvelut Kutsutapa Pyyntö-vastaus, toiminnon (palvelun) suorittaminen Tekniikka Tiedon esitys OMG IDL Toimintojen määrittely OMG IDL Kutsutekniikka Operaatiokutsut määritelty OMG IDL:n avulla, josta tyypillisesti generoidaan runko sekä asiakas- että palvelinohjelmiston toteutukselle Verkkoliikenne IIOP (CORBA), (tcp/ip-verkossa), palomuurit ongelmallisia Suoritukseen tarvittava tekninen infra- ORB-tuote, CORBA-nimipalvelu struktuuri Toteutuksessa tarvittavat välineet IDL-kääntäjät, ohjelmointikielet suoritusinfrastruktuurin lisäksi Suhde järjestelmän elinkaaren vaiheisiin Vaatimukset Määrittelee joukon koodisto- ja terminologiapalveluiden vaatimuksia, joihin vastaa. Kohdealueen analyysdistojen lisäksi monimutkaisia terminologioiden elementtien suhteita Käyttää perinpohjaista käsitemallia, jolla on kuvattu yksinkertaisten koo- Tietosisällön ja toimintojen määrittely ks. yllä (kohta toiminnot ja tietosisältö) Tekninen määrittely Sisältää valmiit liittymien määrittelyt IDL:llä ja suunnittelu Toteutus IDL-kieliset liittymät voidaan toteuttaa eri välineillä ja ohjelmointikielillä Asennus ja käyttöönotttuotteen, joka huolehtii verkkokommunikaatiosta asiakkaan ja Vaatii suoritusympäristöön palvelimen, jolle palvelu asennetaan, ja ORB- palvelimen Ylläpito ja uudet versiot Arvio levinneisyydestä Kansainvälisesti Suomessa välillä. Standardi ollut hyväksytty, käytössä ja muuttumaton vuodesta OMG:n hyväksymisprosessi vaatii toteutuksen tuotteissa ennen hyväksymistä. Standardissa on määritelty useita Conformance Level-tasoja (standardin mukaiset tuotteet voivat toteuttaa vain osan määritellyistä liittymistä) Ei laajasti käytössä, arvioijien tiedossa olevat toteutukset: 3M Healthcare Data Dictionary (kaupallinen toteutus, 3M Care Innovation Component, kaupallinen terminologiajärjestelmä); PropeR-EHR (sähköisen potilaskertomuksen osa, Dept. Medical Informatics, Maastricht University, Hollanti, tutkimusprojektin tuotos, 2003) Ei käytössä, eivätkä OMG:n terveydenhuoltospesifit standardit ole levinneet yleiseen käyttöön. Suhde muihin standardeihin Vahva suhde OMG:n yleisiin middleware-tekniikkastandardeihin, OMG:n terveydenhuoltoryhmä neuvottelee yhteistyöstä HL7:n kanssa. Sisällöllisissä esimerkeissä käytetty mm. ICD-9, HL7 ja UMLS-koodistostandardeja. 13
14 Muuta olennaista Standardi on laaja ja suhteellisen monimutkainen ja kattava joukko terminologiajärjestelmien oliopalveluiden määrityksiä. Sen täysimittainen toteuttaminen tuotteessa on suuritöistä, joskin standardissa määriteltyyn minimitoteutukseen (conformance level) riittää kahden operaation toteutus. Kaikilla tasoilla standardinmukaisuuden vaatiminen esim. koodistoja tarjoavissa sovelluksissa ei ole järkevää. OMG-standardien jatkokehitystyö ja mahdollinen siirto muille kuin CORBA-alustoille riippuu OMG-terveydenhuoltoryhmän aktiivisuudesta (viime aikoina ei aktiivista), MDA-määritystyön (ks. Mykkänen 2004c) etenemisestä ja siihen liittyvästä OMG:n jäsenyritysten toiminnasta. TQS-spesifikaatio määrittelee rajapintoja, joiden toteutusten avulla sovellukset voivat käyttää erilaisia terveydenhuollon luokituksia keskitettyjen palveluiden avulla. Palvelut vaihtelevat yksinkertaisista keskitetyistä koodistopalveluista ja valintalistojen generoinnista monimutkaisiin eri terminologioiden välisten suhteiden ja koostettujen, eri sovelluksissa eri tavoin määriteltyjen tai puutteellisten käsitteiden hyödyntämiseen. TQS ei ota kantaa luokitusten sisältöön, ja määritelmää voitaisiin käyttää myös muilla toimialoilla. Koska yksikäsitteisten, täsmällisten luokitusten käyttö on erityisen tärkeää terveydenhuollossa, on Healthcare Domain Task Force ottanut tämän määrittelyn kehitettäväkseen. TQSmäärittelytyön tavoitteeksi asetettiin tuottaa spesifikaatio (OMG 2000, TQS 2000), jota voitaisiin käyttää rajapinnan toteuttamiseen mihin tahansa merkittävään terveydenhuollon luokitukseen. Luokitus voi olla yksinkertainen koodilista mutta myös monimutkainen hierarkkinen luokitusjärjestelmä. jonka avulla edistettäisiin kliinisten prosessien ja niiden tulosten analysointia yhtenäisten ja täsmällisten luokitusten ansiosta. jonka avulla edistettäisiin yhtenäistä tiedon esitystapaa edellyttävien päätöksentekoa tukevien välineiden käyttöä. jonka avulla voitaisiin edistää tiedonsiirtoa eri organisaatioiden välillä. TQS-spesifikaatiossa (TQS 2000) on määritelty lista tyypillisimmissä käyttötapauksista, jotka on jaoteltu kuuteen ryhmään. Lista ei ole kattava, mutta siihen on pyritty saamaan kaikki yleisimmät tapaukset, joissa TQS:n määrittelemistä palveluista olisi hyötyä: Tiedon hakeminen koodistosta: Käsitteen hakeminen sovellukseen tietyllä koodilla. Koodin hakeminen tarkan tai osittain annetun käsitteen avulla Koodin hakeminen avainsanoilla. Tarkimman mahdollisen käsitettä vastaavan koodin hakeminen vaiheittain Tiettyyn sovelluksen kenttään mahdollisten koodien ja vastaavien käsitteiden hakeminen Kentän validointi. Sovelluksen kentässä olevan koodin oikeellisuuden tarkistaminen. Valintalistan luominen Tietojen esittäminen. Terminologiapalvelujen käyttäminen koodattujen data-elementtien muuttamiseksi tiettyyn (ihmisen tai koneenluettavaan) muotoon, esim. koodin määrittelemän käsitteen esittäminen sovelluksessa annetuilla ehdoilla Välitys (mediation). Terminologiapalvelujen käyttäminen eri koodistoista haettujen tietojen käsittelyyn. päätöksentekoa tukevien välineiden käyttö Selaaminen (browsing). Terminologiapalvelujen käyttäminen terminologia-järjestelmän rakenteen selvittämiseen. 14
15 Yhdistelmäkäsitteiden (Composite Concept) käsittely. Terminologiapalvelujen käyttäminen yhdistelmäkäsitteiden validointia, muuttamista ja yksinkertaistamista. Tässä luvussa käsitellään tarkemmin osaa yllä kuvatuista tapauksista ja niihin liittyvistä operaatioista, jotka ovat koodistorajapintojen kannalta kiinnostavia. Luvun tietomalli ja rajapinnat ovat syventävää perustietoa standardista. Tietomalli ja rajapinnat Kuvassa 2.1 on esitetty yleisellä tasolla TQS:n viitemalli, jossa on määritelty entiteetit, joita käytetään TQS:n IDL-kuvauksessa. Malli on kuvattu TQS-määrittelysssä yksityiskohtaisesti. Terminologiajärjestelmän ei tarvitse sisältää kaikkia mallin entiteettejä ollakseen TQS-standardin mukainen. Kuva 2.1: TQS:n Viitemalli (Reference Model) (TQS 2000). 15
16 CodingSchemeLocator Terminology Service TerminologyServiceName lex_explorer coding_scheme_locator value_domain_locator get_coding_scheme_ids() get_native_coding_scheme_info ValueDomainLocator LexExplorer get_preferred_text get_preferred_text_for_concepts get_preferred_definition translate_code translate_codes list_concepts list_value_domain_ids is_concept_in_value_domain are_concepts_in_value_domain get_pick_list association_exists associations_exist list_associated_target_elements list_associated_source_codes Kuva 2.2. TerminologyServices-moduulin TerminologyService-, LexExplorer- ja ValueDomainLocator- rajapinnat (TQS 2000):n tietojen perusteella. Kuvassa 2.2 on esitetty TerminologyServices palvelun rajapinnat TerminologyService, LexExplorer, CodingSchemeLocator ja ValueDomainLocator. TQS:n minimitoteutus sisältää TerminologyService ja LexExplorer-rajapintojen toteutuksen. LexExplorer rajapinnan metodien avulla voidaan toteuttaa yksinkertaisia yleisesti tarvittavia terminologiajärjestelmäpalveluja. Laajemmissa toteutuksissa voidaan LexExploreriin lisäksi toteuttaa LexExploreria monipuolisemmat rajapinnat ValueDomainVersion ja CodingSchemeVersion, jossa on määritelty mm. metodi, jolla voidaan hakea annettua tekstiä vastaavaa koodi. Näiden rajapintojen toteutuksia käsitellään CodingSchemeLocator ja ValueDomainLocator-rajapintojen kautta. LexExplorerin metodit muut paitsi get_preferred_text ja get_preferred_text_for_concepts voivat aiheuttaa poikkeuksen tai palauttaa null-arvon. Get_preferred_text metodi palauttaa koodiin (QualifiedCode) liittyvän tekstin ja get_preferred_text_for_concepts palauttaa tekstit useammalle koodille. Käyttötapaukset, rajapinnat ja metodit Tässä luvussa on otettu tarkempaan tarkasteluun aiemmin mainittuja käyttötapauksia ja etsitty standardista näihin käyttötapauksiin ja vaatimuksiin liittyviä rajapintoja ja operaatioita. On huomattava, että tässä käsitellyt operaatiot ja tiedot ovat vain pieni osajoukko standardissa määritellyistä. 16
17 Taulukko 2.3. TQS:n käyttötapauksia ja operaatioita. Käyttötapaus Rajapinta:Metodi In Out/ Metodin palauttaman arvon tyyppi Käsitteen hakeminen sovellukseen tietyllä koodilla LexExplorer: get_preferred_text QualifiedCode a_qualified_code tiettyyn koodistoon (Coding- Scheme) liitetty ConceptCode Metodin palauttaman arvon tyyppi: IntlString (=string) CodingSchemeVersion: get_preferred_text UsageContextIdSeq context_ids UsageContextId-sekvenssi UsageContextId =koodin esitysmuodon (presentation) määrittelevän käyttökontekstin (esim. tietty sovellus) tunniste ConceptCode a_code Metodin palauttaman arvon tyyppi: IntlString CodingSchemeVersion: get_text_for_context ConceptCode a_code UsageContextIdSeq context_ids Metodin palauttaman arvon tyyppi: IntlString Koodin hakeminen tarkan tai osittain annetun käsitteen avulla CodingSchemeVersion: get_concepts_by_text (tarkka käsite) CodingSchemeVersion: match_concepts_by_string String text IntlString match_string haettava teksti unsigned long how_many palautettava maksimimäärä Metodin palauttaman arvon tyyppi: ConceptCodeSeq (koodisekvenssi) WeightedResultSeq weighted_results WeightedResult-sekvenssi. WeightedResult= ConceptInfo+ hakua vastava teksti (matching_text)+ tuloksen vastaavuutta match_string :iin kuvaava paino (weight) (luku välillä ) Koodin hakeminen avainsanoilla CodingSchemeVersion: match_concepts_by_ keywords OrderedIntlStringSeq keywords unsigned long how_many WeightedResultsIter weighted_result_iter WeightedResults-iteraattori. WeightedResultsIter on rajapinta, joka kuten muut iteraattorirajapinnat, määrittelee mm. metodin, jolla voidaan hakea (korkeintaan) kutsussa määritellyn kokoisia WeightedResultsekvenssejä. WeightedResultSeq weighted_results WeightedResultsIter weighted_results_iter 17
18 Tarkimman mahdollisen käsitettä vastaavan koodin hakeminen vaiheittain LexExplorer: list_associated_target_ elements voidaan hakea koodiin AssociationID:n määrittelemällä tavalla liittyviä muita koodeja QualifiedCode qualified_code koodi AssociationId association_id assosiaation tyyppi boolean direct_only haetaanko vain suoraan ko. koodiin liittyviä koodeja unsigned long how_many palautettava maksimimäärä TargetElementSeqSeq related_target_seq TargetElementSeqIter related_target_iter Koodiston tai koodivalikoiman koodien ja vastaavien käsitteiden listaus LexExplorer: list_concepts CodingSchemeId coding_scheme_id koodisto unsigned long how_many palautettava maksimimäärä ConceptInfoSeq concept_info_seq ConceptInfo-sekvenssi ConceptInfo = ConceptCode + vastaava teksti ConceptInfoIter concept_info_iter ConceptInfo -iteraattori CodingSchemeVersion: list_concepts unsigned long how_many ConceptInfoSeq concept_info_seq Kentän validointi Valintalistan (pick list) luominen CodingSchemeVersion: is_valid_concept LexExplorer: get_pick_list ConceptCode a_code ValueDomainId value_domain_id UsageContextIdSeq context_ids ConceptInfoIter concept_info_iter Metodin palauttaman arvon tyyppi: boolean PickListSeq pick_list PickListIter pick_list_iter ValueDomainVersion: get_pick_list UsageContextIdSeq context_ids PickListSeq pick_list PickListEntry-sekvenssi PickListEntry = QualifiedCode + vastaava teksti + Booleanarvoinen is_default ValueDomainVersion: get_pick_list_for_scheme CodingSchemeId coding_scheme_id UsageContextIdSeq usage_context_ids PickListIter pick_list_iter PickList-iteraattori. PickListSeq pick_list PickListIter pick_list_iter LexExplorer-rajapinnan metodien avulla voidaan toteuttaa yksinkertaisia yleisesti tarvittavia terminologiajärjestelmäpalveluja. Laajemmissa toteutuksissa voidaan LexExploreriin lisäksi toteuttaa LexExploreria monipuolisemmat rajapinnat ValueDomainVersion ja CodingSchemeVersion, jossa on määritelty mm. metodi, jolla voidaan hakea annettua tekstiä vastaavaa koodi. Näiden rajapintojen toteutuksia käsitellään CodingSchemeLocator ja ValueDomainLocator-rajapintojen kautta. 18
19 Toteutukset ja vastaavuudet (conformance) TQS-standardissa määritellään minimitason lisäksi vastaavuusluokat CodingSchemeLocator, CodingSchemeVersion, PresentationAccess, LinguisticGroupAccess, SystemizationAccess, Systemization, ValueDomainLocator ja ValueDomainVersion. Luokkien vaatimat rajapinnat on esitetty taulukossa 2.4. Taulukon soluissa ainakin yksi rajapinta o :lla merkityistä (optional) on toteutettava, jotta rajapinta olisi kyseisen vastaavuustason mukainen, ja tähdellä merkityt rajapinnat ovat tasolla pakollisia. Conformance Class Terminology Service Taulukko 2.4. TQS:n vastaavuusluokat. Lex Explorer CodingSchemeLocator CodingSchemeVersion CodingSchemeVersionAccess Presentation Access Linguistic GroupAccess Systemization Access Systemization ValueDomain Locator ValueDomain Version Minimitaso * * CodingSchemeLocator * * o o o o o CodingSchemeVersion * * PresentationAccess * * LinguisticGroupAccess * * SystemizationAccess * * * Systemization * * ValueDomainLocator * * ValueDomainVersion * * Advanced Query- Access TQS-standardin mukaisia toteutuksia ohjelmistoissa ei ole löydetty runsaasti. Taulukossa 2.5 on lueteltu tutkimusryhmän löytämien TQS-toteutusten tietoja. 3M Healtcare Data Dictionary terminologiajärjestelmä hyödyntää TQS-komponenttia. Järjestelmä sisältää useita keskeisiä koodistoja mm. LOINC, UMLS ja ICD9-CM ja käsitteiden kokonaismäärä on yli Data Dictionary sisältää myös tietämyskannan (knowledge base) jonka avulla voidaan kuvata mm. käsitteiden hierarkkisia suhteita koodistossa. (3M 2002). Taulukko 2.6. TQS-toteutuksia (van der Linden ym. 2003, 3M 2002). Toimittaja Tuotenimi Tyyppi vastaavuustasot Dept. Medical Informatics, Maastricht University, PropeR-projekti 3M Health Information Systems Yhteenveto PropeR EHR, TQS-toteutus sähköiseen potilaskertomuksen osa. 3M Healthcare Data Dictionary, hyödynnetään TQS-toteutusta (3M Care Innovation Component) Tutkimusprojektin tuotos Kaupallinen toteutus TQS-standardin ensisijaiset määrittelyt, eli liittymämääritykset toiminnallisella tasolla (sisältäen operaatioiden ja niiden parametrien kuvaukset) näyttävät vastaavan monia vaatimuksia, joita koodistorajapinnoille ja koodistotietojen hyödyntämiselle on asetettu PlugIT-projektissa ja myös kansallisessa Terveyshankkeen sähköisen sairauskertomuksen osahankkeessa. Standardin operaatioiden joukossa on valmiiksi määriteltyjä rajapintoja, jotka edesauttavat yhteisten koodistojen käyttöä,
20 sovellusten liittämistä koodistopalveluihin ja jatkossa mahdollisesti myös päätöksenteon tukijärjestelmien tarvitsemia koodistopalveluita (joita ei käsitellä tarkemmin tässä yhteydessä). Standardin käyttöönotto sellaisenaan suomalaisissa terveydenhuollon sovelluksissa ei kuitenkaan ole järkevää, etenkin koska CORBA ja IDL-tekniikat, joihin standardi nojautuu, sekä niiden vaatima tekninen infrastruktuuri eivät ole levinneet riittävän laajaan käyttöön Suomen terveydenhuollon sovelluksissa, ja integrointiratkaisuissa on huomioitava myös olemassa olevien sovellusten teknisen liittämisen helppous (Mykkänen ym. 2004c). Onkin järkevää hyödyntää standardissa määriteltyjä palveluita toiminnallisena mallina määriteltäville rajapinnoille siltä osin kuin standardissa määritellyt vaatimukset vastaavat Suomessa esiin tuotuja vaatimuksia, ja määritellä tekniset ratkaisut suomalaisten vaatimusten ja integroinnissa Suomessa hyödynnettävien tekniikoiden mukaisesti. Standardin tällainen hyödyntäminen on mahdollista esim. PlugIT-projektin integrointituotosten Integrointivaatimukset ja Tekniikkariippumattomat liittymämäärittelyt-tasoilla (Mykkänen ym. 2004c). Tällainen hyödyntäminen mahdollistaa tuotteiden jatkokehityksen siten, että samat palvelut voidaan helpommin toteuttaa myös CORBA- (tai joillakin muilla) tekniikoilla, jos niitä viedään markkinoille, joilla nämä tekniikat ovat käytössä. Näin myös säästytään pyörän uudelleen keksimiseltä, ja laajalta vaatimusten keräys- ja tarkennuskierrokselta niiltä osin kuin valmis standardi jo vastaa suomalaisia vaatimuksia. 2.3 HL7 version 3 koodistojen tietotyypit HL7-viesteissä ja niitä käsittelevissä ohjelmistoissa on koodatulle tiedolle ja yksilöinnille määritelty useita tietotyyppejä. Eri tietotyypeillä voidaan esittää sekä yksinkertaisia koodattuja arvoja että monipuolisia terminologiajärjestelmien välisiä käsitteitä. HL7 version 3 koodattuun tietoon ja yksilöintiin liittyviä tietotyyppejä ovat (HL7 2002): CS (Coded Simple Value): Koodattu data. Sisältää koodiarvon ja sen selityksen. Koodisto on kiinnitetty HL7-standardissa. Koodisto ja arvot on kiinnitetty. CV (Coded Value): Koodattu data. Sisältää koodiarvon lisäksi koodin selityksen ja koodiston ja mahdollisesti alkuperäisen tekstin (josta koodi on aikaansaatu). CE (Coded With Equivalents): Koodattu data. Kuten CV, mutta koodi voidaan ilmoittaa myös muiden kuin peruskoodiston avulla. Koodistoa ei ole kiinnitetty. Koodatun tiedon arvo voidaan esittää usealla eri koodistolla. CD (Concept Descriptor): Koodattu data. Kuten CE, mutta kohteena oleva käsite voidaan ilmoittaa useiden eri ristikkäisten koodistojen leikkauksena, esim. vasen jalka. II (Instance Identifier): Objektin tunniste. Perustuu ISO:n OID:n /object identifier) käyttöön (ks. luku 2.6). PlugIT-koodistorajapintojen tietosisällön määrittelyssä on hyödynnetty HL7 Message Development Framework-dokumentin (MDF 1999) mukaista koodistojen tietosisältöä (ks. liite 1). 2.4 HL7 Common Terminology Services (CTS) HL7 Version 3 integrointimalli perustuu vahvasti yhteisesti määriteltyjen koodistojen ja terminologioiden käyttöön (ks. Mykkänen ym. 2004c). Tällaista käyttöä tukemaan HL7:ssa on määritelty HL7 Common Terminology Services (HL7 CTS) rajapinnat, jotka ovat (samoin kuin PlugIThankkeessa määriteltävät rajapinnat) API-tyyppisiä ohjelmistorajapintoja. CTS-rajapinnat on tarkoitettu HL7 version 3 ohjelmistoille terminologiasisältöjen saantiin (Solbrig 2003). CTS-palveluita ei ole tarkoitettu täydelliseksi terminologiapalveluiksi kuten TQSrajapintoja. Palveluiden kattama alue on rajoitettu toiminnallisuuteen, jota tarvitaan HL7 version 3 20
PLUGIT-HANKKEEN SELVITYKSIÄ JA RAPORTTEJA 8 STUDIES AND REPORTS OF THE PLUGIT PROJECT 8 Juha Mykkänen, Saara Savolainen, Hannu Virkanen Terveydenhuollon avoimet sovellusrajapinnat - koodistorajapinnat
Koodistorajapinnat (CodeAPI) WSDL rajapintamäärittelyt
Koodistorajapinnat (CodeAPI) WSDL rajapintamäärittelyt SerAPI projekti Yhteyshenkilö Juha.Mykkanen@uku.fi Dokumentin versio 3.0 Päiväys 16.8.2007 Sisällysluettelo 1 Johdanto... 5 2 Tietotyypit... 7 2.1
PLUGIT-HANKKEEN SELVITYKSIÄ JA RAPORTTEJA 3 STUDIES AND REPORTS OF THE PLUGIT PROJECT 3 Juha Mykkänen, Kristiina Häyrinen, Saara Savolainen, Jari Porrasmaa Standardien arviointi ja valinta terveydenhuollon