FHIR Cross-Version Mapping Pack
0.1.0 - Ballot for Release 5.1.0 International flag

FHIR Cross-Version Mapping Pack, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-cross-version/ and changes regularly. See the Directory of published versions

StructureMap: Immunization Transforms: R3 to R2

Official URL: http://hl7.org/fhir/StructureMap/Immunization3to2 Version: 0.1.0
Standards status: Draft Maturity Level: 1 Computable Name: Immunization3to2

ImmunizationTransformsR3toR2

/// url = 'http://hl7.org/fhir/StructureMap/Immunization3to2'
/// name = 'Immunization3to2'
/// title = 'Immunization Transforms: R3 to R2'
/// status = 'active'

uses "http://hl7.org/fhir/3.0/Immunization" alias Immunization as source
uses "http://hl7.org/fhir/1.0/Immunization" alias ImmunizationR2 as target

imports "http://hl7.org/fhir/StructureMap/*3to2"

group Immunization(source src : Immunization, target tgt : ImmunizationR2) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier "Immunization-identifier";
  src.status -> tgt.status "Immunization-status";
  src.date -> tgt.date "Immunization-date";
  src.vaccineCode -> tgt.vaccineCode "Immunization-vaccineCode";
  src.patient -> tgt.patient "Immunization-patient";
  src.notGiven -> tgt.wasNotGiven "Immunization-wasNotGiven";
  src.practitioner as v where v.role.coding.code.contains('AP') then {
    v.actor -> tgt.performer "Immunization-performer-inner";
  } "Immunization-performer";
  src.practitioner as v where v.role.coding.code.contains('OP') then {
    v.actor -> tgt.requester "Immunization-requester-inner";
  } "Immunization-requester";
  src.encounter -> tgt.encounter "Immunization-encounter";
  src.manufacturer -> tgt.manufacturer "Immunization-manufacturer";
  src.location -> tgt.location "Immunization-location";
  src.lotNumber -> tgt.lotNumber "Immunization-lotNumber";
  src.expirationDate -> tgt.expirationDate "Immunization-expirationDate";
  src.site -> tgt.site "Immunization-site";
  src.route -> tgt.route "Immunization-route";
  src.doseQuantity -> tgt.doseQuantity "Immunization-doseQuantity";
  src.note -> tgt.note "Immunization-note";
  src.explanation as vs0 -> tgt.explanation as vt0 then immExplanation(vs0, vt0) "Immunization-explanation";
  src.reaction as vs0 -> tgt.reaction as vt0 then immReaction(vs0, vt0) "Immunization-reaction";
  src.vaccinationProtocol as vs0 -> tgt.vaccinationProtocol as vt0 then immProtocol(vs0, vt0) "Immunization-vaccinationProtocol";
}

group immExplanation(source src, target tgt) extends BackboneElement {
  src.reason -> tgt.reason "explanation-reason";
  src.reasonNotGiven -> tgt.reasonNotGiven "explanation-reasonNotGiven";
}

group immReaction(source src, target tgt) extends BackboneElement {
  src.date -> tgt.date "reaction-date";
  src.detail -> tgt.detail "reaction-detail";
  src.reported -> tgt.reported "reaction-reported";
}

group immProtocol(source src, target tgt) extends BackboneElement {
  src.doseSequence -> tgt.doseSequence "vaccinationProtocol-doseSequence";
  src.description -> tgt.description "vaccinationProtocol-description";
  src.authority -> tgt.authority "vaccinationProtocol-authority";
  src.series -> tgt.series "vaccinationProtocol-series";
  src.seriesDoses -> tgt.seriesDoses "vaccinationProtocol-seriesDoses";
  src.targetDisease -> tgt.targetDisease "vaccinationProtocol-targetDisease";
  src.doseStatus -> tgt.doseStatus "vaccinationProtocol-doseStatus";
  src.doseStatusReason -> tgt.doseStatusReason "vaccinationProtocol-doseStatusReason";
}