Terminprofil aktualisieren (Schedule Update)
Inhalt
Beschreibung und fachlicher Kontext
Beim Aktualisieren eines Terminprofils handelt es sich um die FHIR-Standardinteraktion update.
Diese Interaktion ermöglicht die Übermittlung eines geänderten Terminprofils an die Systeme des 116117 Terminservices. Aktuell können folgende Werte angepasst werden:
- Name des Terminprofils
- Termindauer
- Angebotene Diagnosefremdsprachen
- Angebotene Leistungsmerkmale
- Terminprofilhinweis
- Zugewiesener Arzt
Dabei ist zu beachten, dass die angebotenen Leistungsmerkmale nur geändert werden können, wenn der Terminprofil-Typ MANUELL
oder EXTERN
ist. (Diagnosefremdsprachen und Leistungsmerkmale können sich zudem automatisch ändern, wenn sich die Leistungsmerkmale oder Diagnosefremdsprachen in den Stammdaten eines Arztes verändern, dem das Terminprofil zugewiesen ist oder der in der Praxis / medizinischen Einrichtung arbeitet, der das Terminprofil zugeordnet ist.)
Übermittelt das TVS eine Terminprofil-Ressource an die Systeme des 116117 Terminservices, in der auch andere Felder geändert wurden, so werden diese Änderungen ignoriert. Die Systeme des 116117 Terminservices werten nur die oben benannten Daten der übermittelten Terminprofil-Ressource aus. Das bedeutet, dass auch nur diese Werte im 116117 Terminservice angepasst werden.
Das Aktualisieren eines Terminprofils ist versionsabhängig. Das bedeutet, dass das TVS die Version des zu aktualisierenden Terminprofils in der Update-Anfrage an den 116117 Terminservice übermitteln muss. Stimmt die Version nicht mit der Version überein, die im 116117 Terminservice für dieses Terminprofil hinterelegt ist, bekommt der Anfragende einen Fehler zurück.
Request
Das Aktualisieren eines Terminprofils erfordert einen PUT-Request.
Die ID des zu aktualisierenden Terminprofils muss in der URL übergeben werden. In der folgenden Tabelle ist für die Terminprofil-ID der Platzhalter [id]
in der Zeile URL
eingetragen. Die Terminprofil-ID ist im Feld Schedule.id
der Schedule-Ressource zu finden.
Die aktuelle Version des zu aktualisierenden Terminprofils muss als Request Header übergeben werden. In der folgenden Tabelle ist für die Version des Terminprofils der Platzhalter [version]
in der Zeile Request Header
eingetragen. Die Version des Terminprofils ist im Feld Schedule.meta.versionId
der Schedule-Ressource zu finden.
Das geänderte Terminprofil muss im Request Body übergeben werden (siehe hierzu Abschnitt Request Body
).
HTTP Method | PUT |
URL | https://terminsynchronisation.eterminservice.kv-safenet.de/tvs/terminsynchronisation/api/Schedule/[id] |
Request Header | If-Match: [version] |
Request Body | [schedule] |
Bitte beachten: Laut FHIR-Standard handelt es sich bei einem PUT-Request eigentlich um ein Upsert. Das bedeutet, dass die übermittelte Ressource neu erstellt wird, wenn sie noch nicht im Zielsystem existiert. Die Systeme des 116117 Terminservices unterstützen dies jedoch NICHT. Existiert das übermittelte Terminprofil nicht in den Systemen des 116117 Terminservices, wird ein Fehler zurückgegeben.
Request Header
Folgende Request Header werden von den Systemen des 116117 Terminservices unterstützt und verarbeitet:
Header | Verpflichtend? | Beschreibung | Wert |
---|---|---|---|
If-Match |
ja | Aktuelle Version des zu aktualisierenden Terminprofils, zu finden im Feld Schedule.meta.versionId . |
1 |
Authorization |
ja | Im Authentisierungsverfahren erhaltener 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 aktualisierte Ressource im Response Body enthalten sein soll. Die Systeme des 116117 Terminservices werten diesen Header NICHT aus. Das im 116117 Terminservice aktualisierte Terminprofil wird NICHT in der Antwort (Response) auf einen PUT-Request zurückgegeben.
Request Body
Der Request Body muss das Terminprofil enthalten, das im 116117 Terminservice aktualisiert werden soll. Eine ausführliche Beschreibung des Terminprofil-Profils sowie Beispiele sind unter Profil: Terminprofil (Schedule) zu finden.
Bitte beachten:
Beim übermittelten Terminprofil MUSS der Wert
Schedule.id
gesetzt sein. Dieser Wert muss zudem mit der Terminprofil-ID aus der URL übereinstimmen. Dies soll sicherstellen, dass das richtige Terminprofil aktualisiert wird.Aktuell können nur bestimmte Werte aktualisiert werden, die in der nachfolgenden Tabelle aufgelistet sind. Änderungen an anderen Werten (bspw. Terminprofiltyp) werden von den Systemen des 116117 Terminservices ignoriert.
Angebotene Leistungsmerkmale können nur dann durch das TVS geändert werden, wenn der Terminprofil-TypMANUELL
oderEXTERN
ist.
Wert | FHIR-Element |
---|---|
Name des Terminprofils | Schedule.extension:terminprofilname |
Termindauer | Schedule.extension:weitereParameter.extension:termindauer |
Angebotene Diagnosefremdsprachen | Schedule.extension:diagnosefremdsprachen |
Angebotene Leistungsmerkmale | Schedule.serviceType |
Terminprofilhinweis | Schedule.comment |
Zugewiesener Arzt | Schedule.actor |
Beispiele
# Aktualisiere das Terminprofil mit der ID "1ec4f924-cd75-45eb-97df-8848ff792fd5" und der aktuelle Version "1"
PUT https://terminsynchronisation.eterminservice.kv-safenet.de/tvs/terminsynchronisation/api/Schedule/1ec4f924-cd75-45eb-97df-8848ff792fd5
Content-Type: application/fhir+xml
If-Match: 1
WICHTIG: Der Request Body mit dem geänderten Terminprofil ist in diesem Beispiel NICHT enthalten. Beispiele für Terminprofile sind hier im vorliegenden Projekt zu finden. Einige Beispiele sind auch noch einmal am Ende dieser Seite dargestellt.
Response
Für das Aktualisieren eines Terminprofils wird im Erfolgsfall der HTTP-Statuscode 200 OK
und die neue Version der aktualisierten Ressource als Response Header 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 |
---|---|---|
ETag |
Gibt die Version der aktualisierten Ressource an. | 2 |
Response Body
Im Erfolgsfall wird KEIN Response Body zurückgegeben.
Im Fehlerfall ist im Response Body ein OperationOutcome enthalten. Details hierzu sind unter Profil: Fehler (OperationOutcome) zu finden.
Beispiele
Alle Beispiele für den Fehlerfall sind hier im vorliegenden Projekt zu finden.
<Schedule xmlns="http://hl7.org/fhir"> <id value="9b98f95a-74a9-4b6b-ba30-fc951068727d" /> <meta> <versionId value="2" /> <profile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Schedule_Slot_Profile|1.0.0" /> </meta> <text> <status value="extensions" /> --- We have skipped the narrative for better readability of the resource --- </text> <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-Schedule.name"> <valueString value="Sprechstunde auf Thai oder Schottisch-Gälisch" /> </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> <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Schedule_Slot_Profile_Extension"> <extension url="termindauer"> <valueDuration> <value value="60" /> <unit value="minutes" /> <system value="http://unitsofmeasure.org" /> <code value="min" /> </valueDuration> </extension> <extension url="terminprofiltyp"> <valueCoding> <system value="https://fhir.kbv.de/CodeSystem/KBV_CS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Schedule_Slot_Profile_Type" /> <version value="1.0.0" /> <code value="AUTOMATISCH" /> <display value="Vom 116117 Terminservice automatisch angelegtes Terminprofil basierend auf den Leistungsmerkmalen des jeweiligen Arztes" /> </valueCoding> </extension> </extension> <active value="true" /> <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> <actor> <reference value="https://fhir.kbv.de/PractitionerRole/123456789-1112223" /> </actor> <comment value="Bitte nüchtern kommen!" /> </Schedule>
<Schedule xmlns="http://hl7.org/fhir"> <meta> <profile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Schedule_Slot_Profile|1.0.0" /> </meta> <text> <status value="extensions" /> --- We have skipped the narrative for better readability of the resource --- </text> <extension url="http://hl7.org/fhir/5.0/StructureDefinition/extension-Schedule.name"> <valueString value="Sprechstunde M. Mustermensch" /> </extension> <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Schedule_Slot_Profile_Extension"> <extension url="termindauer"> <valueDuration> <value value="15" /> <unit value="minutes" /> <system value="http://unitsofmeasure.org" /> <code value="min" /> </valueDuration> </extension> </extension> <actor> <reference value="https://fhir.kbv.de/PractitionerRole/123456789" /> </actor> </Schedule>
<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>