iCalendar (se http://tools.ietf.org/html/rfc5545) benyttes for å overføre informasjon om timeavtaler. Dette gjelder alle de bruksområdene for timeavtaler

Informasjon om timer vil kommuniseres ved bruk av xCal standarden som er XML representasjon av iCalendar kalenderinformasjon, for generell beskrivelse av standarden se http://tools.ietf.org/html/rfc6321.

iCal-standarden er utvidet med noen spesifikke attributter for Helsenorge, skjema er tilgjengelig sammen med andre skjema på https://git.sarepta.ehelse.no/

  • xCal versjon 2.0 skal benyttes

  • Obligatorisk informasjon for xcal:vcalendar

    • Versjon av iCalendar standarden som benyttes (xcal:version)

    • Produktidentifikasjon av det produktet som genererte iCalendar objektet (xcal:prodid)

  • Obligatorisk informasjon for xcal:vevent (gjelder pr. timeavtale)

    • Starttidspunkt for time (xcal:dtstart)

    • Sluttidspunkt for time (xcal:dtend)

    • Id for time på formatet UUID (xcal:uid)

    • HER-id for kommunikasjonspart som timen tilhører (xcal:contact). Denne er nødvendig for å vite mottager for operasjoner som er tilgjengelig på en timeavtale, slik som avbestilling for en mottatt avtale.

  • Valgfri informasjon som kan benyttes i xcal:vevent

    • Id for relatert timeavtale (xcal:related-to), skal oppgis dersom denne id-en eksisterer. Denne benyttes i to tilfeller:

      • Ved timebestilling i timebok henter Helsenorge ledige tidspunkt (slot) fra timebok og sender en forespørsel om en av disse. Timeavtalen opprettes i timebok. related-to skal ha verdien til sloten som Helsenorge sendte bestilling på, og uid settes til id til timeavtalen som ble bekreftet.

      • Dersom det gjøres endringer på timeavtaler, der det opprettes en ny instans av timeavtalen skal related-to peke på opprinnelig avtale. Dette gjør det mulig for Helsenorge å identifisere avtalen som endret.

    • Categories (xcal:categories). Benyttes for å angi timetype, se eget avsnitt kategorisering av avtaler. 

    • Emne (xcal:summary). Benyttes for å angi oppsummering av avtale. For hjemmebaserte tjenester navn på tjenesten som utføres, f.eks. «Praktisk Bistand» eller «Hjemmesykepleie»

    • Beskrivelse (xcal:description): Angir fritekstinformasjon om avtalen

    • Regelmessighet. Gjentagelse brukt ved planlagte besøk og eventuelle unntak fra gjentagelse, bruk av Rrule element. Støttes kun for hjemmebesøk

    • Sted (xcal:location). Angivelse av sted avtalen finner sted.

    • Status (xcal:status). Angivelse av status for avtalen

    • Avlysningsårsak (xcal:x-cancellation-reason). Angir hvorfor en avtale har status avlyst

    • Attendee (xcal:attendee) Angivelse av deltagere i avtalen, benyttes blant annet for ansatte som utfører besøk

    • Organizer (xcal:organizer) Angivelse av hvem som utfører avtalen, benyttes for organisasjon som utfører besøk

    • Forventet varighet (xcal:x-expected-duration) Angivelse av forventet varighet for besøk som inngår i en tidsgruppe. Benyttes kun for hjemmebesøk, se egen beskrivelse for bruk.

    • Tidspunkt avtalen tilgjengeliggjøres (xcal:x-available-at) Angivelse av tidspunkt avtalen tilgjengeliggjøres eller gjøres valgbar for innbygger. Benyttes ved visning av ledige tidspunkt for timebestilling, ikke relevant for annen bruk.

XML eksempel på iCalendar med svar fra fastlegen vedørende bekreftelse av reservasjon av en time:

<xcal:vcalendar>
	<xcal:properties>
		<xcal:prodid>
			<xcal:text>System NN</xcal:text>
		</xcal:prodid>
		<xcal:version>
			<xcal:text>2.0</xcal:text>
		</xcal:version>	
	</xcal:properties>
	<xcal:components>
		<xcal:vevent>
			<xcal:properties>
				<xcal:dtstart>
					<xcal:date-time>2012-02-13T09:15:00</xcal:date-time>
				</xcal:dtstart>
				<xcal:dtend>
					<xcal:date-time>2012-02-13T09:30:00</xcal:date-time>
				</xcal:dtend>
				<xcal:summary>
					<xcal:text>Konsultasjon med lege NN</xcal:text>
				</xcal:summary>
				<xcal:description>
					<xcal:text>Din time er bekreftet. Du får SMS påminnelse før 	konsultasjonen. Mvh. Legekontor NN.</xcal:text>
				</xcal:description>
				<xcal:uid>
					<xcal:text>012d1e50-760e-11e2-bcfd-0800200c9a66</xcal:text>
				</xcal:uid>	
				<xcal:contact>
					<xcal:text>91095 </xcal:text>
				</xcal:contact>
				<xcal:related-to>
					<xcal:uri>651b1341-26ca-11e4-8c21-0800200c9a66</xcal:uri>
				</xcal:related-to>	
			</xcal:properties>
			<xcal:components/>
		</xcal:vevent>
	</xcal:components>
</xcal:vcalendar>

Skjemaet definerer ikke makslengder eller innhold i felter. For Digital dialog med innbygger er det innført begrensninger i brukergrensesnitt for feltlengder og ved lagring av data. Begrensninger er vist i tabellen under, dersom det sendes innhold lenger enn dette vil det trunkeres ved mottak.

Felt

Feltlengde

Kommentar

Emne

192

iCal Summary

Beskrivelse

255

iCal Description

Sted

255

iCal Location

For å kunne angi referanse til intern henvisningsid i meldingen mellom helsenorge.no og spesialisthelsetjenesten er det lagt til et egendefinert element «x-referral-id» i xCal for dette.

Element «x-referral-id» er definert i en egen xsd (iCalendar-DigitalDialogSpesialist-extensions.xsd) som må inkluderes fra iCalendar.xsd. Denne metoden for å legge til egendefinerte elementer er i henhold til slik det er beskrevet i selve xCal/iCalendar standarden.

For å kunne bruke element «x-referral-id» i XML-meldinger må exstensions-skjemaet iCalendar-DigitalDialogSpesialist-extensions.xsd være inkludert fra iCalendar.xsd, og iCalendar-DigitalDialogSpesialist-extensions.xsd må være tilgjengelig.

XML eksempel på iCalendar med informasjon om en time som har henvisning:

<xcal:vcalendar>
	<xcal:properties>
		<xcal:prodid>
			<xcal:text>System NN</xcal:text>
		</xcal:prodid>
		<xcal:version>
			<xcal:text>2.0</xcal:text>
		</xcal:version>	
	</xcal:properties>
	<xcal:components>
		<xcal:vevent>
			<xcal:properties>
				<xcal:dtstart>
					<xcal:date-time>2015-08-13T09:00:00</xcal:date-time>
				</xcal:dtstart>
				<xcal:dtend>
					<xcal:date-time>2015-08-13T10:30:00</xcal:date-time>
				</xcal:dtend>
				<xcal:summary>
					<xcal:text>Kontrolltime</xcal:text>
				</xcal:summary>
				<xcal:uid>
					<xcal:text>abc123</xcal:text>
				</xcal:uid>	
				<xcal:x-referral-id>
					<xcal:text>xyz789</xcal:text>
				</xcal:x-referral-id >	
			</xcal:properties>
			<xcal:components/>
		</xcal:vevent>
	</xcal:components>
</xcal:vcalendar>

EPJ-systemet kan kategorisere avtaler for å angi mer detaljert type avtale. For dette er det etablert et kodeverk "Timetype Innbyggerportal" med id 7617.

Elementet «categories» i iCalendar skal brukes til å angi timetype, dersom det ikke behøves eller er angitt noen spesifikk timetype skal elementet «categories» ikke brukes. Kodeverket som benyttes angis ikke i Categories.

Det er kun støtte for en (1) timetype. Dette betyr for eksempel at det ikke støttes å sende hastetimer på video. Her vil det innføres et skille mellom møteform (video, telefon, fysisk) og timetype (konsultasjon, hastetime, gruppetime osv), dette skillet kommer i oppdatert timetjeneste som er under utvikling.

Følgende verdier av timetype er tatt i bruk:

  • "Ordinær". Ordinær time, ved fravær av timetype benyttes denne som default - (brukes ved bestilling, timevisning og varsling).

  • "Hastetime". Benyttes for hastetimer - (brukes kun ved timebestilling)

  • "Video". Avtalen er en videotime - (brukes ved bestilling, timevisning og varsling)

  • “Telefon”: Avtalen gjennomføres på telefon - (brukes ved bestilling, timevisning og varsling)

  • "Tidsvindu". Benyttes for hjemmebesøk - (brukes kun ved timevisning)

  • "Gruppetime". Avtaler som inneholder flere pasienter

Alle under, - brukes ved bestilling, timevisning og varsling:

  • "Vaksine". Time for vaksinering, Kan gi eget varsel og visning til innbygger

  • "Lab".  Time på lab, Kan gi eget varsel og visning til innbygger

  • "Koronatest". Kan gi eget varsel for time for koronatest, innført for pandemien

  • "Koronavaksine". Kan gi eget varsel for time for koronavaksine, innført for pandemien

Et eksempel på angivelse av en hastetime er vist under.

<xcal:categories>
	<xcal:text>Hastetime</xcal:text>
</xcal:categories> 

EPJ-systemet kan angi om en planlagt avtale er et tidsvindu når informasjon om planlagte avtaler sendes til helsenorge.no. Med tidsvindu menes en avtale der start og stopp indikerer en forventet periode der avtalen inntreffer, uten at avtalen forventes å vare hele perioden. Et eksempel på et tidsvindu er en avtale som inntreffer en gang mellom 10:00 og 12:00 og forventes å vare i 30 minutter.

Timene vil vises ulikt for innbygger på helsenorge.no for å tydeliggjøre dette.

Dersom timen er et tidsvindu kan også forventet varighet på avtalen angis. For standard avtaler kan start og stopp eller start og duration angis, det er ikke mulig å oppgi start, stopp og duration. Det er derfor lagt til en custom extension for å støtte dette, x-expected duration.

Merk: Inntil 31.10.2023 var eksempelet for duration feil i henhold til Iso spesifikasjonen. Tidligere var det angitt “P30M” for å angi 30 minutter, riktig er “PT30M”

Angivelse av et tidsvindu med en avtale med antatt varighet på 30 min er vist under:

<xcal:categories>
	<xcal:text>Tidsvindu</xcal:text>
</xcal:categories>
<xcal:x-expected-duration>
	<xcal:duration>PT30M</xcal:duration>
</xcal:x-expected-duration> 

Timeboken kan angi tidspunktet for når avtalen blir tilgjengelig for bestilling. Timen gjøres først valgbar for innbygger når dagens tidspunkt er likt eller overstiger tidspunktet angitt. Før dette tidspunktet vises avtalen som ikke bestillbar.

Elementet er en utvidelse av iCalandar standarden, XML eksempel er vist under.

<xcal:x-available-at>
   <xcal:date-time>2018-07-25T08:00:00</xcal:date-time>
</xcal:x-available-at>

Elementet skal ikke benyttes sammen med timer som ikke kan bestilles på nett. Det vil si timer som har kategori="Must-call" skal ikke ha dette feltet angitt, og helsenorge.no vil overse elementet i dette tilfellet.

Ved henting av ledige timer kan timeboken angi at en time ikke kan bestilles elektronisk. Elementet «categories» i iCalendar skal brukes til å angi ikke bestillbar time. Følgende verdi skal benyttes for dette.

  • "MustCall". Benyttes for å vise at en time ikke er tilgjengelig for elektronisk bestilling og innbygger må kontakte behandler på annen måte.

Denne verdien er bare relevant ved henting av ledige timer, ved overføring av bekreftede timer skal denne ikke benyttes.

Kategorien "MustCall" som angir en time som ikke kan bookes på nett kan kombineres med andre timetyper. I tillegg kan noen timetype kombineres med tidspunkt for tilgjengeliggjøring. Tabellen under viser lovlige kombinasjoner og funksjonell betydning.

Kombinasjonene benyttes kun ved henting av ledige timer, dersom en time allerede er bekreftet skal MustCall og available-at ikke benyttes.

Timetype

Bestillbar

available-at

Betydning

(Ingen)

(ingen)

Vanlig konsultasjon, timetype ikke angitt

(Ingen)

Tidspunkt

Vanlig konsultasjon, tilgjengelig for booking etter angitt tidspunkt

(Ingen)

MustCall

N/A

Vanlig konsultasjon som ikke kan bookes på nett

Hastetime

(ingen)

Hastetime

Hastetime

Tidspunkt

Hastetime, tilgjengelig for booking etter angitt tidspunkt

Hastetime

MustCall

N/A

Hastetime som ikke kan bookes på nett

Video

(ingen)

Videotime

Video

Tidspunkt

Videotime, tilgjengelig for booking etter angitt tidspunkt.

Video

MustCall

N/A

Videotime som ikke kan bookes på nett

Tilsvarende som beskrevet i Dialogmelding under Referanse til helsekontakt- Sakstype kan det angis en referanse til helsekontakt i et kalenderelement. Dette behøves for eksempel der en melding har flere kalenderelement, og hvert kalenderobjekt må spesifisere referanse.   

Elementet «categories» i iCalendar benyttes til å angi ID til tjenesten, med prefiks "Tjenesteid:". Angivelse av et en avtale som er et tidsvindu og som leveres av tjenesteId=12 vises under:

<xcal:categories>
	<xcal:text>Tidsvindu</xcal:text>
       <xcal:text>TjenesteId:12</xcal:text>
</xcal:categories>

Standarden for regelmessige avtaler i iCal benyttes for å angi timer som gjentas, dette gjelder typisk for besøk innen Pleie og omsorg. Følgende elementer fra standarden er støttet:

Element

Lovlige verdier

Kommentar

Freq

DAILY, WEEKLY

Regelmessige avtaler støttes for avtaler som inntreffer hver dag, eller ukentlig. Måned og år er ikke implementert. Skjema støtter timer, minutter og sekunder, det er heller ikke implementert

Count

(alle)

Antall ganger avtale gjentas

Interval

(alle)

Intervall mellom hver gjentagelse, f.eks. for å angi at en avtale inntreffer hver andre uke

Byday

(alle)

Angivelse av hvilke ukedager avtale inntreffer på

Elementet «recur» i iCalendar skal brukes når en time er regelmessig. Et eksempel for en avtale som gjentas daglig hver ukedag 103 ganger er vist under.

<xcal:dtstart>
	<xcal:date-time>2017-05-16T09:15:00</xcal:date-time>
</xcal:dtstart>
<xcal:rrule>
   <xcal:recur>
        <xcal:freq>WEEKLY</xcal:freq >
        <xcal:count >103</xcal:count >
        <xcal:byday> MO,TU,WE,TH,FR</xcal:byday >
    </xcal:recur>
</xcal:rrule>

Et eksempel for en avtale som gjentas ukentlig annenhver onsdag uten sluttdato er vist under.

<xcal:dtstart>
	<xcal:date-time>2017-05-16T09:15:00</xcal:date-time>
</xcal:dtstart>
<xcal:rrule>
<xcal:recur>
     <xcal:freq>WEEKLY</xcal:freq >
     <xcal:interval >2</xcal:interval >
     <xcal:byday> WE</xcal:byday >
 </xcal:recur>
</xcal:rrule>

For å angi unntak fra regler om gjentagelse benyttes exdate, et eksempel på dette er vist under med et unntak for 17.5.2017 og 24.5

<xcal:dtstart>
	<xcal:date-time>2017-05-16T09:15:00</xcal:date-time>
</xcal:dtstart>
<xcal:rrule>
<xcal:recur>
     <xcal:freq>WEEKLY</xcal:freq >
     <xcal:byday> WE</xcal:byday >
 </xcal:recur>
</xcal:rrule>
<xcal:exdate>
        <xcal:date-time>2017-05-17T09:15:00</xcal:date-time>
 </xcal:exdate>
<xcal:exdate>
        <xcal:date-time>2017-05-24T09:15:00</xcal:date-time>
</xcal:exdate>

EPJ-systemet kan angi status for en avtale, og helsenorge.no vil benytte stauts for visning.

Elementet «Status» i iCalendar skal brukes for å indikere dette, med lovlige verdier

  • TENTATIVE. Avtale er planlagt men ikke bekreftet

  • CONFIRMED: Avtale er bekreftet

  • CANCELLED: Avtale er avlyst

Et eksempel er vist under:

<xcal:status>
	<xcal:text>TENTATIVE</xcal:text>
</xcal:status> 

Dersom status er avlyst «CANCELLED» kan årsak til avlysning angis i x-cancelllation-reason. Dette er en utvidelse av iCalendar og følgende verdier kan benyttes for årsak til avlysning:

  • Avlyst av tjeneste. Avtalen ble avlyst av organisasjonen som skulle utføre avtalen

  • Avlyst - ikke hjemme: Avtalen ble avlyst fordi ingen var hjemme, «Bomtur»

  • Avlyst av innbygger. Avtalen ble avlyst av innbygger, enten elektronisk eller fysisk

  • Avlyst på vegne av innbygger: Avtalen ble avlyst av person med fullmakt for innbygger

Et eksempel er vist under:

<status>
    <text>CANCELLED</text>
</status>
<x-cancellation-reason>
    <text> Avlyst av innbygger</text>
</x-cancellation-reason>

Dersom en helseaktør har tatt i bruk en videoløsning og videoløsningen krever overføring av en lenke til videoventerom, kan lenken sendes med som et attributt på avtalen.

Dersom det sendes med en videolenke, skal timetype settes til "Videotime" og lenken til venterommet legges inn i feltet url. Videoproduktet som benyttes sendes i extensionfeltet x-videoproduct som er lagt til iCal definisjonen.

URL benyttes for uthopp fra Helsenorge, videoprodukt benyttes for å validere lenke og gi produkveiledning til innbygger.

Et eksempel er vist under:

<url>
<uri>https://videoventerom.video.no</uri>
</url>
<x-videoproduct>
<text>Videoprodukt</text>
</x-videoproduct>
<categories>
<text>Video</text>
</categories>

For å angi hvilken konsultasjonstype en avtale gjelder kan det legget ved et attributt x-servicetype. Dette angir en kodet verdi for hvilken tjeneste som er planlagt. iCal standarden har ingen god representasjon av kodeverk, verdien som angis skal oppgis som <kodeverkId>:<Kodeverdi>. Foreløpig er denne kun benyttet for kodeverk 9505 og for å angi faste konsultasjoner for helsestasjon og skolehelsetjeneste. Utvidelsen er basert på feltet servicetype i FHIR appointment, slik at samme informasjon skal kunne overføres også ved bruk av FHIR.

Et eksempel er vist under for en konsultasjon etter 4 uker på helsestasjon.

<x-servicetype>
<text>9505:4U</text>
</x-servicetype>

Helsenorge benytter denne koden til å hente ytterligere informasjon om timen basert på nasjonale retningslinjer.