Terminslot anlegen (Slot Create)


Inhalt

  1. Beschreibung und fachlicher Kontext
  2. Request
  3. Response

Beschreibung und fachlicher Kontext

Beim Anlegen eines Terminslots handelt es sich um die FHIR-Standardinteraktion create.

Diese Interaktion ermöglicht die Übermittlung eines neu angelegten Terminslots an die Systeme des 116117 Terminservices. Dadurch ist der neue Terminslot für die Buchung durch den 116117 Terminservice verfügbar. Das bedeutet, wenn jemand (bspw. ein TSS-Mitarbeiter oder ein Patient) über den 1116117 Terminservice freie Termine sucht, wird der neu angelegte Terminslot angezeigt und kann gebucht werden.

Ein neuer Terminslot wird immer auf Grundlage eines Terminprofils erstellt. Im neu zu erstellenden Terminslot ist das zugrundeliegende Terminprofil über die Terminprofil-ID referenziert. Diese ID wird ausschließlich von den Systemen des 116117 Terminservices festgelegt. Es ist daher notwendig, dass ein TVS die korrekte Terminprofil-ID kennt, um einen Terminslot anlegen zu können. Die Terminprofil-ID kann mithilfe der Interaktion Terminprofile abrufen (Schedule Search) ermittelt werden.


Mithilfe der Interaktion Terminslots anlegen (Slot Batch Create) können auch mehrere Terminslots auf einmal angelegt werden.


Request

Das Anlegen eines Terminslots erfordert einen POST-Request.

Der neu anzulegende Terminslot muss im Request Body übergeben werden (siehe hierzu Abschnitt Request Body).

HTTP Method POST
URL https://terminsynchronisation.eterminservice.kv-safenet.de/tvs​/terminsynchronisation/api/Slot
Request Body [slot]

Request Header

Folgende Request Header werden von den Systemen des 116117 Terminservices unterstützt und verarbeitet:

Header Verpflichtend? Beschreibung Wert
Authorization ja Im Authentisierungsverfahren erhaltene ACCESS_TOKEN als Bearer Token Bearer ey...
Content-Type ja Gibt den ursprünglichen Medien- bzw. Dateitypen der Ressource an.
  • Der 116117 Terminservice unterstützt die Werte fhir+xml und xml.
  • Es wird empfohlen, den Wert fhir+xml für diesen Header zu setzen.
application/fhir+xml
Accept nein Gibt an, welche Inhaltstypen die Systeme des Anfragenden verstehen.
  • Der 116117 Terminservice unterstützt die Werte fhir+xml und xml.
  • Es wird empfohlen, den Wert fhir+xml für diesen Header zu setzen.
application/fhir+xml

Bitte beachten: Laut FHIR-Standard kann über den Prefer Header vom Anfragenden festgelegt werden, ob die neu angelegte Ressource im Response Body enthalten sein soll. Die Systeme des 116117 Terminservices werten diesen Header NICHT aus. Der im 116117 Terminservice neu erstellte Terminslot wird in der Antwort (Response) auf einen create-Request IMMER mit zurückgegeben.


Request Body

Der Request Body muss den Terminslot enthalten, der im 116117 Terminservice erstellt werden soll. Eine ausführliche Beschreibung des Terminslot-Profils sowie Beispiele sind unter Profil: Terminslot (Slot) zu finden.

Bitte beachten:

  • Die ID eines Terminslots (zu finden im Feld Slot.id) wird ausschließlich durch die Systeme des 116117 Terminservices festgelegt. Wird in einem create-Request ein Terminslot mit ID übergeben, so wird diese von den Systemen des 116117 Terminservices NICHT verarbeitet.

  • Der Status eines Terminslots (zu finden im Feld Slot.status) muss beim Erstellen immer den Wert free haben. Ist dies nicht der Fall, kommt ein Fehler mit dem HTTP-Statuscode 412 Precondition Failed zurück.

  • Das zugrundeliegende Terminprofil (referenziert im Feld Slot.schedule) muss anhand der Terminprofil-ID referenziert werden. Diese kann mithilfe der Interaktion Terminprofile abrufen (Schedule Search) ermittelt werden.


Beispiele

# Erstelle einen neuen Terminslot
POST https://terminsynchronisation.eterminservice.kv-safenet.de/tvs​/terminsynchronisation/api/Slot
Content-Type: application/fhir+xml

WICHTIG: Der Request Body mit dem neu anzulegenden Terminslot ist in diesem Beispiel NICHT enthalten. Beispiele für Terminslots sind hier im vorliegenden Projekt zu finden. Einige der Beispiele sind auch noch einmal am Ende dieser Seite dargestellt.


Response

Für das Anlegen von Terminslots wird im Erfolgsfall der HTTP-Statuscode 201 Created sowie der neu erstellte Terminslot im Response Body zurückgegeben.

Im Fehlerfall wird ein dem Fehler entsprechender HTTP-Statuscode (bspw. 400 Bad Request oder 500 Internal Server Error) sowie ein OperationOutcome im Response Body zurückgegeben. Dieses OperationOutcome enthält Details zum aufgetretenen Fehler.


Response Header

Folgende Response Header werden von den Systemen des 116117 Terminservices gesetzt und an den Anfragenden zurückgesendet:

Header Beschreibung Wert
Content-Type Gibt den ursprünglichen Medien- bzw. Dateitypen der Ressource an. application/fhir+xml
Location Gibt die URL zur neu erstellten Ressource an. https://terminsynchronisation.eterminservice.kv-safenet.de/tvs​/terminsynchronisation/api/Slot/c98db2da-9cf5-4370-b54b-ef981c53abxx
ETag Gibt die Version der neu erstellten Ressource an. 1

Response Body

Im Erfolgsfall ist im Response Body der neu erstellte Terminslot enthalten. Beim Erstellen des Terminslots im 116117 Terminservice wird dem Terminslot automatisch eine ID (im Feld Slot.id) und eine Version (im Feld Slot.meta.versionId) zugewiesen. Beide Felder sind im Terminslot, der im Response Body enthalten ist, befüllt. Weitere Details zum Terminslot-Profil sind unter Profil: Terminslot (Slot) zu finden.

Im Fehlerfall ist im Response Body ein OperationOutcome enthalten. Details hierzu sind unter Profil: Fehler (OperationOutcome) zu finden.


Beispiele

Alle Beispiele für den Erfolgsfall sind hier im vorliegenden Projekt zu finden.

Alle Beispiele für den Fehlerfall sind hier im vorliegenden Projekt zu finden.


