HL7 Version 2 to FHIR
1.0.0 - STU 1

HL7 Version 2 to FHIR - Downloaded Version 1.0.0 See the Directory of published versions

## ConceptMap: Segment PID to Patient Map (Experimental)

Official URL: http://hl7.org/fhir/uv/v2mappings/ConceptMap/segment-pid-to-patient | Version: 1.0.0
Standards status: Informative | Computable Name: SegmentPIDToPatient
Copyright/Legal: Copyright (c) 2025, HL7 International, Inc., All Rights Reserved.

This ConceptMap represents a mapping from the HL7 V2 Segment PID to the FHIR Patient Resource.

This ConceptMap represents the mapping from the HL7 V2 PID Segment to the FHIR Patient Resource. See also the FHIR Shorthand or the CSV Source.

HL7 v2 | Condition (IF True, args) | HL7 FHIR | Comments
--- | --- | --- | ---
Sort Order | Identifier | Name | Data Type | Cardinality - Min | Cardinality - Max | Computable ANTLR | Computable FHIRPath | Narrative | FHIR Attribute | Extension | Data Type | Cardinality - Min | Cardinality - Max | Data Type Mapping | Vocabulary Mapping (IS, ID, CE, CEN, CWE) | Assignment
1 | PID-1 | Set ID - PID | SI | 0 | 1 |  |  |  |  |  |  |  |  |  |  |  |
2 | PID-2 | Patient ID | CX | 0 | 1 |  |  |  | Identifier |  | Identifier | 0 | -1 | CX[Identifier] |  |  |
3 | PID-3 | Patient Identifier List | CX | 1 | -1 |  |  |  | Identifier |  | Identifier | 0 | -1 | CX[Identifier] |  |  |
4 | PID-4 | Alternate Patient ID - PID | CX | 0 | 1 |  |  |  | Identifier |  | Identifier | 0 | -1 | CX[Identifier] |  |  |
5 | PID-5 | Patient Name | XPN | 1 | -1 |  |  |  | Patient.name |  | HumanName | 0 | -1 | XPN[HumanName] |  |  |
6 | PID-6 | Mother's Maiden Name | XPN | 0 | -1 |  |  |  | Patient.extension.url |  | uri | 1 | 1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName" |
6 | PID-6 | Mother's Maiden Name | XPN | 0 | -1 |  |  |  | Patient.extension.valueString |  | string | 1 | 1 | XPN[String] |  |  | This may not be the second name if there are repeats in PID-5. ext.patientMothersMaiden (string) also exists if we prefer.
7 | PID-7 | Date/Time of Birth | DTM | 0 | 1 |  |  |  | Patient.birthDate |  | date | 0 | 1 |  |  |  | PROPOSAL MOVE TO IG IMPLEMENTATION GUIDANCE SECTION: Use ISO 8601 to establish the re-formatting from HL7 v2 data type to HL7 FHIR data type, particularly when mapping a platform datetime to platform date. ADD OTHER REFERENCES ON HOW TO ACHIEVE THESE CONVERSIONS in Java, CSHarp, etc., etc.
7 | PID-7 | Date/Time of Birth | DTM | 0 | 1 | IF PID-7 LENGTH GREATER THAN 8 |  |  | Patient.birthDate.extension.url |  | uri | 1 | 1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-birthTime" |
7 | PID-7 | Date/Time of Birth | DTM | 0 | 1 | IF PID-7 LENGTH GREATER THAN 8 |  |  | Patient.birthDate.extension.valueDateTime |  | dateTime | 1 | 1 |  |  |  |
8 | PID-8 | Administrative Sex | CWE | 0 | 1 |  |  |  | Patient.gender |  | code | 0 | 1 | CWE[code] | AdministrativeSex |  |
9 | PID-9 | Patient Alias | XPN | 0 | -1 |  |  |  | Patient.name |  | HumanName | 0 | -1 | XPN[HumanName] |  |  |
10 | PID-10 | Race | CWE | 0 | -1 |  |  | PID-10 is may map different based on local requirements and should use the local extension, e.g., US = US Core Race Extension, AUS = indiginous extension. |  | local implementation |  |  |  |  |  |  | For an international document, it may not be possible to come up with a FHIR value set for race. Therefore the appropriate extension for the local implementation should be used based on preferably a country/realm specific extension, e.g., US Core Race Extension for the US or the Indiginous Extension for Australia.
11 | PID-11 | Patient Address | XAD | 0 | -1 |  |  |  | Address |  | Address | 0 | -1 | XAD[Address] |  |  |
12 | PID-12 | County Code | ID | 0 | 1 | IF PID-11 LST.COUNT EQUALS 1 AND PID-11.9 IS NOT VALUED |  |  | Patient.address.district |  | string | 0 | 1 | ID[String] |  |  | This may not be the second occurrence if PID-11 repeats. Because PID-11 can repeat but PID-12 cannot, it's not appropriate to include PID-12 in an iteration of .address populated from PID-11
12 | PID-12 | County Code | ID | 0 | 1 | IF PID-11 LST.COUNT EQUALS 1 AND PID-11.9 IS VALUED NOT EQUAL PID-12 |  |  | Patient.address.district |  | string |  |  | ID[String] |  |  |
12 | PID-12 | County Code | ID | 0 | 1 | IF PID-11 LST.COUNT GREATER THAN 1 |  |  | Patient.address.district |  | string | 0 | 1 | ID[String] |  |  |
12 | PID-12 | County Code | ID | 0 | 1 | IF PID-11 IS NOT VALUED |  |  | Patient.address.district |  | string | 0 | 1 | ID[String] |  |  |
13 | PID-13 | Phone Number - Home | XTN | 0 | -1 |  |  |  | Patient.telecom |  | ContactPoint | 0 | -1 | XTN[ContactPoint] |  |  |
13 | PID-13 | Phone Number - Home | XTN | 0 | -1 | IF PID-13.2 IS NOT VALUED |  |  | Patient.telecom.use |  |  |  |  |  |  | "home" |
14 | PID-14 | Phone Number - Business | XTN | 0 | -1 |  |  |  | Patient.telecom |  | ContactPoint | 0 | -1 | XTN[ContactPoint] |  |  |
14 | PID-14 | Phone Number - Business | XTN | 0 | -1 | IF PID-14.2 IS NOT VALUED |  |  | Patient.telecom.use |  |  |  |  |  |  | "work" |
15 | PID-15 | Primary Language | CWE | 0 | 1 |  |  |  | Patient.communication.language |  | CodeableConcept | 0 | -1 | CWE[CodeableConcept] | PrimaryLanguage |  | During implementation, if you know that the value in PID-15 is the preferred patient language, then Patient.communication.preferred can be set to "true".
16 | PID-16 | Marital Status | CWE | 0 | 1 |  |  |  | Patient.maritalStatus |  | CodeableConcept | 0 | 1 | CWE[CodeableConcept] | MaritalStatus |  |
17 | PID-17 | Religion | CWE | 0 | 1 |  |  |  | Patient.extension.url |  | uri | 1 | 1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-religion" |
17 | PID-17 | Religion | CWE | 0 | 1 |  |  |  | Patient.extension.valueCodeableConcept |  | CodeableConcept | 1 | 1 | CWE[CodeableConcept] | Religion |  |
18 | PID-18 | Patient Account Number | CX | 0 | 1 |  |  |  |  |  |  |  |  |  |  |  | Mapped in PID[Account]. In some systems, PID-18 may contain a visit identifier. If that is the case for a given implementation, then a mapping to an Encounter may be more appropriate
19 | PID-19 | SSN Number - Patient | ST | 0 | 1 |  |  |  | Patient.identifier.value |  | string | 0 | 1 |  |  |  | the value set for Identifier.type doesn't contain SSN but it does have SB (social beneficiary)
19 | PID-19 | SSN Number - Patient | ST | 0 | 1 |  |  | If in the US and various other jurisdictions | Patient.identifier.type.coding.code |  | code | 0 | 1 |  |  | "SS" |
19 | PID-19 | SSN Number - Patient | ST | 0 | 1 |  |  | If outside the US for certain jurisdictions | Patient.identifier.type.coding.code |  | code | 0 | 1 |  |  | "SB" |
19 | PID-19 | SSN Number - Patient | ST | 0 | 1 |  |  |  | Patient.identifier.type.coding.system |  | uri | 0 | 1 |  |  | "http://terminology.hl7.org/CodeSystem/v2-0203" |
19 | PID-19 | SSN Number - Patient | ST | 0 | 1 |  |  |  | Patient.identifier.system |  | uri | 0 | 1 |  |  | "http://hl7.org/fhir/sid/us-ssn." | If working in a jurisdiction other than the US and this field is used for the local SSN equivalent, a different system will need to be identified.
20 | PID-20 | Driver's License Number - Patient | DLN | 0 | 1 |  |  |  | Identifier |  | Identifier | 0 | 1 | DLN[Identifier] |  |  |
21 | PID-21 | Mother's Identifier | CX | 0 | -1 |  |  |  | Patient.$this |  |  |  |  | CX[RelatedPerson-Mother] |  |  |
22 | PID-22 | Ethnic Group | CWE | 0 | -1 |  |  | If PID-22 is for administrative purposes use, then use your local extension, e.g., for US = US Core Ethnicity. |  | local implementation |  |  |  |  |  |  | For an international document, it may not be possible to come up with a FHIR value set for ethnic group. Therefore the appropriate extension for the local implementation should be used based on preferably a country/realm specific extension, e.g., US Core Ethnicity for the US.
23 | PID-23 | Birth Place | ST | 0 | 1 |  |  |  | Patient.extension.url |  | uri | 1 | 1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-birthPlace" |
23 | PID-23 | Birth Place | ST | 0 | 1 |  |  |  | Patient.extension.valueAddress.text |  | string | 0 | 1 |  |  |  |
24 | PID-24 | Multiple Birth Indicator | ID | 0 | 1 | IF PID-25 NOT VALUED |  |  | Patient.multipleBirthBoolean |  | boolean | 0 | 1 | ID[Boolean] | Yes/NoIndicator |  |
25 | PID-25 | Birth Order | NM | 0 | 1 |  |  |  | Patient.multipleBirthInteger |  | integer | 0 | 1 |  |  |  |
26 | PID-26 | Citizenship | CWE | 0 | -1 |  |  |  | Patient.extension.url |  | uri | 1 | 1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-citizenship" |
26 | PID-26 | Citizenship | CWE | 0 | -1 |  |  |  | Patient.extension.extension.url |  | uri | 1 | 1 |  |  | "code" |
26 | PID-26 | Citizenship | CWE | 0 | -1 |  |  |  | Patient.extension.extension.valueCodeableConcept |  | CodeableConcept | 1 | 1 | CWE[CodeableConcept] |  |  | The standard extension does not include a value set
27 | PID-27 | Veterans Military Status | CWE | 0 | 1 |  |  |  |  | extension??-veteranMilitaryStatus | CodeableConcept | 0 | 1 | CWE[CodeableConcept] |  |  |
28 | PID-28 | Nationality | CWE | 0 | 1 |  |  |  | Patient.extension.url |  | uri | 1 | 1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-nationality" |
28 | PID-28 | Nationality | CWE | 0 | 1 |  |  |  | Patient.extension.extension.url |  | uri | 1 | 1 |  |  | "code" |
28 | PID-28 | Nationality | CWE | 0 | 1 |  |  |  | Patient.extension.extension.valueCodeableConcept |  | CodeableConcept | 1 | 1 | CWE[CodeableConcept] |  |  | The standard extension does not include a value set
29 | PID-29 | Patient Death Date and Time | DTM | 0 | 1 |  |  |  | Patient.deceasedDateTime |  | dateTime | 0 | 1 |  |  |  |
30 | PID-30 | Patient Death Indicator | ID | 0 | 1 | IF PID-29 NOT VALUED |  |  | Patient.deceasedBoolean |  | boolean | 0 | 1 | ID[Boolean] | Yes/NoIndicator |  |
31 | PID-31 | Identity Unknown Indicator | ID | 0 | 1 |  |  |  |  | extension??-identityUnknown | boolean | 0 | 1 | ID[Boolean] | Yes/NoIndicator |  |
32 | PID-32 | Identity Reliability Code | CWE | 0 | -1 |  |  |  |  |  |  |  |  |  |  |  |
33 | PID-33 | Last Update Date/Time | DTM | 0 | 1 |  |  |  |  |  |  |  |  |  |  |  |
34 | PID-34 | Last Update Facility | HD | 0 | 1 |  |  |  |  |  |  |  |  |  |  |  |
35 | PID-35 | Taxonomic Classification Code | CWE | 0 | 1 |  |  |  | Patient.extension.url |  | uri | 0 | -1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-animal" |
35 | PID-35 | Taxonomic Classification Code | CWE | 0 | 1 |  |  |  | Patient.extension.extension.url |  | uri | 0 | 1 |  |  | "species" |
35 | PID-35 | Taxonomic Classification Code | CWE | 0 | 1 |  |  |  | Patient.extension.extension.valueCodeableConcept |  | CodeableConcept | 0 | 1 | CWE[CodeableConcept] |  |  |
36 | PID-36 | Breed Code | CWE | 0 | 1 |  |  |  | Patient.extension.url |  | uri | 0 | -1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-animal" |
36 | PID-36 | Breed Code | CWE | 0 | 1 |  |  |  | Patient.extension.extension.url |  | uri | 0 | 1 |  |  | "breed" |
36 | PID-36 | Breed Code | CWE | 0 | 1 |  |  |  | Patient.extension.extension.valueCodeableConcept |  | CodeableConcept | 0 | 1 | CWE[CodeableConcept] |  |  |
37 | PID-37 | Strain | ST | 0 | 1 |  |  |  |  |  |  |  |  |  |  |  | If this is necessary, it should be an update to the existing animal extension
38 | PID-38 | Production Class Code | CWE | 0 | 2 |  |  |  |  |  |  |  |  |  |  |  |
39 | PID-39 | Tribal Citizenship | CWE | 0 | -1 |  |  |  | Patient.extension.url |  | uri | 1 | 1 |  |  | "http://hl7.org/fhir/StructureDefinition/patient-citizenship" |
39 | PID-39 | Tribal Citizenship | CWE | 0 | -1 |  |  |  | Patient.extension.extension.url |  | uri | 1 | 1 |  |  | "code" |
39 | PID-39 | Tribal Citizenship | CWE | 0 | -1 |  |  |  | Patient.extension.extension.valueCodeableConcept |  | CodeableConcept | 1 | 1 | CWE[CodeableConcept] |  |  | The standard extension does not include a value set. Also suggest that the extension should not be limited to "country". Consider adding a .type to the extension to distinguish tribal vs. "country" (or whatever we call it), or otherwise add an extension for tribal citizenship to accommodate the return flow.
40 | PID-40 | Patient Telecommunication Information | XTN | 0 | -1 |  |  |  | Patient.telecom |  | ContactPoint | 0 | -1 | XTN[ContactPoint] |  |  |

