<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="immunization-ca-core" />
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="2" />
  </extension>
  <url value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/immunization-ca-core" />
  <version value="1.1.0" />
  <name value="ImmunizationCACore" />
  <title value="Immunization (CA-Core)" />
  <status value="active" />
  <experimental value="false" />
  <date value="2025-03-06" />
  <publisher value="Canada Health Infoway" />
  <contact>
    <name value="National Standards Release Centre" />
    <telecom>
      <system value="url" />
      <value value="http://www.infoway-inforoute.ca" />
    </telecom>
    <telecom>
      <system value="email" />
      <value value="standards@infoway-inforoute.ca" />
    </telecom>
  </contact>
  <description value="This profile applies constraints to the Immunization resource for CA Core+ to support documentation of administered vaccines in the pan-Canadian context." />
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166" />
      <code value="CA" />
    </coding>
  </jurisdiction>
  <copyright value="Copyright © 2025+ Canada Health Infoway. All rights reserved. [Terms of Use and License Agreements](https://ic.infoway-inforoute.ca/en/about/tou). [Privacy Policy](https://www.infoway-inforoute.ca/en/legal/privacy-policy)." />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="CACDI" />
    <name value="Canadian Core Data for Interoperability (CACDI)" />
    <comment value="Mapping for ImmunizationCACore to  Canadian Core Data for Interoperability (CACDI)." />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="Immunization" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Immunization" />
  <derivation value="constraint" />
  <differential>
    <element id="Immunization">
      <path value="Immunization" />
      <constraint>
        <key value="ca-core-im-1" />
        <severity value="warning" />
        <human value="Immunization records created during an encounter event are expected to have occurrence populated. Occurrence SHALL be present if the primarySource is 'true'" />
        <expression value="Immunization.primarySource = true implies Immunization.occurrence.exists()" />
        <source value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/immunization-ca-core" />
      </constraint>
    </element>
    <element id="Immunization.vaccineCode">
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="MAY:populate-if-known" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://fhir.infoway-inforoute.ca/ca-core/ActorDefinition/producer" />
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="SHALL:no-error" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://fhir.infoway-inforoute.ca/ca-core/ActorDefinition/consumer" />
        </extension>
      </extension>
      <path value="Immunization.vaccineCode" />
      <comment value="The additionalBinding extension will be used to express the valueSet for additional negation/exclusion codes for reporting the known absence of immunizations. At the time of this release, the publisher of the current ValueSet for absence codes (IPS) is developing a SNOMED ValueSet that will replace the current http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-immunizations-uv-ips" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/codeableconcept-ca-core" />
      </type>
      <binding>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="preferred" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://fhir.infoway-inforoute.ca/ValueSet/vaccinehistoricalnamecode" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="Recommended for use when conveying vaccine generic names for scenarios when brand name is not known or does not exist (e.g., immunization history where provider does not have detail of the trade name, the product has been discontinued and/or never licensed in Canada)." />
          </extension>
        </extension>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="preferred" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://fhir.infoway-inforoute.ca/ValueSet/passiveadministeredimmunizingagentcode" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="per pCHDCF: Alternate value sets can be used when passive immunization products are used" />
          </extension>
        </extension>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="preferred" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="https://fhir.infoway-inforoute.ca/ValueSet/passivehistoricalimmunizingagentcode" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="per pCHDCF: Alternate value sets can be used when passive immunization products are used" />
          </extension>
        </extension>
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/additional-binding">
          <extension url="purpose">
            <valueCode value="candidate" />
          </extension>
          <extension url="valueSet">
            <valueCanonical value="http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-immunizations-uv-ips" />
          </extension>
          <extension url="documentation">
            <valueMarkdown value="Absent or unknown codes" />
          </extension>
        </extension>
        <strength value="preferred" />
        <valueSet value="https://fhir.infoway-inforoute.ca/ValueSet/vaccineadministeredtradenamecode" />
      </binding>
      <mapping>
        <identity value="CACDI" />
        <map value="Immunization" />
      </mapping>
    </element>
    <element id="Immunization.patient">
      <path value="Immunization.patient" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/patient-ca-core" />
      </type>
    </element>
    <element id="Immunization.patient.reference">
      <path value="Immunization.patient.reference" />
      <min value="1" />
    </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>
    </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>
      <mapping>
        <identity value="CACDI" />
        <map value="Immunization Date" />
      </mapping>
      <mapping>
        <identity value="CACDI" />
        <map value="Event Start Date and Time" />
      </mapping>
      <mapping>
        <identity value="CACDI" />
        <map value="Reported Clinical Information Date Time" />
      </mapping>
    </element>
    <element id="Immunization.occurrence[x]:occurrenceString">
      <path value="Immunization.occurrence[x]" />
      <sliceName value="occurrenceString" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="string" />
      </type>
      <mapping>
        <identity value="CACDI" />
        <map value="Reported Clinical Information Date Time" />
      </mapping>
    </element>
    <element id="Immunization.reportOrigin">
      <path value="Immunization.reportOrigin" />
      <mapping>
        <identity value="CACDI" />
        <map value="Reported Clinical Information Source (Recommended)" />
      </mapping>
    </element>
    <element id="Immunization.location">
      <path value="Immunization.location" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/location-ca-core" />
      </type>
    </element>
    <element id="Immunization.lotNumber">
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="MAY:populate-if-known" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://fhir.infoway-inforoute.ca/ca-core/ActorDefinition/producer" />
        </extension>
      </extension>
      <extension url="http://hl7.org/fhir/StructureDefinition/obligation">
        <extension url="code">
          <valueCode value="SHALL:no-error" />
        </extension>
        <extension url="actor">
          <valueCanonical value="http://fhir.infoway-inforoute.ca/ca-core/ActorDefinition/consumer" />
        </extension>
      </extension>
      <path value="Immunization.lotNumber" />
      <mapping>
        <identity value="CACDI" />
        <map value="Immunization Lot Number" />
      </mapping>
    </element>
    <element id="Immunization.performer.actor">
      <path value="Immunization.performer.actor" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/practitioner-ca-core" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/practitionerRole-ca-core" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/organization-ca-core" />
      </type>
    </element>
    <element id="Immunization.reasonReference">
      <path value="Immunization.reasonReference" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/condition-ca-core" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport" />
      </type>
    </element>
  </differential>
</StructureDefinition>