<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="cde-tobacco-smoking-status" />
  <url value="http://somewhere.org/fhir/uv/myig/StructureDefinition/cde-tobacco-smoking-status" />
  <version value="0.2.0" />
  <name value="CDE_TobaccoSmokingStatus" />
  <title value="CDE Smoking Status" />
  <status value="active" />
  <date value="2023-03-09T12:00:30.596245+00:00" />
  <description value="Dieses CDE enthält den 'Raucherstatus'." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="sct-concept" />
    <uri value="http://snomed.info/conceptdomain" />
    <name value="SNOMED CT Concept Domain Binding" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </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="sct-attr" />
    <uri value="http://snomed.org/attributebinding" />
    <name value="SNOMED CT Attribute Binding" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://somewhere.org/fhir/uv/myig/StructureDefinition/cls-snomed-finding-of-tobacco-use-and-exposure" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation.code">
      <path value="Observation.code" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding.system">
      <path value="Observation.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.code.coding.code">
      <path value="Observation.code.coding.code" />
      <min value="1" />
      <fixedCode value="72166-2" />
    </element>
    <element id="Observation.code.text">
      <path value="Observation.code.text" />
      <min value="1" />
      <patternString value="Tobacco smoking status" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.valueCodeableConcept">
      <path value="Observation.valueCodeableConcept" />
      <min value="0" />
      <max value="0" />
      <type>
        <code value="CodeableConcept" />
      </type>
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code.coding.code" />
        </discriminator>
        <description value="Slice basiert auf component.code.coding.code #value" />
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component.valueCodeableConcept">
      <path value="Observation.component.valueCodeableConcept" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="http://somewhere.org/fhir/uv/myig/ValueSet/vs-smoking-status" />
      </binding>
    </element>
    <element id="Observation.component:smokesDaily">
      <path value="Observation.component" />
      <sliceName value="smokesDaily" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:smokesDaily.code">
      <path value="Observation.component.code" />
      <short value="Daily Smoker" />
      <definition value="Current consumption of cigarettes, cigars, pipes or chewing tobacco; in case of daily or occasional smoking (≥ 1x/month)." />
      <comment value="Zusätzliche Codes, die diesen Code übersetzen oder abbilden, sind erlaubt. Beispielsweise ein granularerer LOINC-Code oder Code, der lokal in einem System verwendet wird." />
      <alias value="Alltagsraucher" />
      <alias value="Smoker" />
    </element>
    <element id="Observation.component:smokesDaily.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:smokesDaily.code.coding:smokesDailySNOMEDCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="smokesDailySNOMEDCode" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:smokesDaily.code.coding:smokesDailySNOMEDCode.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.component:smokesDaily.code.coding:smokesDailySNOMEDCode.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="449868002" />
    </element>
    <element id="Observation.component:smokesDaily.code.coding:smokesDailyLOINCCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="smokesDailyLOINCCode" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:occasionalSmoker">
      <path value="Observation.component" />
      <sliceName value="occasionalSmoker" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:occasionalSmoker.code">
      <path value="Observation.component.code" />
      <short value="Occasional Tobacco Smoker" />
      <definition value="Consumption of cigarettes, cigars, pipes or chewing tobacco; in case of less than 1x/month)." />
      <comment value="Zusätzliche Codes, die diesen Code übersetzen oder abbilden, sind erlaubt. Beispielsweise ein granularerer LOINC-Code oder Code, der lokal in einem System verwendet wird." />
      <alias value="Gelegenheitsraucher" />
      <alias value="Occasional Smoker" />
    </element>
    <element id="Observation.component:occasionalSmoker.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:occasionalSmoker.code.coding:occasionalSmokerSNOMEDCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="occasionalSmokerSNOMEDCode" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:occasionalSmoker.code.coding:occasionalSmokerSNOMEDCode.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.component:occasionalSmoker.code.coding:occasionalSmokerSNOMEDCode.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="428041000124106" />
    </element>
    <element id="Observation.component:occasionalSmoker.code.coding:occasionalSmokerLOINCCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="occasionalSmokerLOINCCode" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:exSmoker">
      <path value="Observation.component" />
      <sliceName value="exSmoker" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:exSmoker.code">
      <path value="Observation.component.code" />
      <short value="Ex-Smoker" />
      <definition value="Previous use of cigarettes, cigars, pipes or chewing tobacco; in case of daily or occasional smoking (≥ 1x/month); 'ex-smoker' in case of abstinence of more than 6 months." />
      <comment value="Zusätzliche Codes, die diesen Code übersetzen oder abbilden, sind erlaubt. Beispielsweise ein granularerer LOINC-Code oder Code, der lokal in einem System verwendet wird." />
      <alias value="Former Raucher" />
      <alias value="Ehemaliger Raucher" />
    </element>
    <element id="Observation.component:exSmoker.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:exSmoker.code.coding:exSmokerSNOMEDCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="exSmokerSNOMEDCode" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:exSmoker.code.coding:exSmokerSNOMEDCode.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.component:exSmoker.code.coding:exSmokerSNOMEDCode.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="8517006" />
    </element>
    <element id="Observation.component:exSmoker.code.coding:exSmokerLOINCCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="exSmokerLOINCCode" />
      <min value="0" />
      <max value="1" />
    </element>
    <element id="Observation.component:exSmoker.code.coding:exSmokerLOINCCode.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:exSmoker.code.coding:exSmokerLOINCCode.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="LA15920-4" />
    </element>
    <element id="Observation.component:nonSmoker">
      <path value="Observation.component" />
      <sliceName value="nonSmoker" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:nonSmoker.code">
      <path value="Observation.component.code" />
      <short value="Non-Smoker" />
      <definition value="Non-smoker" />
      <comment value="Zusätzliche Codes, die diesen Code übersetzen oder abbilden, sind erlaubt. Beispielsweise ein granularerer LOINC-Code oder Code, der lokal in einem System verwendet wird." />
      <alias value="Never smoker" />
      <alias value="Nichtraucher" />
    </element>
    <element id="Observation.component:nonSmoker.code.coding">
      <path value="Observation.component.code.coding" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:nonSmoker.code.coding:nonSmokerSNOMEDCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="nonSmokerSNOMEDCode" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:nonSmoker.code.coding:nonSmokerSNOMEDCode.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
    </element>
    <element id="Observation.component:nonSmoker.code.coding:nonSmokerSNOMEDCode.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="8392000" />
    </element>
    <element id="Observation.component:nonSmoker.code.coding:nonSmokerLOINCCode">
      <path value="Observation.component.code.coding" />
      <sliceName value="nonSmokerLOINCCode" />
      <min value="0" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component:nonSmoker.code.coding:nonSmokerLOINCCode.system">
      <path value="Observation.component.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://loinc.org" />
    </element>
    <element id="Observation.component:nonSmoker.code.coding:nonSmokerLOINCCode.code">
      <path value="Observation.component.code.coding.code" />
      <min value="1" />
      <fixedCode value="LA18978-9" />
    </element>
  </differential>
</StructureDefinition>