Mapping from (not specified) to (not specified)

Group 1 Mapping from `unspecified code system` to `unspecified code system`

Source Concept Details | Relationship | Target Concept Details | Comment
Codes from | NarrativeCondition | ComputableANTLR |  | Codes from |
PID-2 | Patient ID |  |  | is equivalent to | identifier[1] | identifier[1] |
PID-3 | Patient Identifier List |  |  | is equivalent to | identifier[2] | identifier[2] |
PID-4 | Alternate Patient ID - PID |  |  | is equivalent to | identifier[3] | identifier[3] |
PID-5 | Patient Name |  |  | is equivalent to | name[1] | name[1] |
PID-6 | Mother's Maiden Name |  |  | is equivalent to | extension[1].url | extension[1].url |
PID-6 | Mother's Maiden Name |  |  | is equivalent to | extension[1].valueString | extension[1].valueString | This may not be the second name if there are repeats in PID-5. ext.patientMothersMaiden (string) also exists if we prefer.
PID-7 | Date/Time of Birth |  |  | is equivalent to | birthDate | birthDate | PROPOSAL MOVE TO IG IMPLEMENTATION GUIDANCE SECTION: Use ISO 8601 to establish the re-formatting from HL7 v2 data type to HL7 FHIR data type, particularly when mapping a platform datetime to platform date. ADD OTHER REFERENCES ON HOW TO ACHIEVE THESE CONVERSIONS in Java, CSHarp, etc., etc.
PID-7 | Date/Time of Birth |  | IF PID-7 LENGTH GREATER THAN 8 | is equivalent to | birthDate.extension[1].url | birthDate.extension[1].url |
PID-7 | Date/Time of Birth |  | IF PID-7 LENGTH GREATER THAN 8 | is equivalent to | birthDate.extension[1].valueDateTime | birthDate.extension[1].valueDateTime |
PID-8 | Administrative Sex |  |  | is equivalent to | gender | gender |
PID-9 | Patient Alias |  |  | is equivalent to | name[2] | name[2] |
PID-11 | Patient Address |  |  | is equivalent to | address[1] | address[1] |
PID-12 | County Code |  | IF PID-11 LST.COUNT EQUALS 1 AND PID-11.9 IS NOT VALUED | is equivalent to | address[1].district | address[1].district | This may not be the second occurrence if PID-11 repeats. Because PID-11 can repeat but PID-12 cannot, it's not appropriate to include PID-12 in an iteration of .address populated from PID-11
PID-12 | County Code |  | IF PID-11 LST.COUNT EQUALS 1 AND PID-11.9 IS VALUED NOT EQUAL PID-12 | is equivalent to | address[2].district | address[2].district |
PID-12 | County Code |  | IF PID-11 LST.COUNT GREATER THAN 1 | is equivalent to | address[2].district | address[2].district |
PID-12 | County Code |  | IF PID-11 IS NOT VALUED | is equivalent to | address[1].district | address[1].district |
PID-13 | Phone Number - Home |  |  | is equivalent to | telecom[1] | telecom[1] |
PID-13 | Phone Number - Home |  | IF PID-13.2 IS NOT VALUED | is equivalent to | telecom[1].use | telecom[1].use |
PID-14 | Phone Number - Business |  |  | is equivalent to | telecom[2] | telecom[2] |
PID-14 | Phone Number - Business |  | IF PID-14.2 IS NOT VALUED | is equivalent to | telecom[2].use | telecom[2].use |
PID-15 | Primary Language |  |  | is equivalent to | communication.language | communication.language | During implementation, if you know that the value in PID-15 is the preferred patient language, then Patient.communication.preferred can be set to "true".
PID-16 | Marital Status |  |  | is equivalent to | maritalStatus | maritalStatus |
PID-17 | Religion |  |  | is equivalent to | extension[2].url | extension[2].url |
PID-17 | Religion |  |  | is equivalent to | extension[2].valueCodeableConcept | extension[2].valueCodeableConcept |
PID-19 | SSN Number - Patient |  |  | is equivalent to | identifier[4].value | identifier[4].value | the value set for Identifier.type doesn't contain SSN but it does have SB (social beneficiary)
PID-19 | SSN Number - Patient | If in the US and various other jurisdictions |  | is equivalent to | identifier[4].type.coding.code | identifier[4].type.coding.code |
PID-19 | SSN Number - Patient | If outside the US for certain jurisdictions |  | is equivalent to | identifier[4].type.coding.code | identifier[4].type.coding.code |
PID-19 | SSN Number - Patient |  |  | is equivalent to | identifier[4].type.coding.system | identifier[4].type.coding.system |
PID-19 | SSN Number - Patient |  |  | is equivalent to | identifier[4].system | identifier[4].system | If working in a jurisdiction other than the US and this field is used for the local SSN equivalent, a different system will need to be identified.
PID-20 | Driver's License Number - Patient |  |  | is equivalent to | identifier[5] | identifier[5] |
PID-21 | Mother's Identifier |  |  | is equivalent to | $this | $this |
PID-23 | Birth Place |  |  | is equivalent to | extension[3].url | extension[3].url |
PID-23 | Birth Place |  |  | is equivalent to | extension[3].valueAddress.text | extension[3].valueAddress.text |
PID-24 | Multiple Birth Indicator |  | IF PID-25 NOT VALUED | is equivalent to | multipleBirthBoolean | multipleBirthBoolean |
PID-25 | Birth Order |  |  | is equivalent to | multipleBirthInteger | multipleBirthInteger |
PID-26 | Citizenship |  |  | is equivalent to | extension[4].url | extension[4].url |
PID-26 | Citizenship |  |  | is equivalent to | extension[4].extension[1].url | extension[4].extension[1].url |
PID-26 | Citizenship |  |  | is equivalent to | extension[4].extension[1].valueCodeableConcept | extension[4].extension[1].valueCodeableConcept | The standard extension does not include a value set
PID-28 | Nationality |  |  | is equivalent to | extension[5].url | extension[5].url |
PID-28 | Nationality |  |  | is equivalent to | extension[5].extension[1].url | extension[5].extension[1].url |
PID-28 | Nationality |  |  | is equivalent to | extension[5].extension[1].valueCodeableConcept | extension[5].extension[1].valueCodeableConcept | The standard extension does not include a value set
PID-29 | Patient Death Date and Time |  |  | is equivalent to | deceasedDateTime | deceasedDateTime |
PID-30 | Patient Death Indicator |  | IF PID-29 NOT VALUED | is equivalent to | deceasedBoolean | deceasedBoolean |
PID-35 | Taxonomic Classification Code |  |  | is equivalent to | extension[6].url | extension[6].url |
PID-35 | Taxonomic Classification Code |  |  | is equivalent to | extension[6].extension[1].url | extension[6].extension[1].url |
PID-35 | Taxonomic Classification Code |  |  | is equivalent to | extension[6].extension[1].valueCodeableConcept | extension[6].extension[1].valueCodeableConcept |
PID-36 | Breed Code |  |  | is equivalent to | extension[6].url | extension[6].url |
PID-36 | Breed Code |  |  | is equivalent to | extension[6].extension[2].url | extension[6].extension[2].url |
PID-36 | Breed Code |  |  | is equivalent to | extension[6].extension[2].valueCodeableConcept | extension[6].extension[2].valueCodeableConcept |
PID-39 | Tribal Citizenship |  |  | is equivalent to | extension[7].url | extension[7].url |
PID-39 | Tribal Citizenship |  |  | is equivalent to | extension[7].extension[1].url | extension[7].extension[1].url |
PID-39 | Tribal Citizenship |  |  | is equivalent to | extension[7].extension[1].valueCodeableConcept | extension[7].extension[1].valueCodeableConcept | The standard extension does not include a value set. Also suggest that the extension should not be limited to "country". Consider adding a .type to the extension to distinguish tribal vs. "country" (or whatever we call it), or otherwise add an extension for tribal citizenship to accommodate the return flow.
PID-40 | Patient Telecommunication Information |  |  | is equivalent to | telecom[3] | telecom[3] |

### Notes: