Haku

Haun HTTP pyyntö (request)

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

Ajanvarausten viimeisimmät versiot haetaan search-interaktiolla: POST: [base]/Appointment/_search

Esim. POST http://example.org/baseR4/Appointment/_search

Ajanvarausten kaikki versiot haetaan history-interaktiolla: POST: [base]/Appointment/_history

Esim. POST http://example.org/baseR4/Appointment/_history

Pyynnön URL:in muoto noudattaa FHIR määrittelyjä (Style Guide). Eri ympäristöjen käytettävät juuret ilmoitetaan erikseen eikä niitä julkisteta tässä implementointioppaassa.

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

Haun HTTP-pyynnön header-osuus noudattaa Kanta-palveluiden yhteisiä Kanta FHIR HTTP header ja Kanta JSON Web Token määrittelyitä ja näissä kuvattuja tietoja ja tietojen pakollisuuksia.

HTTP pyynnön body

Ajanvarausten haussa käytettävät hakuparametrit välitetään HTTP pyynnön body-osuudessa.

Ajanvarausten haussa on käytettävisssä seuraavat hakuparametrit.

FHIR-hakuparametri Hakuparametrin tyyppi Pakollisuus FHIR-resurssi ja elementti
identifier token Vapaaehtoinen 0..1 appointment.identifier - Ajanvarauksen tunniste
patient:identifier reference Pakollinen 1..1 patient.identifier - Asiakkaan tunniste
service-organiser token Vapaaehtoinen 0..1 Provenance.agent.who.identifier - Varatun palvelun palvelunjärjestäjä
appointment-service-provider token Vapaaehtoinen 0..1 organization.partOf - Varatun palvelun palveluntuottaja
appointment-service-provider-unit token Vapaaehtoinen 0..1 organization.identifier - Varatun palvelun toteuttava yksikkö
producing-service-provider-unit token Vapaaehtoinen 0..1 Provenance.agent.who.identifier - Resurssin tallentajan palveluyksikkö. Jos hakuparametri annetaan, annettava aina myös Palveluntuottaja-hakuparametri 'appointment-service-provider' (asiakkaan tunnisteen lisäksi).
date date Vapaaehtoinen 0..2 appointment.start - Ajanvarauksen alkuaika **
recorded date Vapaaehtoinen 0..2 provenance.recorded - Ajanvaraustoimenpiteen tekoaika eli ajankohta, jolloin ajanvaraus on suoritettu (Appointment-resurssin luontiaika) **
register-type-code token Vapaaehtoinen 0..1 provenance.extension.RegisterType - Potilasrekisteritunnus
service-event token Vapaaehtoinen 0..1 provenance.extension.ServiceEvent - Palvelutapahtumatunnus
include-own token Vapaaehtoinen 0..1 Palautetaanko hakutuloksessa tiedot kyselyn tekijän rekisteristä vai rajataanko ne pois (oletuksena true)

** Sallitut ajan muodot:

  • Päivätarkkuus: yyyy-mm-dd
  • Sekuntitarkkuus: yyyy-mm-ddThh:mm:ss tai yyyy-mm-ddThh:mm:ss[Z|(+|-)hh:mm]

Esimerkkejä hakuparametrien käytöstä

Yhteen hakuun voidaan liittää useita kyselyparametreja, alla esimerkkejä hakulauseista.

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}

Esim. patient:identifier=urn:oid:1.2.246.21|300111A9001

Yksittäisen ajanvarauksen haku potilaan ja ajanvarauksen tunnisteen perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&identifier={system|value}

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen ja palvelunjärjestäjän perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&service-organiser={system|value}

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen ja palveluntuottajan perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&appointment-service-provider={system|value}

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen ja palvelun toteuttavan yksikön perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&appointment-service-provider-unit={system|value}

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen, palveluntuottajan ja resurssin tallentajan palveluyksikön perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&appointment-service-provider-unit={system|value}&producing-service-provider-unit={system|value}

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen ja ajanvarauksen alkamisajan perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&date=&date=

Esim. patient:identifier=urn:oid:1.2.246.21|300111A9001&date=ge2024-01-01&date=le2024-12-31

Haku palauttaa ne tiedot, joissa Appointment.start on aikarajauksen sisällä.

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen ja ajanvarauksen luontiajan perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&provenance:recorded=&provenance:recorded=

Esim. patient:identifier=urn:oid:1.2.246.21|300111A9001&provenance:recorded=ge2024-01-01

Haku palauttaa ne tiedot, joissa Provenance.recorded on annetun aikarajauksen mukainen.

Esim. patient:identifier=urn:oid:1.2.246.21|300111A9001&provenance:recorded=ge2024-01-01&provenance:recorded=le2024-01-07

Haku palauttaa ne tiedot, joissa Provenance.recorded on aikarajauksen sisällä

Potilaan kaikkien ajanvarausten haku potilaan tunnisteen ja potilasrekisteritunnuksen perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&register-type-code={system|code}

Potilaan ajanvarausten haku palvelutapahtumatunnuksen perusteella:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&service-event={system|value}

Potilaan ajanvarausten haku luovutushaku, hakua ei kohdisteta hakijan omaan rekisteriin:

POST [base]/Appointment/_search

Content-Type: application/x-www-form-urlencoded

patient:identifier={system|value}&include-own=boolean

Esim. patient:identifier=urn:oid:1.2.246.21|300111A9001&include-own=false

Miten aikarajaus toimii

Tuetut prefixit:

  • eq
  • gt
  • lt
  • ge
  • le

Esim. Hakuehto, jossa potilaan palautettavat ajanvaraukset rajataan ajanvarauksen alkuajan perusteella:

patient:identifier=urn:oid:1.2.246.21|300111A9001&date=ge2023-10-30&date=lt2023-11-02

Päivämäärä täyttää hakuehdon Päivämäärä ei täytä hakuehtoa
2023-10-31T01:00:12.000 2023-10-29T01:00:00.00
2023-10-30T00:00:00.000 2023-11-02T00:00:00.00 (Ei sisälly tulosjoukkoon, koska lt-prefix haussa)

patient:identifier=urn:oid:1.2.246.21|300111A9001&date=eq2023-10-30

Päivämäärä täyttää hakuehdon Päivämäärä ei täytä hakuehtoa
2023-10-30T10:30:00.000 2023-10-29T20:00:00.00
2023-10-30T15:00:00.000 2023-10-31T07:00:00.00