Kalenderelement iCalendar
- kjetill.vassmo.lund
- Levin Løssfelt (Unlicensed)
- Alette N. L. Olrik (Unlicensed)
iCalendar (se http://tools.ietf.org/html/rfc5545) benyttes for å overføre informasjon om timeavtaler. Dette gjelder alle de bruksområdene for timeavtaler
Timevisning
Timebestilling
Avbestilling av avtale
timedialog
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:
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.
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.