Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...

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

Info

Profilen ligger foreløpig på Github her: hn-basis-slot - v0.1.0 (norskhelsenett.github.io) (Plassering er under oppdatering)

...

 

 

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.

Code Block
languagejson
"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.

Code Block
languagejson
"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

Code Block
 <status value="free" />

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

Code Block
languagejson
 "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

Code Block
languagejson
 "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)

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

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

Code Block
languagejson
"start": "2023-12-10T09:00:00Z",

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

Code Block
languagejson
"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

Code Block
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

...