<?xml version="1.0" encoding="UTF-8"?>

<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="reason-type-laboratory-extension"/>
  <language value="de"/>
  <url value="https://gematik.de/fhir/ti/StructureDefinition/reason-type-laboratory-extension"/>
  <version value="1.5.0"/>
  <name value="ReasonTypeLaboratoryExtension"/>
  <title value="Reason Type Laboratory Extension"/>
  <status value="active"/>
  <experimental value="false"/>
  <date value="2026-11-16"/>
  <publisher value="gematik GmbH"/>
  <contact>
    <name value="gematik GmbH"/>
    <telecom>
      <system value="url"/>
      <value value="https://www.gematik.de"/>
    </telecom>
    <telecom>
      <system value="email"/>
      <value value="patientteam [ at ] gematik.de"/>
    </telecom>
  </contact>
  <description value="Diese Extension dient der Unterscheidung zwischen Anlass und Veranlassungsgrund des Laborauftrags. Der Anlass der Labordiagnostik wird als prozessuale Fragestellung formuliert. Diese Angabe dient der Fokussierung der Beurteilung. Der Veranlassungsgrund der Labordiagnostik wird als medizinische Fragestellung formuliert. Diese Angabe dient der fachlichen Präzision der Beurteilung."/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="DE"/>
    </coding>
  </jurisdiction>
  <copyright value="gematik GmbH / Dieses Artefakt ist lizenziert unter [Apache License](./license.html), Version 2.0."/>
  <fhirVersion value="4.0.1"/>
  <mapping>
    <identity value="rim"/>
    <uri value="http://hl7.org/v3"/>
    <name value="RIM Mapping"/>
  </mapping>
  <kind value="complex-type"/>
  <abstract value="false"/>
  <context>
    <type value="element"/>
    <expression value="ServiceRequest.reasonCode"/>
  </context>
  <type value="Extension"/>
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension"/>
  <derivation value="constraint"/>
  <snapshot>
    <extension url="http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version">
      <valueString value="4.0.1"/>
    </extension>
    <element id="Extension">
      <path value="Extension"/>
      <short value="Reason Type Laboratory Extension"/>
      <definition value="Diese Extension dient der Unterscheidung zwischen Anlass und Veranlassungsgrund des Laborauftrags. Der Anlass der Labordiagnostik wird als prozessuale Fragestellung formuliert. Diese Angabe dient der Fokussierung der Beurteilung. Der Veranlassungsgrund der Labordiagnostik wird als medizinische Fragestellung formuliert. Diese Angabe dient der fachlichen Präzision der Beurteilung."/>
      <min value="0"/>
      <max value="*"/>
      <base>
        <path value="Extension"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <condition value="ele-1"/>
      <constraint>
        <key value="ele-1"/>
        <severity value="error"/>
        <human value="All FHIR elements must have a @value or children"/>
        <expression value="hasValue() or (children().count() &gt; id.count())"/>
        <xpath value="@value|f:*|h:div"/>
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/>
      </constraint>
      <constraint>
        <key value="ext-1"/>
        <severity value="error"/>
        <human value="Must have either extensions or value[x], not both"/>
        <expression value="extension.exists() != value.exists()"/>
        <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])"/>
        <source value="http://hl7.org/fhir/StructureDefinition/Extension"/>
      </constraint>
      <isModifier value="false"/>
    </element>
    <element id="Extension.id">
      <path value="Extension.id"/>
      <representation value="xmlAttr"/>
      <short value="Unique id for inter-element referencing"/>
      <definition value="Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="Element.id"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
          <valueUrl value="string"/>
        </extension>
        <code value="http://hl7.org/fhirpath/System.String"/>
      </type>
      <isModifier value="false"/>
      <isSummary value="false"/>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element id="Extension.extension">
      <path value="Extension.extension"/>
      <slicing>
        <discriminator>
          <type value="value"/>
          <path value="url"/>
        </discriminator>
        <description value="Extensions are always sliced by (at least) url"/>
        <rules value="open"/>
      </slicing>
      <short value="Extension"/>
      <definition value="An Extension"/>
      <min value="0"/>
      <max value="0"/>
      <base>
        <path value="Element.extension"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <type>
        <code value="Extension"/>
      </type>
      <constraint>
        <key value="ele-1"/>
        <severity value="error"/>
        <human value="All FHIR elements must have a @value or children"/>
        <expression value="hasValue() or (children().count() &gt; id.count())"/>
        <xpath value="@value|f:*|h:div"/>
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/>
      </constraint>
      <constraint>
        <key value="ext-1"/>
        <severity value="error"/>
        <human value="Must have either extensions or value[x], not both"/>
        <expression value="extension.exists() != value.exists()"/>
        <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), &quot;value&quot;)])"/>
        <source value="http://hl7.org/fhir/StructureDefinition/Extension"/>
      </constraint>
      <isModifier value="false"/>
      <isSummary value="false"/>
    </element>
    <element id="Extension.url">
      <path value="Extension.url"/>
      <representation value="xmlAttr"/>
      <short value="identifies the meaning of the extension"/>
      <definition value="Source of the definition for the extension code - a logical name or a URL."/>
      <comment value="The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension."/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="Extension.url"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
          <valueUrl value="uri"/>
        </extension>
        <code value="http://hl7.org/fhirpath/System.String"/>
      </type>
      <fixedUri value="https://gematik.de/fhir/ti/StructureDefinition/reason-type-laboratory-extension"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element id="Extension.value[x]">
      <path value="Extension.value[x]"/>
      <short value="Value of extension"/>
      <definition value="Value of extension - must be one of a constrained set of the data types (see [Extensibility](http://hl7.org/fhir/R4/extensibility.html) for a list)."/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="Extension.value[x]"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
      <condition value="ele-1"/>
      <constraint>
        <key value="ele-1"/>
        <severity value="error"/>
        <human value="All FHIR elements must have a @value or children"/>
        <expression value="hasValue() or (children().count() &gt; id.count())"/>
        <xpath value="@value|f:*|h:div"/>
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/>
      </constraint>
      <constraint>
        <key value="lab-reason-1"/>
        <severity value="error"/>
        <human value="Reason can only be one of 'Anlass' and 'Veranlassungsgrund'."/>
        <expression value="$this = 'Anlass' or $this = 'Veranlassungsgrund'"/>
        <source value="https://gematik.de/fhir/ti/StructureDefinition/reason-type-laboratory-extension"/>
      </constraint>
      <isModifier value="false"/>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
  </snapshot>
  <differential>
    <element id="Extension">
      <path value="Extension"/>
      <short value="Reason Type Laboratory Extension"/>
      <definition value="Diese Extension dient der Unterscheidung zwischen Anlass und Veranlassungsgrund des Laborauftrags. Der Anlass der Labordiagnostik wird als prozessuale Fragestellung formuliert. Diese Angabe dient der Fokussierung der Beurteilung. Der Veranlassungsgrund der Labordiagnostik wird als medizinische Fragestellung formuliert. Diese Angabe dient der fachlichen Präzision der Beurteilung."/>
    </element>
    <element id="Extension.extension">
      <path value="Extension.extension"/>
      <max value="0"/>
    </element>
    <element id="Extension.url">
      <path value="Extension.url"/>
      <fixedUri value="https://gematik.de/fhir/ti/StructureDefinition/reason-type-laboratory-extension"/>
    </element>
    <element id="Extension.value[x]">
      <path value="Extension.value[x]"/>
      <min value="1"/>
      <type>
        <code value="string"/>
      </type>
      <constraint>
        <key value="lab-reason-1"/>
        <severity value="error"/>
        <human value="Reason can only be one of 'Anlass' and 'Veranlassungsgrund'."/>
        <expression value="$this = 'Anlass' or $this = 'Veranlassungsgrund'"/>
        <source value="https://gematik.de/fhir/ti/StructureDefinition/reason-type-laboratory-extension"/>
      </constraint>
    </element>
  </differential>
</StructureDefinition>