ISiKTerminblock (Slot)

Die Slot-Ressource repräsentiert die Verbindung eines Termins (Appointment) und den dazugehörigen Ressourcen (z.B. HealthcareService, Device, Practitioner). Für diese Ressourcen können separate Kalender (Schedules) verwaltet werden. Der Slot agiert als Verbindungsstück zwischen diesen Ressourcen.

Bestätigungsrelevanz

VerbindlichkeitSHALL

Metadaten

Canonicalhttps://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock
Statusactive
Version5.0.0-rc
Basishttp://hl7.org/fhir/StructureDefinition/Slot

Inhalt

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
serviceCategoryΣ0..*CodeableConcept
serviceTypeΣ0..*CodeableConcept
specialtyΣ0..*CodeableConceptBinding
appointmentTypeΣ0..1CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
statusS Σ1..1codeBinding
startS Σ1..1instant
endS Σ1..1instant
overbooked0..1boolean
comment0..1string
<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="ISiKTerminblock" />
    <url value="https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock" />
    <version value="5.0.0-rc" />
    <name value="ISiKTerminblock" />
    <status value="active" />
    <experimental value="false" />
    <date value="2025-04-09" />
    <publisher value="gematik GmbH" />
    <description value="Die Slot-Ressource repr&#228;sentiert die Verbindung eines Termins (Appointment) und den dazugeh&#246;rigen Ressourcen (z.B. HealthcareService, Device, Practitioner). F&#252;r diese Ressourcen k&#246;nnen separate Kalender (Schedules) verwaltet werden. Der Slot agiert als Verbindungsst&#252;ck zwischen diesen Ressourcen." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Slot" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Slot" />
    <derivation value="constraint" />
    <differential>
        <element id="Slot">
            <path value="Slot" />
            <constraint>
                <key value="ISiK-slot-1" />
                <severity value="error" />
                <human value="Der Endzeitpunkt eines Terminsblocks MUSS nach dem Startzeitpunkt liegen" />
                <expression value="start &lt;= end" />
                <source value="https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock" />
            </constraint>
        </element>
        <element id="Slot.schedule">
            <path value="Slot.schedule" />
            <comment value="Begr&#252;ndung Kardinalit&#228;t und MS: Die Kardinalit&#228;t der reference-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass ein Kalender eindeutig referenziert und identifiziert werden kann." />
            <mustSupport value="true" />
        </element>
        <element id="Slot.schedule.reference">
            <path value="Slot.schedule.reference" />
            <min value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Slot.status">
            <path value="Slot.status" />
            <comment value="Begr&#252;ndung Must Support: Dies ist wichtig, um die Verf&#252;gbarkeit von Terminen zu gew&#228;hrleisten, eine &#220;berbuchung zu verhindern und zudem einem Termin-Requestor die M&#246;glichkeit zu bieten nur freie Termine bei der Terminbuchung anzuzeigen." />
            <mustSupport value="true" />
        </element>
        <element id="Slot.start">
            <path value="Slot.start" />
            <comment value="Begr&#252;ndung Must Support: Dies ist wichtig, um den Zeitpunkt des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren." />
            <mustSupport value="true" />
        </element>
        <element id="Slot.end">
            <path value="Slot.end" />
            <comment value="Begr&#252;ndung Must Support: Dies ist wichtig, um die L&#228;nge des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren." />
            <mustSupport value="true" />
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "ISiKTerminblock",
    "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock",
    "version": "5.0.0-rc",
    "name": "ISiKTerminblock",
    "status": "active",
    "experimental": false,
    "date": "2025-04-09",
    "publisher": "gematik GmbH",
    "description": "Die Slot-Ressource repräsentiert die Verbindung eines Termins (Appointment) und den dazugehörigen Ressourcen (z.B. HealthcareService, Device, Practitioner). Für diese Ressourcen können separate Kalender (Schedules) verwaltet werden. Der Slot agiert als Verbindungsstück zwischen diesen Ressourcen.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Slot",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Slot",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Slot",
                "path": "Slot",
                "constraint":  [
                    {
                        "key": "ISiK-slot-1",
                        "severity": "error",
                        "human": "Der Endzeitpunkt eines Terminsblocks MUSS nach dem Startzeitpunkt liegen",
                        "expression": "start <= end",
                        "source": "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock"
                    }
                ]
            },
            {
                "id": "Slot.schedule",
                "path": "Slot.schedule",
                "comment": "Begründung Kardinalität und MS: Die Kardinalität der reference-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass ein Kalender eindeutig referenziert und identifiziert werden kann.",
                "mustSupport": true
            },
            {
                "id": "Slot.schedule.reference",
                "path": "Slot.schedule.reference",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Slot.status",
                "path": "Slot.status",
                "comment": "Begründung Must Support: Dies ist wichtig, um die Verfügbarkeit von Terminen zu gewährleisten, eine Überbuchung zu verhindern und zudem einem Termin-Requestor die Möglichkeit zu bieten nur freie Termine bei der Terminbuchung anzuzeigen.",
                "mustSupport": true
            },
            {
                "id": "Slot.start",
                "path": "Slot.start",
                "comment": "Begründung Must Support: Dies ist wichtig, um den Zeitpunkt des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren.",
                "mustSupport": true
            },
            {
                "id": "Slot.end",
                "path": "Slot.end",
                "comment": "Begründung Must Support: Dies ist wichtig, um die Länge des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren.",
                "mustSupport": true
            }
        ]
    }
}

