This page is part of the FHIR Specification (v4.5.0: R5 Preview #3). 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 R2
2.25.3 Data Type Mappings
This page provides mappings for the data types. There are mappings to HL7 v2 , HL7 v3 , and (where appropriate) vCard (see Mappings to Other Standards for further information & status).
Table of Contents
2.25.3.1 Primitive Types
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
Data Type V2 RIM base64Binary ~ED BIN boolean n/a BL date DT TS dateTime DTM TS decimal ~NM REAL instant DTM TS integer ~NM/~SI INT integer64 ~NM/~SI INT string ST ST time TM n/a uri n/a URL
2.25.3.2 Attachment
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.3 HL7 v2 Mapping (http://hl7.org/v2)
Attachment ED/RP
contentType ED.2+ED.3/RP.2+RP.3. Note conversion may be needed if old style values are being used
language
data ED.5
url RP.1+RP.2 - if they refer to a URL (see v2.6)
size
hash
title
creation
height
width
frames
duration
pages
2.25.3.4 RIM Mapping (http://hl7.org/v3)
Attachment ED
contentType ./mediaType, ./charset
language ./language
data ./data
url ./reference/literal
size N/A (needs data type R3 proposal)
hash .integrityCheck[parent::ED/integrityCheckAlgorithm="SHA-1"]
title ./title/data
creation N/A (needs data type R3 proposal)
height .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
width .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
frames .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
duration .outboundRelationship[typeCode="COMP].target[classCode="OBS", moodCode="EVN",code="<CODE>"].value
2.25.3.5 Identifier
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.6 HL7 v2 Mapping (http://hl7.org/v2)
Identifier CX / EI (occasionally, more often EI maps to a resource id or a URL)
use N/A
type CX.5
system CX.4 / EI-2-4
value CX.1 / EI.1
period CX.7 + CX.8
assigner CX.4 / (CX.4,CX.9,CX.10)
2.25.3.7 RIM Mapping (http://hl7.org/v3)
Identifier II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
use Role.code or implied by context
type Role.code or implied by context
system II.root or Role.id.root
value II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
period Role.effectiveTime or implied by context
assigner II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
2.25.3.8 ServD (http://www.omg.org/spec/ServD/1.0/)
Identifier Identifier
use
type
system ./IdentifierType
value ./Value
period ./StartDate and ./EndDate
assigner ./IdentifierIssuingAuthority
2.25.3.8.1 V3 Mapping Issues for Identifier
When mapping an HL7 v3 II data type to a FHIR Identifier, there are two possibilities:
If the II has only a root and no extension, the FHIR Identifier will have a system of 'urn:ietf:rfc:3986' and the II.root will appear in Identifier.value
If the II has both a root and an extension, the II.root will be mapped to a URI - either a human-friendly URL or URN or (less preferred) an OID expressed as a urn, and the II.extension will be sent in Identifier.value
To search on a CDA II.root
- which may appear in either Identifier.system
or Identifier.value
, use the syntax identifier=|[root],[root]
.
See v3 Mapping examples
2.25.3.9 Coding
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.10 Ontological RIM Mapping (http://hl7.org/orim)
Coding fhir:Coding rdfs:subClassOf dt:CDCoding
system fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
version fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
code fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
display fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
userSelected fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
2.25.3.11 HL7 v2 Mapping (http://hl7.org/v2)
Coding CE/CNE/CWE subset one of the sets of component 1-3 or 4-6
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
2.25.3.12 RIM Mapping (http://hl7.org/v3)
Coding CV
system ./codeSystem
version ./codeSystemVersion
code ./code
display CV.displayName
userSelected CD.codingRationale
2.25.3.13 CodeableConcept
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.14 Ontological RIM Mapping (http://hl7.org/orim)
CodeableConcept fhir:CodeableConcept rdfs:subClassOf dt:CD
coding fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
text fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
2.25.3.15 HL7 v2 Mapping (http://hl7.org/v2)
CodeableConcept CE/CNE/CWE
coding C*E.1-8, C*E.10-22
text C*E.9. But note many systems use C*E.2 for this
2.25.3.16 RIM Mapping (http://hl7.org/v3)
CodeableConcept CD
coding union(., ./translation)
text ./originalText[mediaType/code="text/plain"]/data
2.25.3.17 Quantity
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.18 HL7 v2 Mapping (http://hl7.org/v2)
Quantity SN (see also Range) or CQ
value SN.2 / CQ - N/A
comparator SN.1 / CQ.1
unit (see OBX.6 etc.) / CQ.2
system (see OBX.6 etc.) / CQ.2
code (see OBX.6 etc.) / CQ.2
2.25.3.19 RIM Mapping (http://hl7.org/v3)
Quantity PQ, IVL<PQ>, MO, CO, depending on the values
value PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
comparator IVL properties
unit PQ.unit
system CO.codeSystem, PQ.translation.codeSystem
code PQ.code, MO.currency, PQ.translation.code
2.25.3.20 Money
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.21 HL7 v2 Mapping (http://hl7.org/v2)
Money
value MO.Value
currency MO.Currency
2.25.3.22 RIM Mapping (http://hl7.org/v3)
2.25.3.23 Range
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.24 HL7 v2 Mapping (http://hl7.org/v2)
Range NR and also possibly SN (but see also quantity)
low NR.1
high NR.2
2.25.3.25 RIM Mapping (http://hl7.org/v3)
Range IVL<QTY[not(type="TS")]> [lowClosed="true" and highClosed="true"]or URG<QTY[not(type="TS")]>
low ./low
high ./high
2.25.3.26 Ratio
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.27 HL7 v2 Mapping (http://hl7.org/v2)
2.25.3.28 RIM Mapping (http://hl7.org/v3)
Ratio RTO
numerator .numerator
denominator .denominator
2.25.3.29 Period
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.30 HL7 v2 Mapping (http://hl7.org/v2)
Period DR
start DR.1
end DR.2
2.25.3.31 RIM Mapping (http://hl7.org/v3)
Period IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
start ./low
end ./high
2.25.3.32 SampledData
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.33 HL7 v2 Mapping (http://hl7.org/v2)
SampledData N/A (but see section 7.14 in v2.7)
origin
period
factor
lowerLimit
upperLimit
dimensions
data
2.25.3.34 RIM Mapping (http://hl7.org/v3)
SampledData SLIST + GLIST
origin SLIST.origin
period GLIST.increment
factor SLIST.factor
lowerLimit N/A (use SLIST.digits.nullFlavor)
upperLimit N/A (use SLIST.digits.nullFlavor)
dimensions N/A (fixed to 1)
data SLIST.digits
2.25.3.35 HumanName
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.36 HL7 v2 Mapping (http://hl7.org/v2)
HumanName XPN
use XPN.7, but often indicated by which field contains the name
text implied by XPN.11
family XPN.1/FN.1
given XPN.2 + XPN.3
prefix XPN.5
suffix XPN/4
period XPN.13 + XPN.14
2.25.3.37 RIM Mapping (http://hl7.org/v3)
HumanName EN (actually, PN)
use unique(./use)
text ./formatted
family ./part[partType = FAM]
given ./part[partType = GIV]
prefix ./part[partType = PFX]
suffix ./part[partType = SFX]
period ./usablePeriod[type="IVL<TS>"]
2.25.3.38 ServD (http://www.omg.org/spec/ServD/1.0/)
HumanName ProviderName
use ./NamePurpose
text
family ./FamilyName
given ./GivenNames
prefix ./TitleCode
suffix
period ./StartDate and ./EndDate
vCard Mappings
HumanName.text = vCard "FN" field
HumanName.use = use of the vCard "TYPE" parameter
HumanName.family, .given, .prefix, .suffix = parts of vCard "N" field. Note that there is no FHIR equivalent for the poorly defined "additional" name field. In FHIR, given names go in "middle" names
The vCard nickname corresponds to a name with the use "nickname"
2.25.3.39 Address
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.40 HL7 v2 Mapping (http://hl7.org/v2)
Address XAD
use XAD.7
type XAD.18
text XAD.1 + XAD.2 + XAD.3 + XAD.4 + XAD.5 + XAD.6
line XAD.1 + XAD.2 (note: XAD.1 and XAD.2 have different meanings for a company address than for a person address)
city XAD.3
district XAD.9
state XAD.4
postalCode XAD.5
country XAD.6
period XAD.12 / XAD.13 + XAD.14
2.25.3.41 RIM Mapping (http://hl7.org/v3)
Address AD
use unique(./use)
type unique(./use)
text ./formatted
line AD.part[parttype = AL]
city AD.part[parttype = CTY]
district AD.part[parttype = CNT | CPA]
state AD.part[parttype = STA]
postalCode AD.part[parttype = ZIP]
country AD.part[parttype = CNT]
period ./usablePeriod[type="IVL<TS>"]
2.25.3.42 vCard Mapping (http://w3.org/vcard)
Address
use
type address type parameter
text address label parameter
line street
city locality
district
state region
postalCode code
country country
period
2.25.3.43 ServD (http://www.omg.org/spec/ServD/1.0/)
Address Address
use ./AddressPurpose
type
text
line ./StreetAddress (newline delimitted)
city ./Jurisdiction
district
state ./Region
postalCode ./PostalIdentificationCode
country ./Country
period ./StartDate and ./EndDate
2.25.3.44 ContactPoint
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.45 HL7 v2 Mapping (http://hl7.org/v2)
ContactPoint XTN
system XTN.3
value XTN.1 (or XTN.12)
use XTN.2 - but often indicated by field
rank n/a
period N/A
2.25.3.46 RIM Mapping (http://hl7.org/v3)
ContactPoint TEL
system ./scheme
value ./url
use unique(./use)
rank n/a
period ./usablePeriod[type="IVL<TS>"]
2.25.3.47 ServD (http://www.omg.org/spec/ServD/1.0/)
ContactPoint ContactPoint
system ./ContactPointType
value ./Value
use ./ContactPointPurpose
rank
period ./StartDate and ./EndDate
2.25.3.48 Timing
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.49 HL7 v2 Mapping (http://hl7.org/v2)
2.25.3.50 RIM Mapping (http://hl7.org/v3)
Timing QSET<TS> (GTS)
event QLIST<TS>
repeat Implies PIVL or EIVL
bounds[x] IVL(TS) used in a QSI
count PIVL.count
countMax PIVL.count
duration PIVL.phase
durationMax PIVL.phase
durationUnit PIVL.phase.unit
frequency PIVL.phase
frequencyMax PIVL.phase
period PIVL.phase
periodMax PIVL.phase
periodUnit PIVL.phase.unit
dayOfWeek n/a
timeOfDay n/a
when EIVL.event
offset EIVL.offset
code QSC.code
2.25.3.51 Signature
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.52 RIM Mapping (http://hl7.org/v3)
2.25.3.53 Annotation
See also Base Definition , Examples , Profiles & Extensions , Detailed Descriptions and R2 Conversions .
2.25.3.54 HL7 v2 Mapping (http://hl7.org/v2)
2.25.3.55 RIM Mapping (http://hl7.org/v3)
Annotation Act
author[x] Act.participant[typeCode=AUT].role
time Act.effectiveTime
text Act.text