FHIR AppointmentResponse

FHIR AppointmentResponse

Innholdsfortegnelse

Beskrivelse

AppointmentResponse brukes når Helsenorge skal sende innbyggerens handling på en time tilbake til kildesystemet. Ressursen følger FHIR‑profilen hn-basis-AppointmentResponse, som bygger på den nasjonale profilen for AppointmentResponse (HL7 Norway):

I dagens løsning brukes AppointmentResponse for å formidle om innbygger bekrefter eller avbestiller en time. Ressursen inneholder en unik identifikator, en logisk referanse til den aktuelle Appointment, en logisk referanse til pasienten, samt deltakerstatus (accepted eller declined). Kildesystemet må motta og prosessere responsen og oppdatere timeavtalen i egen timebok.

Profilen støtter flere felt og utvidelser som kan tas i bruk senere (som forespørsel om nytt tidspunkt, innbyggerkommentar eller ønsket møteform), men disse benyttes ikke i dagens løsning.

I alle felter der koding brukes gjelder følgende krav: Når coding.code settes, skal coding.system alltid angis. Dette følger FHIR‑kravene og sikrer at koden tolkes korrekt av mottakende system

REST-API

  • Metode: PUT AppointmentResponse (innsending av respons)

Ekstern Aktør må registrere FHIR endpunkt som skal brukes i adresseregistret. Det benyttes samme endpunkt som for timeavtalen som svaret gjelder.

FHIR elementer

Attributt

Beskrivelse

Kardinalitet

Attributt

Beskrivelse

Kardinalitet

meta.profile (mandatory)

Angir hvilken profil ressursen følger. Skal settes til http://helsenorge.no/fhir/StructureDefinition/hn-basis-AppointmentResponse.

<meta> <profile value=\"http://helsenorge.no/fhir/StructureDefinition/hn-basis-AppointmentResponse\\"/> </meta>

1..1

identifier (mandatory)

Unik identifikator for AppointmentResponse‑ressursen. Benyttes for sporing og referanse.

FHIR ressursens "id" vs "identifier" - Helsenorge - Confluence (atlassian.net) 

identifier.system: Namespace for identifikatoren. Må settes når en verdi brukes.

identifier.value: Selve identifikatorverdien, typisk UUID.

<identifier> <system value=\"urn:ietf:rfc:3986\"/> <value value=\"urn:uuid:c16f67f7-9804-4a96-8749-dd1efd21e2a7\"/> </identifier>

1..1

appointment (mandatory)

Logisk referanse til Appointment. Profilen bruker kun logiske referanser (identifier‑basert).

<appointment> <identifier> <system value=\"http://www.philips.com/fhir/namingsystem/ris_booking_id\"/> <value value=\"b4b5a359-d3f0-4ec0-b7e9-c4aaeca1dc5a\"/> <assigner> <reference value=\"84467\"/> </assigner> </identifier> </appointment>

1..1

actor (mandatory)

Logisk referanse til pasienten (Patient). Patient er eneste type actor som er aktuell for profilen. (appointment.actor = appointment.participant.actor av type patient). Identifikatoren er fødselsnummer eller d-nummer (andre typer identifikatorer støttes ikke).

<actor> <type value=\"Patient\"/> <identifier> <system value=\"urn:oid:2.16.578.1.12.4.1.4.1\"/> <value value=\"08718340110\"/> </identifier> </actor>

1..1

participantStatus (mandatory)

Status for deltakelse. Implementert: accepted, declined. Profilen støtter flere statuser https://hl7.org/fhir/R4/valueset-participationstatus.html#4.4.1.533, men i første omgangomgang vil kun accepted eller declined kunne benyttes.

<participantStatus value=\"accepted\"/>

"FHIR: Participation status of the participant.

When the status is declined or tentative and if the start/end times are different to the appointment, then these times should be interpreted as a requested time change.

When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty."

1..1

shortNotice: Extension

Ikke i bruk per nå. Kan indikere at pasienten kan møte på kort varsel.

0..1

comment

Ikke i bruk per nå. Fritekst fra innbygger, f.eks. ønske om endring.

0..1

changeConferenceType: Extension

Ikke i bruk per nå. Ønsket møteform. Verdier fra HL7 virtual service‑kodesett:

0..1

start

Ikke i bruk per nå. Kan brukes ved forespørsel om nytt tidspunkt sammen med participantStatus.

0..1

Når participantStatus er “declined”

Mottakende system kan velge om det handterer appointmentResponse der innbygger setter status til declined.

(Følgende støttes ikke pr. nå)

Hvis innbygger har mulighet til å kansellere sin egen deltakelse i timen og mottakende system støtter slik kanselering, skal mottakende system svare med HTTP 200 OK eller HTTP 409+OperationOutcome hvis systemet ikke støtter innbyggers kanselering av deltakelsen.

Hvis deltakelse i timen er kansellert for innbygger vil response være som følger.

HTTP/1.1 200 OK Content-Type: application/fhir+json

I det tilfelle som mottakende system, som støtter kanselering av deltakelse, ikke kan akseptere kanselering må mottakende system sende til bake HTTP 409 + OperationOutcome (med standardtekst).

HTTP/1.1 409 Conflict Content-Type: application/fhir+xml <?xml version="1.0" encoding="UTF-8"?> <OperationOutcome xmlns="http://hl7.org/fhir"> <issue> <severity value="error"/> <code value="conflict"/> <details> <text value="Deltakelse i timen kan ikke avslås fordi gjeldende tilstand for timen ikke tillater denne handlingen."/> </details> </issue> </OperationOutcome>
HTTP/1.1 409 Conflict Content-Type: application/fhir+json { "resourceType": "OperationOutcome", "issue": [ { "severity": "error", "code": "conflict", "details": { "text": "Deltakelse i timen kan ikke avslås fordi gjeldende tilstand for timen ikke tillater denne handlingen." } } ] }

Eksempelmelding

Innbygger bekrefter timen og status (participantStatus) på deltakelsen settes til ‘accepted’

<AppointmentResponse xmlns=\"http://hl7.org/fhir\"> <meta> <profile value=\"http://helsenorge.no/fhir/StructureDefinition/hn-basis-AppointmentResponse\"/> </meta> <identifier> <system value=\"urn:ietf:rfc:3986\"/> <value value=\"urn:uuid:c16f67f7-9804-4a96-8749-dd1efd21e2a7\"/> </identifier> <appointment> <identifier> <system value=\"http://www.philips.com/fhir/namingsystem/ris_booking_id\"/> <value value=\"b4b5a359-d3f0-4ec0-b7e9-c4aaeca1dc5a\"/> <assigner> <reference value=\"84467\"/> </assigner> </identifier> </appointment> <actor> <type value=\"Patient\"/> <identifier> <system value=\"urn:oid:2.16.578.1.12.4.1.4.1\"/> <value value=\"08718340110\"/> </identifier> </actor> <participantStatus value=\"accepted\"/> </AppointmentResponse>