<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-immunization" />
  <url value="https://fhir.synapxe.sg/StructureDefinition/profile-immunization" />
  <name value="Immunization" />
  <title value="Immunization Profile" />
  <status value="active" />
  <publisher value="Synapxe" />
  <description value="This resource will be used to store details of 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="5.0.0" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Immunization" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Immunization" />
  <derivation value="constraint" />
  <differential>
    <element id="Immunization.extension:materialNumber">
      <path value="Immunization.extension" />
      <sliceName value="materialNumber" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-materialNumber" />
      </type>
    </element>
    <element id="Immunization.extension:componentVaccineOrder">
      <path value="Immunization.extension" />
      <sliceName value="componentVaccineOrder" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-componentVaccineOrder" />
      </type>
    </element>
    <element id="Immunization.extension:generalInfo">
      <path value="Immunization.extension" />
      <sliceName value="generalInfo" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-generalinfo" />
      </type>
    </element>
    <element id="Immunization.identifier">
      <path value="Immunization.identifier" />
      <slicing>
        <discriminator>
          <type value="profile" />
          <path value="$this" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="1" />
      <max value="4" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier" />
      </type>
    </element>
    <element id="Immunization.identifier:recordID">
      <path value="Immunization.identifier" />
      <sliceName value="recordID" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier-record-id" />
      </type>
    </element>
    <element id="Immunization.identifier:institution">
      <path value="Immunization.identifier" />
      <sliceName value="institution" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier-hci-code" />
      </type>
    </element>
    <element id="Immunization.identifier:vaccinationRecordID">
      <path value="Immunization.identifier" />
      <sliceName value="vaccinationRecordID" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier-vaccination-record-id" />
      </type>
    </element>
    <element id="Immunization.identifier:sequenceNo">
      <path value="Immunization.identifier" />
      <sliceName value="sequenceNo" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-identifier-sequence-no" />
      </type>
    </element>
    <element id="Immunization.basedOn">
      <path value="Immunization.basedOn" />
      <max value="0" />
    </element>
    <element id="Immunization.statusReason">
      <path value="Immunization.statusReason" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
    </element>
    <element id="Immunization.statusReason.extension">
      <path value="Immunization.statusReason.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.vaccineCode">
      <path value="Immunization.vaccineCode" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/immunization-type" />
      </binding>
    </element>
    <element id="Immunization.vaccineCode.extension:productName">
      <path value="Immunization.vaccineCode.extension" />
      <sliceName value="productName" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-productName" />
      </type>
    </element>
    <element id="Immunization.administeredProduct">
      <path value="Immunization.administeredProduct" />
      <max value="0" />
    </element>
    <element id="Immunization.manufacturer">
      <path value="Immunization.manufacturer" />
      <type>
        <code value="CodeableReference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-organization" />
      </type>
    </element>
    <element id="Immunization.patient">
      <path value="Immunization.patient" />
      <type>
        <code value="Reference" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-reference-patient" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-patient" />
      </type>
    </element>
    <element id="Immunization.encounter">
      <path value="Immunization.encounter" />
      <max value="0" />
    </element>
    <element id="Immunization.supportingInformation">
      <path value="Immunization.supportingInformation" />
      <max value="0" />
    </element>
    <element id="Immunization.occurrence[x]">
      <path value="Immunization.occurrence[x]" />
      <type>
        <code value="dateTime" />
      </type>
    </element>
    <element id="Immunization.informationSource">
      <path value="Immunization.informationSource" />
      <min value="1" />
    </element>
    <element id="Immunization.informationSource.concept">
      <path value="Immunization.informationSource.concept" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/immunization-informationSource" />
      </binding>
    </element>
    <element id="Immunization.informationSource.concept.coding.system">
      <path value="Immunization.informationSource.concept.coding.system" />
    </element>
    <element id="Immunization.informationSource.reference">
      <path value="Immunization.informationSource.reference" />
      <max value="0" />
    </element>
    <element id="Immunization.location">
      <path value="Immunization.location" />
      <max value="0" />
    </element>
    <element id="Immunization.site.extension">
      <path value="Immunization.site.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.site.coding">
      <path value="Immunization.site.coding" />
      <max value="1" />
    </element>
    <element id="Immunization.site.coding.version">
      <path value="Immunization.site.coding.version" />
      <max value="0" />
    </element>
    <element id="Immunization.site.coding.userSelected">
      <path value="Immunization.site.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Immunization.route">
      <path value="Immunization.route" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://fhir.synapxe.sg/ValueSet/administration-route" />
      </binding>
    </element>
    <element id="Immunization.route.coding.system">
      <path value="Immunization.route.coding.system" />
    </element>
    <element id="Immunization.route.coding.version">
      <path value="Immunization.route.coding.version" />
      <min value="1" />
    </element>
    <element id="Immunization.doseQuantity.id">
      <path value="Immunization.doseQuantity.id" />
      <max value="0" />
    </element>
    <element id="Immunization.doseQuantity.extension">
      <path value="Immunization.doseQuantity.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.doseQuantity.value">
      <path value="Immunization.doseQuantity.value" />
      <min value="1" />
    </element>
    <element id="Immunization.doseQuantity.unit">
      <path value="Immunization.doseQuantity.unit" />
      <min value="1" />
    </element>
    <element id="Immunization.doseQuantity.system">
      <path value="Immunization.doseQuantity.system" />
      <min value="1" />
    </element>
    <element id="Immunization.doseQuantity.code">
      <path value="Immunization.doseQuantity.code" />
      <min value="1" />
    </element>
    <element id="Immunization.performer.function">
      <path value="Immunization.performer.function" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
    </element>
    <element id="Immunization.performer.actor">
      <path value="Immunization.performer.actor" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-practitionerrole" />
      </type>
    </element>
    <element id="Immunization.performer.actor.type">
      <path value="Immunization.performer.actor.type" />
      <max value="0" />
    </element>
    <element id="Immunization.performer.actor.identifier">
      <path value="Immunization.performer.actor.identifier" />
      <max value="0" />
    </element>
    <element id="Immunization.performer.actor.display">
      <path value="Immunization.performer.actor.display" />
      <max value="0" />
    </element>
    <element id="Immunization.note">
      <path value="Immunization.note" />
      <max value="1" />
      <type>
        <code value="Annotation" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-annotation" />
      </type>
    </element>
    <element id="Immunization.reason">
      <path value="Immunization.reason" />
      <max value="1" />
    </element>
    <element id="Immunization.reason.id">
      <path value="Immunization.reason.id" />
      <max value="0" />
    </element>
    <element id="Immunization.reason.extension">
      <path value="Immunization.reason.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.reason.concept">
      <path value="Immunization.reason.concept" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
    </element>
    <element id="Immunization.reason.concept.extension">
      <path value="Immunization.reason.concept.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.reason.reference">
      <path value="Immunization.reason.reference" />
      <min value="1" />
    </element>
    <element id="Immunization.isSubpotent">
      <path value="Immunization.isSubpotent" />
      <max value="0" />
    </element>
    <element id="Immunization.subpotentReason">
      <path value="Immunization.subpotentReason" />
      <max value="0" />
    </element>
    <element id="Immunization.programEligibility">
      <path value="Immunization.programEligibility" />
      <max value="0" />
    </element>
    <element id="Immunization.fundingSource">
      <path value="Immunization.fundingSource" />
      <max value="0" />
    </element>
    <element id="Immunization.reaction">
      <path value="Immunization.reaction" />
      <max value="1" />
    </element>
    <element id="Immunization.reaction.id">
      <path value="Immunization.reaction.id" />
      <max value="0" />
    </element>
    <element id="Immunization.reaction.extension">
      <path value="Immunization.reaction.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.reaction.modifierExtension">
      <path value="Immunization.reaction.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Immunization.reaction.date">
      <path value="Immunization.reaction.date" />
      <min value="1" />
    </element>
    <element id="Immunization.reaction.manifestation">
      <path value="Immunization.reaction.manifestation" />
      <min value="1" />
    </element>
    <element id="Immunization.reaction.manifestation.id">
      <path value="Immunization.reaction.manifestation.id" />
      <max value="0" />
    </element>
    <element id="Immunization.reaction.manifestation.extension">
      <path value="Immunization.reaction.manifestation.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.reaction.manifestation.concept">
      <path value="Immunization.reaction.manifestation.concept" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-codeableconcept" />
      </type>
    </element>
    <element id="Immunization.reaction.reported">
      <path value="Immunization.reaction.reported" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.id">
      <path value="Immunization.protocolApplied.id" />
      <max value="0" />
    </element>
    <element id="Immunization.protocolApplied.extension">
      <path value="Immunization.protocolApplied.extension" />
      <slicing>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <min value="3" />
    </element>
    <element id="Immunization.protocolApplied.extension:description">
      <path value="Immunization.protocolApplied.extension" />
      <sliceName value="description" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-immunization-description" />
      </type>
    </element>
    <element id="Immunization.protocolApplied.extension:doseStatus">
      <path value="Immunization.protocolApplied.extension" />
      <sliceName value="doseStatus" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-immunization-doseStatus" />
      </type>
    </element>
    <element id="Immunization.protocolApplied.extension:doseReason">
      <path value="Immunization.protocolApplied.extension" />
      <sliceName value="doseReason" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/ext-immunization-doseReason" />
      </type>
    </element>
    <element id="Immunization.protocolApplied.modifierExtension">
      <path value="Immunization.protocolApplied.modifierExtension" />
      <max value="0" />
    </element>
    <element id="Immunization.protocolApplied.authority">
      <path value="Immunization.protocolApplied.authority" />
      <type>
        <code value="Reference" />
        <profile value="https://fhir.synapxe.sg/StructureDefinition/profile-reference-organization" />
        <targetProfile value="https://fhir.synapxe.sg/StructureDefinition/profile-organization" />
      </type>
    </element>
    <element id="Immunization.protocolApplied.targetDisease.id">
      <path value="Immunization.protocolApplied.targetDisease.id" />
      <max value="0" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.extension">
      <path value="Immunization.protocolApplied.targetDisease.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.coding">
      <path value="Immunization.protocolApplied.targetDisease.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.coding.id">
      <path value="Immunization.protocolApplied.targetDisease.coding.id" />
      <max value="0" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.coding.extension">
      <path value="Immunization.protocolApplied.targetDisease.coding.extension" />
      <max value="0" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.coding.system">
      <path value="Immunization.protocolApplied.targetDisease.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.coding.code">
      <path value="Immunization.protocolApplied.targetDisease.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.coding.display">
      <path value="Immunization.protocolApplied.targetDisease.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.coding.userSelected">
      <path value="Immunization.protocolApplied.targetDisease.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease.text">
      <path value="Immunization.protocolApplied.targetDisease.text" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>