ISiKTermin (Appointment)


Motivation

Das Datenobjekte ISiKTermin repräsentiert einen gebuchten Termin, sowie einen Terminvorschlag.


Kompatibilität

Siehe Kompatibilität.


FHIR-Profil

NameCanonical
ISiKTerminhttps://gematik.de/fhir/isik/StructureDefinition/ISiKTermin

idΣ0..1string
id0..1string
extensionI0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ0..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
SourceS Σ0..1CodingBinding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
NachrichtS I0..*Extension(Reference(ISiKNachricht))
replacesS I0..1Extension(Reference(Appointment))
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
statusS Σ ?!1..1codeBinding
cancelationReasonS Σ0..1CodeableConceptBinding
serviceCategoryΣ0..*CodeableConcept
id0..1string
extensionI0..*Extension
codingΣ0..*Coding
textS Σ0..1string
id0..1string
extensionI0..*Extension
FachrichtungS Σ1..1CodingBinding
ErweiterterFachabteilungsschluesselΣ0..1CodingBinding
textΣ0..1string
appointmentTypeΣ0..1CodeableConceptBinding
reasonCodeΣ0..*CodeableConceptBinding
reasonReferenceI0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)
id0..1string
PriorityS I0..1Extension(CodeableConcept)
value0..1System.String
description0..1string
supportingInformationI0..*Reference(Resource)
startS Σ1..1instant
endS Σ1..1instant
minutesDuration0..1positiveInt
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
created0..1dateTime
commentS0..1string
patientInstructionS0..1string
basedOnI0..*Reference(ServiceRequest)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayS Σ0..1string
requiredΣ0..1codeBinding
statusS Σ1..1codeBinding
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
requiredΣ0..1codeBinding
statusΣ1..1codeBinding
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
requiredΣ0..1codeBinding
statusΣ1..1codeBinding
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
requiredΣ0..1codeBinding
statusΣ1..1codeBinding
periodI0..1Period
requestedPeriodI0..*Period

Hinweis: Die Kardinalität von participant.actor.display und das MS-Flag von participant.status wird an die Slices vererbt und diese sind entsprechend zu implementieren.

Folgende FHIRPath-Constraints sind im Profil zu beachten:

keyseverityhumanexpression
ISiK-app-1errorDer Endzeitpunkt eines Termins MUSS nach dem Startzeitpunkt liegenstart <= end

Terminology Bindings

PathNameStrengthURL
Appointment.meta.tagcommon-meta-tag-derequiredhttp://fhir.de/ValueSet/common-meta-tag-de
Appointment.cancelationReasonISiKTerminCancelationReasonrequiredhttps://gematik.de/fhir/isik/ValueSet/ISiKTerminCancelationReason
Appointment.specialty.codinghe-d.de/ValueSets/IHEXDSpracticeSettingCoderequiredhttp://ihe-d.de/ValueSets/IHEXDSpracticeSettingCode
Appointment.specialty.codingdkgev/Fachabteilungsschluessel-erweitertrequiredhttp://fhir.de/ValueSet/dkgev/Fachabteilungsschluessel-erweitert

Anmerkungen zu Must-Support-Feldern

Appointment.meta.tag

Bedeutung: Herkunft der Termins

Hinweis: Angabe, ob der Termin durch einen externen Termin Requestor eingestellt wurde. Falls das Datenobjekt dauerhaft in das Termin Repository gespeichert wird, KANN der Tag entfernt werden. Für die weitere Prozesssteuerung kann eine Unterscheidung, ob es sich um einen intern oder extern erstellten Termin handelt, notwendig sein, sodass aus Gründen der Nachvollziehbarkeit der Tag bestehen bleiben sollte. Des Weiteren gelten die Vorgaben des ISiK Basismoduls zur CREATE-Interaktion.

Appointment.extension:Nachricht

Bedeutung: Kommunikation mit dem Patienten

Hinweis: Für die Kommunikation mit dem Patienten sind Communication-Ressourcen zu verwenden. Für den Termin relevante Kommentare oder Anhänge MÜSSEN angegeben werden. Zudem kann die Communication-Ressource auch für die Kommunikation zwischen Leistungserbringer verwendet werden. Es ist zu beachten, dass in diesem Fall Kommentare vor der Herausgabe an die Patient:in gefiltert werden sollten.

Appointment.extension:replaces

