HL7 Version 2 to FHIR
1.0.0 - STU 1 International flag

HL7 Version 2 to FHIR, published by HL7 International / Orders and Observations. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/v2-to-fhir/ and changes regularly. See the Directory of published versions

ConceptMap: Message ADT_A06 to Bundle Map (Experimental)

Official URL: http://hl7.org/fhir/uv/v2mappings/ConceptMap/message-adt-a06-to-bundle Version: 1.0.0
Standards status: Informative Computable Name: MessageADT_A06ToBundle

Copyright/Legal: Copyright (c) 2025, HL7 International, Inc., All Rights Reserved.

This ConceptMap represents a mapping from the HL7 V2 Message ADT_A06 to the FHIR Message Bundle.

This ConceptMap represents the mapping from the HL7 V2 ADT_A06 Message to the FHIR Message Bundle. See also the FHIR Shorthand or the CSV Source.

HL7 v2Condition (IF True, args)HL7 FHIRComments
Sort OrderIdentifierSyntaxNameCardinality - MinCardinality - MaxComputable ANTLRComputable FHIRPathNarrativePrimary TargetSegment MapReferences
1ADT_A06.MSHMSHMessage Header11BundleMSH[Bundle]
1ADT_A06.MSHMSHMessage Header11MessageHeaderMSH[MessageHeader]Processing of the MSH segment results in the creation of a new MessageHeader resource.
1ADT_A06.MSHMSHMessage Header11If there is a source in MSH-4, or known based on the configuration.ProvenanceMSH[Provenance-Source]Provenance[1].target.reference=Bundle.id; Provenance[1].target.reference=MessageHeader[1].idIf the FHIR transformation does not yield a FHIR message, but only a set of resource (APIs, repository, etc.) than one should consider attaching this Provenance resource instance to the relevant FHIR resources generated.
1ADT_A06.MSHMSHMessage Header11ProvenanceMSH[Provenance-Transformation]Provenance[2].target.reference=Bundle.idIf the FHIR transformation does not yield a FHIR Bunlde, but only a set of resource (APIs, repository, etc.) than one should consider attaching this Provenance resource instance to the relevant FHIR resources generated.
2ADT_A06.ARV[{ ARV }]Access Restrictions0-1
3ADT_A06.SFT[{ SFT }]Software Segment0-1If the software does represent not the original source systemProvenance.entity.what(Device)SFT[Device]Provenance[1].entity.what.reference=Device.id Provenance[1].entity.role="derivation"
3ADT_A06.SFT[{ SFT }]Software Segment0-1If the software represents the original source systemProvenance.entity.what(Device)SFT[Device]Provenance[1].entity.what.reference=Device.id Provenance[1].entity.role="source"
4ADT_A06.UAC[ UAC ]User Authentication Credential01
5ADT_A06.EVNEVNEvent Type11ProvenanceEVN[Provenance]Provenance[3].target.reference=MessageHeader[1].id
5ADT_A06.EVNEVNEvent Type11IF EVN-5 NOT VALUED AND (MSH-22 IS VALUED OR MSH-4 IS VALUED)ProvenanceMSH[Provenance-Operator]Provenance[3].target.reference=MessageHeader[1].idIf EVN-5 is not valued, then the MSH may have either the sending responsible organization (MSH-22) or the sending facility (MSH-4) to reasonable approximate the agent relevant for this Provenance instance.
6ADT_A06.PIDPIDPatient Identification11PatientPID[Patient]Processing of the PID segment results in the creation of a new Patient resource
6ADT_A06.PIDPIDPatient Identification11AccountPID[Account]Account[1].subject.reference=Patient[1].id
6ADT_A06.PIDPIDPatient Identification11IF PID-33 AND PID-34 VALUEDOne may drop PID-33 from the condition if PID-34 Last Update Facility is still sufficient without a date.ProvenancePID[Provenance-Patient]Provenance[4].target.reference=Patient[1].id
7ADT_A06.PD1[ PD1 ]Additional Demographics01PatientPD1[Patient]Incorporate PD1 content into the Patient created from the PID segment.
7ADT_A01.PD1[ PD1 ]Additional Demographics01IF PD1-7 VALUEDObservationPD1[Observation-LivingWill]Observation[1].subject.reference=Patient[1].id
8ADT_A06.OH1[{ OH1 }]Employment Status0-1
9ADT_A06.OH2[{ OH2 }]Past or Present Job0-1
10ADT_A06.OH3[ OH3 ]Usual Work01
11ADT_A06.OH4[{ OH4 }]Combat Zone Work0-1
12ADT_A06:follow:PID.ARV[{ ARV }]Access Restrictions0-1FHIR does not yet support field level security tags. The ARV, when located with the PID/PD1 in the v2 message, is meant to only apply to the patient. However, technically it could point to other places in the messageas as well. That is considered out of scope as.
13ADT_A06:follow:PID.ROL[{ ROL }]Role0-1IF ROL-3.1 EQUALS "PP" AND ROL-3.3 EQUALS "HL70443"(element("3.1")="PP")and(element("3.3")="HL70443")PatientROL[Patient-GeneralPractitioner]
13ADT_A06:follow:PID.ROL[{ ROL }]Role0-1IF ROL-3.3 EQUALS "HL70443" AND ROL-3.1 IS NOT "PP"(element("3.1")!="PP")or(element("3.3")!="HL70443")When the ROL includes entries with roles in Table HL70443 other than "PP", then they may be candidates for CareTeam, but not all. That is implementation specific.CareTeamROL[CareTeam]CareTeam[1].subject.reference=Patient[1].id
14ADT_A06:follow:PID.PRT[{ PRT }]Participation0-1IF PRT-4 IS "PP"PatientPRT[Patient-GeneralPractitioner-Practitioner]
14ADT_A06:follow:PID.PRT[{ PRT }]Participation0-1IF PRT-4 IS IN ("AD", "AP", "ARI", "AT", "CP", "FHCP", "OP", "PH", "PP", "PRI", "RP", "RT", "VP", "PO")CareTeamPRT[CareTeam]CareTeam[1].subject.reference=Patient[1].id
15ADT_A06.MRG[ MRG ]Merge Information01AccountMRG[Account]Account[2].subject.reference=Patient[1].idIt will be left to implementation negotiation to determine whether disparate systems merely change the patient class, or close and open a new account. The current active account number should appear in field PID-18 - Patient Account Number; the prior account number can be included optionally in MRG-3 - Prior Patient Account Number. Depending on the relationship between the old and new account, the implementer should consider whether Account.partOf should be used as well to link the two accounts appropriately.
16ADT_A06.NEXT_OF_KIN[{--- NEXT_OF_KIN begin0-1
16.1ADT_A06.NEXT_OF_KIN.NK1NK1Next of Kin / Associated Parties11RelatedPersonNK1[RelatedPerson]RelatedPerson[2].patient.reference=Patient[1].idTypically, each NK1 will be translated to either a new RelatedPerson resource or added as a new occurrence of Patient.contact, but it's possible to insert the NK1 data into both structures.
16.1ADT_A06.NEXT_OF_KIN.NK1NK1Next of Kin / Associated Parties11PatientNK1[Patient]
16.2ADT_A06.NEXT_OF_KIN.OH2[{ OH2 }]Past or Present Job0-1
16.2ADT_A06.NEXT_OF_KIN.OH3[ OH3 ]Usual Work01
16.3/ADT_A06.NEXT_OF_KIN}]--- NEXT_OF_KIN end
17ADT_A06.PV1PV1Patient Visit11EncounterPV1[Encounter]Encounter[1].subject.reference=Patient[1].idProcessing of the PV1 segment results in the creation of a new Encounter resource. Note also that per A06 and A07 trigger event definitions PV1-19 - Visit Number may also be changed during this event.
17ADT_A06.PV1PV1Patient Visit11IF PV1-43 VALUEDBasicPV1[Basic-EncounterHistory]Basic.extension-EncounterHistory.subject.reference=Patient[1].id
17ADT_A06.PV1PV1Patient Visit11PatientPV1[Patient]
17ADT_A06.PV1PV1Patient Visit11IF PV1-20 VALUECoveragePV1[Coverage]Coverage.beneficiary.reference=Patient[1].id
18ADT_A06.PV2[ PV2 ]Patient Visit - Additional Info.01EncounterPV2[Encounter]Incorporate PV2 content into the Encounter created from the PV1 segment.
19ADT_A06:follow:PV1.ARV[{ ARV }]Access Restrictions0-1FHIR does not yet support field level security tags. The ARV, when located with the PV1/PV2 in the v2 message, is meant to only apply to the encounter. However, technically it could point to other places in the messageas as well. That is considered out of scope as.
20ADT_A06:follow:PV1.ROL[{ ROL }]Role0-1EncounterROL[Encounter-PractitionerRole]
21ADT_A06:follow:PV1.PRT[{ PRT }]Participation0-1
22ADT_A06.DB1[{ DB1 }]Disability Information0-1
23ADT_A06.OBSERVATION[{--- OBSERVATION begin0-1
23.1ADT_A06.OBSERVATION.OBXOBXObservation/Result11IF OBX-5 LST.count LESS THAN OR EQUALS 1 OR OBX-2 IS "NA"ObservationOBX[Observation]Observation[3].subject.reference=Patient[1].idOne cannot determine whether this observation made during the PV1/PV2 communicated above, or from a prior visit/stay. It is therefore up to the implementer whether to populate Observation.encounter.reference with the Encounter[1].id or not. Only when the ADT message involves an event before the encounter occurs, e.g., the intiial registration, it is clear that the observation is NOT associated with Encounter[1].
23.1ADT_A06.OBSERVATION.OBXOBXObservation/Result11IF OBX-5 LST.count GREATER THAN 1 AND OBX-2 IS NOT "NA"ObservationOBX[Observation-Component]Observation[3].subject.reference=Patient[1].idOne cannot determine whether this observation made during the PV1/PV2 communicated above, or from a prior visit/stay. It is therefore up to the implementer whether to populate Observation.encounter.reference with the Encounter[1].id or not. Only when the ADT message involves an event before the encounter occurs, e.g., the intiial registration, it is clear that the observation is NOT associated with Encounter[1].
23.2ADT_A06.OBSERVATION.PRT[{ PRT }]Participation0-1
23.3/ADT_A06.OBSERVATION}]--- OBSERVATION end
24ADT_A06.AL1[{ AL1 }]Allergy Information0-1AllergyIntoleranceAL1[AllergyIntolerance]AllergyIntolerance.patient.reference=Patient[1].idProcessing of the AL1 segment results in the creation of a new AllergyIntolerance resource
25ADT_A06.IAM[{ IAM }]Patient Advers Reaction Information0-1
26ADT_A06.DG1[{ DG1 }]Diagnosis Information0-1If in context of the patientConditionDG1[Condition]Condition[1].subject.reference=Patient[1].idProcessing of the DG1 segment results in the creation of a new Condition resource
26ADT_A06.DG1[{ DG1 }]Diagnosis Information0-1If in context of an encounterEncounterDG1[Encounter]Encounter[1].diagnosis.reference=Condition[1].id
26ADT_A06.DG1[{ DG1 }]Diagnosis Information0-1If in context of a episode of careEpisodeOfCareDG1[EpisodeOfCare]EpisodeOfCare.patient.reference=Patient[1].id; EpisodeOfCare.diagnosis.reference=Condition[1].id
27ADT_A06.DRG[ DRG ]Diagnosis Related Group01
28ADT_A06.PROCEDURE[{--- PROCEDURE begin0-1
28.1ADT_A06.PROCEDURE.PR1PR1Procedures11ProcedurePR1[Procedure]Procedure.subject.reference=Patient[1].id
28.2ADT_A06.PROCEDURE.ROL[{ ROL }]Role0-1
28.3ADT_A06.PROCEDURE.PRT[{ PRT }]Participation0-1
28.4/ADT_A06.PROCEDURE}]--- PROCEDURE end
29ADT_A06.GT1[{ GT1 }]Guarantor0-1
30ADT_A06.INSURANCE[{--- INSURANCE begin0-1
30.1ADT_A06.INSURANCE.IN1IN1Insurance11CoverageIN1[Coverage]Processing of the IN1 segment results in the creation of a new Coverage resource
30.2ADT_A06.INSURANCE.IN2[ IN2 ]Insurance Additional Info.01
30.3ADT_A06.INSURANCE.IN3[{ IN3 }]Insurance Additional Info - Cert.0-1CareTeam.participantIN3[CareTeam]CareTeam[1].subject.reference=Patient[1].idIncorporate IN3 content into the Coverage created from the IN1 segment.
30.4ADT_A06.INSURANCE.ROL[{ ROL }]Role0-1
30.5ADT_A06.INSURANCE.PRT[{ PRT }]Participation0-1
30.8/ADT_A06.INSURANCE}]--- INSURANCE end
31ADT_A06.ACC[ ACC ]Accident Information01
32ADT_A06.UB1[ UB1 ]Universal Bill Information01
33ADT_A06.UB2[ UB2 ]Universal Bill 92 Information01

