Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka

Samankaltaiset tiedostot
Kanta PHR:n CapabilityStatement ja REST-API. Eeva Turkka

Kanta PHR:n Sandboxympäristöt. Eeva Turkka

Omatietovaranto. Sovellustoimittajat

Kansallinen Omakannan Omatietovaranto, kansalaisen hyvinvointitiedon tallennuspaikka

Omatietovaranto tilannekatsaus

Suuli api dokumentaatio

Kansalaisen Omakannan Omatietovaranto. ammattilaisten uusien työtapojen mahdollistaja

Omatietovaranto. Jari Suhonen, THL Jari Suhoenn/ OPER

Järjestelmäarkkitehtuuri (TK081702)

Käyttäjähallintapalvelun REST-rajapinnat

Omatietovaranto. Hyvinvointipalvelujen iltapäivä kanta.fi/phr

HL7 Finland koulutus. FHIR profilointi perusteet , Helsinki. Tietohiisi, Mika Tuomainen

Hyvinvoinnin tulevaisuus on pian täällä

Vaalikone.fi API Presidentinvaalit 2012

Suomi.fi-palvelutietovaranto

Ilmonet ja rajapinnat Pääkaupunkiseudun kansalais- ja työväenopistojen kurssit

HL7 Finland koulutus. FHIR profilointi osa , Helsinki. Tietohiisi, Mika Tuomainen

Omatietovaranto. Ajankohtaista. Anna Korpela, Kela Anniina Pylsy, THL

Tiedonsiirto- ja rajapintastandardit

Omakannan omatietovaranto (PHR)

Julkisen rajapinnan testausohje Swaggerin kautta

Yksittäisen tapahtumakategorian hakeminen... 3 Parametrit... 4 Vastausesimerkki... 4 Tapahtumien hakeminen hakukriteerin avulla...

Toimintaympäristön kuvaus. LTC-Otso Myyjän työkalu (POC)

T2V2 Turvallisuushavaintoilmoitussanomakuvaus

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

Trimble Feedback Mobile app ja rajapinnat Kuvaus

Veronumero.fi Tarkastaja rajapinta

Omakannan Omatietovaranto palvelun asiakastestaus

T2V2 Vaaratilanneilmoitussanomakuvaus

Rajapintakuvaus Liikenneluvat

eperusteet julkiset rajapinnat

Kemikaalitieto yhdestä palvelusta

Onecapital Invoicer XML API

Modulaariset tietosisältömäärittelyt Tilannekatsaus

ehoks: tietomalli ja rajapinta

KaTSO. KaTSO FAQ. Solteq Oyj. (järjestelmätoimittaja) Päivitetty Update disclaimer here.

Tuotetietopankin alustanvaihdon muutostöiden luokittelu

Action Request System

Asiakastietoa käsittelevä järjestelmä. Rajapintakäyttötapaukset

Asiakastietoa käsittelevä järjestelmä. Rajapintakäyttötapaukset

PH SIG tietosisältömäärittelyn rooli kansallisessa kehittämisessä

Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje

Koodistoeditorin tavoitteet ja tilannekatsaus

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke

Koodistoeditorin toteutuksen lähtökohtia: KaPA-koodistopalvelu ja REST-rajapinnat

Käsikirjan paperiversiota ei enää ylläpidetä ohjeen päivämäärän jälkeen. Viimeisimmät versiot ohjeista löydät ohjelman Help-ruudulta.

DOORS 7.1 Test Tracking Toolkit

Contents AdsML ympäristö... 2 AdsML Testi ympäristö... 2 AdsML tuotantoympäristö... 2 AdsML käyttöliittymä... 3 Kirjautuminen...

OnniSMS Rajapintakuvaus v1.1

Kansallinen PHR: projektin tilannekatsaus. Konstantin Hyppönen, Kanta-palvelut, Kela ATK-päivät, Lahti

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Liite 7: Asiakastietoa käsittelevä järjestelmä Sosiaalihuollon asiakastiedon arkisto. Rajapintakäyttötapaukset

