<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="zib-VitalSigns" />
  <url value="http://nictiz.nl/fhir/StructureDefinition/zib-VitalSigns" />
  <version value="2.1.4" />
  <name value="Vital Signs Profile NL" />
  <title value="VitalSigns Profile NL" />
  <status value="active" />
  <publisher value="Nictiz" />
  <contact>
    <name value="Nictiz" />
    <telecom>
      <system value="url" />
      <value value="https://www.nictiz.nl" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="Copied FHIR Vital Signs Profile to remove .component.value Quantity type constraint. More information can be found in GForge ticket #13796 or in the FHIR zulip chat https://chat.fhir.org/#narrow/stream/implementers/subject/Vital.20signs.20supporting.20observations." />
  <copyright value="CC0" />
  <fhirVersion value="3.0.2" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://fhir.nl/fhir/StructureDefinition/nl-core-observation" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <short value="FHIR Vital Signs Profile" />
      <definition value="The FHIR Vitals Signs profile sets a minimum expectations for the Observation Resource to record, search and fetch the vital signs associated with a patient." />
      <alias value="FHIR Vital Signs profiel" />
      <constraint>
        <key value="vs-2" />
        <severity value="error" />
        <human value="If there is no component or related element then either a value[x] or a data absent reason must be present" />
        <expression value="(component.empty() and related.empty()) implies (dataAbsentReason or value)" />
        <xpath value="exists(f:component) or exists(f:related) or exists(f:*[starts-with(local-name(.), 'value')]) or exists(f:dataAbsentReason)" />
      </constraint>
    </element>
    <element id="Observation.status">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-display-hint">
        <valueString value="default: final" />
      </extension>
      <path value="Observation.status" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.category">
      <path value="Observation.category" />
      <min value="1" />
      <condition value="vs-4" />
      <constraint>
        <key value="vs-4" />
        <severity value="error" />
        <human value="Must have a category of 'vital-signs' and a code system 'http://hl7.org/fhir/observation-category'" />
        <expression value="where(coding.system='http://hl7.org/fhir/observation-category' and coding.code='vital-signs').exists()" />
        <xpath value="exists(f:coding/code[@value='vital-signs']) and exists(f:coding/system[@value='http://hl7.org/fhir/observation-category'])" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.code">
      <path value="Observation.code" />
      <short value="Coded Responses from Vital Signs Results" />
      <definition value="Coded Responses from C-CDA Vital Sign Results." />
      <requirements value="5. SHALL contain exactly one [1..1] code, where the @code SHOULD be selected from ValueSet HITSP Vital Sign Result Type 2.16.840.1.113883.3.88.12.80.62 DYNAMIC (CONF:7301)." />
      <alias value="Gecodeerde antwoorden uit Vital Signs resultaten" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="VitalSigns" />
        </extension>
        <strength value="extensible" />
        <description value="This identifies the vital sign result type." />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/observation-vitalsignresult" />
          <display value="Vital Signs" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.nl/fhir/StructureDefinition/nl-core-patient" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <short value="Often just a dateTime for Vital Signs" />
      <definition value="Often just a dateTime for Vital Signs." />
      <alias value="Meestal slechts een datum/tijd voor Vital Signs" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity">
      <path value="Observation.valueQuantity" />
      <sliceName value="valueQuantity" />
      <short value="Vital Sign Value recorded with UCUM" />
      <definition value="Vital Sign Value recorded with UCUM." />
      <requirements value="9. SHALL contain exactly one [1..1] value with @xsi:type=&quot;PQ&quot; (CONF:7305)." />
      <alias value="Vital Sign waarde, vastgelegd op basis van UCUM-eenheid" />
      <type>
        <code value="Quantity" />
      </type>
      <condition value="vs-2" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="VitalSignsUnits" />
        </extension>
        <strength value="required" />
        <description value="Common UCUM units for recording Vital Signs" />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/ucum-vitals-common" />
          <display value="Vital Signs Units" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.value[x]:valueQuantity.value">
      <path value="Observation.valueQuantity.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.unit">
      <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-translatable">
        <valueBoolean value="true" />
      </extension>
      <path value="Observation.valueQuantity.unit" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.system">
      <path value="Observation.valueQuantity.system" />
      <min value="1" />
      <fixedUri value="http://unitsofmeasure.org" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.value[x]:valueQuantity.code">
      <path value="Observation.valueQuantity.code" />
      <short value="Coded responses from the common UCUM units for vital signs value set." />
      <definition value="Coded responses from the common UCUM units for vital signs value set." />
      <alias value="Gecodeerde antwoorden van de algemene UCUM-eenheden voor vital signs waardelijst." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.dataAbsentReason">
      <path value="Observation.dataAbsentReason" />
      <condition value="vs-2" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.device">
      <path value="Observation.device" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-MedicalDeviceProduct" />
      </type>
    </element>
    <element id="Observation.related">
      <path value="Observation.related" />
      <short value="Used when reporting vital signs panel components" />
      <definition value="Used when reporting vital signs panel components." />
      <alias value="Gebruikt bij het rapporteren van vital signs panelcomponenten." />
      <mustSupport value="true" />
    </element>
    <element id="Observation.related.type">
      <path value="Observation.related.type" />
      <min value="1" />
      <fixedCode value="has-member" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.related.target">
      <path value="Observation.related.target" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-VitalSigns" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.component">
      <path value="Observation.component" />
      <constraint>
        <key value="vs-3" />
        <severity value="error" />
        <human value="If there is no a value a data absent reason must be present" />
        <expression value="value.exists() or dataAbsentReason.exists()" />
        <xpath value="exists(f:*[starts-with(local-name(.), 'value')]) or exists(f:dataAbsentReason)" />
      </constraint>
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.code">
      <path value="Observation.component.code" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="VitalSigns" />
        </extension>
        <strength value="extensible" />
        <description value="This identifies the vital sign result type." />
        <valueSetReference>
          <reference value="http://hl7.org/fhir/ValueSet/observation-vitalsignresult" />
          <display value="Vital Signs" />
        </valueSetReference>
      </binding>
    </element>
    <element id="Observation.component.value[x]">
      <path value="Observation.component.value[x]" />
      <short value="Vital Sign Value recorded with UCUM" />
      <definition value="Vital Sign Value recorded with UCUM." />
      <requirements value="9. SHALL contain exactly one [1..1] value with @xsi:type=&quot;PQ&quot; (CONF:7305)." />
      <alias value="Vital Sign waarde vastgelegd op basis van UCUM-eenheid" />
      <condition value="vs-3" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.component.dataAbsentReason">
      <path value="Observation.component.dataAbsentReason" />
      <condition value="vs-3" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>