<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Immunization" />
  <url value="http://healthpei.ca/fhir/StructureDefinition/ca-pei-profile-Immunization" />
  <name value="Immunization" />
  <title value="Immunization" />
  <status value="draft" />
  <description value="Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Immunization" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Immunization" />
  <derivation value="constraint" />
  <differential>
    <element id="Immunization.identifier">
      <path value="Immunization.identifier" />
      <min value="1" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.identifier.system">
      <path value="Immunization.identifier.system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.identifier.value">
      <path value="Immunization.identifier.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.status">
      <path value="Immunization.status" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.statusReason">
      <path value="Immunization.statusReason" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://healthpei.ca/fhir/pei/ValueSet/ca-pei-cs-PEIImmunizationStatus" />
      </binding>
    </element>
    <element id="Immunization.statusReason.coding">
      <path value="Immunization.statusReason.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.statusReason.coding.system">
      <path value="Immunization.statusReason.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.statusReason.coding.code">
      <path value="Immunization.statusReason.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.statusReason.coding.display">
      <path value="Immunization.statusReason.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode">
      <path value="Immunization.vaccineCode" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="candidate" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://princeedwardisland.ca/fhir/ValueSet/ca-pei-vaccine-common" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="This is the PEI specific code, referred to as Vaccine Common." />
          </extension>
        </extension>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="candidate" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://princeedwardisland.ca/fhir/ValueSet/ca-pei-vaccine-tradename" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="This is the PEI specific code for Tradename." />
          </extension>
        </extension>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="candidate" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://nvc-cnv.canada.ca/v1/ValueSet/Generic" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="This is the National Vaccine Catalog code for the Generic." />
          </extension>
        </extension>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="candidate" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://nvc-cnv.canada.ca/fhir/v2/ValueSet/Tradename" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="This is the National Vaccine Catalog code for the Tradename." />
          </extension>
        </extension>
        <strength value="preferred" />
        <valueSet value="http://hl7.org/fhir/ValueSet/vaccine-code" />
      </binding>
    </element>
    <element id="Immunization.vaccineCode.coding">
      <path value="Immunization.vaccineCode.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding.display">
      <path value="Immunization.vaccineCode.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.patient">
      <path value="Immunization.patient" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.patient.reference">
      <path value="Immunization.patient.reference" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.occurrence[x]">
      <path value="Immunization.occurrence[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Immunization.occurrence[x]:occurrenceDateTime">
      <path value="Immunization.occurrence[x]" />
      <sliceName value="occurrenceDateTime" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="dateTime" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Immunization.recorded">
      <path value="Immunization.recorded" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.reportOrigin">
      <path value="Immunization.reportOrigin" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.reportOrigin.coding">
      <path value="Immunization.reportOrigin.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.location">
      <path value="Immunization.location" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.location.reference">
      <path value="Immunization.location.reference" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.manufacturer">
      <path value="Immunization.manufacturer" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.lotNumber">
      <path value="Immunization.lotNumber" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.site">
      <path value="Immunization.site" />
      <mustSupport value="true" />
      <binding>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="candidate" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://princeedwardisland.ca/fhir/ValueSet/ca-pe-code-immunization-site" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="This is the PEI specific code, referred to as Vaccine Common." />
          </extension>
        </extension>
        <strength value="preferred" />
        <valueSet value="https://nvc-cnv.canada.ca/fhir/v2/ValueSet/RouteOfAdmin" />
      </binding>
    </element>
    <element id="Immunization.site.coding">
      <path value="Immunization.site.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.site.coding.system">
      <path value="Immunization.site.coding.system" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.site.coding.code">
      <path value="Immunization.site.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.site.coding.display">
      <path value="Immunization.site.coding.display" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.protocolApplied">
      <path value="Immunization.protocolApplied" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease">
      <path value="Immunization.protocolApplied.targetDisease" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="https://nvc-cnv.canada.ca/fhir/v2/ValueSet/Disease" />
      </binding>
    </element>
    <element id="Immunization.protocolApplied.doseNumber[x]">
      <path value="Immunization.protocolApplied.doseNumber[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <mustSupport value="true" />
    </element>
    <element id="Immunization.protocolApplied.doseNumber[x]:doseNumberString">
      <path value="Immunization.protocolApplied.doseNumber[x]" />
      <sliceName value="doseNumberString" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>