Haku

Auktorisointi

Hyvinvointisovellusten rajapinnassa potilastietoihin käytetään OAuth 2.0 auktorisointia. Auktorisointi on kuvattu Kanta-auktorisointioppaassa.

Haun HTTP pyyntö (request)

Haku välitetään palvelulle HTTP POST-pyyntönä (request).

Pyynnön URL:in muoto noudattaa FHIR määrittelyjä (Style Guide). Eri ympäristöissä käytettävien URL:ien juuret ilmoitetaan erikseen eikä niitä julkisteta tässä implementointioppaassa. Implementointioppaan esimerkeissä URL:in juureen viitataan merkinnällä [base].

URL:in juuren lisäksi pyynnöissä tarvitaan palvelun API-osoitetta, joka on /api/v2/DocumentReference/_search. Tähän viitataan implementointioppaan esimerkeissä merkinnällä [api].

Hakuparametreja ei saa lisätä pyynnön URLiin. Perusteena on, että URLin osana hakuparametrien arvot voivat jäädä esimerkiksi verkkolaitteiden lokitietoihin.

HTTP pyynnön header

HTTP-pyynnön header-tiedot on kuvattu Kanta-palvelujen yhteisessä FHIR- ja REST-soveltamisoppaassa sivulla Kanta HTTP header-tiedot FHIR-rajapinnassa.

Kannattaa kuitenkin huomioida erityisesti headerin kenttä X-Request-Id, jonka arvo on oltava yksilöllinen jokaiselle http-pyynnölle.

Pyynnön HTTP header esimerkki

POST [base][api] HTTP/1.1 
Accept: application/fhir+json;charset=UTF-8
Authorization: Bearer eyJraWQiOiJyc2ExIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJhMTcxYjFmNC04ZDkwLT...
X-Request-Id: 1.2.246.10.1.20241208102307.93.2023.11023072024880604629
Content-Type: application/x-www-form-urlencoded

HTTP pyynnön body

Haussa käytettävät hakuparametrit välitetään HTTP pyynnön body-osuudessa. Parametrien kuvaus: search.html.

  1. Parametrien toistuvuus:
  • AND toistetaan koko parametria, parametrit erotetaan &-merkillä, esim. xxxx=103&xxxx=104 (103 AND 104)
  • OR toistetaan parametrin arvoja, parametrit erotetaan pilkulla esim. xxxx=103,104 (103 OR 104)
  • Seuraavien taulukoiden toistuvuus-sarakkeessa on kuvattu parametrikohtaisesti, onko parametria mahdollista toistaa, ja kumpi toistuvuustapa on käytössä.
  1. Aika-parametrit:
  • Sallitut aikamuodot päivän tarkkuus (2013-01-14) ja sekunnin tarkkuus (2013-01-14T10:00:00+02:00) FHIR-formaatin yyyy-mm-ddThh:mm:ss+zz:zz mukaisesti tai ilman aikavyöhykettä. Ilman aikavyöhykettä annettu arvo käsitellään Helsingin aikavyöhykkeenä.
  • Aika-parametrissa toistumatyyppi on AND, jolloin kyseessä on aikaväli.
  • Käytössä prefiksit le, lt, ge, gt: aikavälin alarajalla tulee olla ge tai gt ja ylärajalla le tai lt, myös silloin kun annetaan vain ala- tai yläraja.

Asiakirjahaku

Palvelutapahtuma- ja hoitoasiakirjojen haussa on käytettävisssä seuraavassa taulukossa kuvatut hakuparametrit.
Taulukossa Sallitut hakuparametriyhdistelmät (tämän sivun lopussa) on kuvattu esimerkkejä parametrien käytöstä.

