<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="biobankcy-sd-immunization" />
  <url value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-immunization" />
  <name value="BIOBANKCYImmunization" />
  <title value="Profile: Immunization (biobank.cy)" />
  <status value="draft" />
  <experimental value="true" />
  <date value="2022-04-18" />
  <publisher value="biobank.cy" />
  <contact>
    <name value="Molecular Medicine Research Center (MMRC)" />
    <telecom>
      <system value="email" />
      <value value="biobank@ucy.ac.cy" />
      <use value="work" />
    </telecom>
  </contact>
  <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.extension:vaccineMedicinalProduct">
      <path value="Immunization.extension" />
      <sliceName value="vaccineMedicinalProduct" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://ig.ehealth4u.eu/fhir/StructureDefinition/cyehr-ext-medicinalproductdefinition" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Immunization.extension:vaccineMedicinalProduct.extension:strength">
      <path value="Immunization.extension.extension" />
      <sliceName value="strength" />
      <max value="0" />
    </element>
    <element id="Immunization.extension:vaccineMedicinalProduct.extension:routeOfAdministration">
      <path value="Immunization.extension.extension" />
      <sliceName value="routeOfAdministration" />
      <max value="0" />
    </element>
    <element id="Immunization.extension:vaccineMedicinalProduct.url">
      <path value="Immunization.extension.url" />
      <fixedUri value="http://ig.ehealth4u.eu/fhir/StructureDefinition/cyehr-ext-medicinalproductdefinition" />
    </element>
    <element id="Immunization.extension:marketingAuthorizationHolder">
      <path value="Immunization.extension" />
      <sliceName value="marketingAuthorizationHolder" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://ig.ehealth4u.eu/fhir/StructureDefinition/cyehr-ext-marketingauthorizationholder" />
      </type>
      <isModifier value="false" />
    </element>
    <element id="Immunization.extension:marketingAuthorizationHolder.url">
      <path value="Immunization.extension.url" />
      <fixedUri value="http://ig.ehealth4u.eu/fhir/StructureDefinition/cyehr-ext-marketingauthorizationholder" />
    </element>
    <element id="Immunization.identifier">
      <path value="Immunization.identifier" />
      <comment value="Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.identifier.assigner.identifier.type">
      <path value="Immunization.identifier.assigner.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.identifier.assigner.identifier.type.coding.system">
      <path value="Immunization.identifier.assigner.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.identifier.assigner.identifier.type.coding.code">
      <path value="Immunization.identifier.assigner.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.identifier.assigner.identifier.type.coding.display">
      <path value="Immunization.identifier.assigner.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.status">
      <path value="Immunization.status" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.statusReason">
      <path value="Immunization.statusReason" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.vaccineCode">
      <path value="Immunization.vaccineCode" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding">
      <path value="Immunization.vaccineCode.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Immunization.vaccineCode.coding.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding.display">
      <path value="Immunization.vaccineCode.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding:eHDSIVaccine">
      <path value="Immunization.vaccineCode.coding" />
      <sliceName value="eHDSIVaccine" />
      <definition value="A reference to a vaccine code as defined by the eHDSI in Master Value Catalogue. The value set includes codes from http://snomed.info/sct and http://www.whocc.no/atc." />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsivaccine" />
      </binding>
    </element>
    <element id="Immunization.vaccineCode.coding:eHDSIVaccine.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding:eHDSIVaccine.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding:eHDSIVaccine.display">
      <path value="Immunization.vaccineCode.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding:absentOrUnknownImmunizationIPS">
      <path value="Immunization.vaccineCode.coding" />
      <sliceName value="absentOrUnknownImmunizationIPS" />
      <max value="1" />
      <binding>
        <strength value="required" />
        <valueSet value="http://hl7.org/fhir/uv/ips/ValueSet/absent-or-unknown-immunizations-uv-ips" />
      </binding>
    </element>
    <element id="Immunization.vaccineCode.coding:absentOrUnknownImmunizationIPS.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding:absentOrUnknownImmunizationIPS.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding:absentOrUnknownImmunizationIPS.display">
      <path value="Immunization.vaccineCode.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.patient">
      <path value="Immunization.patient" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-donor" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-citizen" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Immunization.patient.reference">
      <path value="Immunization.patient.reference" />
      <min value="1" />
    </element>
    <element id="Immunization.patient.identifier.type">
      <path value="Immunization.patient.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.patient.identifier.type.coding.system">
      <path value="Immunization.patient.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.patient.identifier.type.coding.code">
      <path value="Immunization.patient.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.patient.identifier.type.coding.display">
      <path value="Immunization.patient.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.patient.identifier.assigner.identifier.type">
      <path value="Immunization.patient.identifier.assigner.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.patient.identifier.assigner.identifier.type.coding.system">
      <path value="Immunization.patient.identifier.assigner.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.patient.identifier.assigner.identifier.type.coding.code">
      <path value="Immunization.patient.identifier.assigner.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.patient.identifier.assigner.identifier.type.coding.display">
      <path value="Immunization.patient.identifier.assigner.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.encounter">
      <path value="Immunization.encounter" />
      <definition value="The Encounter during which this Immunization resource was captured as part of the questionnaire/interview process involving a donor/citizen receiving services from the biobank. In case this resource is retrieved from an outside system (e.g. national EHR system) then don't use this element." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Encounter" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-visit" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Immunization.encounter.reference">
      <path value="Immunization.encounter.reference" />
      <min value="1" />
    </element>
    <element id="Immunization.encounter.identifier.type">
      <path value="Immunization.encounter.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.encounter.identifier.type.coding.system">
      <path value="Immunization.encounter.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.encounter.identifier.type.coding.code">
      <path value="Immunization.encounter.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.encounter.identifier.type.coding.display">
      <path value="Immunization.encounter.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.encounter.identifier.assigner.identifier.type">
      <path value="Immunization.encounter.identifier.assigner.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.encounter.identifier.assigner.identifier.type.coding.system">
      <path value="Immunization.encounter.identifier.assigner.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.encounter.identifier.assigner.identifier.type.coding.code">
      <path value="Immunization.encounter.identifier.assigner.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.encounter.identifier.assigner.identifier.type.coding.display">
      <path value="Immunization.encounter.identifier.assigner.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.occurrence[x]">
      <path value="Immunization.occurrence[x]" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.reportOrigin">
      <path value="Immunization.reportOrigin" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.reportOrigin.coding.system">
      <path value="Immunization.reportOrigin.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.reportOrigin.coding.code">
      <path value="Immunization.reportOrigin.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.reportOrigin.coding.display">
      <path value="Immunization.reportOrigin.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.manufacturer">
      <path value="Immunization.manufacturer" />
      <comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.lotNumber">
      <path value="Immunization.lotNumber" />
      <comment value="Note that FHIR strings SHALL NOT exceed 1MB in size&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.site">
      <path value="Immunization.site" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <binding>
        <strength value="example" />
        <valueSet value="http://hl7.org/fhir/ValueSet/body-site" />
      </binding>
    </element>
    <element id="Immunization.site.coding.system">
      <path value="Immunization.site.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.site.coding.code">
      <path value="Immunization.site.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.site.coding.display">
      <path value="Immunization.site.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.route">
      <path value="Immunization.route" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.route.coding">
      <path value="Immunization.route.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Immunization.route.coding.system">
      <path value="Immunization.route.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.route.coding.code">
      <path value="Immunization.route.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.route.coding.display">
      <path value="Immunization.route.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.route.coding:eHDSIRouteOfAdministration">
      <path value="Immunization.route.coding" />
      <sliceName value="eHDSIRouteOfAdministration" />
      <definition value="A reference to a code defined by a terminology system.&#xD;&#xA;&#xD;&#xA;A reference to a code defined by EDQM as defined by eHDSI in Master Value Catalogue for eHDSIRouteofAdministration." />
      <binding>
        <strength value="required" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsirouteofadministration" />
      </binding>
    </element>
    <element id="Immunization.route.coding:eHDSIRouteOfAdministration.system">
      <path value="Immunization.route.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.route.coding:eHDSIRouteOfAdministration.code">
      <path value="Immunization.route.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.route.coding:eHDSIRouteOfAdministration.display">
      <path value="Immunization.route.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.doseQuantity">
      <path value="Immunization.doseQuantity" />
      <comment value="The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.performer">
      <path value="Immunization.performer" />
      <definition value="Indicates who performed the immunization event.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.performer.function">
      <path value="Immunization.performer.function" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.reasonCode">
      <path value="Immunization.reasonCode" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.reasonReference">
      <path value="Immunization.reasonReference" />
      <comment value="References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.isSubpotent">
      <path value="Immunization.isSubpotent" />
      <comment value="Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.subpotentReason">
      <path value="Immunization.subpotentReason" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.education">
      <path value="Immunization.education" />
      <comment value="Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.programEligibility">
      <path value="Immunization.programEligibility" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.fundingSource">
      <path value="Immunization.fundingSource" />
      <comment value="Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.reaction">
      <path value="Immunization.reaction" />
      <comment value="A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.&#xD;&#xA;&#xD;&#xA;Not to be used for biobank.cy" />
    </element>
    <element id="Immunization.protocolApplied">
      <path value="Immunization.protocolApplied" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.type">
      <path value="Immunization.protocolApplied.authority.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.type.coding.system">
      <path value="Immunization.protocolApplied.authority.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.type.coding.code">
      <path value="Immunization.protocolApplied.authority.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.type.coding.display">
      <path value="Immunization.protocolApplied.authority.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.assigner.identifier.type">
      <path value="Immunization.protocolApplied.authority.identifier.assigner.identifier.type" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.assigner.identifier.type.coding.system">
      <path value="Immunization.protocolApplied.authority.identifier.assigner.identifier.type.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.assigner.identifier.type.coding.code">
      <path value="Immunization.protocolApplied.authority.identifier.assigner.identifier.type.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.authority.identifier.assigner.identifier.type.coding.display">
      <path value="Immunization.protocolApplied.authority.identifier.assigner.identifier.type.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease">
      <path value="Immunization.protocolApplied.targetDisease" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <binding>
        <strength value="extensible" />
        <valueSet value="https://hl7.org/fhir/uv/ips/ValueSet-target-diseases-snomed-ct-ips-free-set.html" />
      </binding>
    </element>
    <element id="Immunization.protocolApplied.targetDisease:TargetDisease">
      <path value="Immunization.protocolApplied.targetDisease" />
      <sliceName value="TargetDisease" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <binding>
        <strength value="required" />
        <valueSet value="https://hl7.org/fhir/uv/ips/ValueSet-target-diseases-uv-ips.html" />
      </binding>
    </element>
    <element id="Immunization.protocolApplied.targetDisease:TargetDisease.coding.system">
      <path value="Immunization.protocolApplied.targetDisease.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease:TargetDisease.coding.code">
      <path value="Immunization.protocolApplied.targetDisease.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.targetDisease:TargetDisease.coding.display">
      <path value="Immunization.protocolApplied.targetDisease.coding.display" />
      <min value="1" />
    </element>
    <element id="Immunization.protocolApplied.doseNumber[x]">
      <path value="Immunization.protocolApplied.doseNumber[x]" />
      <mustSupport value="true" />
    </element>
  </differential>
</StructureDefinition>