Kuva: Ilpo Okkonen

Mittaustietojen SAF-aineistokuvaus kaasudatahubiin

Käyttöohje Palvelu löytyy osoitteesta joenmuksut.fi. Päivitetty

Päänäkymä Opiskelijan ohjeet Kurssin suorittaminen Opettajan ohjeet kurssin teko

Sosiaalihuollon asiakastiedon arkiston validointipalvelu

Tämän ohjeen avulla opastetaan käyttäjää aloittamaan PlanWebin käyttö. Lue ohjeet huolellisesti läpi ennen käytön aloittamista.

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke

Suomi.fi-palvelutietovaranto Kaikki oleellinen julkishallinnon palveluista yhdessä paikassa

Mainosankkuri.fi-palvelun käyttöohjeita

OSAAMISENHALLINTA HENKILÖSTÖ. Esimiehen pikaohje

Android ohjelmointi Tunti 5. SQLite, Cursor, Intent ja ADB

Tilaajavastuu.fi. Muutoshistoria. Suomen Tilaajavastuu Oy. Raporttinoutaja Rajapinta yritysten tilaajavastuutietojen tarkistamiseen

TimeEdit opiskelijan ohje TimeEdit-instructions for students from this link

Garmin laitteiden ohjelmistopäivitys

Nippupelipassi. Nippupelipassien rakentaminen

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIMMI-TILAVARAUSOHJELMISTO

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

Kansallinen koodistojen siirtoformaatti

Harjoitustyö: virtuaalikone

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ovid Medline käyttöohjeita (10/2010)

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

DYNAMIC CARE PLANNING (DCP) JA DYNAMIC CARE TEAM MANAGEMENT (DCTM) IHE-PROFIILIT. Konstantin Hyppönen IHE-Finland

NORDEAN WEB SERVICES YHTEYDEN KÄYTTÖÖNOTTO

VIRANOMAISEN PALUUKANAVA WS API. Suomi.fi-viestit julkinen rajapinta

Valinnanvapauspalveluiden rajapinnat, tietotarpeet

REST an idealistic model or a realistic solution?

Esimerkkinä - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.

Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)

Paroc Panel System ArchiCAD-sovellus

Avoin metsätieto - Rajapintapalvelut

Kanta-palvelujen käyttöönotto sosiaalihuollossa

Kanta-palvelujen käyttöönotto sosiaalihuollossa

earkki vaikuttajafoorumi Potilastiedon arkisto Eeva Huotarinen

Kansalaisen sisäänkirjautuminen ja uloskirjautuminen

Sosiaalihuollon asiakastiedon arkisto

Verkkokaupan integraatiot

Liityntäpalvelimen liittäminen tuotantoympäristöön esuomi.fi

Käyttöohje

VIRANOMAISEN PALUUKANAVA WS API. Suomi.fi-viestit julkinen rajapinta

K U U L A L A A K E R I LUOTTAMUKSELLINEN 1(6)

Sanomakuvausten järjestelmäkohtaiset tiedostot

Moodlen lohkot. Lohkojen lisääminen: Lohkojen muokkaaminen: Tampereen yliopisto/tietohallinto 2017 Suvi Junes

HYÖDYNNÄ SUBSCRIPTION-ETUSI

Opiskelijoiden HOPSit

Kasvuseula. Omatietovaranto kommentointikokous, kesäkuu Juha Leppänen VTT 2018

Security server v6 installation requirements

Transkriptio:

Kanta PHR:n CapabilityStatement ja REST-API Eeva Turkka

Omatietovaranto, pääelementit Sovellukset sosiaali- ja terveydenhuollon ammattilaisille Sovellukset kansalaisille FHIR rajapinnat Omatietovarannossa olevat tiedot OAuth 2.0 rajapinnat Sovellusrekisteri Omakanta Pseudonymisointipalvelu Luvituspalvelu (appsien kytkeminen) Tokenit ja luvat Suomi.fi tunnistus Suomi.fi asiointivaltuudet Resurssipalvelin Auktorisointipalvelin 2 kanta.fi/phr