FHIR-hakuparametri Hakuparametrin tyyppi Pakollisuus Toistuvuus Kuvaus
patient:identifier Reference Pakollinen 1..1 Potilaan virallinen henkilötunnus. Sekä system että code on annettava:
patient:identifier=urn:oid:{system|code}.
(system = virallisen henkilötunnuksen OID-juuri, '1.2.246.21', code = henkilötunnus)
effective-time Date/DateTime Vapaaehtoinen 0..2, eli ala-yläraja; AND Asiakirjan luontiaika.
Huom. effective-time ja period -hakuparametreja ei saa käyttää samassa haussa.
period Date/DateTime Vapaaehtoinen 0..2, AND Palvelutapahtuman ajankohta.
Huom. effective-time ja period -hakuparametreja ei saa käyttää samassa haussa.
category Token Vapaaehtoinen 0..n,
n = koodistosta käytettävissä olevien näkymäkoodien lukumäärä;
OR
Asiakirjan näkymäkoodi, ValueSet fihrp-vs-documentreferencecategory. Käytössä Kansallisen koodistopalvelun koodiston AR/YDIN - Näkymät (1.2.246.537.6.12.2002) mukaiset arvot pois lukien koostenäkymien koodit.
Ks. sivu ValueSet.
type Token Pakollinen 1..1 Haettavan sisällön tyyppi, ValueSet fihrp-vs-searchtype.
Palvelutapahtuma- ja hoitoasiakirjojen haussa arvo 1, Palvelutapahtuma- ja hoitoasiakirjojen haku.
Ks. sivu ValueSet.
author:identifier Reference Vapaaehtoinen 0..1 Asiakirjan laatineen organisaation OID-tunniste.
Organisaation tunnisteena käytetään Kansallisen koodistopalvelun organisaatiokoodistojen THL - SOTE-organisaatiorekisteri (1.2.246.537.6.202.2008) ja Valvira - Terveydenhuollon itsenäiset ammatinharjoittajat (1.2.246.537.6.203.2014) mukaisia arvoja.
Annetaan muodossa: author:identifier=urn:oid:{code}.
(code = OID-tunniste)

Koostehaku

Koostehaussa on käytettävisssä seuraavassa taulukossa kuvatut hakuparametrit.
Taulukossa Sallitut hakuparametriyhdistelmät (tämän sivun lopussa) on kuvattu esimerkkejä parametrien käytöstä.

FHIR-hakuparametri Hakuparametrin tyyppi Pakollisuus Toistuvuus Kuvaus
patient:identifier Reference Pakollinen 1..1 Potilaan virallinen henkilötunnus. Sekä system että code on annettava:
patient:identifier=urn:oid:{system|code}.
(system = virallisen henkilötunnuksen OID-juuri, '1.2.246.21', code = henkilötunnus)
effective-time Date/DateTime Pakollinen 1..2, AND Merkinnän tekoaika.
period Date/DateTime - - Ei käytössä koostehaussa
category Token Pakollinen 1..7, OR Asiakirjan näkymäkoodi, ValueSet fihrp-vs-documentreferencecategory.
Koostehaussa käytössä Kansallisen koodistopalvelun koodistosta AR/YDIN - Näkymät (1.2.246.537.6.12.2002) vain koostenäkymät 333, 334, 335, 336, 341, 342, 343. Ks. sivu ValueSet.
type Token Pakollinen 1..1 Haettavan sisällön tyyppi, ValueSet fihrp-vs-searchtype.
Koostehaussa arvo 2, Keskeisten terveystietojen koosteasiakirjojen haku.
Ks. sivu ValueSet.
author:identifier Reference - - Ei käytössä koostehaussa

Hakua ohjaavat parametrit

Parametri Tyyppi Pakollisuus Toistuvuus Kuvaus
_count _count Vapaaehtoinen 0..1 Parametri kertoo kuinka monta hakutulosta halutaan palautettavaksi yhdellä sivulla. Jos parametria ei ole annettu, käytetään oletussivukokoa. Saa käyttää kaikkien parametriyhdistelmien kanssa.
Hoitoasiakirjojen haku: Oletussivukoko 10 CDA R2 asiakirjaa. Sivukoon yläraja on 25 CDA R2 asiakirjaa.
Koostehaku: Oletussivukoko 50 koostemerkintää. Sivukoon yläraja on 100 koostemerkintää.

