Terminprofil anlegen (Schedule Create)
Inhalt
Beschreibung und fachlicher Kontext
Beim Anlegen eines Terminprofils handelt es sich um die FHIR-Standardinteraktion create.
Diese Interaktion ermöglicht die Übermittlung eines neu angelegten Terminprofils an die Systeme des 116117 Terminservices. Dadurch kann eine Praxis / medizinische Einrichtung individuelle Terminprofile definieren und diese zum Erstellen neuer Terminslots im 116117 Terminservice nutzen. Solche Terminprofile haben immer den Typ EXTERN
. Es gibt auch andere Arten von Terminprofilen, die ebenfalls für die Erstellung neuer Terminslots genutzt werden können. (Details hierzu sind auf der Seite Profil: Terminprofil (Schedule) im Abschnitt Fachlicher Kontext
zu finden.) Übermittelt ein TVS einen neu erstellten Terminslot mit einem unbekannten Terminprofil an den 116117 Terminservice, geben die Systeme des 116117 Terminservices einen Fehler zurück.
Ein Terminprofil muss immer einer Praxis / medizinischen Einrichtung zugeordnet sein. Darüber hinaus kann ein Terminprofil optional auch einem konkreten Arzt, der in dieser Praxis / medizinischen Einrichtung tätig ist, zugeordnet werden. Die Zuordnung zu einer Praxis / medizinischen Einrichtung oder einem konkreten Arzt hat folgende Auswirkungen:
Ist ein Terminprofil einem konkreten Arzt zugeordnet...
... können beim Erstellen dieses Terminprofils nur Leistungsmerkmale und Diagnosefremdsprachen ausgewählt werden, die dieser Arzt besitzt bzw. anbietet.
... sind auch die Terminslots, die auf Basis dieses Terminprofils erstellt werden, diesem Arzt zugeordnet.
Ist ein Terminprofil nur
einer Praxis / medizinischen Einrichtung zugeordnet...
... können beim Erstellen dieses Terminprofils alle Leistungsmerkmale und Diagnosefremdsprachen ausgewählt werden, die die dort tätigen Ärzte besitzen bzw. anbieten.
... sind auch die Terminslots, die auf Basis dieses Terminprofils erstellt werden, KEINEM konkreten Arzt zugeordnet.
Die Zuordnung zu einer Praxis / medizinischen Einrichtung und ggf. einem Arzt erfolgt über eine PractitionerRole. Dadurch wird ersichtlich, welche Praxis / medizinische Einrichtung das Terminprofil angelegt hat und (wenn angegeben) auch, welchem dort tätigen Arzt das Terminprofil zugeordnet ist. Im neu zu erstellenden Terminprofil ist die zugehörige PractitionerRole über eine absolute URL referenziert, die wie folgt aufgebaut ist: https://fhir.kbv.de/PractitionerRole/[PractitionerRoleID]
Bitte beachten: Die URL der PractitionerRole-Referenz beginnt somit NICHT wie die Request-URLs! Stattdessen leitet sich der erste Teil der URL für eine PractitionerRole-Referenz aus der canonical URL des PractitionerRole-Profils ab: https://fhir.kbv.de/
. Dahinter wird der Ressourcentyp (also PractitionerRole
) und anschließend die ID der PractitionerRole angegeben.
Die PractitionerRole-ID wird ausschließlich von den Systemen des 116117 Terminservices festgelegt. Es ist daher notwendig, dass ein TVS die korrekte PractitionerRole-ID kennt, um ein neues Terminprofil anlegen zu können. Details zum Aufbau der PractitionerRole-ID sind unter Profil: PractitionerRole im Abschnitt Fachlicher Kontext
zu finden. Die PractitionerRole-ID kann mithilfe der Interaktion PractitionerRole abrufen (PractitionerRole Search) ermittelt werden.
Request
Das Anlegen eines Terminprofils erfordert einen POST-Request.
Das neu anzulegende Terminprofil muss im Request Body übergeben werden (siehe hierzu Abschnitt Request Body
).
HTTP Method | POST |
URL | https://terminsynchronisation.eterminservice.kv-safenet.de/tvs/terminsynchronisation/api/Schedule |
Request Body | [schedule] |
Request Header
Folgende Request Header werden von den Systemen des 116117 Terminservices unterstützt und verarbeitet:
Header | Verpflichtend? | Beschreibung | Wert |
---|---|---|---|
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 neu angelegte Ressource im Response Body enthalten sein soll. Die Systeme des 116117 Terminservices werten diesen Header NICHT aus. Das im 116117 Terminservice neu erstellte Terminprofil wird in der Antwort (Response) auf einen create-Request IMMER mit zurückgegeben.
Request Body
Der Request Body muss das Terminprofil enthalten, das im 116117 Terminservice erstellt werden soll. Eine ausführliche Beschreibung des Terminprofil-Profils sowie Beispiele sind unter Profil: Terminprofil (Schedule) zu finden.
Bitte beachten:
Die ID eines Terminprofils (zu finden im Feld
Schedule.id
) wird ausschließlich durch die Systeme des 116117 Terminservices festgelegt. Wird in einem create-Request ein Terminprofil mit ID übergeben, so wird diese ID von den Systemen des 116117 Terminservices NICHT verarbeitet.Der Terminprofil-Typ (zu finden im Feld
Schedule.extension:weitereParameter.extension:terminprofiltyp
) wird ausschließlich durch die Systeme des 116117 Terminservices festgelegt. Wird in einem create-Request ein Terminprofil mit Terminprofiltyp übergeben, so wird dieser Wert von den Systemen des 116117 Terminservices NICHT verarbeitet.Ein Terminprofil muss immer einer PractitionerRole zugeordnet sein. Die PractitionerRole wird im Feld
Schedule.actor
über eine absolute URL referenziert (siehe hierzu AbschnittBeschreibung und fachlicher Kontext
auf dieser Seite). Die dafür notwendige PractitionerRole-ID kann mithilfe der Interaktion PractitionerRole abrufen (PractitionerRole Search) ermittelt werden.
Beispiele
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 Anlegen von Terminprofilen wird im Erfolgsfall der HTTP-Statuscode 201 Created
sowie das neu erstellte Terminprofil 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/Schedule/c98db2da-9cf5-4370-b54b-ef981c53abxx |
ETag |
Gibt die Version der neu erstellten Ressource an. | 1 |
Response Body
Im Erfolgsfall ist im Response Body das neu erstellte Terminprofil enthalten. Beim Erstellen des Terminprofils im 116117 Terminservice wird dem Terminprofil automatisch eine ID (im Feld Schedule.id
) und eine Version (im Feld Schedule.meta.versionId
) zugewiesen. Beide Felder sind im Terminprofil, das im Response Body enthalten ist, befüllt. Weitere Details zum Terminprofil-Profil sind unter Profil: Terminprofil (Schedule) 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.
<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>