Constraints/Invarianten

NameSchweregradBeschreibungAusdruck
ISiK-slot-1errorDer Endzeitpunkt eines Terminsblocks MUSS nach dem Startzeitpunkt liegenstart <= end

Terminology-Bindings

Anmerkungen zu Must-Support-Feldern

FeldnameHinweise
Slot.schedule

Begründung Kardinalität und MS: Die Kardinalität der reference-Eigenschaft wird auf 1..* festgelegt, um sicherzustellen, dass ein Kalender eindeutig referenziert und identifiziert werden kann.

Slot.schedule.reference
Slot.status

Begründung Must Support: Dies ist wichtig, um die Verfügbarkeit von Terminen zu gewährleisten, eine Überbuchung zu verhindern und zudem einem Termin-Requestor die Möglichkeit zu bieten nur freie Termine bei der Terminbuchung anzuzeigen.

Slot.start

Begründung Must Support: Dies ist wichtig, um den Zeitpunkt des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren.

Slot.end

Begründung Must Support: Dies ist wichtig, um die Länge des Termins an einen Termin-Requestor / Termin-Consumer zu kommunizieren.

Slot.schedule

Bedeutung: Verknüpfung einer Termins / Terminblocks und den dazugehörigen Terminlisten bzw. deren Ressourcen.

Hinweise: Die Referenz auf Schedule bietet die Möglichkeit der Abfrage eines Appointments / Slots auf Basis einer Verknüpfung mit einem Schedule bzw. eines Schedules für eine bestimmte Ressource (Schedule.actor).

Slot.status

Bedeutung: Indikator ob ein Slot verwendbar ist für die Buchung eines Appointments.

Hinweise: Insbesondere eine Differenzierung des Status ‚busy‘ ermöglicht es einem Termin-Requestor, einem Benutzer passende Termine zur Verfügung zu stellen. Durch entsprechende Kombinationen können somit Termine in einer passenden Länge gebucht werden.

Slot.start

Bedeutung: Startdatum des Slots (sekundengenau).

Hinweise: Falls sich ein Appoinment über mehrere Slots erstreckt, kann mit Hilfe des Startdatums der Beginn eines zu vereinbarenden Termins gefunden werden.

Slot.end

Bedeutung: Enddatum des Slots (sekundengenau).

Hinweise: Falls sich ein Appointment über mehrere Slots erstreckt, kann mithilfe des Enddatums der Slot gefunden werden, der als nächster innerhalb einer Reihe gebucht werden muss, sodass das Appointment die gewünschte Länge erreicht.

Interaktionen

InteraktionVerbindlichkeit
readSHALL
search-typeSHALL
ParameterTypVerbindlichkeitHinweise
_idtokenSHALL

Beispiel: GET [base]/[Resourcetype]?_id=103270 Anwendungshinweis: Der Parameter _id wird selten alleinstehend verwendet, da sich zum Abruf einer Ressource anhand der id die READ-Interaktion besser anbietet. Der Parameter kann jedoch verwendet werden, um den Abruf einer Ressource bspw. mit einem _include weiterer Ressourcen zu verbinden, z.B. zum Abruf eines Encounters in Verbindung mit dem zugehörigen Patienten: GET [base]/Encounter?_id=103270&_include=Encounter:patient Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Parameters for all resources. Dieser Suchparameter ist für die Umsetzung des IHE PDQm Profils verpflichtend.