Sallitut hakuparametriyhdistelmät

Seuraavassa taulukossa on kuvattu sallitut hakuparametriyhdistelmät. Jokaiseen yhdistelmään voi lisätä optionaalisesti sivukokoa ohjaavan _count-parametrin.
Huom. Alla olevissa esimerkeissä parametrit on rivitetty taulukon luettavuuden parantamiseksi.

Parametriyhdistelmä Kuvaus Esimerkki
patient+type Palautetaan kaikki potilaan palvelutapahtuma- ja hoitoasiakirjat. patient:identifier=urn:oid:1.2.246.21|041222A953N&type=1
patient+type+category Palautetaan potilaan tietyn näkymän asiakirjat. Näkymärajauksen käyttö rajaa haun aina hoitoasiakirjoihin. patient:identifier=urn:oid:1.2.246.21|041222A953N&type=1
&category=urn:oid:1.2.246.537.6.12.2002|102,urn:oid:1.2.246.537.6.12.2002|103
patient+type+period Palautetaan potilaan palvelutapahtuma- ja hoitoasiakirjat palvelutapahtuman ajankohdalla rajaten. patient:identifier=urn:oid:1.2.246.21|041222A953N&type=1
&period=ge2024-02-25&period=le2024-03-06
patient+type+category+period Palautetaan potilaan tietyn näkymän asiakirjat palvelutapahtuman ajankohdalla rajaten. Näkymärajaus rajaa haun hoitoasiakirjoihin.
patient+type+effectiveTime Palautetaan potilaan tiettynä ajankohtana luodut palvelutapahtuma- ja hoitoasiakirjat. patient:identifier=urn:oid:1.2.246.21|041222A953N&type=1
&effective-time=ge2023-02-25&effective-time=le2023-03-06
patient+type+category+effectiveTime Palautetaan potilaan tiettynä ajankohtana luodut tietyn näkymän asiakirjat, esim. "vuoden 2008 YLE-näkymän asiakirjat".
patient+type+author Palautetaan potilaan asiakirjat, joissa author löytyy asiakirjan palvelun tuottajana. patient:identifier=urn:oid:1.2.246.21|041222A953N&type=1
&author:identifier=urn:oid:1.2.246.10.1234567
patient+type+author+effectiveTime Palautetaan potilaan tiettynä ajankohtana luodut asiakirjat, joissa author löytyy asiakirjan palvelun tuottajana.
patient+type+author+period Palautetaan potilaan asiakirjat, joissa author löytyy asiakirjan palvelun tuottajana palvelutapahtuman ajankohdalla rajaten.
patient+type+author+category Palautetaan potilaan tietyn näkymän asiakirjat, joissa author löytyy asiakirjan palvelun tuottajana. Näkymärajaus rajaa haun hoitoasiakirjoihin.
patient+type+author+category+effectiveTime Palautetaan potilaan tietyn näkymän tiettynä ajankohtana luodut asiakirjat, joissa author löytyy asiakirjan palvelun tuottajana. Näkymärajaus rajaa haun hoitoasiakirjoihin.
patient+type+author+category+period Palautetaan potilaan tietyn näkymän asiakirjat, joissa author löytyy asiakirjan palvelun tuottajana palvelutapahtuman ajankohdalla rajaten. Näkymärajaus rajaa haun hoitoasiakirjoihin.
patient+type+category+effectiveTime Koostehaku, palautetaan potilaan koostenäkymän mukaiset koosteet merkinnän tekoajalla rajattuna, esim. "vuoden 2008 diagnoosikooste" patient:identifier=urn:oid:1.2.246.21|041222A953N&type=2
&category=urn:oid:1.2.246.537.6.12.2002|333
&effective-time=ge2023-02-25&effective-time=le2023-03-06