<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="observation-de-ekg" />
  <url value="http://fhir.de/StructureDefinition/observation-de-ekg" />
  <version value="1.6.0-ballot" />
  <name value="EkgDE" />
  <title value="EKG Observation Profil" />
  <status value="active" />
  <experimental value="false" />
  <date value="2025-12-23" />
  <publisher value="HL7 Deutschland e.V. (Technisches Komitee FHIR)" />
  <contact>
    <telecom>
      <system value="url" />
      <value value="http://hl7.de/technische-komitees/fhir/" />
    </telecom>
  </contact>
  <description value="EKG Observation Profil" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.category">
      <path value="Observation.category" />
      <min value="1" />
    </element>
    <element id="Observation.category.coding">
      <path value="Observation.category.coding" />
      <patternCoding>
        <system value="http://terminology.hl7.org/CodeSystem/observation-category" />
        <code value="procedure" />
      </patternCoding>
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding:loinc">
      <path value="Observation.code.coding" />
      <sliceName value="loinc" />
      <min value="1" />
      <max value="1" />
      <patternCoding>
        <system value="http://loinc.org" />
        <code value="11524-6" />
      </patternCoding>
    </element>
    <element id="Observation.code.coding:snomed">
      <path value="Observation.code.coding" />
      <sliceName value="snomed" />
      <min value="0" />
      <max value="*" />
      <patternCoding>
        <system value="http://snomed.info/sct" />
        <code value="106073009" />
      </patternCoding>
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <min value="1" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <min value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <constraint>
        <key value="vs-de-1" />
        <severity value="error" />
        <human value="If Observation.effective[x] has a value then that value shall be precise to the day" />
        <expression value="(($this is dateTime) implies ($this as dateTime).toString().length() &gt;= 10) and ($this.start.exists() implies ($this.start as dateTime).toString().length() &gt;= 10) and ($this.end.exists() implies ($this.end as dateTime).toString().length() &gt;= 10)" />
        <source value="http://fhir.de/StructureDefinition/observation-de-ekg" />
      </constraint>
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <max value="0" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="Observation.component:ekgLeads">
      <path value="Observation.component" />
      <sliceName value="ekgLeads" />
      <short value="12 Kanal EKG Ableitungen" />
      <min value="0" />
      <max value="*" />
    </element>
    <element id="Observation.component:ekgLeads.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <description value="Loinc Part Codes identifying the EKG lead" />
        <valueSet value="http://fhir.de/ValueSet/EkgAbleitungenVS" />
      </binding>
    </element>
    <element id="Observation.component:ekgLeads.code.coding">
      <path value="Observation.component.code.coding" />
      <min value="1" />
    </element>
    <element id="Observation.component:ekgLeads.value[x]">
      <path value="Observation.component.value[x]" />
      <min value="1" />
      <type>
        <code value="SampledData" />
      </type>
    </element>
    <element id="Observation.component:ekgLeads.value[x].data">
      <path value="Observation.component.value[x].data" />
      <min value="1" />
    </element>
    <element id="Observation.component:deprecatedLeadCodes">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="deprecated" />
      </extension>
      <path value="Observation.component" />
      <sliceName value="deprecatedLeadCodes" />
      <comment value="Diese deprecated Slice verwendet Loinc Part Codes die nicht für die Nutzung in Instanzdaten vorgesehen sind" />
      <min value="0" />
      <max value="*" />
    </element>
    <element id="Observation.component:deprecatedLeadCodes.code">
      <path value="Observation.component.code" />
      <binding>
        <strength value="required" />
        <description value="Loinc Part Codes identifying the EKG lead" />
        <valueSet value="http://fhir.de/ValueSet/EkgLeads" />
      </binding>
    </element>
    <element id="Observation.component:deprecatedLeadCodes.code.coding">
      <path value="Observation.component.code.coding" />
      <min value="1" />
    </element>
    <element id="Observation.component:deprecatedLeadCodes.value[x]">
      <path value="Observation.component.value[x]" />
      <min value="1" />
      <type>
        <code value="SampledData" />
      </type>
    </element>
    <element id="Observation.component:deprecatedLeadCodes.value[x].data">
      <path value="Observation.component.value[x].data" />
      <min value="1" />
    </element>
  </differential>
</StructureDefinition>