Omatietovarannon dokumentaatio FHIR Implementation guide Auktorisointiopas ja OAuth2.0 Capability statement Liityjien käyttötapaukset (tulossa) 3 [Tekijä]

FHIR-standardin tavat kuvata palvelu PHR:n toiminnot ja tietosisällöt on kuvattu FHIR-standardin keinoin Tietosisällöt on kuvattu implementointioppaaseen profiileina ja niistä on lisäksi esimerkit FHIR-palvelimen rajapinnat ja toiminnallisuudet on kuvattu Capability statement tyyppisenä resurssina Lisäksi OAuth2.0 rajapinnat on kuvattu auktorisointioppaaseen 4 [Tekijä]

Mikä on CapabilityStatement CapabilityStatement dokumentoi joukon toimintoja, jotka kertovat mitä palvelin tekee tai määrittelee halutun toiminnallisuuden Capability statement on FHIR-resurssi kuten mm mittausdatakin

Kanta PHR:n CapabilityStatement CapabilityStatement tyyppinen resurssi, jossa on kuvattu Kanta PHR:n sääntöjä Listaa tuetut toiminnot ja resurssit ja muita asioita, joiden toteuttamiseen on useita vaihtoehtoja standardissa CapabilityStatement pääosin listaa tuetut toiminnot, koska standardi on laaja, ja tukemattomat toiminnot vain jätetään pois Yksittäisten kenttien arvojen tulkinnasta ja arvojoukoista löytyy tarkempaa tietoa standardista: https://www.hl7.org/fhir/capabilitystatement.html 6

Capability statement Simplifierissa Yhteenvedosta näkee silmäyksellä mitä toimintoja on, mutta tarkemmin rajapintoja on tulkittava käyttäen FHIRstandardia ja jsonesitysmuotoa. Simplifierissa on kaksi PHR:n CapabilityStatementtia, joista toinen kuvaa AT:ssa olevia toimintoja ja toinen tuotannossa olevia toimintoja. 7 [Tekijä]

Capability statement Simplifierissa Huom! Simplifierin json-näkymä ei näytä kaikkea tietoa vaan resurssi kannattaa downloadata! Tuotannon Capability statementin suora osoite on https://simplifier.net/finnishphr/capabilitystatement3 8 [Tekijä]

Rest? https://en.wikipedia.org/wiki/representational_state_transfer HTTP-standardin tietty käyttötapa palveluiden toteuttamiseen Tilaton, eli palvelimelle ei ole istuntoa eikä palvelin ylläpidä tietoa edellisistä viesteistä Käyttää HTTP-metodeja toimintoihin: GET, PUT, POST jne Laajalti käytössä, mutta ei itsessään kuvaa tarkasti toimintoja https://www.w3.org/tr/2004/note-ws-arch-20040211/#relwwwrest

10 CapabilityStatementin toteutetut osat

CapabilityStatementin toteutetut osat OAuth2.0! Jokainen tuettu resurssityyppi listattu Hakuehdot joko resurssille tai koko palvelimella 11

Miten CapabilityStatementia hyödynnetään? Kanta PHR:n Simplifierissa oleva CapabilityStatement on tyyppiä requirements eli kuvaa miten palvelin itse toimii Esimerkiksi Sandboxin käyttöliittymä (joka pohjautuu Hapi-projektin FHIR-tester käyttöliittymään) lukee PHR-palvelimen CapabilityStatementista tuetut resurssit ja muodostaa näytölle listan sen pohjalta Eniten CapabilityStatementista on hyötyä (ainakin itselleni kehittäjänä!) tiiviinä yleiskuvana palvelimen toiminnoista 12

Omatietovarannon REST-apin toiminnot

