NPHCDA Immunization FHIR IG
0.9.0 - ci-build Nigeria flag

NPHCDA Immunization FHIR IG, published by https://nphcda.gov.ng. This guide is not an authorized publication; it is the continuous build for version 0.9.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Nigeria-FHIR-Community/NPHCDA-ImmunizationIG/ and changes regularly. See the Directory of published versions

Resource Profile: NgImmPatient - Mappings

Draft as of 2026-10-07

Mappings for the NgImmPatient resource profile.

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameRIM MappingCDA (R2)FiveWs Pattern MappingHL7 v2 MappingLOINC code for the elementdoco
Patient
Patient[classCode=PAT]
ClinicalDocument.recordTarget.patientRole
Patient / id
Patient / meta
Patient / meta / id
n/a
Patient / meta / extension
n/a
Patient / meta / versionId
Patient / meta / lastUpdated
Patient / meta / source
Patient / meta / profile
Patient / meta / security
Patient / meta / tag
Patient / implicitRules
Patient / language
Patient / text
Act.text?
Patient / contained
N/A
Patient / extension
N/A
Patient / modifierExtension
Patient / Slices for identifier
id
.id
FiveWs.identifier
PID-3
Patient / Slices for identifier / identifier:All Slices
Patient / Slices for identifier / identifier:All Slices / id
n/a
Patient / Slices for identifier / identifier:All Slices / extension
n/a
Patient / Slices for identifier / identifier:All Slices / use
Role.code or implied by context
N/A
Patient / Slices for identifier / identifier:All Slices / type
Role.code or implied by context
CX.5
Patient / Slices for identifier / identifier:All Slices / system
II.root or Role.id.root
CX.4 / EI-2-4
Patient / Slices for identifier / identifier:All Slices / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
Patient / Slices for identifier / identifier:All Slices / period
Role.effectiveTime or implied by context
CX.7 + CX.8
Patient / Slices for identifier / identifier:All Slices / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
Patient / Slices for identifier / identifier:NationalIDNo
id
.id
FiveWs.identifier
PID-3
Patient / Slices for identifier / identifier:NationalIDNo / id
n/a
Patient / Slices for identifier / identifier:NationalIDNo / extension
n/a
Patient / Slices for identifier / identifier:NationalIDNo / use
Role.code or implied by context
N/A
Patient / Slices for identifier / identifier:NationalIDNo / type
Role.code or implied by context
CX.5
Patient / Slices for identifier / identifier:NationalIDNo / type / id
n/a
Patient / Slices for identifier / identifier:NationalIDNo / type / extension
n/a
Patient / Slices for identifier / identifier:NationalIDNo / type / coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
Patient / Slices for identifier / identifier:NationalIDNo / type / coding / id
n/a
Patient / Slices for identifier / identifier:NationalIDNo / type / coding / extension
n/a
Patient / Slices for identifier / identifier:NationalIDNo / type / coding / system
./codeSystem
C*E.3
Patient / Slices for identifier / identifier:NationalIDNo / type / coding / version
./codeSystemVersion
C*E.7
Patient / Slices for identifier / identifier:NationalIDNo / type / coding / code
./code
C*E.1
Patient / Slices for identifier / identifier:NationalIDNo / type / coding / display
CV.displayName
C*E.2 - but note this is not well followed
Patient / Slices for identifier / identifier:NationalIDNo / type / coding / userSelected
CD.codingRationale
Sometimes implied by being first
Patient / Slices for identifier / identifier:NationalIDNo / type / text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
Patient / Slices for identifier / identifier:NationalIDNo / system
II.root or Role.id.root
CX.4 / EI-2-4
Patient / Slices for identifier / identifier:NationalIDNo / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
Patient / Slices for identifier / identifier:NationalIDNo / period
Role.effectiveTime or implied by context
CX.7 + CX.8
Patient / Slices for identifier / identifier:NationalIDNo / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
Patient / Slices for identifier / identifier:MedicalRecordsNumber
id
.id
FiveWs.identifier
PID-3
Patient / Slices for identifier / identifier:MedicalRecordsNumber / id
n/a
Patient / Slices for identifier / identifier:MedicalRecordsNumber / extension
n/a
Patient / Slices for identifier / identifier:MedicalRecordsNumber / use
Role.code or implied by context
N/A
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type
Role.code or implied by context
CX.5
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / id
n/a
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / extension
n/a
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding / id
n/a
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding / extension
n/a
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding / system
./codeSystem
C*E.3
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding / version
./codeSystemVersion
C*E.7
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding / code
./code
C*E.1
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding / display
CV.displayName
C*E.2 - but note this is not well followed
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / coding / userSelected
CD.codingRationale
Sometimes implied by being first
Patient / Slices for identifier / identifier:MedicalRecordsNumber / type / text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
Patient / Slices for identifier / identifier:MedicalRecordsNumber / system
II.root or Role.id.root
CX.4 / EI-2-4
Patient / Slices for identifier / identifier:MedicalRecordsNumber / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
Patient / Slices for identifier / identifier:MedicalRecordsNumber / period
Role.effectiveTime or implied by context
CX.7 + CX.8
Patient / Slices for identifier / identifier:MedicalRecordsNumber / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber
id
.id
FiveWs.identifier
PID-3
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / id
n/a
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / extension
n/a
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / use
Role.code or implied by context
N/A
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type
Role.code or implied by context
CX.5
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / id
n/a
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / extension
n/a
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding / id
n/a
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding / extension
n/a
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding / system
./codeSystem
C*E.3
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding / version
./codeSystemVersion
C*E.7
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding / code
./code
C*E.1
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding / display
CV.displayName
C*E.2 - but note this is not well followed
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / coding / userSelected
CD.codingRationale
Sometimes implied by being first
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / type / text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / system
II.root or Role.id.root
CX.4 / EI-2-4
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / period
Role.effectiveTime or implied by context
CX.7 + CX.8
Patient / Slices for identifier / identifier:ImmunizationRecordsNumber / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
Patient / Slices for identifier / identifier:BirthCertificateNo
id
.id
FiveWs.identifier
PID-3
Patient / Slices for identifier / identifier:BirthCertificateNo / id
n/a
Patient / Slices for identifier / identifier:BirthCertificateNo / extension
n/a
Patient / Slices for identifier / identifier:BirthCertificateNo / use
Role.code or implied by context
N/A
Patient / Slices for identifier / identifier:BirthCertificateNo / type
Role.code or implied by context
CX.5
Patient / Slices for identifier / identifier:BirthCertificateNo / type / id
n/a
Patient / Slices for identifier / identifier:BirthCertificateNo / type / extension
n/a
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding / id
n/a
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding / extension
n/a
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding / system
./codeSystem
C*E.3
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding / version
./codeSystemVersion
C*E.7
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding / code
./code
C*E.1
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding / display
CV.displayName
C*E.2 - but note this is not well followed
Patient / Slices for identifier / identifier:BirthCertificateNo / type / coding / userSelected
CD.codingRationale
Sometimes implied by being first
Patient / Slices for identifier / identifier:BirthCertificateNo / type / text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
Patient / Slices for identifier / identifier:BirthCertificateNo / system
II.root or Role.id.root
CX.4 / EI-2-4
Patient / Slices for identifier / identifier:BirthCertificateNo / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
Patient / Slices for identifier / identifier:BirthCertificateNo / period
Role.effectiveTime or implied by context
CX.7 + CX.8
Patient / Slices for identifier / identifier:BirthCertificateNo / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
Patient / Slices for identifier / identifier:PhoneNumber
id
.id
FiveWs.identifier
PID-3
Patient / Slices for identifier / identifier:PhoneNumber / id
n/a
Patient / Slices for identifier / identifier:PhoneNumber / extension
n/a
Patient / Slices for identifier / identifier:PhoneNumber / use
Role.code or implied by context
N/A
Patient / Slices for identifier / identifier:PhoneNumber / type
Role.code or implied by context
CX.5
Patient / Slices for identifier / identifier:PhoneNumber / type / id
n/a
Patient / Slices for identifier / identifier:PhoneNumber / type / extension
n/a
Patient / Slices for identifier / identifier:PhoneNumber / type / coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
Patient / Slices for identifier / identifier:PhoneNumber / type / coding / id
n/a
Patient / Slices for identifier / identifier:PhoneNumber / type / coding / extension
n/a
Patient / Slices for identifier / identifier:PhoneNumber / type / coding / system
./codeSystem
C*E.3
Patient / Slices for identifier / identifier:PhoneNumber / type / coding / version
./codeSystemVersion
C*E.7
Patient / Slices for identifier / identifier:PhoneNumber / type / coding / code
./code
C*E.1
Patient / Slices for identifier / identifier:PhoneNumber / type / coding / display
CV.displayName
C*E.2 - but note this is not well followed
Patient / Slices for identifier / identifier:PhoneNumber / type / coding / userSelected
CD.codingRationale
Sometimes implied by being first
Patient / Slices for identifier / identifier:PhoneNumber / type / text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
Patient / Slices for identifier / identifier:PhoneNumber / system
II.root or Role.id.root
CX.4 / EI-2-4
Patient / Slices for identifier / identifier:PhoneNumber / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
Patient / Slices for identifier / identifier:PhoneNumber / period
Role.effectiveTime or implied by context
CX.7 + CX.8
Patient / Slices for identifier / identifier:PhoneNumber / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
Patient / Slices for identifier / identifier:InsuranceNumber
id
.id
FiveWs.identifier
PID-3
Patient / Slices for identifier / identifier:InsuranceNumber / id
n/a
Patient / Slices for identifier / identifier:InsuranceNumber / extension
n/a
Patient / Slices for identifier / identifier:InsuranceNumber / use
Role.code or implied by context
N/A
Patient / Slices for identifier / identifier:InsuranceNumber / type
Role.code or implied by context
CX.5
Patient / Slices for identifier / identifier:InsuranceNumber / type / id
n/a
Patient / Slices for identifier / identifier:InsuranceNumber / type / extension
n/a
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding / id
n/a
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding / extension
n/a
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding / system
./codeSystem
C*E.3
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding / version
./codeSystemVersion
C*E.7
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding / code
./code
C*E.1
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding / display
CV.displayName
C*E.2 - but note this is not well followed
Patient / Slices for identifier / identifier:InsuranceNumber / type / coding / userSelected
CD.codingRationale
Sometimes implied by being first
Patient / Slices for identifier / identifier:InsuranceNumber / type / text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
Patient / Slices for identifier / identifier:InsuranceNumber / system
II.root or Role.id.root
CX.4 / EI-2-4
Patient / Slices for identifier / identifier:InsuranceNumber / value
II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
CX.1 / EI.1
Patient / Slices for identifier / identifier:InsuranceNumber / period
Role.effectiveTime or implied by context
CX.7 + CX.8
Patient / Slices for identifier / identifier:InsuranceNumber / assigner
II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • CX.4 / (CX.4
  • CX.9
  • CX.10)
