<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ISiKKontaktGesundheitseinrichtung" />
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-category">
    <valueString value="Base.Management" />
  </extension>
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-security-category">
    <valueCode value="patient" />
  </extension>
  <url value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
  <version value="2.0.0" />
  <name value="ISiKKontaktGesundheitseinrichtung" />
  <status value="draft" />
  <experimental value="false" />
  <date value="2021-11-12" />
  <publisher value="gematik GmbH" />
  <description value="Dieses Profil ermöglicht die Herstellung eines Fallbezuges welcher in der Mehrheit der ISiK Szenarien im Krankenhaus essentiell ist." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Encounter" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Encounter" />
  <derivation value="constraint" />
  <differential>
    <element id="Encounter">
      <path value="Encounter" />
      <constraint>
        <key value="ISiK-enc-1" />
        <severity value="error" />
        <human value="Abgeschlossene, ambulante Kontakte sollten einen Start-Zeitpunkt angeben" />
        <expression value="status = 'finished' and class = 'AMB' implies period.start.exists()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-2" />
        <severity value="error" />
        <human value="Abgeschlossene, stationäre Kontakte sollten einen Start- und End-Zeitpunkt angeben" />
        <expression value="status = 'finished' and class = 'IMP' implies period.start.exists() and period.end.exists()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-3" />
        <severity value="error" />
        <human value="Geplante Kontakte sollten keinen Start- oder End-Zeitpunkt angeben" />
        <expression value="status = 'planned' implies period.exists().not()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-4" />
        <severity value="warning" />
        <human value="Geplante Kontakte sollten die Extensions für den geplanten Start- oder End-Zeitpunkt verwenden" />
        <expression value="status = 'planned' implies extension.where(url = 'http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedStartDate').exists()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-5" />
        <severity value="error" />
        <human value="In-Durchführung befindliche Kontakte sollten einen Start-Zeitpunkt angeben" />
        <expression value="status = 'in-progress' implies period.start.exists()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-6" />
        <severity value="error" />
        <human value="Kontakte mit Abwesenheitsstatus sollten einen Start-Zeitpunkt angeben" />
        <expression value="status = 'onleave' implies period.start.exists()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-7" />
        <severity value="warning" />
        <human value="Kontakte mit unbekannten Status sollten einen Start-Zeitpunkt angeben" />
        <expression value="status = 'unknown' implies period.start.exists()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-8" />
        <severity value="error" />
        <human value="Die Rolle der assoziierten Diagnose(n) darf nicht 'Billing' sein" />
        <expression value="diagnosis.use.all(coding.code != 'billing')" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
      <constraint>
        <key value="ISiK-enc-9" />
        <severity value="error" />
        <human value="Falls eine Referenz auf den Abrechnungsfall vorliegt, sollte der Identifier dieses Abrechnungsfalles vorliegen" />
        <expression value="account.reference.exists() implies account.identifier.exists()" />
        <source value="https://gematik.de/fhir/ISiK/v2/StructureDefinition/ISiKKontaktGesundheitseinrichtung" />
      </constraint>
    </element>
    <element id="Encounter.id">
      <path value="Encounter.id" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.extension">
      <path value="Encounter.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.extension:Aufnahmegrund">
      <path value="Encounter.extension" />
      <sliceName value="Aufnahmegrund" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/Aufnahmegrund" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.extension:Aufnahmegrund.extension:ErsteUndZweiteStelle">
      <path value="Encounter.extension.extension" />
      <sliceName value="ErsteUndZweiteStelle" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.extension:Aufnahmegrund.extension:DritteStelle">
      <path value="Encounter.extension.extension" />
      <sliceName value="DritteStelle" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.extension:Aufnahmegrund.extension:VierteStelle">
      <path value="Encounter.extension.extension" />
      <sliceName value="VierteStelle" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.extension:plannedStartDate">
      <path value="Encounter.extension" />
      <sliceName value="plannedStartDate" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedStartDate" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.extension:plannedEndDate">
      <path value="Encounter.extension" />
      <sliceName value="plannedEndDate" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.plannedEndDate" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier">
      <path value="Encounter.identifier" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer">
      <path value="Encounter.identifier" />
      <sliceName value="Aufnahmenummer" />
      <min value="0" />
      <max value="1" />
      <patternIdentifier>
        <type>
          <coding>
            <system value="http://terminology.hl7.org/CodeSystem/v2-0203" />
            <code value="VN" />
          </coding>
        </type>
      </patternIdentifier>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer.type">
      <path value="Encounter.identifier.type" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer.type.coding">
      <path value="Encounter.identifier.type.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer.type.coding:vn-type">
      <path value="Encounter.identifier.type.coding" />
      <sliceName value="vn-type" />
      <min value="1" />
      <max value="1" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/v2-0203" />
        <code value="VN" />
      </patternCoding>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer.type.coding:vn-type.system">
      <path value="Encounter.identifier.type.coding.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer.type.coding:vn-type.code">
      <path value="Encounter.identifier.type.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer.system">
      <path value="Encounter.identifier.system" />
      <min value="1" />
    </element>
    <element id="Encounter.identifier:Aufnahmenummer.value">
      <path value="Encounter.identifier.value" />
      <min value="1" />
    </element>
    <element id="Encounter.status">
      <path value="Encounter.status" />
      <short value="planned | in-progress | onleave | finished | cancelled +" />
      <definition value="planned | in-progress | onleave | finished | cancelled +." />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="Eingeschränkter Status vgl. FHIR R5" />
        <valueSet value="http://fhir.de/ValueSet/EncounterStatusDe" />
      </binding>
    </element>
    <element id="Encounter.class">
      <path value="Encounter.class" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/EncounterClassDE" />
      </binding>
    </element>
    <element id="Encounter.type">
      <path value="Encounter.type" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.type:Kontaktebene">
      <path value="Encounter.type" />
      <sliceName value="Kontaktebene" />
      <min value="1" />
      <max value="1" />
      <patternCodeableConcept>
        <coding>
          <code value="Fachabteilungskontakt" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="EncounterType" />
        </extension>
        <strength value="example" />
        <description value="Kontaktebene" />
        <valueSet value="http://hl7.org/fhir/ValueSet/encounter-type" />
      </binding>
    </element>
    <element id="Encounter.type:KontaktArt">
      <path value="Encounter.type" />
      <sliceName value="KontaktArt" />
      <min value="0" />
      <max value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://fhir.de/CodeSystem/kontaktart-de" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/kontaktart-de" />
      </binding>
    </element>
    <element id="Encounter.serviceType">
      <path value="Encounter.serviceType" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.serviceType.coding">
      <path value="Encounter.serviceType.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.serviceType.coding:Fachabteilungsschluessel">
      <path value="Encounter.serviceType.coding" />
      <sliceName value="Fachabteilungsschluessel" />
      <min value="1" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/dkgev/Fachabteilungsschluessel" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/dkgev/Fachabteilungsschluessel" />
      </binding>
    </element>
    <element id="Encounter.serviceType.coding:ErweiterterFachabteilungsschluessel">
      <path value="Encounter.serviceType.coding" />
      <sliceName value="ErweiterterFachabteilungsschluessel" />
      <min value="0" />
      <max value="1" />
      <patternCoding>
        <system value="http://fhir.de/CodeSystem/dkgev/Fachabteilungsschluessel-erweitert" />
      </patternCoding>
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/dkgev/Fachabteilungsschluessel-erweitert" />
      </binding>
    </element>
    <element id="Encounter.subject">
      <path value="Encounter.subject" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.subject.reference">
      <path value="Encounter.subject.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.period">
      <path value="Encounter.period" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.period.start">
      <path value="Encounter.period.start" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.period.end">
      <path value="Encounter.period.end" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.diagnosis">
      <path value="Encounter.diagnosis" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.diagnosis.condition">
      <path value="Encounter.diagnosis.condition" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.diagnosis.condition.reference">
      <path value="Encounter.diagnosis.condition.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.diagnosis.use">
      <path value="Encounter.diagnosis.use" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.diagnosis.use.coding">
      <path value="Encounter.diagnosis.use.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.diagnosis.use.coding:Diagnosetyp">
      <path value="Encounter.diagnosis.use.coding" />
      <sliceName value="Diagnosetyp" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/DiagnoseTyp" />
      </binding>
    </element>
    <element id="Encounter.diagnosis.use.coding:DiagnosesubTyp">
      <path value="Encounter.diagnosis.use.coding" />
      <sliceName value="DiagnosesubTyp" />
      <min value="0" />
      <max value="*" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://fhir.de/ValueSet/Diagnosesubtyp" />
      </binding>
    </element>
    <element id="Encounter.diagnosis.rank">
      <path value="Encounter.diagnosis.rank" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.account">
      <path value="Encounter.account" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.account.reference">
      <path value="Encounter.account.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.account.identifier">
      <path value="Encounter.account.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.hospitalization">
      <path value="Encounter.hospitalization" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.hospitalization.extension">
      <path value="Encounter.hospitalization.extension" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Encounter.hospitalization.extension:Wahlleistung">
      <path value="Encounter.hospitalization.extension" />
      <sliceName value="Wahlleistung" />
      <min value="0" />
      <max value="*" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/Wahlleistung" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.hospitalization.admitSource">
      <path value="Encounter.hospitalization.admitSource" />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
        <valueSet value="http://fhir.de/ValueSet/dgkev/Aufnahmeanlass" />
      </binding>
    </element>
    <element id="Encounter.hospitalization.dischargeDisposition">
      <path value="Encounter.hospitalization.dischargeDisposition" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.hospitalization.dischargeDisposition.extension:Entlassungsgrund">
      <path value="Encounter.hospitalization.dischargeDisposition.extension" />
      <sliceName value="Entlassungsgrund" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://fhir.de/StructureDefinition/Entlassungsgrund" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location">
      <path value="Encounter.location" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="physicalType" />
        </discriminator>
        <rules value="closed" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location.physicalType">
      <path value="Encounter.location.physicalType" />
      <binding>
        <strength value="extensible" />
        <valueSet value="https://gematik.de/fhir/ISiK/v2/ValueSet/ISiKLocationPhysicalType" />
      </binding>
    </element>
    <element id="Encounter.location:Zimmer">
      <path value="Encounter.location" />
      <sliceName value="Zimmer" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Zimmer.location">
      <path value="Encounter.location.location" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Zimmer.location.identifier">
      <path value="Encounter.location.location.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Zimmer.location.display">
      <path value="Encounter.location.location.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Zimmer.physicalType">
      <path value="Encounter.location.physicalType" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/location-physical-type" />
          <code value="ro" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Bett">
      <path value="Encounter.location" />
      <sliceName value="Bett" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Bett.location">
      <path value="Encounter.location.location" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Bett.location.identifier">
      <path value="Encounter.location.location.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Bett.location.display">
      <path value="Encounter.location.location.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Bett.physicalType">
      <path value="Encounter.location.physicalType" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/location-physical-type" />
          <code value="bd" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Station">
      <path value="Encounter.location" />
      <sliceName value="Station" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Station.location">
      <path value="Encounter.location.location" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Station.location.identifier">
      <path value="Encounter.location.location.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Station.location.display">
      <path value="Encounter.location.location.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.location:Station.physicalType">
      <path value="Encounter.location.physicalType" />
      <min value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/location-physical-type" />
          <code value="wa" />
        </coding>
      </patternCodeableConcept>
      <mustSupport value="true" />
    </element>
    <element id="Encounter.serviceProvider">
      <path value="Encounter.serviceProvider" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.serviceProvider.identifier">
      <path value="Encounter.serviceProvider.identifier" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Encounter.serviceProvider.display">
      <path value="Encounter.serviceProvider.display" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>