Mitä tallentamisesta on CapabilityStatementissa? Osa CapabilityStatementin kentistä koskee kaikkia toimintoja acceptunknown kertoo että tunnistamattomia tietotyyppejä, resursseja tai extensioineja ei hyväksytä Format kertoo, että palvelimen tukee json-muotoisia resursseja muita muotoja ei ole "acceptunknown": "no", "format": [ "json" ], 14

Mitä tallentamisesta on CapabilityStatementissa? REST-noodin alla löytyy lista resursseista, joita tuetaan Toiminnoista create ja update on tuettu Jokaiselle resurssille on listattu sen toiminnot muista listatuista toiminnoista lisää myöhemmin { "type": "Observation", "interaction": [ { "code": "read" }, { "code": "vread" }, { "code": "update" }, { "code": "create", "documentation": "Conditional create allows only the use of identifier as condition" }, 15

Mitä tallentamisesta on CapabilityStatementissa? Resurssit täytyy luoda ilman id:tä (updatecreate) Resurssille voi antaa luontiehdon: jos tällä identifierilla löytyy jos resurssi, älä tee uutta Päivitystä ei voi tehdä ehdollisesti Viittaukset tarkastetaan ja viittauksia Kanta PHR:n ulkopuolisille palvelimille ei sallita (esimerkiksi mittaustulosten subject kenttä) nämä ovat kenttäkohtaisesti jokaisessa profiilissa vielä "updatecreate": false, "conditionalcreate": true, "conditionalupdate": false, "referencepolicy": [ "literal", "enforced", "local" ], 16

Tallenna-pyyntö POST http://fhirsandbox.kanta.fi/phrresourceserver/basestu3/observation Tallenna verenpainemittaus Kanta PHR:ään? Mittaustulos on Observation-tyypin resurssi Resurssi esitetään json-objektina Tallennus PHR:ään tehdään lähettämällä resurssi PHR:n FHIRpalvelimelle Pyyntö on restin mukaan POST ja varsinainen resurssi jsonina bodyssa Paluusanomassa saa tiedon resurssin id:stä: http://fhirsandbox.kanta.fi/phr- resourceserver/basestu3/observation/435b5586-7f65-439e-9d6d- 9ca2ae07e11f/_history/1 17

Päivitä PUT http://fhirsandbox.kanta.fi/phr- resourceserver/basestu3/observation/435b5586-7f65-439e-9d6d- 9ca2ae07e11f Tämä on uusin versio mittaustuloksesta X Päivitys on kuten tallennus, mutta sen REST-pyyntötyyppi on PUT postin sijaan FHIRin update Osoitteessa on myös päivitettävän resurssin tunniste ja bodyssa kokonaan uusi resurssi, joka korvaa aikaisemman Tunniste ei muutu päivittäessä! Vastauksena päivityksestä palvelu kertoo mikä uusi versio oli Location: http://fhirsandbox.kanta.fi/phr-resourceserver/basestu3/observation/435b5586-7f65-439e-9d6d-9ca2ae07e11f/_history/2 Vastauksen osoitteen osoittama resurssi tekee versiohaun 18

Mitä CapabilityStatement sanoo hauista? Hakuparametrit on listattu resurssikohtaisesti Palvelintasolla toimivia hakuparametreja ei ole CapabilityStatementissa, ja haut onkin aina kohdistettava tiettyyn tyyppiin Tuetut hakuparametrit on listattu CapabilityStatementissa, valitettavasti niiden modifiereita ja kaikkia tarkennoksia ei saa rakenteisesti kuvattua "searchparam": [ { "name": "_id", "definition": "Observation.id", "type": "token", "documentation": "Logical id of this artifact" }, { "name": "_lastupdated", "definition": "Observation.meta.lastUpdated", "type": "date", "documentation": "When the resource version last changed" }, { "name": "_security", "definition": "Observation.meta.security", "type": "token", "documentation": "If the viewing the resource is restricted. The following syntaxes are supported: [parameter]=[code] and [parameter]=[system] [code]." }, { "name": "date", "definition": "Observation.effective[x]", "type": "date", "documentation": "Obtained date/time. If the obtained element is a period, a date that falls in the period." }, 19

Hakuparametrit: Observation-resurssin patient Definition-kentässä kerrotaan mihin resurssin jsonpath-kohtaan parametri kohdistuu, esim. patient kohdistuu subject-kenttään Hakuparametrin tyyppi kertoo millaisia arvoja hakuun voi antaa, tässä hakuparametrin tyyppi on kentässä oleva referenssiviittaus https://www.hl7.org/fhir/search.html#reference { "name": "patient", "definition": "Observation.subject", "type": "reference", "documentation": "The patient that the observation is about" }, 20

Hakuparametrit Muita hakuparametrityyppejä ovat esimerkiksi päivämäärät ja koodit Näiden osalta noudatetaan standardin käytöstä, mutta osin suppeammin esimerkiksi modifierien osalta CapabilityStatementiin ei pysty kuvaamaan kaikkea hakuparametreista, mutta documentation-osassa on kerrottu jos jokin parametri on esimerkiksi pakollinen searchinclude ja searchrevinclude puuttuvat resurssien alta, eli niitä ei tueta. Osa kuvauksesta on kenttien puuttumista CapabilityStatementista, koska kuvaus tehdään listaamalla tuetut vaihtoehdot! 21

Hae GET http://fhirsandbox.kanta.fi/phrresourceserver/basestu3/observation?patient=91db836a-b62a-49af-8e7aa94ed90a41d5 Hae henkilön Y mittaustulokset FHIRin search / search-type eli resurssityyppikohtainen haku Palauttaa tulosjoukon parametreja vastaavia mittaustuloksia Haun tulos palautetaan FHIRin bundlena, jossa on sisällä resurssit CapabilityStatementin interaktio search-type on listattuna muiden interaktioiden tasolla 22

Mitä resurssin lukemisesta on CapabilityStatementissa? Lukemiseen on interaktiot read ja vread Read-toiminto palauttaa aina resurssin uusimman version Vread-toiminnolla, jos jostain syystä on tarve, voi hakea vanhoja versioita Historiasta on myös tieto: "readhistory": true, joka kertoo palauttaako vread vanhoja versioita resurssista "interaction": [ { "code": "read" }, { "code": "vread" }, 23

Lue GET http://fhirsandbox.kanta.fi/phr-resourceserver/basestu3/observation/435b5586-7f65-439e-9d6d-9ca2ae07e11f Anna mittaustulos X Viittaa suoraan resurssiin Fhirin read tai vread Osoite on [base][objektityyppi][id] GET-pyyntö Palauttaa vastauksessa sanoman bodyssa resurssin jsonmuodossa 24

Poista DELETE http://fhirsandbox.kanta.fi/phr- resourceserver/basestu3/observation/fcd8b4c9-a0c0-43d6-9774- 7dd916137fab Poistamisesta on varsin vähän CapabilityStatementissa FHIRin delete Toiminto on kuvattuna interaktiona resursseilla joilla se on tuettu Patient ja Consent -tyyppien resursseja ei voi poistaa Lisäksi ehdollista poistamista ei tueta vaan resurssi on poistettava käyttämällä sen yksilöivää loogista tunnistetta eli id-kentän arvoa "conditionaldelete": "not-supported", 25

Miten luvat ja FHIR-toiminnot liittyvät toisiinsa? Kanta PHR:n FHIR-toimintojen luvitus on toteutettu OAuth2.0 standardilla Luvat ovat resurssityyppikohtaisia, esim. lupa voi olla Observation -resurssiin Koska mittaustuloksilla on omistaja, lupa on aina omistajakohtainen Resurssiin on erikseen lukuoikeus ja kirjoitusoikeus Kirjoitusoikeudella myös päivitetään ja poistetaan 26

Kiitos! Eeva Turkka Software Architect eeva.turkka@citrus.fi @kantapalvelut