Patient / active
statusCode
n/a
FiveWs.status
Patient / name
name
.patient.name
  • PID-5
  • PID-9
Patient / name / id
n/a
Patient / name / extension
n/a
Patient / name / use
unique(./use)
  • XPN.7
  • but often indicated by which field contains the name
Patient / name / text
./formatted
implied by XPN.11
Patient / name / family
./part[partType = FAM]
XPN.1/FN.1
Patient / name / given
./part[partType = GIV]
XPN.2 + XPN.3
Patient / name / prefix
./part[partType = PFX]
XPN.5
Patient / name / suffix
./part[partType = SFX]
XPN/4
Patient / name / period
./usablePeriod[type="IVL<TS>"]
XPN.13 + XPN.14
Patient / telecom
telecom
.telecom
  • PID-13
  • PID-14
  • PID-40
Patient / gender
player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
.patient.administrativeGenderCode
PID-8
Patient / birthDate
player[classCode=PSN|ANM and determinerCode=INSTANCE]/birthTime
.patient.birthTime
PID-7
21112-8
Patient / deceased[x]
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/deceasedTime
n/a
PID-30 (bool) and PID-29 (datetime)
Patient / address
addr
.addr
PID-11
Patient / address / id
n/a
Patient / address / Slices for extension
n/a
Patient / address / Slices for extension / extension:administrativeWard
Patient / address / use
unique(./use)
XAD.7
Patient / address / type
unique(./use)
XAD.18
Patient / address / text
./formatted
XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
Patient / address / line
AD.part[parttype = AL]
XAD.1 and XAD.2 have different meanings for a company address than for a person address)
Patient / address / city
AD.part[parttype = CTY]
XAD.3
Patient / address / district
AD.part[parttype = CNT | CPA]
XAD.9
Patient / address / state
AD.part[parttype = STA]
XAD.4
Patient / address / postalCode
AD.part[parttype = ZIP]
XAD.5
Patient / address / country
AD.part[parttype = CNT]
XAD.6
Patient / address / period
./usablePeriod[type="IVL<TS>"]
XAD.12 / XAD.13 + XAD.14
Patient / maritalStatus
player[classCode=PSN]/maritalStatusCode
.patient.maritalStatusCode
PID-16
Patient / multipleBirth[x]
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthInd
  • player[classCode=PSN|ANM and determinerCode=INSTANCE]/multipleBirthOrderNumber