Bedeutung: Angabe eines abgesagten / verschobenen Termins

Hinweis: Im Falle, dass per $book-Operation ein verschobener / abgesagter Termin angegeben wird, MUSS dieser für die Rückverfolgbarkeit referenziert werden.

Appointment.status

Bedeutung: Differenzierung zwischen Terminwunsch und gebuchten Termin

Hinweis: Ein Termin Requestor kann im Status entsprechend wählen, sodass der Termin als Terminwunsch zu interpretieren ist. Nachdem der Termin bestätigt wurde, ist der Terminstatus durch das Termin-Repository anzupassen.

Alle Statuswerte MÜSSEN durch ein bestätigungsrelevantes System unterstützt werden, insbesondere der Status "proposed" und "booked".

Appointment.cancelationReason

Bedeutung: Grund für die Absage eines Termins

Hinweis: Eine minimale Kodierung MUSS mittels des vorgeschlagenen Bindings vorliegen. Differenzierungen mit feinerer Granularität können durch weitere Codings erfolgen.

Appointment.serviceType

Bedeutung: Kodierung der Behandlungsleistung des Termins

Hinweis: Dies SOLL der Kodierung des serviceType eines Schedules entsprechen, der innerhalb des Termins gebucht wird. Ein Termin-Repository SOLL einen Termin abweisen, falls unbekannte Kodierungen in .serviceType durch den Termin-Requestor übermittelt werden, sodass ein Termin-Repository sicherstellen kann, dass alle Ressourcen für die Behandlungsleistung(en) bereitgestellt werden können. Hierzu ist eine Interpretation der Behandlungsleistung notwendig. Ein Termin KANN für mehrere Behandlungsleistungen gebucht werden, falls dies durch die Fachlogik des Termin-Repositories unterstüzt wird.

Appointment.specialty

Bedeutung: Kodierung der Fachrichtung des Termins

Hinweis: Sofern aus den auf der Appointment-Ressource aufsetzenden Anwendungsfällen eine weitere Verarbeitung der Ressource durch einen menschlichen Nutzer nicht ausgeschlossen werden kann, MUSS das bestätigungsrelevante System mit dem Termin verbundenen Ressourcen (insb. Appointment.slot, Appointment.slot.schedule, Appointment.participant:AkteurMedizinischeBehandlungseinheit.actor) oder aus dem spezifischen Kontext verfügbare Informationen auswerten und das Element Appointment.specialty mit einem sinnvollen Wert kodieren (eine Ausnahme bildet hier zum Beispiel die fachrichtungs-unabhängige Terminplanung durch krankenhausinterne, zentrale Organisationseinheiten). Insbesondere ist die Kodierung der Fachrichtung des Termins notwendig im Kontext der Bereitstellung einer graphischen Oberfläche, wie sie Endnutzenden in einem Zuweiserportal/Patientenportal zur Ansicht gebracht wird.

Appointment.priority.extension:Priority

Bedeutung: Kodierte Angabe der Priorität des Termins

Hinweis: Anstelle der numerischen Priorität MUSS in ISiK eine kodierte Priorität angegeben werden.

Appointment.start

Bedeutung: Startzeitpunkt des Termins

Hinweis: Sofern der Termin an einen Slot gebunden ist, SOLL der Startzeitpunkt des Termins dem Startzeitpunkt des ersten Slots des Termins entsprechen.

Appointment.end

Bedeutung: Endzeitpunkt des Termins

Hinweis: Sofern der Termin an einen Slot gebunden ist, SOLL der Endzeitpunkt des Termins dem Endzeitpunkt des letzten Slots des Termins entsprechen.

Appointment.slot

Bedeutung: Referenzierung der Slots für die Verknüpfung des Termins mit einem Schedule

Hinweis: Die Referenzierung des Schedules kann durch einen oder mehrere Slots erfolgen. Es kann keine Reihenfolge durch die Angabe der Slots abgeleitet werden.

Hinweis: In der Vergangenheit liegende Slots, welche nicht verknüpft wurden, dürfen nicht mehr abrufbar sein. Jegliche andere Slots müssen auch per id, herausgegeben werden. Sobald die id einmalig per Search herausgeben wurde, müssen diese gleichbleibend abrufbar sein.

Appointment.patientInstruction

Bedeutung: Handlungsanweisungen für die Patienten in Vorbereitung auf den Termin

Appointment.participant

Bedeutung: Teilnehmer des Termins

