<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="KBV-PR-116117-TERMINSERVICE-TVS-TSYNCH-Appointment" />
  <text>
    <status value="generated" />
    <div xmlns="http://www.w3.org/1999/xhtml">Diese Ressource beschreibt einen gebuchten Termin und enthaelt Buchungsinformationen wie Datum und Uhrzeit des Termins, gebuchte Leistungsmerkmale und gebuchte Dringlichkeit.</div>
  </text>
  <url value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Appointment" />
  <version value="1.0.0" />
  <name value="KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Appointment" />
  <title value="KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Appointment" />
  <status value="active" />
  <publisher value="kv.digital GmbH" />
  <contact>
    <name value="kv.digital GmbH" />
    <telecom>
      <system value="url" />
      <value value="https://www.kv.digital" />
    </telecom>
  </contact>
  <description value="Diese Ressource beschreibt einen gebuchten Termin und enthält Buchungsinformationen wie Datum und Uhrzeit des Termins, gebuchte Leistungsmerkmale und gebuchte Dringlichkeit." />
  <copyright value="Im folgenden Profil können Codes aus den Code-Systemen SNOMED CT®, LOINC, Ucum, ATC, ICD-10-GM, ICD-10-WHO, OPS, Alpha-ID/Alpha-ID-SE und ICF enthalten sein, die dem folgenden Urheberrecht unterliegen: This material includes SNOMED CT® Clinical Terms® (SNOMED CT® CT®) which is used by permission of SNOMED CT® International. All rights reserved. SNOMED CT® CT®, was originally created by The College of American Pathologists. SNOMED CT® and SNOMED CT® CT are registered trademarks of SNOMED CT® International. Implementers of these artefacts must have the appropriate SNOMED CT® CT Affiliate license. This material contains content from LOINC (http://LOINC.org). LOINC is copyright © 1995-2020, Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee and is available at no cost under the license at http://LOINC.org/license. LOINC® is a registered United States trademark of Regenstrief Institute, Inc. This product includes all or a portion of the UCUM table, UCUM codes, and UCUM definitions or is derived from it, subject to a license from Regenstrief Institute, Inc. and The UCUM Organization. Your use of the UCUM table, UCUM codes, UCUM definitions also is subject to this license, a copy of which is available at http://unitsofmeasure.org. The current complete UCUM table, UCUM Specification are available for download at http://unitsofmeasure.org. The UCUM table and UCUM codes are copyright © 1995-2009, Regenstrief Institute, Inc. and the Unified Codes for Units of Measures (UCUM) Organization. All rights reserved. THE UCUM TABLE (IN ALL FORMATS), UCUM DEFINITIONS, AND SPECIFICATION ARE PROVIDED 'AS IS.' ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Dieses Material enthält Inhalte aus ATC. Die Erstellung erfolgte unter Verwendung der Datenträger der amtlichen Fassung der ATCKlassifikation mit DDD des Bundesinstituts für Arzneimittel und Medizinprodukte (BfArM). Dieses Material enthält Inhalte aus ICD-10-GM, ICD-10-WHO, OPS Alpha-ID ans Alpha-ID-SE. Die Erstellung erfolgt unter Verwendung der maschinenlesbaren Fassung des Bundesinstituts für Arzneimittel und Medizinprodukte (BfArM). Dieses Material enthält Inhalte aus ICF. Die Erstellung erfolgt unter Verwendung der maschinenlesbaren Fassung des Deutschen Instituts für Medizinische Dokumentation und Information (DIMDI). ICF-Kodes, -Begriffe und -Texte © Weltgesundheitsorganisation, übersetzt und herausgegeben durch das Deutsche Institut für Medizinische Dokumentation und Information von der International classification of functioning, disability and health - ICF, herausgegeben durch die Weltgesundheitsorganisation." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Appointment" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Appointment" />
  <derivation value="constraint" />
  <differential>
    <element id="Appointment">
      <path value="Appointment" />
      <short value="Ein Termin, den ein Patient bei einem Arzt wahrnimmt" />
      <definition value="Diese Ressource beschreibt einen gebuchten Termin und enthält Buchungsinformationen wie Datum und Uhrzeit des Termins, gebuchte Leistungsmerkmale und gebuchte Dringlichkeit." />
    </element>
    <element id="Appointment.id">
      <path value="Appointment.id" />
      <short value="ID der Terminbuchung" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.meta">
      <path value="Appointment.meta" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.meta.versionId">
      <path value="Appointment.meta.versionId" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.meta.profile">
      <path value="Appointment.meta.profile" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Appointment.meta.profile:kvdigitalProfil">
      <path value="Appointment.meta.profile" />
      <sliceName value="kvdigitalProfil" />
      <min value="1" />
      <max value="1" />
      <patternCanonical value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Appointment|1.0.0" />
    </element>
    <element id="Appointment.text">
      <path value="Appointment.text" />
      <definition value="In diesem Element können die in der Instanz enthaltenen Informationen in einer menschenlesbaren Form zusammengefasst werden. Dabei ist zu beachten, dass keine Informationen aufgenommen werden dürfen, die nicht in strukturierter Form an anderer Stelle in der Instanz enthalten sind." />
    </element>
    <element id="Appointment.text.status">
      <path value="Appointment.text.status" />
      <fixedCode value="extensions" />
    </element>
    <element id="Appointment.text.div">
      <path value="Appointment.text.div" />
      <definition value="In diesem Element können die in der Instanz enthaltenen Informationen in einer menschenlesbaren Form zusammengefasst werden. Dabei ist zu beachten, dass keine Informationen aufgenommen werden dürfen, die nicht in strukturierter Form an anderer Stelle in der Instanz enthalten sind." />
    </element>
    <element id="Appointment.extension">
      <path value="Appointment.extension" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.extension:gebuchtDurch">
      <path value="Appointment.extension" />
      <sliceName value="gebuchtDurch" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Appointment_Booked_By" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Appointment.status">
      <path value="Appointment.status" />
      <short value="pending | booked | arrived | cancelled | noshow" />
      <definition value="Status der Terminbuchung:&#xD;&#xA;pending = Die Buchung einer Videosprechstunde wurde vom Patienten noch nicht bestätigt.&#xD;&#xA;booked = Die Buchung eines Termins wurde bestätigt.&#xD;&#xA;arrived = Der Patient ist zum gebuchten Termin erschienen.&#xD;&#xA;cancelled = Die Buchung eines Termins wurde abgesagt.&#xD;&#xA;noshow = Der Patient ist nicht zum gebuchten Termin erschienen." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="Status welche die Terminbuchung haben kann" />
        <valueSet value="https://fhir.kbv.de/ValueSet/KBV_VS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Appointment_Status" />
      </binding>
    </element>
    <element id="Appointment.cancelationReason">
      <path value="Appointment.cancelationReason" />
      <short value="Gibt an, wer diese Buchung abgesagt hat" />
      <definition value="Kommt es zu einer Absage des gebuchten Termins, muss angegeben werden, ob die Absage durch den Patienten oder die Praxis/medizinische Einrichtung erfolgte." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.kbv.de/ValueSet/KBV_VS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Appointment_Cancelled_By" />
      </binding>
    </element>
    <element id="Appointment.cancelationReason.coding">
      <path value="Appointment.cancelationReason.coding" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason.coding.system">
      <path value="Appointment.cancelationReason.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/appointment-cancellation-reason" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason.coding.version">
      <path value="Appointment.cancelationReason.coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason.coding.code">
      <path value="Appointment.cancelationReason.coding.code" />
      <short value="pat | prov" />
      <definition value="pat = Der Patient hat die Terminbuchung abgesagt.&#xD;&#xA;prov = Die Praxis/medizinische Einrichtung hat die Terminbuchung abgesagt." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.cancelationReason.coding.display">
      <path value="Appointment.cancelationReason.coding.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType">
      <path value="Appointment.serviceType" />
      <short value="Gebuchte Leistungsmerkmale" />
      <definition value="Alle Leistungsmerkmale, die in diesem Termin gebucht wurden. Die Buchung kann nur Leistungsmerkmale enthalten, welche im zugrundeliegenden Terminslot bzw. Terminprofil angegeben sind." />
      <comment value="Unter Umständen kann es sein, dass ein Appointment keine gebuchten Leistungsmerkmale mehr besitzt, bspw. wenn ein Leistungsmerkmal veraltet ist und daher keine Repräsentation in einem der genannten CodeSystems existiert." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.kbv.de/ValueSet/KBV_VS_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Service_Types" />
      </binding>
    </element>
    <element id="Appointment.serviceType.id">
      <path value="Appointment.serviceType.id" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.coding">
      <path value="Appointment.serviceType.coding" />
      <short value="Coding eines Leistungsmerkmals" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.coding.system">
      <path value="Appointment.serviceType.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.coding.version">
      <path value="Appointment.serviceType.coding.version" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.coding.code">
      <path value="Appointment.serviceType.coding.code" />
      <short value="WBO-Kennziffer/Genehmigung/Zusatzqualifikation" />
      <definition value="Der Code der WBO-Kennziffer, Genehmigung oder Zusatzqualifikation gemäß der von der KBV veröffentlichten Schlüsseltabellen (bspw. &quot;027&quot;)" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.serviceType.coding.display">
      <path value="Appointment.serviceType.coding.display" />
      <short value="Name des Leistungsmerkmals" />
      <definition value="Menschenlesbare Bezeichnung des Leistungsmerkmals gemäß der von der KBV veröffentlichten Schlüsseltabellen (bspw. die Arztgruppe &quot;Hausärzte&quot;, die WBO &quot;TG Hämatologie&quot; oder die Zusatzqualifikation &quot;Allergologie&quot;)" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.priority">
      <path value="Appointment.priority" />
      <short value="Gebuchte Dringlichkeit" />
      <definition value="Die Dringlichkeit wird über die Extension &quot;gebuchteDringlichkeit&quot; angegeben." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.priority.extension">
      <path value="Appointment.priority.extension" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.priority.extension:gebuchteDringlichkeit">
      <path value="Appointment.priority.extension" />
      <sliceName value="gebuchteDringlichkeit" />
      <short value="Dringlichkeit, die bei der Buchung angegeben wurde" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.kbv.de/StructureDefinition/KBV_EX_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Urgency" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Appointment.priority.extension:gebuchteDringlichkeit.value[x]">
      <path value="Appointment.priority.extension.value[x]" />
      <definition value="Coding für die Dringlichkeit, die bei der Buchung angegeben wurde" />
    </element>
    <element id="Appointment.start">
      <path value="Appointment.start" />
      <short value="Startzeitpunkt des gebuchten Termins" />
      <definition value="Gibt den genauen Zeitpunkt an, an dem der gebuchte Termin beginnen soll." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.end">
      <path value="Appointment.end" />
      <short value="Endzeitpunkt des gebuchten Termins" />
      <definition value="Gibt den genauen Zeitpunkt an, an dem der gebuchte Termin enden soll." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.slot">
      <path value="Appointment.slot" />
      <short value="Referenz auf den zugehörigen Terminslot" />
      <definition value="Enthält die Referenz zum Terminslot, der durch diese Buchung verwendet wird." />
      <comment value="Beim Abrufen der abrechnungsrelevanten Informationen ist KEINE Referenz auf den Slot enthalten, da die Information für diesen Anwendungsfall nicht benötigt wird.&#xD;&#xA;Beim Abrufen für die Terminsynchronisation ist IMMER eine Referenz auf den Slot enthalten, da diese Information für diesen Anwendungsfall zwingend erforderlich ist." />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Slot" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.slot.reference">
      <path value="Appointment.slot.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.created">
      <path value="Appointment.created" />
      <short value="Zeitpunkt der Buchung" />
      <definition value="Zeitpunkt, an dem die Terminbuchung vorgenommen wurde." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.comment">
      <path value="Appointment.comment" />
      <short value="Behandlungshinweis" />
      <definition value="Hinweise des Patienten an den Arzt für diesen Termin (Bsp.: &quot;Allergisch gegen Latex&quot;)" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn">
      <path value="Appointment.basedOn" />
      <short value="Vermittlungscode, mit dem die Buchung vorgenommen wurde" />
      <definition value="Der Vermittlungscode ist ein eindeutiges Identifikationskennzeichen einer Vermittlung im Kontext des 116117 Terminservices und besteht aus 12 alphanumerischen Zeichen, welche zur besseren Lesbarkeit an der 4. und 8. Stelle mit einem Bindestrich getrennt sein können (Bsp.: XN6PF4HPZ5KX oder XN6P-F4HP-Z5KX)." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.identifier">
      <path value="Appointment.basedOn.identifier" />
      <short value="Vermittlungscode" />
      <definition value="Vermittlungscode, mit dem dieser Termin gebucht wurde" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.identifier.system">
      <path value="Appointment.basedOn.identifier.system" />
      <min value="1" />
      <fixedUri value="https://fhir.kbv.de/NamingSystem/KBV_NS_116117_TERMINSERVICE_Vermittlungscode" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.basedOn.identifier.value">
      <path value="Appointment.basedOn.identifier.value" />
      <short value="Vermittlungscode" />
      <definition value="Der Vermittlungscode ist eine 12-stellige, alphanumerische Folge von Zeichen, welche zur besseren Lesbarkeit an der 4. und 8. Stelle mit einem Bindestrich getrennt sein können (Bsp.: XN6PF4HPZ5KX oder XN6P-F4HP-Z5KX)." />
      <min value="1" />
      <example>
        <label value="Vermittlungscode ohne Bindestrich" />
        <valueString value="XN6PF4HPZ5KX" />
      </example>
      <example>
        <label value="Vermittlungscode mit Bindestrich" />
        <valueString value="XN6P-F4HP-Z5KX" />
      </example>
      <constraint>
        <key value="pattern" />
        <severity value="error" />
        <human value="Ein Vermittlungscode muss aus 12 alphanumerischen Zeichen bestehen und darf 2 Bindestriche enthalten" />
        <expression value="matches('^[A-DF-HJ-NP-Za-df-hj-np-z24-9]{4}-[A-DF-HJ-NP-Za-df-hj-np-z24-9]{4}-[A-DF-HJ-NP-Za-df-hj-np-z24-9]{4}$|^[A-DF-HJ-NP-Za-df-hj-np-z24-9]{12}$')" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant">
      <path value="Appointment.participant" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="actor.type" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <short value="Referenzen zur PractitionerRole und zum Patienten" />
      <definition value="Referenz zur PractitionerRole, die die Praxis/medizinische Einrichtung, die den Termin anbietet und ggf. den Arzt, der den Termin durchführt, enthält sowie Referenz zum Patienten, der den Termin wahrnimmt." />
      <min value="2" />
      <max value="2" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:practitionerRole">
      <path value="Appointment.participant" />
      <sliceName value="practitionerRole" />
      <short value="Referenz zur PractitionerRole" />
      <definition value="Referenz zur PractitionerRole, die die Praxis/medizinische Einrichtung, die den Termin anbietet und ggf. den Arzt enthält, der den Termin durchführt." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:practitionerRole.actor">
      <path value="Appointment.participant.actor" />
      <short value="Referenz zur PractitionerRole" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_PractitionerRole" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:practitionerRole.actor.reference">
      <path value="Appointment.participant.actor.reference" />
      <short value="Referenz zur PractitionerRole" />
      <definition value="Hierbei handelte es sich um eine absolute URL, die wie folgt aufgebaut ist: https://fhir.kbv.de/PractitionerRole/[id]" />
      <min value="1" />
      <example>
        <label value="Referenz mit ID abgeleitet aus BSNR" />
        <valueString value="https://fhir.kbv.de/PractitionerRole/123456789" />
      </example>
      <example>
        <label value="Referenz mit ID abgeleitet aus BSNR und ANR" />
        <valueString value="https://fhir.kbv.de/PractitionerRole/123456789-1112223" />
      </example>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:practitionerRole.actor.type">
      <path value="Appointment.participant.actor.type" />
      <short value="Typ der referenzierten Ressourcen: PractitionerRole" />
      <min value="1" />
      <fixedUri value="PractitionerRole" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:practitionerRole.status">
      <path value="Appointment.participant.status" />
      <fixedCode value="accepted" />
    </element>
    <element id="Appointment.participant:patient">
      <path value="Appointment.participant" />
      <sliceName value="patient" />
      <short value="Referenz zum Patient" />
      <definition value="Referenz zum Patienten, der den Termin wahrnimmt." />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:patient.actor">
      <path value="Appointment.participant.actor" />
      <short value="Referenz zum Patienten" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_116117_TERMINSERVICE_TVS_TERMINSYNCHRONISATION_Patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:patient.actor.reference">
      <path value="Appointment.participant.actor.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:patient.actor.type">
      <path value="Appointment.participant.actor.type" />
      <short value="Typ der referenzierten Ressourcen: Patient" />
      <min value="1" />
      <fixedUri value="Patient" />
      <mustSupport value="true" />
    </element>
    <element id="Appointment.participant:patient.status">
      <path value="Appointment.participant.status" />
      <fixedCode value="accepted" />
    </element>
  </differential>
</StructureDefinition>