n/a
  • PID-24 (bool)
  • PID-25 (integer)
Patient / photo
player[classCode=PSN|ANM and determinerCode=INSTANCE]/desc
n/a
OBX-5 - needs a profile
Patient / contact
player[classCode=PSN|ANM and determinerCode=INSTANCE]/scopedRole[classCode=CON]
n/a
Patient / contact / id
n/a
Patient / contact / extension
n/a
Patient / contact / modifierExtension
Patient / contact / relationship
code
n/a
  • NK1-7
  • NK1-3
Patient / contact / relationship / id
n/a
Patient / contact / relationship / extension
n/a
Patient / contact / relationship / coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
Patient / contact / relationship / text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
Patient / contact / name
name
n/a
NK1-2
Patient / contact / name / id
n/a
Patient / contact / name / extension
n/a
Patient / contact / name / use
unique(./use)
  • XPN.7
  • but often indicated by which field contains the name
Patient / contact / name / text
./formatted
implied by XPN.11
Patient / contact / name / family
./part[partType = FAM]
XPN.1/FN.1
Patient / contact / name / given
./part[partType = GIV]
XPN.2 + XPN.3
Patient / contact / name / prefix
./part[partType = PFX]
XPN.5
Patient / contact / name / suffix
./part[partType = SFX]
XPN/4
Patient / contact / name / period
./usablePeriod[type="IVL<TS>"]
XPN.13 + XPN.14
Patient / contact / telecom
telecom
n/a
  • NK1-5
  • NK1-6
  • NK1-40
