FHIR Slot

Under etablering- dokumentasjon ikke ferdig

FHIR Slot er foreslått tatt i bruk for timevalg. Annen bruk er relevant på sikt.

Profilen er basert på R4 Slot - FHIR v4.0.1 (hl7.org)

Gjenerelt om Slot

Slot ressurser brukes til å tilby tidsrom som kan bookes ved hjelp av en avtale. De gir ikke informasjon om tilgjengelige avtaler, bare tiden, og eventuelt hva tiden kan brukes til. Dette er effektivt tidsrom med ledig/opptatt tid. Slotter kan også merkes som opptatt uten å ha tilknyttede avtaler.

En slot kan ha mer enn én avtale tildelt seg. Et planleggingssystem kan tillate flere tildelinger opp til et spesifikt antall plasser. En slot kan merkes som overbooket, noe som indikerer at det er for mange avtaler tildelt den.

I noen situasjoner kan en tjeneste ha et spesifikt sett med slotter reservert for spesifikke formål, som "drop-in" eller en spesifikk organisasjon har en "fast booking" for torsdag morgener. Dette bør representeres ved hjelp av feltet appointmentType med en spesifisert og avtalt verdi.
Sikkerhetstillatelser eller spesifikke forretningsregler på systemet kan håndheve at kun berettigede avtaler blir tildelt dem.

Profil for Slot

Hvordan feltene benyttes er angitt i figuren og beskrivelse under. For bruk av metadata, id, indentifier og generelt bruk af FHIR på Helsenorge se Bruk av FHIR på Helsenorge - Helsenorge - Confluence (atlassian.net)

Det er også definert invarianter som gjelder for profilen - se egen tabell.

 

 

 

 

 

 

Todo: Legg inn figur 

identifier (mandatory): En identifikator som identifiserer slot uavhengig av ressursens id på en FHIR-server bør hvis mulig være en UUID . Identifier er profilert til å ha kardinalatet 1..1 og det er mandatory å legge til både system og value.

"identifier": [ { "system": "urn:ietf:rfc:3986", "value": "urn:uuid:123e4567-e89b-12d3-a456-426614174000" } ],

meta.profile (mandatory): Meta.profile forteller hvilken profil instans er basert på. Dette er for å forenkle implementering når det er flere profiler som er aktuelle for Helsenorge.

"meta": { "profile": ["http://helsenorge.no/fhir/StructureDefinition/hn-basis-slot"] },

status (mandatory): Status på Sloti henhold til FHIR valueset. http://hl7.org/fhir/R4/valueset-slotstatus.html

<status value="free" />

schedule (mandatory): referense til den aktuelle time boken. Profil støtter både litteral og logisk referanse

serviceCategory (mandatory): En bred kategorisering av tjenesten som skal utføres i den perioden som slot har definert. Valueset hn-appointment-ServiceCategory-code-vs skal brukes for denne kategoriseringen. hn-appointment-ServiceCategory-code-vs - v0.1.0 (norskhelsenett.github.io). I denne profilen er kardinalitet satt til 1..1

 

appointmentType (optional): Type appointment som er ment for slot. Feltet er ikke påkrevd men det er ønskelig at det brukes i instanser som er basert på profilen. Følgende valueset er påkrevd.: hn-appointment-AppointmentType-code-vs - v0.1.0 (norskhelsenett.github.io)

 

start (mandatory): Date/time når slot starter

 

end (mandatory): Date/time når slot avsluttes

Terminology Bindinger

Path

Conformance

ValueSet

Slot.identifier.use

required

IdentifierUse

Slot.serviceCategory

required

ServiceCategory

Slot.serviceType

required

HnScheduleAndSlotTypeVS

Slot.appointmentType

required

HnScheduleAndSlotTypeVS

Slot.status

required

SlotStatus

Invarianter (Regler)

Id

Grade

Path(s)

Details

dom-2

error

Slot

If the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()

dom-3

error

Slot

If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()

dom-4

error

Slot

If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()

dom-5

error

Slot

If a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()

dom-6

best practice

Slot

A resource should have narrative for robust management
: text.`div`.exists()

ele-1

error

**ALL** elements

All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())

ext-1

error

**ALL** elements

