Finnish Implementation Guide for SMART App Launch
2.0.0-rc1 - ballot

Publication Build: This will be filled in by the publication tooling

## Resource Profile: FiSMARTImmunization - Mappings

Draft as of 2025-02-06

Mappings for the fi-smart-immunization resource profile.

### Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

FiSMARTImmunization
Immunization | Event
identifier | Event.identifier
status | Event.status
statusReason | Event.statusReason
vaccineCode | Event.code
patient | Event.subject
encounter | Event.context
occurrence[x] | Event.occurrence[x]
location | Event.location
performer | Event.performer
function | Event.performer.function
actor | Event.performer.actor
note | Event.note
reasonCode | Event.reasonCode
reasonReference | Event.reasonReference

### Mappings for HL7 v2 Mapping (http://hl7.org/v2)

FiSMARTImmunization
Immunization | VXU_V04
vaccineCode | RXA-5
coding | C*E.1-8, C*E.10-22
coding (ATC) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
coding (VNR) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this
patient | PID-3
encounter | PV1-19
occurrence[x] | RXA-3
primarySource | RXA-9
reportOrigin | RXA-9
location | RXA-27 (or RXA-11, deprecated as of v2.7)
manufacturer | RXA-17
lotNumber | RXA-15
expirationDate | RXA-16
site | RXR-2
coding | C*E.1-8, C*E.10-22
coding (Vaccination-site) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this
route | RXR-1
coding | C*E.1-8, C*E.10-22
coding (Vaccination-route) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this
doseQuantity | RXA-6 / RXA-7
performer | ORC-12 / RXA-10
note | OBX-5 : OBX-3 = 48767-8
isSubpotent | RXA-20 = PA (partial administration)
education |
documentType | OBX-5 : OBX-3 = 69764-9
publicationDate | OBX-5 : OBX-3 = 29768-9
presentationDate | OBX-5 : OBX-3 = 29769-7
programEligibility | OBX-5 : OBX-3 = 64994-7
reaction | OBX-3
date | OBX-14 (ideally this would be reported in an IAM segment, but IAM is not part of the HL7 v2 VXU message - most likely would appear in OBX segments if at all)
detail | OBX-5
reported | (HL7 v2 doesn't seem to provide for this)
protocolApplied |
targetDisease |
coding | C*E.1-8, C*E.10-22
coding (THL-code) | C*E.1-8, C*E.10-22
system | C*E.3
version | C*E.7
code | C*E.1
display | C*E.2 - but note this is not well followed
userSelected | Sometimes implied by being first
text | C*E.9. But note many systems use C*E.2 for this

### Mappings for RIM Mapping (http://hl7.org/v3)

FiSMARTImmunization
Immunization | Entity. Role, or Act, SubstanceAdministration
text | Act.text?
contained | N/A
modifierExtension | N/A
identifier | .id
status | statusCode
statusReason | .inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde
vaccineCode | .code
id | n/a
extension | n/a
coding | union(., ./translation)
coding (ATC) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
coding (VNR) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
patient | .partipication[ttypeCode=].role
encounter | component->EncounterEvent
occurrence[x] | .effectiveTime
recorded | .participation[typeCode=AUT].time
primarySource | immunization.uncertaintycode (if primary source=false, uncertainty=U)
reportOrigin | .participation[typeCode=INF].role[classCode=PAT] (this syntax for self-reported) .participation[typeCode=INF].role[classCode=LIC] (this syntax for health care professional) .participation[typeCode=INF].role[classCode=PRS] (this syntax for family member)
location | .participation[typeCode=LOC].COCT_MT240000UV
manufacturer | .participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=ORG]
lotNumber | .participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].id
expirationDate | .participation[typeCode=CSM].role[classCode=INST].scopedRole.scoper[classCode=MMAT].expirationTime
site | observation.targetSiteCode
id | n/a
extension | n/a
coding | union(., ./translation)
coding (Vaccination-site) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
route | .routeCode
id | n/a
extension | n/a
coding | union(., ./translation)
coding (Vaccination-route) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
doseQuantity | .doseQuantity
performer | .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
id | n/a
extension | n/a
modifierExtension | N/A
function | .participation.functionCode
actor | .player
note | note
reasonCode | [actionNegationInd=false].reasonCode
reasonReference | N/A
isSubpotent | N/A
subpotentReason | N/A
education | N/A
id | n/a
extension | n/a
modifierExtension | N/A
documentType | N/A
reference | N/A
publicationDate | N/A
presentationDate | N/A
programEligibility | N/A
fundingSource | N/A
reaction | Observation[classCode=obs].code
id | n/a
extension | n/a
modifierExtension | N/A
date | .effectiveTime
detail | .value
reported | .participation[typeCode=INF].role[classCode=PAT] (this syntax for self-reported=true)
protocolApplied | N/A
id | n/a
extension | n/a
modifierExtension | N/A
series | N/A
authority | N/A
targetDisease | N/A
id | n/a
extension | n/a
coding | union(., ./translation)
coding (THL-code) | union(., ./translation)
id | n/a
extension | n/a
system | ./codeSystem
version | ./codeSystemVersion
code | ./code
display | CV.displayName
userSelected | CD.codingRationale
text | ./originalText[mediaType/code="text/plain"]/data
doseNumber[x] | N/A
seriesDoses[x] | N/A

### Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

FiSMARTImmunization
Immunization |
identifier | FiveWs.identifier
status | FiveWs.status
vaccineCode | FiveWs.what[x]
patient | FiveWs.subject[x], FiveWs.subject
encounter | FiveWs.context
occurrence[x] | FiveWs.done[x]
recorded | FiveWs.recorded
primarySource | FiveWs.source
reportOrigin | FiveWs.source
location | FiveWs.where[x]
performer |
actor | FiveWs.actor

### Mappings for CDA (R2) (http://hl7.org/v3/cda)

FiSMARTImmunization
Immunization |
identifier | ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/id
vaccineCode | ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacturedMaterial/realmCode/code
occurrence[x] | ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/effectiveTime/value
manufacturer | ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacuturerOrganization/name
lotNumber | ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/consumable/manfacturedProduct/manufacturedMaterial/lotNumberText
site | ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/approachSiteCode/code
route | ClinicalDocument/component/StructuredBody/component/section/entry/substanceAdministration/routeCode/code