<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="profile-immunization-patientchart" />
  <meta>
    <versionId value="2" />
    <lastUpdated value="2022-08-30T20:36:25.3424214+00:00" />
  </meta>
  <url value="http://telus.com/fhir/patientChart/StructureDefinition/profile-immunization" />
  <name value="Immunization" />
  <status value="draft" />
  <date value="2021-03-01T20:10:58.0169287+00:00" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="cda" />
    <uri value="http://hl7.org/v3/cda" />
    <name value="CDA (R2)" />
  </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" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.id">
      <path value="Immunization.id" />
      <comment value="Usage Note:   This will usually be a GUID that is assigned by the sending application.&#xD;&#xA;&#xD;&#xA;The only time that a resource does not have an id is when it is being submitted to the server using a create operation." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.meta">
      <path value="Immunization.meta" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.meta.lastUpdated">
      <path value="Immunization.meta.lastUpdated" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.meta.source">
      <path value="Immunization.meta.source" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.meta.profile">
      <path value="Immunization.meta.profile" />
      <comment value="Usage note:  added this to align with PS-ON - &#xD;&#xA;&#xD;&#xA;It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time.  The list of profile URLs is a set." />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.meta.security">
      <path value="Immunization.meta.security" />
    </element>
    <element id="Immunization.meta.security.system">
      <path value="Immunization.meta.security.system" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.meta.security.code">
      <path value="Immunization.meta.security.code" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.text">
      <path value="Immunization.text" />
      <comment value="Conformance Rule:     This must be formatted, as closely as possible what was presented to the user in the originating system and must include all clinical data.    &#xD;&#xA;&#xD;&#xA;Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied).  This may be necessary for data from legacy systems where information is captured as a &quot;text blob&quot; or where text is additionally entered raw or narrated and encoded information is added later." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.text.status">
      <path value="Immunization.text.status" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.text.div">
      <path value="Immunization.text.div" />
      <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" />
      <comment value="Conformance Rules:   EMRs will use the status of not-done should be included in the export&#xD;&#xA;Conformance Rules:   All status's should be supported though this may be filtered based on use case.  Example:  Entered-in-error - &#xD;&#xA;For patients, entered-in-error may not be returned in queries.   &#xD;&#xA;For EMR API, all status's are exposed as they do not know the requestor.  &#xD;&#xA; In the context of a patient chart, entered in error would not be shared.  Other implementations such as DHIR will have their own business rules to adhere to. &#xD;&#xA;&#xD;&#xA;Notes - &#xD;&#xA;MA - active status on the task (future) - eg first dose out of 3 and the others are to be scheduled.   Cancel status maps to not-done.   &#xD;&#xA;PSS - do not have entered-in-error,  in PSS, refusal - if not-done this will map to refuse and a reason of &quot;PAJOBJ&quot; - patient objection.&#xD;&#xA;MS - all three can be supported&#xD;&#xA;DHIR - Status is fixed to completed&#xD;&#xA;CA Core - supported&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Will generally be set to show that the immunization has been completed or not done.  This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.statusReason">
      <path value="Immunization.statusReason" />
      <comment value="Usage:  If EMRs are able to capture they should send this as either code or text.&#xD;&#xA;Example use cases:  Patient already has immunity - common, ruebella; medical condition, indicates they should not get the immunization.&#xD;&#xA;Example 2 - &quot;Patient refused&quot; text, will have an PATOBJ code and an Immunization.status of &quot;not done&quot;&#xD;&#xA;&#xD;&#xA;Mapping Notes:   &#xD;&#xA;PSS does not handle all reasons, but does handle patient refusal - see MA below as PSS will do the same&#xD;&#xA;MA has a cancel reason that would need to be mapped into a code. &quot; Patient Declined&quot; and will map to &quot;PATOBJ&quot;&#xD;&#xA;MS -- text field with reason for refusal, but not codified - text only. &#xD;&#xA;CA-Core - supported  &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;This is generally only used for the status of &quot;not-done&quot;. The reason for performing the immunization event is captured in reasonCode, not here." />
      <mustSupport value="true" />
      <binding>
        <strength value="extensible" />
      </binding>
    </element>
    <element id="Immunization.statusReason.coding">
      <path value="Immunization.statusReason.coding" />
      <comment value="Usage Note:   Local codes must always be sent when codes exist in addition to the code system   &#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
      <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.statusReason.text">
      <path value="Immunization.statusReason.text" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode">
      <path value="Immunization.vaccineCode" />
      <comment value="Usage Note:   This will be use case dependent; DHIR uses CVC codes and other implementations may use other codes.  CVC codes are SNOMED codes and seem to align with DHDR and Core &#xD;&#xA;Conformance Rule:  Local codes/original codes (eg HICL, DIN) should not be sent&#xD;&#xA;&#xD;&#xA;Mapping Notes :&#xD;&#xA;Canadian Core has a preferred code set, for Generic and TradeName (2 slices).    &#xD;&#xA;Panorama ???&#xD;&#xA;PSS:   Maps into Ontario MD Standard - shortform (Column C - eg PSS:   Maps into Ontario MD Standard - shortform Canadian Vaccine Catalogue&#xD;&#xA;MA - Patient Chart--&gt; Imm. --&gt; Task Category: &quot;Immunization&quot; --&gt; Type&#xD;&#xA;MS - original code would be a DIN (source code for mapping)&#xD;&#xA;DHIR:  binding to CVC TradeName, subset of SNOMED&#xD;&#xA;&#xD;&#xA;*Jim advises that CVC includes some codes on this list that are not immunizations, immunglobulins.  BCG could be a diagnostic/test agent rather than a vaccine, but agent used to be used in vaccines&#xD;&#xA;&#xD;&#xA;**Binding should be to SNOMED (code system) , and CVC (value set)&#xD;&#xA;&#xD;&#xA;example:   &quot;vaccineCode&quot;: { &quot;coding&quot;:  {&#xD;&#xA; &quot;system&quot;: &quot;http://snomed.info/sct&quot;,&#xD;&#xA; &quot;version&quot;: &quot;http://snomed.info/sct/20611000087101&quot;,&#xD;&#xA; &quot;code&quot;: &quot;61153008&quot;,&#xD;&#xA; &quot;display&quot;: &quot;MMR&quot; &#xD;&#xA;&#xD;&#xA;PSS:   Maps into Ontario MD Standard - shortform (column C) - Canadian Vaccine Catalogue&#xD;&#xA;MA : - TRAVIS TO CONFIRM - JN - looks like we expose local codes ONLY; but maybe in background they map into CVC codes for Ontario MD&#xD;&#xA;MS:   DINS - text only; CVCatelogue provides a mapping into DIN&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;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." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding">
      <path value="Immunization.vaccineCode.coding" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <comment value="??? how many codings do we support?&#xD;&#xA;&#xD;&#xA;Mappings:&#xD;&#xA;CA-Core:  1:* supported&#xD;&#xA;PSS: Maps into Ontario MD Standard - shortform (Column C - eg PSS:   Maps into Ontario MD Standard - shortform Canadian Vaccine Catalogue&#xD;&#xA;MA: Patient Chart--&gt; Imm. --&gt; Task Category: &quot;Immunization&quot; --&gt; Type&#xD;&#xA;MS:  ??&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Discussion:   Are local codes permitted?&#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 &#xD;&#xA;Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <comment value="**** to be confirmed &#xD;&#xA;&#xD;&#xA;The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...).  OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously." />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding:CVCGeneric">
      <path value="Immunization.vaccineCode.coding" />
      <sliceName value="CVCGeneric" />
      <comment value="Usage:   Aligns with CA-Core:&#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
      <max value="1" />
      <mustSupport value="false" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://cvc.canimmunize.ca/v3/ValueSet/Generic" />
      </binding>
    </element>
    <element id="Immunization.vaccineCode.coding:CVCGeneric.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding:CVCGeneric.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding:CVCTradeName">
      <path value="Immunization.vaccineCode.coding" />
      <sliceName value="CVCTradeName" />
      <comment value="Usage:   Aligns with CA-Core&#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
      <max value="1" />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://cvc.canimmunize.ca/v3/ValueSet/Tradename" />
      </binding>
    </element>
    <element id="Immunization.vaccineCode.coding:CVCTradeName.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <min value="1" />
      <fixedUri value="http://snomed.info/sct" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding:CVCTradeName.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.vaccineCode.coding:DIN">
      <path value="Immunization.vaccineCode.coding" />
      <sliceName value="DIN" />
      <comment value="Usage Note:    The CVCGeneric or CVCTradename must be used where known.   In some cases, there is not a 1:1 mapping to SNOMED and therefore DIN may be specified instead.   eg Flumist comes out with a new DIN each year; this is not specified at this level in SNOMED as there is a single code.  DIN should also be used when there is no CVC code.    When mapping has occured from a local DIN to CVC codes, it is good practice to include the DIN in addition to the CVC code.&#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
    </element>
    <element id="Immunization.vaccineCode.coding:DIN.system">
      <path value="Immunization.vaccineCode.coding.system" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.coding:DIN.code">
      <path value="Immunization.vaccineCode.coding.code" />
      <min value="1" />
    </element>
    <element id="Immunization.vaccineCode.text">
      <path value="Immunization.vaccineCode.text" />
      <min value="1" />
      <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" />
      <comment value="Usage Note:   This should contain the name of the Patient, which can then be used in narrative&#xD;&#xA;&#xD;&#xA;Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries.   Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure &quot;/[type]/[id]&quot; then it should be assumed that the reference is to a FHIR RESTful server." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.patient.display">
      <path value="Immunization.patient.display" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.encounter">
      <path value="Immunization.encounter" />
      <comment value="Core-CA - not supported&#xD;&#xA;DHIR - not supported&#xD;&#xA;CHR - may be able to support - consider for future&#xD;&#xA;&#xD;&#xA;Import - Jim - this has little value - this would not be added into the patient chart&#xD;&#xA;DW - often encounter centric so perhaps in future&#xD;&#xA;MS - does not support&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.occurrence[x]">
      <path value="Immunization.occurrence[x]" />
      <comment value="Mappings:  Canadian core is not mandatory however, the core FHIR profile is 1..1&#xD;&#xA;&#xD;&#xA;Usage Notes:   DHIR makes this mandatory.   They added an extension for estimated date (boolean).&#xD;&#xA;&#xD;&#xA;Usage Note:  Dukoral prescription may be taken by the patient.   The occurrence date may be set to the prescription date as the exact date/time of the occurrence is unknown.&#xD;&#xA;&#xD;&#xA;Mapping:  &#xD;&#xA;PSS - no issues&#xD;&#xA;MA - No issues &#xD;&#xA;MS - No way to determine if date is estimated or not - this is a GAP    Date is mandatory when vaccine has been administered; estimated value = false.   If no date, the records would not be shared  &#xD;&#xA;&#xD;&#xA;When immunizations are given a specific date and time should always be known.   When immunizations are patient reported, a specific date might not be known.  Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.recorded">
      <path value="Immunization.recorded" />
      <comment value="Mappings:&#xD;&#xA;CA-Core:  not supported&#xD;&#xA;DHIR: &#xD;&#xA;MA: Patient Chart--&gt; Imm. --&gt; Task Category: &quot;Immunization&quot; --&gt; Observation --&gt; Date and Time&#xD;&#xA;PSS:   TBD&#xD;&#xA;MS:  TBD" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.primarySource">
      <path value="Immunization.primarySource" />
      <comment value="Mapping Notes:&#xD;&#xA;Core-CA - this is mandatory in these profiles and therefore mandatory here&#xD;&#xA;************ revisit and see what Core-CA does  - they will likely downgrade&#xD;&#xA;&#xD;&#xA;** This is a low impact field that is only of concern to DHIR.  &#xD;&#xA;DHIR -  Conformance Rule:   true if the immunizaiton was administered by the submitting clinical &quot;OFFICE&quot;; otherwise this is false.  On query result, there is an additional conformance rule:  This will be true if the immunization was administered by the IMMPHU - Public health unit&#xD;&#xA;&#xD;&#xA;Example:1   An immunization may be recorded without an event, eg when records are imported from a paper chart.   It is an external event but it is challenging to determine that it is external as there is no event recorded in the EMR, or the user did not flag as internal or external when it was recorded.     &#xD;&#xA;Example 2:   Imported the patient from another EMR; immunization is recorded as a primary immunization (not external); upon import it is external, but the record stays as internal when it is now really external.     Unless further logic is applied (eg compare users with historical users in the clinic) this will read falsely.  &#xD;&#xA;&#xD;&#xA;TELUS can conform to the DHIR rules&#xD;&#xA;&#xD;&#xA;PSS - there is an optional external flag to indicate someone else administered; decision on older records.  If date is older then this is likely not the primary source.   When vaccine record includes the clinician who administered, this should be set to true.   This is more complicated as this may not always be there with older records, though this is a rare case &#xD;&#xA;&#xD;&#xA;CHR - are able to add a record without indicating who performed this;  though rare, prefer this is not mandatory&#xD;&#xA;&#xD;&#xA;MA - TRAVIS - ??&#xD;&#xA;MS - Not stored as is but may be derived from dates, and the fact that it was administered by the provider at the clinic.  Similar to PSS&#xD;&#xA;&#xD;&#xA;Reflects the “reliability” of the content." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.reportOrigin">
      <path value="Immunization.reportOrigin" />
      <comment value="DHIR:  Conformance Rule:  Required if the primary source is false.     Note:  When reporting immunizations this value would not be required as the EMR is always the primary source.   This is never returned in query results from DHIR.  &#xD;&#xA;&#xD;&#xA;Patient Chart Conformance Rule:   When sharing immunization records, EMRs should include this data if known.   PSS, MA and MS do not have a &quot;code&quot; today but it will be supported for future use.  Text may be populated.&#xD;&#xA;&#xD;&#xA;CA-Core:   1:1 Supported - value set binding with no further constraints on codeable concept&#xD;&#xA;PSS:  Captures text string - map to text&#xD;&#xA;MS:   not cpatured&#xD;&#xA;MA&quot;   TRAVIS&#xD;&#xA;&#xD;&#xA;Example from DHIR follows.  Value set is CVC - SNOMED codes&#xD;&#xA;&#xD;&#xA;ValueSet: [basecvc]/ValueSet/RepSource - for DHIR this will be the binding but this is not national&#xD;&#xA;Supported codes are &#xD;&#xA;223366009 Healthcare professional (occupation)&#xD;&#xA;116154003 Patient (person)&#xD;&#xA;423374008 Review of systems section (record artifact) - eg Immunization records (third party app to a repository)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA; &quot;system&quot;: &quot;http://snomed.info/sct&quot;,&#xD;&#xA; &quot;version&quot;: &quot;http://snomed.info/sct/20611000087101&quot;,&#xD;&#xA; &quot;code&quot;: &quot;223366009&quot;,&#xD;&#xA; &quot;display&quot;: &quot;Health care provider&quot;   &#xD;&#xA;&#xD;&#xA;Should not be populated if primarySource = True, not required even if primarySource = False." />
      <mustSupport value="true" />
      <binding>
        <strength value="example" />
        <valueSet value="https://cvc.canimmunize.ca/v3/ValueSet/RepSource" />
      </binding>
    </element>
    <element id="Immunization.reportOrigin.coding">
      <path value="Immunization.reportOrigin.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.reportOrigin.text">
      <path value="Immunization.reportOrigin.text" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.location">
      <path value="Immunization.location" />
      <comment value="CA - Core:   not supported&#xD;&#xA;DHIR:   not supported&#xD;&#xA;Patient Chart:    This aligns with Canadian and DHIR and will be not supported &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.manufacturer">
      <path value="Immunization.manufacturer" />
      <comment value="Canadian Core - not supported&#xD;&#xA;DHIR - not supported on create or query.    &#xD;&#xA;Patient Chart - not supported; if the vaccine code is a brand name the manufacturer will be known.    Conformance Rule:   If EMR has captured &quot;text&quot;, this can be mapped to display.&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;PSS - captured as a text field (OMD requirement) - may be populated in display&#xD;&#xA;MA - captured as a text field (OMD requirement) - may be populated in display&#xD;&#xA;CHR - captured as a text field (OMD requirement) - may be populated in display&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.manufacturer.display">
      <path value="Immunization.manufacturer.display" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.lotNumber">
      <path value="Immunization.lotNumber" />
      <comment value="Core-CA:   Not supported&#xD;&#xA;PS-CA and PS-ON&#xD;&#xA;DHIR:   Optional on create; Optional on query response; Support a query by lot number &#xD;&#xA;Conformance Rule:  Must be populated when known.  Rationale:   If there is a recall this is relevant if sending to another EMR as it is relevant to the primary physician.   &#xD;&#xA;Note:  It is not in the Patient Summary as it is irrelvent in this context.&#xD;&#xA;&#xD;&#xA;PSS - captured as a text field (OMD requirement) - may be populated in display&#xD;&#xA;MA - captured as a text field (OMD requirement) - may be populated in display&#xD;&#xA;MS - - captured as a text field &#xD;&#xA;CHR - captured as text&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;Note that FHIR strings SHALL NOT exceed 1MB in size" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.expirationDate">
      <path value="Immunization.expirationDate" />
      <comment value="Core-CA:   Not supported&#xD;&#xA;DHIR:   Optional on create; Optional on query response; Support a query by lot number (extension on medication returned by CVC); and also returns the expiration date returned&#xD;&#xA;&#xD;&#xA;Patient Chart:   Not supported.   This is captured by text, not date in some EMRs.  Additionally, this can be queried or discovered by other means if necessary and is therefore redundant.    &#xD;&#xA;&#xD;&#xA;PSS - captured as a text field (OMD requirement) - potential issue - as a date field (month/year) is expected&#xD;&#xA;MA - captured as a text field (OMD requirement) -  &#xD;&#xA;MS - - not recorded&#xD;&#xA;CHR - Marc - if capturing as a date, then we shoud support this" />
    </element>
    <element id="Immunization.site">
      <path value="Immunization.site" />
      <comment value="CA-PS - http://hl7.org/fhir/uv/ips/ValueSet/target-site-uv-ips (preferred, SNOMED) - must support = false&#xD;&#xA;ON-PS - https://cvc.canimmunize.ca/v3/ValueSet/AnatomicalSite (preferred, SNOMED?) - must support = true, coding must be supported (ISSUE)&#xD;&#xA;CA-Core - supported, optional using SNOMED (preferred) Value set is CVC, text is acceptable and added here&#xD;&#xA;DHIR -  Supported, optional , using SNOMED, no value set is specified.   MUST BE CODED VALUE therefore cannot be sent and text is optional. &#xD;&#xA;&#xD;&#xA;&#xD;&#xA;***EMRs DO NOT SUPPORT A CODED VALUE TODAY; THEREFORE THIS CAN ONLY BE SENT AS TEXT &#xD;&#xA;Patient Chart - Use https://cvc.canimmunize.ca/v3/ValueSet/AnatomicalSite (preferred).  &#xD;&#xA;Conformance Rule:   Must be populated when known.  &#xD;&#xA;&#xD;&#xA;PSS - text only&#xD;&#xA;MA - Text is easiest; captured in configurable observation template - manageable list/dropdown but customization is allowed- Mapping could be tricky due to customization option.  &#xD;&#xA;MS - text only&#xD;&#xA;CHR -  - there is a dropdown list, potential for mapping and also a value of &quot;other&quot; without any associated text &#xD;&#xA;&#xD;&#xA;CA-Core below&#xD;&#xA; https://cvc.canimmunize.ca/v3/ValueSet/AnatomicalSite (preferred)&#xD;&#xA;&#xD;&#xA;368208006 Left upper arm structure (body structure)&#xD;&#xA;368209003 Right upper arm structure (body structure)&#xD;&#xA;16217701000119102 Structure of left deltoid muscle (body structure)&#xD;&#xA;16217661000119109 Structure of right deltoid muscle (body structure)&#xD;&#xA;66480008 Structure of left forearm (body structure)&#xD;&#xA;64262003 Structure of right forearm (body structure)&#xD;&#xA;123851003 Mouth region structure (body structure)&#xD;&#xA;244506005 Both anterior nares (body structure)&#xD;&#xA;723608007 Structure of left anterior naris (body structu&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;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." />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://cvc.canimmunize.ca/v3/ValueSet/AnatomicalSite" />
      </binding>
    </element>
    <element id="Immunization.site.coding">
      <path value="Immunization.site.coding" />
      <comment value="Usage Rule:   Not expected to be used initially as current EMRs are supporting text only&#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.site.coding.system">
      <path value="Immunization.site.coding.system" />
      <fixedUri value="http://snomed.info/sct" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.site.coding.code">
      <path value="Immunization.site.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.site.text">
      <path value="Immunization.site.text" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.route">
      <path value="Immunization.route" />
      <comment value="Usage Note:   As this is supported by IPS, CA and ON, vendors must be able to derive and populate this data element where available.&#xD;&#xA;&#xD;&#xA;Mapping:   &#xD;&#xA;Canadian Core - Value set is Canadian Core&#xD;&#xA;DHIR - route is optional but must be coded if present; text is not supported.     binding to CVC&#xD;&#xA;PS-ON- https://cvc.canimmunize.ca/v3/ValueSet/RouteOfAdmin (preferred), must support, coding+text&#xD;&#xA;PS-CA - RouteOfAdminUvIps (preferred), must support, text only (Nov '21)&#xD;&#xA;&#xD;&#xA;MS - not captured, not even text - cannot be sent&#xD;&#xA;PSS - data is available if vaccine was recorded as FDB IDC code. (conforamnce example)&#xD;&#xA;MA - potential mapping to method - text - supported in Ontario&#xD;&#xA;CHR - drop down list that likely maps easily[;  not required field; can set up a default &#xD;&#xA;&#xD;&#xA;Usage Ntoe:  This is determined by the name/code of the immunization &#xD;&#xA;&#xD;&#xA;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." />
      <mustSupport value="true" />
      <binding>
        <strength value="preferred" />
        <valueSet value="https://cvc.canimmunize.ca/v3/ValueSet/RouteOfAdmin" />
      </binding>
    </element>
    <element id="Immunization.route.coding">
      <path value="Immunization.route.coding" />
      <comment value="DHIR - code is mandatory; text is not supported - we cannot support this so will send text only&#xD;&#xA;Usage:   in future this could be used&#xD;&#xA;&#xD;&#xA;Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information.  Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.route.coding.system">
      <path value="Immunization.route.coding.system" />
      <fixedUri value="http://snomed.info/sct" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.route.coding.code">
      <path value="Immunization.route.coding.code" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.route.coding.userSelected">
      <path value="Immunization.route.coding.userSelected" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.route.text">
      <path value="Immunization.route.text" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.doseQuantity">
      <path value="Immunization.doseQuantity" />
      <comment value="Mapping:&#xD;&#xA;CA-PS and CA-ON- not supported&#xD;&#xA;DHIR - supported as optional, value and unit (as a string) fields are required when populated&#xD;&#xA;PSS - dose field, if populated - unit required; almost always ML&#xD;&#xA;MA - no mapping&#xD;&#xA;MS - text only - may be able to parse the number?&#xD;&#xA;CHR - dropdown units (ML, MG, G, Capsule, Vial)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;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." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.doseQuantity.value">
      <path value="Immunization.doseQuantity.value" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.doseQuantity.unit">
      <path value="Immunization.doseQuantity.unit" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer">
      <path value="Immunization.performer" />
      <comment value="Mapping:   &#xD;&#xA;DHIR - On the create supported as optional; with function and actor mandatory when provided.   Function fixed value as AP (Adminstering Provider)&#xD;&#xA;DHIR - On the query response, this is just a name&#xD;&#xA;Canadian Core - support as optional; with function and actor mandatory when provided&#xD;&#xA;PS-CA and PS-ON do not support&#xD;&#xA;Patient Chart - For create profiles to align with Core and DHIR, we will incldue all data (Identifier, names, telecom, etc)&#xD;&#xA;Patient Chart - appropriate info such as licence number, name.   NOT billing number, NOT phone number&#xD;&#xA;&#xD;&#xA;CHR - Injected by" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer.function">
      <path value="Immunization.performer.function" />
      <comment value="Conformance Rule:   DHIR -mandatory when performer is provided.  Function fixed value as AP (Adminstering Provider) &#xD;&#xA;Patient Chart Rule:   This should not be limited to AP&#xD;&#xA;&#xD;&#xA;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." />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer.function.coding">
      <path value="Immunization.performer.function.coding" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer.function.coding.system">
      <path value="Immunization.performer.function.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hl7.org/CodeSystem/v2-0443" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer.function.coding.code">
      <path value="Immunization.performer.function.coding.code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer.function.coding.userSelected">
      <path value="Immunization.performer.function.coding.userSelected" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer.function.text">
      <path value="Immunization.performer.function.text" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.performer.actor">
      <path value="Immunization.performer.actor" />
      <comment value="Canadian Core - has restricted to http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-practitioner&#xD;&#xA;DHIR - defined a practitioner profile - ca-on-immunizations-profile-submission-clinician-Practitioner-submitter (identifier OneID, name, phone + email)&#xD;&#xA;Patient Chart - Will use a TELUS profile for Practitioner, PractitionerRole and Organization (eg pharmacy) that aligns with both of the above.   &#xD;&#xA;**Potential issues with PractitionerRole because Organization is mandatory and EMR may not always know the organization/clinic where the immunization occurred.   In the case where there is a single EMR instance supporting multiple location/orgs, the exact org where the immunization occurred may not be known.   Data model does not capture always.   &#xD;&#xA;** New PractitonerRole Profile is requried HERE with an optional Organization&#xD;&#xA;&#xD;&#xA;CHR --&gt;   how do they capture this?   &#xD;&#xA;&#xD;&#xA;***May wish to create a scaled down profile for this purpose, eg PractitionerPerformer and also one for PractitonerRole&#xD;&#xA;***** For patient chart, the provider roles may need to be extended for Nurse, Nurse Practitioner, pharmacists, etc&#xD;&#xA;PSS, MA, MS  - all systems are capable of sending provider data&#xD;&#xA;*** Role code may be useful so we may wish to point to PractitionerRole&#xD;&#xA; &#xD;&#xA;&#xD;&#xA;When the individual practitioner who performed the action is known, it is best to send." />
      <type>
        <code value="Reference" />
        <aggregation value="bundled" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="Immunization.note">
      <path value="Immunization.note" />
      <comment value="Usage Note:  This is supported by Patient Chart; is not supported by CA, PS_ON and PS-CA - if this is available, this should always be sent in all cases.  &#xD;&#xA;&#xD;&#xA;Mappings:&#xD;&#xA;CA-Core - not supported&#xD;&#xA;PS-ON and PS-CA - not supporting&#xD;&#xA;DHIR - not supported&#xD;&#xA;PSS -  instructions field&#xD;&#xA;MA -  Task Instructions, Nursing Notes and Doctor notes.   MA - has a boolean to indicate that patient received education which could be mapped here&#xD;&#xA;MS - Comment field &#xD;&#xA;CHR - comment field&#xD;&#xA;&#xD;&#xA;For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time.  This element may need to be included in narrative because of the potential for modifying information.  *Annotations SHOULD NOT* be used to communicate &quot;modifying&quot; information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible)." />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.note.text">
      <path value="Immunization.note.text" />
      <mustSupport value="true" />
    </element>
    <element id="Immunization.reasonCode">
      <path value="Immunization.reasonCode" />
      <comment value="TBD&#xD;&#xA;&#xD;&#xA;Mapping:  &#xD;&#xA;Canadian Core - supports a reference to condition, diagnosis, etc&#xD;&#xA;DHIR - not supported&#xD;&#xA;PSS - Not supported at the Immunization &quot;adminstered&quot; level.    &#xD;&#xA;MA - TRAVIS - JN sees a reason field at the task level&#xD;&#xA;MS - not supported&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.reasonReference">
      <path value="Immunization.reasonReference" />
      <comment value="Mapping Notes:&#xD;&#xA;CA-Core - supported&#xD;&#xA;DHIR - not supported&#xD;&#xA;PSS, MA, MS - not supported&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.isSubpotent">
      <path value="Immunization.isSubpotent" />
      <comment value="Mapping:&#xD;&#xA;CA- core:  not supported&#xD;&#xA;DHIR: not supported&#xD;&#xA;PSS, MA, MS - not supported&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.subpotentReason">
      <path value="Immunization.subpotentReason" />
      <comment value="Mapping:&#xD;&#xA;CA- core:  not supported&#xD;&#xA;DHIR: not supported&#xD;&#xA;PSS, MA, MS - not supported&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.education">
      <path value="Immunization.education" />
      <comment value="Mapping:&#xD;&#xA;CA- core:  not supported&#xD;&#xA;DHIR: not supported&#xD;&#xA;PSS, &#xD;&#xA;MA - has a boolean to indicate that patient received education&#xD;&#xA;MS" />
    </element>
    <element id="Immunization.programEligibility">
      <path value="Immunization.programEligibility" />
      <comment value="Mapping:&#xD;&#xA;CA- core:  not supported&#xD;&#xA;DHIR: not supported&#xD;&#xA;PSS, MA, MS - not supported&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.fundingSource">
      <path value="Immunization.fundingSource" />
      <comment value="Mapping:&#xD;&#xA;CA- core:  not supported&#xD;&#xA;DHIR: not supported&#xD;&#xA;PSS, MA, MS - not supported&#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.reaction">
      <path value="Immunization.reaction" />
      <comment value="Mapping:&#xD;&#xA;Usage:   FHIR - expects an allergy record to be recorded; in Allergy, the Reaction.substance.code would be the medication/immunization&#xD;&#xA;CA- core:  supported, reference to an observation&#xD;&#xA;DHIR: not supported&#xD;&#xA;&#xD;&#xA;PSS:  may record this and can be tied to immunization record - connected allergy record&#xD;&#xA;MA - TRAVIS - is this a coded observation? &#xD;&#xA;MS -  not supported; may be recorded separately &#xD;&#xA;&#xD;&#xA;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." />
    </element>
    <element id="Immunization.protocolApplied">
      <path value="Immunization.protocolApplied" />
      <comment value="Mapping:&#xD;&#xA;CA- core:  not supported&#xD;&#xA;DHIR: not supported&#xD;&#xA;PSS, MA, MS - not supported&#xD;&#xA;&#xD;&#xA;This may be recorded as notes in the EMR" />
    </element>
  </differential>
</StructureDefinition>