Must have either extensions or value[x], not both
: extension.exists() != value.exists()

inv-4

error

Slot.serviceCategory.coding, Slot.serviceType.coding, Slot.specialty.coding

If code is used in a codable consept the system must be used
: code > '' implies (system > '' )

per-1

error

Slot.identifier.period

If present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)

ref-1

error

Slot.identifier.assigner, Slot.schedule

SHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))

 

Søkeparameter

Søkeparametere vil utvides for å støtte representasjon men det er ikke lagt inn i vedlagt er liste. Listen viser hvilken søk er definert. Se Search - FHIR v4.0.1 (hl7.org) og Search - FHIR v4.0.1 (hl7.org)

Name

Type

Description

Expression

appointment-type

token

The style of appointment or patient that may be booked in the slot (not service type)

Slot.appointmentType

identifier

token

A Slot Identifier

Slot.identifier

schedule

reference

The Schedule Resource that we are seeking a slot within

Slot.schedule
(Schedule)

service-category

token

A broad categorization of the service that is to be performed during this appointment

Slot.serviceCategory

service-type

token

The type of appointments that can be booked into the slot

Slot.serviceType

specialty

token

The specialty of a practitioner that would be required to perform the service requested in this appointment

Slot.specialty

start

date

Appointment date/time.

Slot.start

status

token

The free/busy status of the appointment

Slot.status

Mapping til og delvis fra iCal

  • BEGIN:VCALENDAR og END:VCALENDAR: Disse taggene indikerer starten og slutten på kalenderdataene.

  • VERSION:2.0: Angir hvilken versjon av iCal som brukes.

  • PRODID: Identifiserer produktet som opprettet iCal-dataene.

  • BEGIN:VEVENT og END:VEVENT: Omslutter en individuell kalenderhendelse.

  • UID: En unik identifikator for hendelsen. I dette tilfellet brukes UUID for FHIR Slot og organisasjons part av identifier.system

  • DTSTAMP: Dato/tidsstempel for når iCal-dataene ble opprettet.

  • DTSTART og DTEND: Start- og sluttidspunkt for hendelsen i UTC.

  • SUMMARY: En kort oppsummering eller tittel på hendelsen.

  • DESCRIPTION: En detaljert beskrivelse av hendelsen.

  • CATEGORIES: Kategorier eller merkelapper for hendelsen.

  • LOCATION: En referanse til den tilknyttede timeplanen (fra FHIR Slot-ressursen).

Denne representasjonen er en grunnleggende oversettelse av FHIR Slot til en iCal-hendelse. Ytterligere iCal-egenskaper kan brukes til å representere flere detaljer etter behov. Det er også viktig å merke seg at iCal primært er et format for kalenderføring og planlegging og kanskje ikke kan fullt ut representere alle detaljer og nyanser i en FHIR Slot-ressurs.

Å bruke LOCATION-feltet i iCalendar (iCal)-formatet for å referere til den tilknyttede timeplanen (som angitt ved Schedule/example-schedule-uuid i vårt eksempel) er litt uvanlig. Vanligvis er LOCATION-feltet i en iCal-hendelse ment å representere den fysiske eller virtuelle plasseringen der hendelsen finner sted, som en adresse eller en videokonferanselenke.

Men i sammenhengen med å konvertere en FHIR Slot-ressurs til iCal-format, står vi overfor en utfordring: iCal har ikke et direkte ekvivalent for alle konseptene og feltene som finnes i FHIR. FHIRs Slot-ressurs inkluderer en referanse til en Schedule-ressurs, som er kritisk informasjon for å forstå konteksten til sloten. Siden iCal mangler et dedikert felt for denne typen referanse, kan LOCATION-feltet omformuleres for å formidle denne informasjonen.

Denne omformuleringen er i bunn og grunn en nødløsning for å inkludere viktig informasjon fra FHIR-ressursen i iCal-formatet, som er mer begrenset i sin evne til å beskrive komplekse planleggingsscenarioer. Ved implementering er det viktig å ha en klar avtale slik bruk av LOCATION.

I tilfelle schedule er logisk referanse brukes X-SCHEDULE-REFERENCE: [slot.schedule.system]|[slot.schedule.value]

Eksempel: