Terminslot anlegen (Slot Create)
Inhalt
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.
|
application/fhir+xml |
Accept |
nein | Gibt an, welche Inhaltstypen die Systeme des Anfragenden verstehen.
|
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 Wertfree
haben. Ist dies nicht der Fall, kommt ein Fehler mit dem HTTP-Statuscode412 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ä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ärztin" /> </coding> </serviceType> <serviceType> <coding> <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_BAR2_WBO" /> <code value="341" /> <display value="FÄ/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ü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ähere Informationen zum Fehler." /> </coding> </details> <diagnostics value="Ungü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ültig." /> </coding> </details> </issue> </OperationOutcome>