Patient / contact / telecom / id
n/a
Patient / contact / telecom / extension
n/a
Patient / contact / telecom / system
./scheme
XTN.3
Patient / contact / telecom / value
./url
XTN.1 (or XTN.12)
Patient / contact / telecom / use
unique(./use)
XTN.2 - but often indicated by field
Patient / contact / telecom / rank
n/a
n/a
Patient / contact / telecom / period
./usablePeriod[type="IVL<TS>"]
N/A
Patient / contact / address
addr
n/a
NK1-4
Patient / contact / address / id
n/a
Patient / contact / address / Slices for extension
n/a
Patient / contact / address / Slices for extension / extension:administrativeWard
Patient / contact / address / use
unique(./use)
XAD.7
Patient / contact / address / type
unique(./use)
XAD.18
Patient / contact / address / text
./formatted
XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
Patient / contact / address / line
AD.part[parttype = AL]
XAD.1 and XAD.2 have different meanings for a company address than for a person address)
Patient / contact / address / city
AD.part[parttype = CTY]
XAD.3
Patient / contact / address / district
AD.part[parttype = CNT | CPA]
XAD.9
Patient / contact / address / state
AD.part[parttype = STA]
XAD.4
Patient / contact / address / postalCode
AD.part[parttype = ZIP]
XAD.5
Patient / contact / address / country
AD.part[parttype = CNT]
XAD.6
Patient / contact / address / period
./usablePeriod[type="IVL<TS>"]
XAD.12 / XAD.13 + XAD.14
Patient / contact / gender
player[classCode=PSN|ANM and determinerCode=INSTANCE]/administrativeGender
n/a
NK1-15
Patient / contact / organization
scoper
n/a
  • NK1-13
  • NK1-30
  • NK1-31
  • NK1-32
  • NK1-41
Patient / contact / period
effectiveTime
n/a
Patient / communication
LanguageCommunication
patient.languageCommunication
Patient / communication / id
n/a
Patient / communication / extension
n/a
Patient / communication / modifierExtension
N/A
Patient / communication / language
player[classCode=PSN|ANM and determinerCode=INSTANCE]/languageCommunication/code
.languageCode
  • PID-15
  • LAN-2
Patient / communication / preferred
preferenceInd
.preferenceInd
PID-15
Patient / generalPractitioner
subjectOf.CareEvent.performer.AssignedEntity
n/a
PD1-4
Patient / managingOrganization
scoper
.providerOrganization
Patient / link
outboundLink
n/a
Patient / link / id
n/a
Patient / link / extension
n/a
Patient / link / modifierExtension
Patient / link / other
id
n/a
  • PID-3
  • MRG-1
Patient / link / type
typeCode
n/a

doco Documentation for this format