Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

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. Skal 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": "http://example.org/slot-identifiers",
      "value": "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

 "schedule": {
    "reference": "Schedule/example-schedule-uuid"

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

 "serviceCategory": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/service-category",
          "code": "27",
         }
      ]
    }
  ],

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)

"appointmentType": {
    "coding": [
      {
        "system": "http://helsenorge.no/fhir/CodeSystem/Hn-AppointmentTypeProposed-New-Codes-cs",
        "code": "Konsultasjon",
      }
    ]
  },

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

"start": "2023-12-10T09:00:00Z",

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

"end": "2023-12-10T09:30:00Z",

Terminology Bindinger

Path

Conformance

ValueSet

Slot.language

preferred

CommonLanguagesAdditional BindingsPurposeAllLanguagesMax Binding

Slot.identifier.use

required

IdentifierUse

Slot.identifier.type

extensible

Identifier Type Codes

Slot.serviceCategory

required

HnAppointmentServiceCategoryVS

Slot.serviceType

example

ServiceType

Slot.specialty

preferred

PracticeSettingCodeValueSet

Slot.appointmentType

required

HnAppointmentAppointmentTypeVS

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'))

Mapping til og delvis fra iCal

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//example.org//Slot to iCal Converter//EN
BEGIN:VEVENT
UID:[slot.identifier.value]@[slot.identifier.system]
DTSTAMP:20231207T000000Z
DTSTART:[slot.start]
DTEND:[slot.end]
SUMMARY:[slot.speciality]. [slot.appointmentType]
DESCRIPTION:[slot.comment] Slot status: [slot.status]. Not overbooked {basert på [slot.overbooked]}
CATEGORIES:[slot.serviceCategory], [slot.appointmenttype]
LOCATION:[slot.schedule.reference]
END:VEVENT
END:VCALENDAR
  • 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:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//example.org//Slot to iCal Converter//EN
BEGIN:VEVENT
UID:123e4567-e89b-12d3-a456-426614174000@example.org
DTSTAMP:20231207T000000Z
DTSTART:20231210T090000Z
DTEND:20231210T093000Z
SUMMARY:Konsultasjon
DESCRIPTION:Gjenerel time for konsultasjon. Slot status: free. Not overbooked.
CATEGORIES:Specialist Medical, konsultasjon
LOCATION:Schedule/example-schedule-uuid
END:VEVENT
END:VCALENDAR

  • No labels