<Slot xmlns="http://hl7.org/fhir">
    <id value="ac613a2c-91c5-4eb4-9ab4-e99629a1fa15" />
    <meta>
        <versionId value="2" />
        <profile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Slot|1.0.0" />
    </meta>
    <text>
        <status value="extensions" />
        --- We have skipped the narrative for better readability of the resource ---
    </text>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Urgency">
        <valueCoding>
            <system value="http://snomed.info/sct" />
            <code value="50811001" />
            <display value="Routine" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Urgency">
        <valueCoding>
            <system value="http://snomed.info/sct" />
            <code value="103391001" />
            <display value="Urgent" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Urgency">
        <valueCoding>
            <system value="http://snomed.info/sct" />
            <code value="709122007" />
            <display value="As soon as possible" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Slot_Bookable_Through">
        <valueCoding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Roles" />
            <version value="1.0.0" />
            <code value="​Patient" />
            <display value="Patient" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Slot_Bookable_Through">
        <valueCoding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Roles" />
            <version value="1.0.0" />
            <code value="Praxis" />
            <display value="Praxis" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Slot_Bookable_Through">
        <valueCoding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Roles" />
            <version value="1.0.0" />
            <code value="TSS" />
            <display value="Terminservicestellen" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Slot_Bookable_Through">
        <valueCoding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Roles" />
            <version value="1.0.0" />
            <code value="Dritte" />
            <display value="Anwendungen von Drittanbietern" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Foreign_Languages_For_Diagnostic_Outcome">
        <valueCoding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BAR_FREMDSPRACHE" />
            <code value="83" />
            <display value="Thai (Thailand)" />
        </valueCoding>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Foreign_Languages_For_Diagnostic_Outcome">
        <valueCoding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BAR_FREMDSPRACHE" />
            <code value="107" />
            <display value="Schottisch-G&#228;lisch" />
        </valueCoding>
    </extension>
    <serviceCategory>
        <coding>
            <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" />
            <code value="VR" />
            <display value="virtual" />
        </coding>
    </serviceCategory>
    <serviceType>
        <coding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BAS_FACHGEBIET_GROB" />
            <code value="09" />
            <display value="Kinderarzt / Kinder&#228;rztin" />
        </coding>
    </serviceType>
    <serviceType>
        <coding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BAR2_WBO" />
            <code value="341" />
            <display value="F&#196;/FA Kinder- und Jugendmedizin" />
        </coding>
    </serviceType>
    <serviceType>
        <coding>
            <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_Services" />
            <code value="L001" />
            <display value="Fr&#252;herkennungsuntersuchungen Kinder und Jugendliche" />
        </coding>
    </serviceType>
    <schedule>
        <reference value="urn:uuid:3b6b4224-8ba0-4e8a-8dae-6f0a772d5cb4" />
    </schedule>
    <status value="free" />
    <start value="2024-01-27T10:15:00+01:00" />
    <end value="2024-01-27T10:30:00+01:00" />
</Slot>
<Slot xmlns="http://hl7.org/fhir">
    <id value="8c62689e-f39a-4811-9d24-b64c73f5291e" />
    <meta>
        <profile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Slot|1.0.0" />
    </meta>
    <text>
        <status value="extensions" />
        --- We have skipped the narrative for better readability of the resource ---
    </text>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Urgency">
        <valueCoding>
            <system value="http://snomed.info/sct" />
            <code value="709122007" />
            <display value="As soon as possible" />
        </valueCoding>
    </extension>
    <serviceCategory>
        <coding>
            <system value="http://terminology.hl7.org/CodeSystem/v3-ActCode" />
            <code value="AMB" />
            <display value="ambulatory" />
        </coding>
    </serviceCategory>
    <schedule>
        <reference value="urn:uuid:1b8e277f-c971-433b-a22b-91a16eba9f2d" />
    </schedule>
    <status value="free" />
    <start value="2024-05-01T10:00:00+01:00" />
    <end value="2024-05-01T10:45:00+01:00" />
</Slot>
<OperationOutcome xmlns="http://hl7.org/fhir">
    <id value="cc8e9f90-31ad-4021-9639-e5b940a88a94" />
    <meta>
        <profile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_OperationOutcome_Error|1.0.0" />
    </meta>
    <text>
        <status value="extensions" />
        --- We have skipped the narrative for better readability of the resource ---
    </text>
    <issue>
        <severity value="fatal" />
        <code value="value" />
        <details>
            <coding>
                <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Errors" />
                <code value="TVSTS0000" />
                <display value="Sonstiger Fehler. Unter diagnostics finden Sie n&#228;here Informationen zum Fehler." />
            </coding>
        </details>
        <diagnostics value="Ung&#252;ltiger Input-Parameter" />
    </issue>
</OperationOutcome>
<OperationOutcome xmlns="http://hl7.org/fhir">
    <id value="81758936-362c-411f-9d95-7fac5b19deb6" />
    <meta>
        <profile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_OperationOutcome_Error|1.0.0" />
    </meta>
    <text>
        <status value="extensions" />
        --- We have skipped the narrative for better readability of the resource ---
    </text>
    <issue>
        <severity value="fatal" />
        <code value="value" />
        <details>
            <coding>
                <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Errors" />
                <code value="TVSTS0018" />
                <display value="Die Dringlichkeit ist ung&#252;ltig." />
            </coding>
        </details>
    </issue>
</OperationOutcome>