Haku- ja vastaussanomat
Hakusanoma
Hakusanoma lähetään Kanta-palveluihin HTTP POST-pyyntönä (request). Toimintakykytiedon resurssin uusin versio haetaan search-interaktiolla: POST [base]/[resource-type]/_search. Toimintakykytiedon resurssin kaikki versiot haetaan history-interaktiolla: POST [base]/[resource-type]/_history.
Potilastietovarannon hauissa käytetään search- ja history-interaktioita. History-interaktiota on sallittua käyttää vain haettaessa toimintakykytietoja rekisterinpitäjän omasta rekisteristä. Sosiaalihuollon asiakastietovarannon hauissa käytetään vain search-interaktiota, sillä asiakastietojärjestelmästä on mahdollista hakea vain resurssin viimeisin, voimassa oleva versio. Sosiaalihuollon asiakastietovaranto ei palauta haussa asiakastietojärjestelmälle resurssin aiempia versioita tai mitätöityjä resursseja. Sosiaalihuollossa resurssin aiempi versio tai mitätöity resurssi voidaan hakea Sosiaalihuollon asiakastietovarannon arkistonhoitajan käyttöliittymästä.
Pyynnön URL:in muoto noudattaa FHIR määrittelyjä (Style Guide). Eri ympäristöjen käytettävät juuret ilmoitetaan palveluun liittyville tietojärjestelmätoimittajille erikseen eikä niitä julkisteta tässä soveltamisoppaassa.
Haussa käytettäviä hakuparametreja ei saa lisätä pyynnön URLiin, koska URLin osana hakuparametrien arvot, kuten asiakkaan yksilöivä tunnus, voivat jäädä esimerkiksi verkkolaitteiden lokitietoihin.
HTTP-pyynnön header
Haun HTTP-pyynnön header-osuus noudattaa Kanta-palveluiden yhteisiä Kanta FHIR HTTP header -dokumentin mukaisen HTTP-headerin ja JSON Web Tokenin määrittelyitä. Potilastietovarantoon lähetettävän HTTP-pyynnön (request) tiedot ja niiden pakollisuudet on määritelty dokumentin Kanta FHIR HTTP-header taulukon 2.1 Kanta-palveluiden HTTP pyynnön header kentät sarakkeessa PTA ja Sosiaalihuollon asiakastietovarantoon lähetettävän HTTP-pyynnön sarakkeessa SHA. JSON Web Tokenin tiedot ja niiden pakollisuudet on määritelty dokumentin Kanta JSON Web Token taulukossa 4.1 Kanta-palveluiden JWT Claimit. Potilastietovarantoon lähetettävän JWT:n tiedot ja tietojen pakollisuudet on määritelty sarakkeessa PTA ja Sosiaalihuollon asiakastietovarantoon lähetettävän JWT:n sarakkeessa SHA.
HTTP-pyynnön body
Toimintakykytiedon haussa käytettävät hakuparametrit lähetetään HTTP-pyynnön body-osuudessa. Sosiaalihuollon asiakastietovarannon tukemat hakuparametrit on kuvattu taulukossa 1. Asiakastietovaranto tukee hakuparametreina sekä toimintakykytiedon tietosisällössä olevia tietoja että Provenance-resurssissa olevia toimintakykytiedon metatietoja. Hakuparametrit ovat joko ehdollisesti pakollisia (eP) tai vapaaehtoisia (O). Hakuparametrien FHIR-hakuparametrit ja hakuparametrien tyypit tarkennetaan syksyllä 2025.
Potilastietovarannon tukemat hakuparametrit tarkennetaan syksyllä 2025.
Taulukko 1. Sosiaalihuollon asiakastietovarannossa käytettävät hakuparametrit
Termetan tietorakenteen tieto/Metatieto | FHIR-resurssi ja elementti | Pakollisuus | Huomioita |
---|---|---|---|
Asiakkaan henkilötunnus | patient.identifier | eP (0..1) | Joko henkilötunnus tai tilapäinen yksilöintitunnus on annettava hakuparametrina. Haussa toisen rekisterinpitäjän rekisterissä on annettava henkilötunnus. |
Asiakkaan tilapäinen yksilöintitunnus | patient.identifier | eP (0..1) | Joko henkilötunnus tai tilapäinen yksilöintitunnus on annettava hakuparametrina. |
Toimintakyvyn havainnointipäivämäärä | observation.effective | O (0..2) | Päivämäärän voi antaa aikavälinä. Käytetään hakuparametrina merkinnän toimintakyvystä haussa. |
Toimintakykyhavainnon ICF-aihekoodi | observation.code | O | |
Havainnointimenetelmä | observation.method | O | |
Havaittu toimintakykyrajoite on pysyvä | observation.extension.functionalLimitation | O | Käytetään hakuparametrina merkinnän toimintakyvystä haussa. |
Toimintakykymerkinnän/toimintakykyarvion laatimispäivämäärä | observation.issued | O | |
Laatijan ammattioikeus | practitioner.qualification | O | Merkinnän toimintakyvystä tai toimintakykyarvion laatijan ammattioikeus |
Laatijan palveluyksikkö | organization.identifier | O | Merkinnän toimintakyvystä tai toimintakykyarvion laatijan palveluyksikkö |
Toimintakykyarvion ajanjakso aikavälinä/alkamispäivä | observation.effective.effectivePeriod.start | O (0..1) | Päivämäärän voi antaa aikavälinä. Käytetään hakuparametrina toimintakykyarvion haussa. |
Toimintakykyarvion ajanjakso aikavälinä/päättymispäivä | observation.effective.effectivePeriod.end | O (0..1) | Päivämäärän voi antaa aikavälinä. Käytetään hakuparametrina toimintakykyarvion haussa. |
Yksilöintitunnus | Provenance.target.reference | O (0..1) | Hakuparametrina käytetään pääresurssin yksilöivää tunnistetta observation.id. |
Asiakastietojen rekisterinpitäjän yksilöintitunnus | Provenance.agent.who.organization | eP (0..1) | Pakollinen hakuparametri rekisterinkäyttöoikeuteen perustuvassa haussa. Muissa hauissa optionaalinen hakuparametri. |
Asiakastietojen arkistointiaika | O (0..2) | Sosiaalihuollon asiakastietovarannon resurssille lisäämä metatieto. Päivämäärän voi antaa aikavälinä. | |
Palveluntuottajan yksilöintitunnus | Provenance.agent.who.organization.ServiceProducer | O | |
Palveluyksikkö | Provenance.agent.who.organization.ServiceCenter | O | |
Asiatunnus | Provenance.extension.encompassingEncounterId | O | |
Palveluprosessi | Provenance.extension.serviceProcess | O | |
Palvelutehtävä | Provenance.extension.functionCode | O | |
Sosiaalipalvelu | Provenance.extension.ServiceEvent | O | |
Asiakirjan tarkennettu asiakirjatyyppi | Provenance.specificDocumentType | O |
Esimerkkejä hakuparametrien käytöstä
Yhteen hakuun voidaan liittää useita hakuparametreja, alla esimerkkejä hakulauseista.
Asiakkaan kaikkien merkintöjen toimintakyvystä ja toimintakykyarvioiden haku asiakkaan tunnisteen perusteella
POST [base]/Observation/_search
Content-Type: application/x-www-form-urlencoded
patient:identifier={system|value}
Esim. patient:identifier=urn:oid:1.2.246.21|300111A9001
Yksittäisen merkinnän toimintakyvystä/toimintakykyarvion haku asiakkaan ja resurssin tunnisteen perusteella
POST [base]/Observation/_search
Content-Type: application/x-www-form-urlencoded
patient:identifier={system|value}&identifier={system|value}
Vastaussanoma
Kanta-palvelut palauttaa vastauksena HTTP-vastauksen (response), jossa tiedot palautetaan HTTP header- ja body-osuuksiin jaettuna.
HTTP-vastauksen header
HTTP-vastauksen header-osuus noudattaa Kanta-palvelujen yhteistä Kanta FHIR HTTP header määrittelyä. Potilastietovarannon palauttaman HTTP-vastauksen tiedot ja niiden pakollisuudet on määritelty dokumentin Kanta FHIR HTTP-header taulukon 3.1 Kanta-palveluiden HTTP pyynnön header kentät sarakkeessa PTA ja Sosiaalihuollon asiakastietovarannon palauttaman HTTP-vastauksen sarakkeessa SHA.
HTTP-vastauksen body
Onnistuneessa haussa Kanta-palvelut palauttaa HTTP-statuskoodin 200 OK ja vastauksen HTTP-bodyssa Bundle-resurssi-instanssin, jonka tyyppi (type) on searchset. Palautettujen hakutulosten määrä ilmoitetaan Bundlen total-elementissä. Merkinnän toimintakyvystä ja toimintakykyarvioiden tiedot palautetaan Observation-resursseissa ja niihin liittyvät metatiedot Provenance-resursseissa, jotka ovat Bundlen entry-elementin sisällä.
Alla on esimerkki Bundle resurssi-instanssista, jonka sisällä palautetaan kaksi Observation-resurssia ja niiden metatiedot Provenance-resursseilla.
Esimerkki Kanta-palvelujen palauttamasta vastaussanomasta onnistuneessa haussa
{ "resourceType": "Bundle", "id": "92685db0-1b58-4cea-b1fa-289e8ab58811", "type": "searchset", "total": 2, "entry": [ { "resource": { "resourceType": "Observation", ... } }, { "resource": { "resourceType": "Provenance", ... } }, { "resource": { "resourceType": "Observation", ... } }, { "resource": { "resourceType": "Provenance", ... } } ] }
Jos Kanta-palvelut on suorittanut haun onnistuneesti, mutta haku ei tuota hakutuloksia, Kanta-palvelut palauttaa HTTP-statuskoodin 200 OK ja Bundle-resurssin, jossa hakutulosten määrä (total) on 0. Alla on esimerkki Bundle-resurssista, joka ei palauta hakutuloksia.
Esimerkki Kanta-palvelujen palauttamasta vastaussanomasta onnistuneessa haussa, joka ei tuota hakutuloksia
{ "resourceType": "Bundle", "id": "073ce2b1-4c39-4cae-a479-ca59c8f74fef", "type": "searchset", "total": 0, }
Vastaussanoma virhetilanteessa
Virhetilanteessa Kanta-palvelut palauttaa Bundle-resurssin entry-elementissä HTTP-virhestatuskoodin ja OperationOutcome-resurssin, jolla ilmoitetaan tarkempi virhe.
Kanta-palvelujen palauttaman OperationOutcome-resurssin tiedot on kuvattu sivun Tallennus- ja vastaussanomat luvussa Vastaussanoma virhetilanteessa.