_tagtokenSHALL

Beispiel: GET [base]/[Resourcetype]?_tag=https://example.org/codes|needs-review Anwendungshinweis: Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Parameters for all resources sowie Abschnitt Tags.

_countnumberSHALL

Beispiel: GET [base]/[Resourcetype]?_count=100 Anwendungshinweis: Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Page Count.

_hasstringMAY

Beispiel: Suche nach allen Patienten, die eine Observation mit dem Code '1234-5' haben GET [base]/Patient?_has:Observation:patient:code=1234-5 Beispiel: Suche nach allen Encountern, bei denen die Diagnose 'A12.3' gestellt wurde GET [base]/Encounter?_has:Condition:encounter:code=A12.3 Anwendungshinweis: Weitere Details siehe FHIR-Kernspezifikation, Abschnitt Reverse Chaining.

schedulereferenceSHALL

Beispiel:
GET [base]/Slot?schedule=Schedule/ISiKKalenderExample&start=2022-12-10T09:00:00Z
GET [base]/Slot?schedule=Schedule/ISiKKalenderExample
Anwendungshinweis:
Der Suchparameter schedule MUSS in Kombination mit einem definierten Startzeitpunkt mittels Suchparameter start unterstützt werden. Der Suchparameter schedule KANN alleinstehend unterstützt werden. Beim Fehlen des start-Suchparameters SOLL der aktuelle Zeitpunkt des Servers als Startzeitpunkt per Default verwendet werden. In diesem Fall ist auch ein Chaining auf weitere verknüpfte Akteure möglich:
GET https://example.org/fhir/Slot?schedule.actor:HealthcareService.type=https://example.org/fhir/CodeSystem/Behandlungsleistung|CT
Dies kann notwendig sein, falls interdisziplinäre Kalender durch das Termin-Repository gepflegt werden (z.B. ein Kalender pro Station). In solchen Fälle wäre es sinnvoll, wenn das Termin-Repository einem Termin-Requestor eine Verknüpfung zwischen Kalender (Schedule) und Behandlungsleistung (HealthcareService) bereitstellen würde. Weitere Details siehe FHIR-Kernspezifikation.

statustokenSHALL

Beispiel:
GET [base]/Slot?status=free&schedule=Schedule/ISiKTerminExample GET [base]/Slot?status=free&schedule.actor:Practitioner.name=Musterarzt
Anwendungshinweis:
Der Suchparameter status MUSS in Kombination ('&') mit dem Parameter schedule unterstützt werden. Diese Abfrage KANN entweder eine direkte Angabe einer Referenz oder eine Angabe von weiteren Chaining-Parametern sein. Der Suchparameter MUSS NICHT alleinstehend unterstützt werden.
Weitere Details siehe FHIR-Kernspezifikation.

startdateSHALL

Beispiel:
GET [base]/Slot?start=2022-12-10T09:00:00Z&schedule=Schedule/ISiKTerminExample
GET [base]/Slot?start=2022-12-10T09:00:00Z&schedule.actor:Practitioner.name=Musterarzt
Anwendungshinweis:
Der Suchparameter start MUSS in Kombination ('&') mit dem Parameter schedule unterstützt werden. Diese Abfrage KANN entweder eine direkte Angabe einer Referenz oder eine Angabe von weiteren Chaining-Parametern sein. Der Suchparameter MUSS NICHT alleinstehend unterstützt werden. Weitere Details siehe FHIR-Kernspezifikation.

(Reverse-)Include

IncludeReverseInclude
Slot:scheduleAppointment:slot
Command 'pagelink' could not render: Page not found.

Beispiele

Slot
<Slot xmlns="http://hl7.org/fhir">
    <id value="ISiKTerminblockExample" />
    <meta>
        <profile value="https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock" />
    </meta>
    <schedule>
        <reference value="Schedule/ISiKKalenderExample" />
    </schedule>
    <status value="busy" />
    <start value="2022-12-10T09:00:00Z" />
    <end value="2022-12-10T11:00:00Z" />
</Slot>
{
    "resourceType": "Slot",
    "id": "ISiKTerminblockExample",
    "meta": {
        "profile":  [
            "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminblock"
        ]
    },
    "schedule": {
        "reference": "Schedule/ISiKKalenderExample"
    },
    "status": "busy",
    "start": "12/10/2022 09:00:00",
    "end": "12/10/2022 11:00:00"
}