Hinweis: Mindestens eine Patient-Referenz MUSS angegeben werden. Dies MUSS durch das Termin-Repository während der Buchung des Termins geprüft werden. Weitere Leistungserbringer KÖNNEN angegeben werden.


Interaktionen

Für die Ressource Appointment MÜSSEN die REST-Interaktionen "READ" und "PATCH" implementiert werden.

  1. Der Suchparameter "_id" MUSS unterstützt werden:

    Beispiele:

    GET [base]/Appointment?_id=103270

    Anwendungshinweise: Weitere Informationen zur Suche nach "_id" finden sich in der FHIR-Basisspezifikation - Abschnitt "Parameters for all resources".

  2. Der Suchparameter "status" MUSS unterstützt werden:

    Beispiele:

    GET [base]/Appointment?status=booked

    Anwendungshinweise: Weitere Informationen zur Suche nach "Appointment.status" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".

  3. Der Suchparameter "service-type" MUSS unterstützt werden:

    Beispiele:

    GET [base]/Appointment?service-type=http://example.org/fhir/CodeSystem/ScheduleServiceType|CT

    Anwendungshinweise: Weitere Informationen zur Suche nach "Appointment.serviceType" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".

  4. Der Suchparameter "specialty" MUSS unterstützt werden:

    Beispiele:

    GET [base]/Appointment?specialty=urn:oid:1.2.276.0.76.5.114|535

    Anwendungshinweise: Weitere Informationen zur Suche nach "Appointment.specialty" finden sich in der FHIR-Basisspezifikation - Abschnitt "Token Search".

  5. Der Suchparameter "date" MUSS unterstützt werden:

    Beispiele:

    GET [base]/Appointment?date=2022-12-10T09:00:00Z

    Anwendungshinweise: Die Suche wird gegen das Element "Appointment.start" ausgewertet. Weitere Informationen zur Suche nach "Appointment.start" finden sich in der FHIR-Basisspezifikation - Abschnitt "Date Search".

  6. Der Suchparameter "slot" MUSS unterstützt werden:

    Beispiele:

    GET [base]/Appointment?slot=Slot/ISiKSlotExample

    Anwendungshinweise: Weitere Informationen zur Suche nach "Appointment.slot" finden sich in der FHIR-Basisspezifikation - Abschnitt "reference".

  7. Der Suchparameter "actor" MUSS unterstützt werden:

    Beispiele:

    GET [base]/Appointment?actor=Patient/ISiKPatientExample

    Anwendungshinweise: Weitere Informationen zur Suche nach "Appointment.participant.actor" finden sich in der FHIR-Basisspezifikation - Abschnitt "reference".


Beispiele

{
    "resourceType": "Appointment",
    "id": "ISiKTerminExample",
    "meta": {
        "tag":  [
            {
                "code": "external",
                "system": "http://fhir.de/CodeSystem/common-meta-tag-de"
            }
        ],
        "profile":  [
            "https://gematik.de/fhir/isik/StructureDefinition/ISiKTermin"
        ]
    },
    "extension":  [
        {
            "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKNachrichtExtension",
            "valueReference": {
                "reference": "Communication/ISiKNachrichtExample"
            }
        }
    ],
    "status": "proposed",
    "start": "2022-12-10T09:00:00Z",
    "end": "2022-12-10T11:00:00Z",
    "slot":  [
        {
            "reference": "Slot/ISiKTerminblockExample"
        }
    ],
    "serviceType":  [
        {
            "coding":  [
                {
                    "code": "124",
                    "system": "http://terminology.hl7.org/CodeSystem/service-type"
                }
            ]
        }
    ],
    "specialty":  [
        {
            "coding":  [
                {
                    "code": "ALLG",
                    "system": "http://ihe-d.de/CodeSystems/AerztlicheFachrichtungen"
                }
            ]
        }
    ],
    "participant":  [
        {
            "actor": {
                "display": "Test Patient",
                "reference": "Patient/example"
            },
            "status": "accepted"
        }
    ],
    "_priority": {
        "extension":  [
            {
                "url": "https://gematik.de/fhir/isik/StructureDefinition/ISiKTerminPriorityExtension",
                "valueCodeableConcept": {
                    "coding":  [
                        {
                            "code": "25876001",
                            "system": "http://snomed.info/sct"
                        }
                    ]
                }
            }
        ]
    }
}