<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="ObservationHeadCircumPSAB" />
  <url value="https://www.alberta.ca/fhir/psab/StructureDefinition/ObservationHeadCircumPSAB" />
  <version value="1.2.0" />
  <name value="ObservationHeadCircumPSAB" />
  <title value="Observation-HeadCircumference (PS-AB)" />
  <status value="draft" />
  <description value="This profile defines a set of constraints to the FHIR Observation (HeadCircumference) resource for use in Alberta Patient Summaries (PS-AB). It re-profiles the HL7 FHIR HeadCircumference Profile and refines constraints applied to the Observation (HeadCircumference) resource when used in the PS-AB Composition profile." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Observation" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/headcircum" />
  <derivation value="constraint" />
  <differential>
    <element id="Observation">
      <path value="Observation" />
      <comment value="Observation (Vital Sign) resources included in Alberta Patient Summary Document Bundles have rules that certain attributes are not to be contained in Observation (Vital Sign) resource. These are mechanically enforced through invariants at the PS-AB Bundle level." />
    </element>
    <element id="Observation.status">
      <path value="Observation.status" />
      <comment value="Required for each measured observation value submitted" />
      <patternCode value="final" />
    </element>
    <element id="Observation.category:VSCat">
      <path value="Observation.category" />
      <sliceName value="VSCat" />
      <sliceIsConstraining value="true" />
    </element>
    <element id="Observation.category:VSCat.coding.system">
      <path value="Observation.category.coding.system" />
      <comment value="Fixed system value of 'http://terminology.hl7.org/CodeSystem/observation-category'" />
    </element>
    <element id="Observation.category:VSCat.coding.code">
      <path value="Observation.category.coding.code" />
      <comment value="Fixed code value of 'vital-signs'" />
    </element>
    <element id="Observation.code.coding">
      <path value="Observation.code.coding" />
      <min value="1" />
    </element>
    <element id="Observation.code.coding:HeadCircumCode">
      <path value="Observation.code.coding" />
      <sliceName value="HeadCircumCode" />
      <sliceIsConstraining value="true" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding:HeadCircumCode.system">
      <path value="Observation.code.coding.system" />
      <comment value="Fixed value of 'http://loinc.org" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.code.coding:HeadCircumCode.code">
      <path value="Observation.code.coding.code" />
      <comment value="Fixed value of '9843-4'" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.subject">
      <path value="Observation.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/PatientPSAB" />
      </type>
    </element>
    <element id="Observation.subject.reference">
      <path value="Observation.subject.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Observation.effective[x]">
      <path value="Observation.effective[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <comment value="Required for each measured observation value submitted" />
    </element>
    <element id="Observation.effective[x]:effectiveDateTime">
      <path value="Observation.effective[x]" />
      <sliceName value="effectiveDateTime" />
      <comment value="YYYY-MM-DDThh:mm:ss[+|-]ZZ:ZZ  e.g.,: 1980-05-31T12:23:12-05:00" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Observation.performer">
      <path value="Observation.performer" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/PractitionerPSAB" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/PractitionerRolePSAB" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/PatientPSAB" />
      </type>
    </element>
    <element id="Observation.value[x]">
      <path value="Observation.value[x]" />
      <min value="1" />
    </element>
    <element id="Observation.value[x]:valueQuantity">
      <path value="Observation.value[x]" />
      <sliceName value="valueQuantity" />
      <comment value="If Head Circumference observation is submitted it shall have an observation value" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="Observation.value[x]:valueQuantity.unit">
      <path value="Observation.value[x].unit" />
      <comment value="Required if Head Circumference is submitted. Full text or abbreviation (e.g., ft, feet, in, inches, cm, centimeters, etc.)" />
    </element>
    <element id="Observation.hasMember">
      <path value="Observation.hasMember" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/ObservationBMIPSAB" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/ObservationBodyHeightPSAB" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/ObservationBodyWeightPSAB" />
        <targetProfile value="https://www.alberta.ca/fhir/psab/StructureDefinition/ObservationHeadCircumPSAB" />
      </type>
    </element>
  </differential>
</StructureDefinition>