Mapping from (not specified) to (not specified)


Group 1 Mapping from unspecified code system to unspecified code system

Source Concept DetailsRelationshipTarget Concept DetailsComment
Codes from NarrativeConditionComputableFHIRPathComputableANTLRCodes from
ADT_A06.MSHMessage Headeris equivalent toBundleBundle
ADT_A06.MSHMessage Headeris equivalent toMessageHeader[1]MessageHeader[1]Processing of the MSH segment results in the creation of a new MessageHeader resource.
ADT_A06.MSHMessage HeaderIf there is a source in MSH-4, or known based on the configuration.is equivalent toProvenance[1]Provenance[1]If the FHIR transformation does not yield a FHIR message, but only a set of resource (APIs, repository, etc.) than one should consider attaching this Provenance resource instance to the relevant FHIR resources generated.
ADT_A06.MSHMessage Headeris equivalent toProvenance[2]Provenance[2]If the FHIR transformation does not yield a FHIR Bunlde, but only a set of resource (APIs, repository, etc.) than one should consider attaching this Provenance resource instance to the relevant FHIR resources generated.
ADT_A06.SFTSoftware SegmentIf the software does represent not the original source systemis equivalent toProvenance[1].entity.what(Device)Provenance[1].entity.what(Device)
ADT_A06.SFTSoftware SegmentIf the software represents the original source systemis equivalent toProvenance[1].entity.what(Device)Provenance[1].entity.what(Device)
ADT_A06.EVNEvent Typeis equivalent toProvenance[3]Provenance[3]
ADT_A06.EVNEvent TypeIF EVN-5 NOT VALUED AND (MSH-22 IS VALUED OR MSH-4 IS VALUED)is equivalent toProvenance[3]Provenance[3]If EVN-5 is not valued, then the MSH may have either the sending responsible organization (MSH-22) or the sending facility (MSH-4) to reasonable approximate the agent relevant for this Provenance instance.
ADT_A06.PIDPatient Identificationis equivalent toPatient[1]Patient[1]Processing of the PID segment results in the creation of a new Patient resource
ADT_A06.PIDPatient Identificationis equivalent toAccount[1]Account[1]
ADT_A06.PIDPatient IdentificationOne may drop PID-33 from the condition if PID-34 Last Update Facility is still sufficient without a date.IF PID-33 AND PID-34 VALUEDis equivalent toProvenance[4]Provenance[4]
ADT_A06.PD1Additional Demographicsis equivalent toPatient[1]Patient[1]Incorporate PD1 content into the Patient created from the PID segment.
ADT_A01.PD1Additional DemographicsIF PD1-7 VALUEDis equivalent toObservation[1]Observation[1]
ADT_A06:follow:PID.ROLRole(element("3.1")="PP")and(element("3.3")="HL70443")IF ROL-3.1 EQUALS "PP" AND ROL-3.3 EQUALS "HL70443"is equivalent toPatient[1]Patient[1]
ADT_A06:follow:PID.ROLRoleWhen the ROL includes entries with roles in Table HL70443 other than "PP", then they may be candidates for CareTeam, but not all. That is implementation specific.(element("3.1")!="PP")or(element("3.3")!="HL70443")IF ROL-3.3 EQUALS "HL70443" AND ROL-3.1 IS NOT "PP"is equivalent toCareTeam[1]CareTeam[1]
ADT_A06:follow:PID.PRTParticipationIF PRT-4 IS "PP"is equivalent toPatient[1]Patient[1]
ADT_A06:follow:PID.PRTParticipationIF PRT-4 IS IN ("AD", "AP", "ARI", "AT", "CP", "FHCP", "OP", "PH", "PP", "PRI", "RP", "RT", "VP", "PO")is equivalent toCareTeam[1]CareTeam[1]
ADT_A06.MRGMerge Informationis equivalent toAccount[2]Account[2]It will be left to implementation negotiation to determine whether disparate systems merely change the patient class, or close and open a new account. The current active account number should appear in field PID-18 - Patient Account Number; the prior account number can be included optionally in MRG-3 - Prior Patient Account Number. Depending on the relationship between the old and new account, the implementer should consider whether Account.partOf should be used as well to link the two accounts appropriately.\
ADT_A06.NEXT_OF_KIN.NK1Next of Kin / Associated Partiesis equivalent toRelatedPerson[2]RelatedPerson[2]Typically, each NK1 will be translated to either a new RelatedPerson resource or added as a new occurrence of Patient.contact, but it's possible to insert the NK1 data into both structures.
ADT_A06.NEXT_OF_KIN.NK1Next of Kin / Associated Partiesis equivalent toPatient[1]Patient[1]
ADT_A06.PV1Patient Visitis equivalent toEncounter[1]Encounter[1]Processing of the PV1 segment results in the creation of a new Encounter resource. Note also that per A06 and A07 trigger event definitions PV1-19 - Visit Number may also be changed during this event.
ADT_A06.PV1Patient VisitIF PV1-43 VALUEDis equivalent toBasicBasic
ADT_A06.PV1Patient Visitis equivalent toPatient[1]Patient[1]
ADT_A06.PV1Patient VisitIF PV1-20 VALUEis equivalent toCoverage[1]Coverage[1]
ADT_A06.PV2Patient Visit - Additional Info.is equivalent toEncounter[1]Encounter[1]Incorporate PV2 content into the Encounter created from the PV1 segment.
ADT_A06:follow:PV1.ROLRoleis equivalent toEncounter[1]Encounter[1]
ADT_A06.OBSERVATION.OBXObservation/ResultIF OBX-5 LST.count LESS THAN OR EQUALS 1 OR OBX-2 IS "NA"is equivalent toObservation[3]Observation[3]One cannot determine whether this observation made during the PV1/PV2 communicated above, or from a prior visit/stay. It is therefore up to the implementer whether to populate Observation.encounter.reference with the Encounter[1].id or not. Only when the ADT message involves an event before the encounter occurs, e.g., the intiial registration, it is clear that the observation is NOT associated with Encounter[1].
ADT_A06.OBSERVATION.OBXObservation/ResultIF OBX-5 LST.count GREATER THAN 1 AND OBX-2 IS NOT "NA"is equivalent toObservation[3]Observation[3]One cannot determine whether this observation made during the PV1/PV2 communicated above, or from a prior visit/stay. It is therefore up to the implementer whether to populate Observation.encounter.reference with the Encounter[1].id or not. Only when the ADT message involves an event before the encounter occurs, e.g., the intiial registration, it is clear that the observation is NOT associated with Encounter[1].
ADT_A06.AL1Allergy Informationis equivalent toAllergyIntoleranceAllergyIntoleranceProcessing of the AL1 segment results in the creation of a new AllergyIntolerance resource
ADT_A06.DG1Diagnosis InformationIf in context of the patientis equivalent toCondition[1]Condition[1]Processing of the DG1 segment results in the creation of a new Condition resource
ADT_A06.DG1Diagnosis InformationIf in context of an encounteris equivalent toEncounter[1]Encounter[1]
ADT_A06.DG1Diagnosis InformationIf in context of a episode of careis equivalent toEpisodeOfCare[1]EpisodeOfCare[1]
ADT_A06.PROCEDURE.PR1Proceduresis equivalent toProcedureProcedure
ADT_A06.INSURANCE.IN1Insuranceis equivalent toCoverage[1]Coverage[1]Processing of the IN1 segment results in the creation of a new Coverage resource
ADT_A06.INSURANCE.IN3Insurance Additional Info - Cert.is equivalent toCareTeam[1].participant[2]CareTeam[1].participant[2]Incorporate IN3 content into the Coverage created from the IN1 segment.

Notes: