FHIR Release 3 (STU) R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.0.2: STU 3). (v3.5.0: R4 Ballot #2). The current version which supercedes this version is 5.0.0 . For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

Public Health and Emergency Response Work Group Maturity Level : N/A Ballot Status : Informative Compartments : Patient , Practitioner

R2 : R3 Converson : R4 Conversion maps for Immunization.

Functional status for this map: 2 3 tests that all execute ok. 2 3 fail round-trip testing and 2 3 r3 resources are invalid (2 (0 errors). ( see documentation)

map "http://hl7.org/fhir/StructureMap/Immunization2to3" = "R2 to R3 Conversions for Immunization"

map "http://hl7.org/fhir/StructureMap/Immunization3to4" = "R3 to R4 Conversions for Immunization"


uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Immunization" alias ImmunizationR2 as source
uses "http://hl7.org/fhir/StructureDefinition/Immunization" alias Immunization as target


imports "http://hl7.org/fhir/StructureMap/*2to3"

uses "http://hl7.org/fhir/3.0/StructureDefinition/Immunization" alias ImmunizationR3 as source
uses "http://hl7.org/fhir/StructureDefinition/Immunization" alias Immunization as target


group for type+types  Immunization extends DomainResource
  input src : ImmunizationR2 as source
  input tgt : Immunization as target

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


  "Immunization-identifier" : for src.identifier make tgt.identifier
  "Immunization-status" : for src.status where $this = 'completed' or $this = 'entered-in-error' make tgt.status
  "Immunization-date" : for src.date make tgt.date
  "Immunization-vaccineCode" : for src.vaccineCode make tgt.vaccineCode
  "Immunization-patient" : for src.patient make tgt.patient
  "Immunization-wasNotGiven" : for src.wasNotGiven make tgt.notGiven
  "Immunization-performer" : for src.performer as v make tgt.practitioner as p, p.role = cc("http://hl7.org/fhir/v2/0443", "AP"), p.actor = v
  "Immunization-requester" : for src.requester as v make tgt.practitioner as p, p.role = cc("http://hl7.org/fhir/v2/0443", "OP"), p.actor = v
  "Immunization-encounter" : for src.encounter make tgt.encounter
  "Immunization-manufacturer" : for src.manufacturer make tgt.manufacturer
  "Immunization-location" : for src.location make tgt.location
  "Immunization-lotNumber" : for src.lotNumber make tgt.lotNumber
  "Immunization-expirationDate" : for src.expirationDate make tgt.expirationDate
  "Immunization-site" : for src.site make tgt.site
  "Immunization-route" : for src.route make tgt.route
  "Immunization-doseQuantity" : for src.doseQuantity make tgt.doseQuantity
  "Immunization-note" : for src.note make tgt.note
  "Immunization-explanation" : for src.explanation as vs0 make tgt.explanation as vt0 then immExplanation(vs0, vt0)
  "Immunization-reaction" : for src.reaction as vs0 make tgt.reaction as vt0 then immReaction(vs0, vt0)
  "Immunization-vaccinationProtocol" : for src.vaccinationProtocol as vs0 make tgt.vaccinationProtocol as vt0 then immProtocol(vs0, vt0)
endgroup


group immExplanation extends BackboneElement
  input src as source
  input tgt as target
  
  "Immunization.explanation-reason" : for src.reason make tgt.reason
  "Immunization.explanation-reasonNotGiven" : for src.reasonNotGiven make tgt.reasonNotGiven
endgroup


group immReaction extends BackboneElement
  input src as source
  input tgt as target
  
  "Immunization.reaction-date" : for src.date make tgt.date
  "Immunization.reaction-detail" : for src.detail make tgt.detail
  "Immunization.reaction-reported" : for src.reported make tgt.reported
endgroup

group Immunization extends DomainResource
  input src : ImmunizationR3 as source
  input tgt : Immunization as target


group immProtocol extends BackboneElement
  input src as source
  input tgt as target
  
  "Immunization.vaccinationProtocol-doseSequence" : for src.doseSequence make tgt.doseSequence
  "Immunization.vaccinationProtocol-description" : for src.description make tgt.description
  "Immunization.vaccinationProtocol-authority" : for src.authority make tgt.authority
  "Immunization.vaccinationProtocol-series" : for src.series make tgt.series
  "Immunization.vaccinationProtocol-seriesDoses" : for src.seriesDoses make tgt.seriesDoses
  "Immunization.vaccinationProtocol-targetDisease" : for src.targetDisease make tgt.targetDisease
  "Immunization.vaccinationProtocol-doseStatus" : for src.doseStatus make tgt.doseStatus
  "Immunization.vaccinationProtocol-doseStatusReason" : for src.doseStatusReason make tgt.doseStatusReason

  "Immunization.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Immunization.status" : for src.status as vs make tgt.status as vt
  "Immunization.vaccineCode" : for src.vaccineCode as vs make tgt.vaccineCode as vt
  "Immunization.patient" : for src.patient as vs make tgt.patient as vt
  "Immunization.encounter" : for src.encounter as vs make tgt.encounter as vt
  "Immunization.primarySource" : for src.primarySource as vs make tgt.primarySource as vt
  "Immunization.reportOrigin" : for src.reportOrigin as vs make tgt.reportOrigin as vt
  "Immunization.location" : for src.location as vs make tgt.location as vt
  "Immunization.manufacturer" : for src.manufacturer as vs make tgt.manufacturer as vt
  "Immunization.lotNumber" : for src.lotNumber as vs make tgt.lotNumber as vt
  "Immunization.expirationDate" : for src.expirationDate as vs make tgt.expirationDate as vt
  "Immunization.site" : for src.site as vs make tgt.site as vt
  "Immunization.route" : for src.route as vs make tgt.route as vt
  "Immunization.doseQuantity" : for src.doseQuantity as vs make tgt.doseQuantity as vt
  "Immunization.performer" : for src.practitioner as vs0 make tgt.performer as vt0 then {
    "Immunization.performer.function" : for vs0.role as vs make vt0.function as vt
    "Immunization.performer.actor" : for vs0.actor as vs make vt0.actor as vt
  }
  "Immunization.note" : for src.note as vs make tgt.note as vt
  "Immunization.reasonCode" : for src.reason as vs make tgt.reasonCode as vt

endgroup
  




map "http://hl7.org/fhir/StructureMap/Immunization3to2" = "R3 to R2 Conversion for Immunization"

map "http://hl7.org/fhir/StructureMap/Immunization4to3" = "R4 to R3 Conversion for Immunization"


uses "http://hl7.org/fhir/StructureDefinition/Immunization" alias Immunization as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Immunization" alias ImmunizationR2 as target


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

uses "http://hl7.org/fhir/StructureDefinition/Immunization" alias Immunization as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/Immunization" alias ImmunizationR3 as target


group for type+types  Immunization extends DomainResource
  input src : Immunization as source
  input tgt : ImmunizationR2 as target

imports "http://hl7.org/fhir/StructureMap/*4to3"


  "Immunization-identifier" : for src.identifier make tgt.identifier
  "Immunization-status" : for src.status make tgt.status
  "Immunization-date" : for src.date make tgt.date
  "Immunization-vaccineCode" : for src.vaccineCode make tgt.vaccineCode
  "Immunization-patient" : for src.patient make tgt.patient
  "Immunization-wasNotGiven" : for src.notGiven make tgt.wasNotGiven
  // can't translate reported
  "Immunization-performer" : for src.practitioner as v where v.role.coding.code.contains("AP") then {
    "Immunization-performer-inner" : for v.actor make tgt.performer 
  }
  "Immunization-requester" : for src.practitioner as v where v.role.coding.code.contains("OP") then {
    "Immunization-requester-inner" : for v.actor make tgt.requester 
  }
  "Immunization-encounter" : for src.encounter make tgt.encounter
  "Immunization-manufacturer" : for src.manufacturer make tgt.manufacturer
  "Immunization-location" : for src.location make tgt.location
  "Immunization-lotNumber" : for src.lotNumber make tgt.lotNumber
  "Immunization-expirationDate" : for src.expirationDate make tgt.expirationDate
  "Immunization-site" : for src.site make tgt.site
  "Immunization-route" : for src.route make tgt.route
  "Immunization-doseQuantity" : for src.doseQuantity make tgt.doseQuantity
  "Immunization-note" : for src.note make tgt.note
  "Immunization-explanation" : for src.explanation as vs0 make tgt.explanation as vt0 then immExplanation(vs0, vt0)
  "Immunization-reaction" : for src.reaction as vs0 make tgt.reaction as vt0 then immReaction(vs0, vt0)
  "Immunization-vaccinationProtocol" : for src.vaccinationProtocol as vs0 make tgt.vaccinationProtocol as vt0 then immProtocol(vs0, vt0)
endgroup


group immExplanation extends BackboneElement
  input src as source
  input tgt as target
  
  "Immunization.explanation-reason" : for src.reason make tgt.reason
  "Immunization.explanation-reasonNotGiven" : for src.reasonNotGiven make tgt.reasonNotGiven
endgroup


group immReaction extends BackboneElement
  input src as source
  input tgt as target
  
  "Immunization.reaction-date" : for src.date make tgt.date
  "Immunization.reaction-detail" : for src.detail make tgt.detail
  "Immunization.reaction-reported" : for src.reported make tgt.reported
endgroup

group Immunization extends DomainResource
  input src : Immunization as source
  input tgt : ImmunizationR3 as target


group immProtocol extends BackboneElement
  input src as source
  input tgt as target
  
  "Immunization.vaccinationProtocol-doseSequence" : for src.doseSequence make tgt.doseSequence
  "Immunization.vaccinationProtocol-description" : for src.description make tgt.description
  "Immunization.vaccinationProtocol-authority" : for src.authority make tgt.authority
  "Immunization.vaccinationProtocol-series" : for src.series make tgt.series
  "Immunization.vaccinationProtocol-seriesDoses" : for src.seriesDoses make tgt.seriesDoses
  "Immunization.vaccinationProtocol-targetDisease" : for src.targetDisease make tgt.targetDisease
  "Immunization.vaccinationProtocol-doseStatus" : for src.doseStatus make tgt.doseStatus
  "Immunization.vaccinationProtocol-doseStatusReason" : for src.doseStatusReason make tgt.doseStatusReason

  "Immunization.identifier" : for src.identifier as vs make tgt.identifier as vt
  "Immunization.status" : for src.status as vs make tgt.status as vt
  "Immunization.vaccineCode" : for src.vaccineCode as vs make tgt.vaccineCode as vt
  "Immunization.patient" : for src.patient as vs make tgt.patient as vt
  "Immunization.encounter" : for src.encounter as vs make tgt.encounter as vt
  "Immunization.primarySource" : for src.primarySource as vs make tgt.primarySource as vt
  "Immunization.reportOrigin" : for src.reportOrigin as vs make tgt.reportOrigin as vt
  "Immunization.location" : for src.location as vs make tgt.location as vt
  "Immunization.manufacturer" : for src.manufacturer as vs make tgt.manufacturer as vt
  "Immunization.lotNumber" : for src.lotNumber as vs make tgt.lotNumber as vt
  "Immunization.expirationDate" : for src.expirationDate as vs make tgt.expirationDate as vt
  "Immunization.site" : for src.site as vs make tgt.site as vt
  "Immunization.route" : for src.route as vs make tgt.route as vt
  "Immunization.doseQuantity" : for src.doseQuantity as vs make tgt.doseQuantity as vt
  "Immunization.practitioner" : for src.performer as vs0 make tgt.practitioner as vt0 then {
    "Immunization.practitioner.role" : for vs0.function as vs make vt0.role as vt
    "Immunization.practitioner.actor" : for vs0.actor as vs make vt0.actor as vt
  }
  "Immunization.note" : for src.note as vs make tgt.note as vt

endgroup
  




example ERROR @ Immunization: Profile http://hl7.org/fhir/StructureDefinition/Immunization, Element 'Immunization.primarySource': minimum required = 1, but only found 0 (src = InstanceValidator) notGiven ERROR @ Immunization: Profile http://hl7.org/fhir/StructureDefinition/Immunization, Element 'Immunization.primarySource': minimum required = 1, but only found 0 (src = InstanceValidator)