FHIR CI-Build

This is the Continuous Integration Build of FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon

Modeling and Methodology icon Work GroupMaturity Level: N/AStandards Status: Informative

This page provides mappings for the datatypes. There are mappings to HL7 V2 icon, HL7 v3 icon, and (where appropriate) vCard (see Mappings to Other Standards for further information & status).

Datatypes Index

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Datatype 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

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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
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

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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)
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
Identifier Identifier
    use
    type
    system ./IdentifierType
    value ./Value
    period ./StartDate and ./EndDate
    assigner ./IdentifierIssuingAuthority

When mapping an HL7 v3 II datatype 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

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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 ]
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
Coding CV
    system ./codeSystem
    version ./codeSystemVersion
    code ./code
    display CV.displayName
    userSelected CD.codingRationale

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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
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
CodeableConcept CD
    coding union(., ./translation)
    text ./originalText[mediaType/code="text/plain"]/data

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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
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

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Money
    value MO.Value
    currency MO.Currency
Money MO

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Range NR and also possibly SN (but see also quantity)
    low NR.1
    high NR.2
Range IVL<QTY[not(type="TS")]> [lowClosed="true" and highClosed="true"]or URG<QTY[not(type="TS")]>
    low ./low
    high ./high

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Ratio N/A
Ratio RTO
    numerator .numerator
    denominator .denominator

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

RatioRange NR and also possibly SN (but see also quantity)
    lowNumerator NR.1
    highNumerator NR.2
    denominator
RatioRange IVL<RTO<QTY[not(type="TS")]>> [lowClosed="true" and highClosed="true"]or URG<<RTO<QTY[not(type="TS")]>>
    lowNumerator ./low
    highNumerator ./high

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Period DR
    start DR.1
    end DR.2
Period IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
    start ./low
    end ./high

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

SampledData N/A (but see section 7.14 in v2.7)
    origin
    interval
    intervalUnit
    factor
    lowerLimit
    upperLimit
    dimensions
    codeMap
    offsets
    data
SampledData SLIST + GLIST
    origin SLIST.origin
    interval 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)
    codeMap N/A
    offsets N/A
    data SLIST.digits

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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
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>"]
HumanName ProviderName
    use ./NamePurpose
    text
    family ./FamilyName
    given ./GivenNames
    prefix ./TitleCode
    suffix
    period ./StartDate and ./EndDate

vCard icon 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"

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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
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>"]
Address
    use
    type address type parameter
    text address label parameter
    line street
    city locality
    district
    state region
    postalCode code
    country country
    period
Address Address
    use ./AddressPurpose
    type
    text
    line ./StreetAddress (newline delimitted)
    city ./Jurisdiction
    district
    state ./Region
    postalCode ./PostalIdentificationCode
    country ./Country
    period ./StartDate and ./EndDate

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

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
ContactPoint TEL
    system ./scheme
    value ./url
    use unique(./use)
    rank n/a
    period ./usablePeriod[type="IVL<TS>"]
ContactPoint ContactPoint
    system ./ContactPointType
    value ./Value
    use ./ContactPointPurpose
    rank
    period ./StartDate and ./EndDate

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Timing N/A
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

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Signature N/A

See also Base Definition, Examples, Detailed Descriptions, Profiles, Extensions and R4 Conversions

Annotation N/A
Annotation Act
    author[x] Act.participant[typeCode=AUT].role
    time Act.effectiveTime
    text Act.text