<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="zib-SNAQ65plusScore" />
  <text>
    <status value="empty" />
    <div xmlns="http://www.w3.org/1999/xhtml">No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.</div>
  </text>
  <url value="http://nictiz.nl/fhir/StructureDefinition/zib-SNAQ65plusScore" />
  <name value="ZibSNAQ65plusScore" />
  <title value="zib SNAQ65plusScore" />
  <status value="draft" />
  <publisher value="Nictiz" />
  <contact>
    <name value="Nictiz" />
    <telecom>
      <system value="url" />
      <value value="https://www.nictiz.nl" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="The Short Nutritional Assessment Questionnaire 65+ (SNAQ65+) is a (validated) measuring tool for determining the extent of a patient’s malnutrition. The tool comprises a number of questions, each of which is assigned a score. The total score determines the extent of malnutrition.&#xD;&#xA;The SNAQ helps to recognize and treat malnutrition at an early stage.&#xD;&#xA;Three varieties of the measuring tool were developed for different care settings: hospitals (adults and children), nursing and retirement homes and independently living seniors. This concept describes the tool intended for the setting of independently living elderly." />
  <purpose value="This Observation resource represents the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) SNAQ65+Score v1.2 (2020)](https://zibs.nl/wiki/SNAQ65%2BScore-v1.2(2020EN))." />
  <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="zib-snaq65plusscore-v1.2-2020EN" />
    <uri value="https://zibs.nl/wiki/SNAQ65%2BScore-v1.2(2020EN)" />
    <name value="zib SNAQ65plusScore-v1.2(2020EN)" />
  </mapping>
  <kind value="resource" />
  <abstract value="true" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <short value="SNAQ65+Score" />
      <alias value="SNAQ65+Score" />
      <constraint>
        <key value="zib-SNAQ65PlusScore-1" />
        <severity value="error" />
        <human value="If one of the component codes is present, all SHALL be present." />
        <expression value="component.where(code.coding.system='urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.0.1' and code.coding.code.subsetOf('4030003'|'4030008'|'4030004'|'4030005')).count().subsetOf(0|4)" />
      </constraint>
      <constraint>
        <key value="zib-SNAQ65PlusScore-2" />
        <severity value="error" />
        <human value="If the component codes are not all present, the value SHALL be present." />
        <expression value="value.empty().not() or component.where(code.coding.system='urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.0.1' and code.coding.code.subsetOf('4030003'|'4030008'|'4030004'|'4030005')).count()=4" />
      </constraint>
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.1" />
        <comment value="SNAQ65+Score" />
      </mapping>
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <patternCodeableConcept>
        <coding>
          <system value="http://snomed.info/sct" />
          <code value="108321000146101" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.effective[x]:effectiveDateTime">
      <path value="Observation.effective[x]" />
      <sliceName value="effectiveDateTime" />
      <short value="SNAQScoreDateTime" />
      <definition value="The date and time at which the SNAQ65+ score was determined." />
      <alias value="SNAQ65+ScoreDatumTijd" />
      <type>
        <code value="dateTime" />
      </type>
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.6" />
        <comment value="SNAQScoreDateTime" />
      </mapping>
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.value[x]:valueInteger">
      <path value="Observation.value[x]" />
      <sliceName value="valueInteger" />
      <short value="TotalScore" />
      <definition value="The total score is the sum of all the individual scores. The total score has a range from 0 - 5. The relation between the value of the total score and the color outcome of the score tool is:&#xD;&#xA;* 0-1 = green&#xD;&#xA;* 2 = orange&#xD;&#xA;* 3 and higher = red." />
      <comment value="The individual scores are communicated using the different `Observation.component` slices. The ordinal values of these indivdual scores, which are used to calculate the total score, are defined by the underlying code system and are registered in the ValueSet resources bound on these slices, using the [ordinalValue](http://hl7.org/fhir/StructureDefinition/ordinalValue) extension." />
      <alias value="TotaalScore" />
      <type>
        <code value="integer" />
      </type>
      <minValueInteger value="0" />
      <maxValueInteger value="5" />
      <condition value="zib-SNAQ65PlusScore-2" />
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.2" />
        <comment value="TotalScore" />
      </mapping>
    </element>
    <element id="Observation.note">
      <path value="Observation.note" />
      <max value="1" />
    </element>
    <element id="Observation.note.text">
      <path value="Observation.note.text" />
      <short value="Comment" />
      <definition value="A comment on the circumstances during the measurement." />
      <alias value="Toelichting" />
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.7" />
        <comment value="Comment" />
      </mapping>
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="code" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Observation.component:weightLossScore">
      <path value="Observation.component" />
      <sliceName value="weightLossScore" />
      <max value="1" />
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
    </element>
    <element id="Observation.component:weightLossScore.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.0.1" />
          <code value="4030003" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:weightLossScore.value[x]">
      <path value="Observation.component.value[x]" />
      <short value="WeightLossScore" />
      <definition value="The score based on undesired weight loss over the past six months." />
      <alias value="GewichtsverliesScore" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
      <binding>
        <strength value="required" />
        <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.4.30.1--20200901000000" />
      </binding>
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.3" />
        <comment value="WeightLossScore" />
      </mapping>
    </element>
    <element id="Observation.component:upperarmCircumference">
      <path value="Observation.component" />
      <sliceName value="upperarmCircumference" />
      <max value="1" />
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
    </element>
    <element id="Observation.component:upperarmCircumference.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.0.1" />
          <code value="4030008" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:upperarmCircumference.value[x]">
      <path value="Observation.component.value[x]" />
      <short value="UpperarmCircumference" />
      <definition value="The score based on circumference of the upper arm." />
      <alias value="BovenarmOmtrekScore" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
      <binding>
        <strength value="required" />
        <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.4.30.4--20200901000000" />
      </binding>
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.8" />
        <comment value="UpperarmCircumference" />
      </mapping>
    </element>
    <element id="Observation.component:appetiteScore">
      <path value="Observation.component" />
      <sliceName value="appetiteScore" />
      <max value="1" />
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
    </element>
    <element id="Observation.component:appetiteScore.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.0.1" />
          <code value="4030004" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:appetiteScore.value[x]">
      <path value="Observation.component.value[x]" />
      <short value="AppetiteScore" />
      <definition value="The score based on a reduced appetite over the past month." />
      <alias value="EetlustScore" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
      <binding>
        <strength value="required" />
        <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.4.30.2--20200901000000" />
      </binding>
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.4" />
        <comment value="AppetiteScore" />
      </mapping>
    </element>
    <element id="Observation.component:exerciseScore">
      <path value="Observation.component" />
      <sliceName value="exerciseScore" />
      <max value="1" />
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
    </element>
    <element id="Observation.component:exerciseScore.code">
      <path value="Observation.component.code" />
      <patternCodeableConcept>
        <coding>
          <system value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.4.0.1" />
          <code value="4030005" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="Observation.component:exerciseScore.value[x]">
      <path value="Observation.component.value[x]" />
      <short value="ExerciseScore" />
      <definition value="The score based on the ability to perform exercise like climbing stairs without rest or to walk for five minute without rest." />
      <alias value="InspanningsScore" />
      <type>
        <code value="CodeableConcept" />
      </type>
      <condition value="zib-SNAQ65PlusScore-1" />
      <condition value="zib-SNAQ65PlusScore-2" />
      <binding>
        <strength value="required" />
        <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.4.30.3--20200901000000" />
      </binding>
      <mapping>
        <identity value="zib-snaq65plusscore-v1.2-2020EN" />
        <map value="NL-CM:4.30.5" />
        <comment value="ExerciseScore" />
      </mapping>
    </element>
  </differential>
</StructureDefinition>