US Veterans Health Administration FHIR Map Set Implementation Guide
1.9.0 - 251001 United States of America flag

US Veterans Health Administration FHIR Map Set Implementation Guide - Downloaded Version 1.9.0 See the Directory of published versions

Resource Profile: EncounterOutpatient - Mappings

Active as of 2025-09-30

Mappings for the EncounterOutpatient resource profile.

Scroll down for the Raw FHIR, CDW & SDA mappings (if any).

Note that the CDW, SDA and VPR XML mappings are derived from a look-up based on the VistA source.

Mapping Sources

Use Case: Encounter: Outpatient (Source)Use Case: Encounter: Outpatient (Source)INSTITUTION (4).01NAME99STATION NUMBERICD DIAGNOSIS (80).01CODE NUMBERCPT (81).01CPT CODE2SHORT NAMENEW PERSON (200)PATIENT MOVEMENT (405).27VISIT FILE ENTRYPATIENT/IHS (9000001).01NAMEVISIT (9000010).01VISIT/ADMIT DATE&TIME.05PATIENT NAME.06LOC. OF ENCOUNTER.07SERVICE CATEGORY.08DSS ID.18CHECK OUT DATE&TIME.22HOSPITAL LOCATION15001VISIT ID15002PATIENT STATUS IN/OUTOUTPATIENT ENCOUNTER (409.68).1APPOINTMENT TYPEAPPOINTMENT TYPE (409.1).01NAMEV POV (9000010.07).01POV.12PRIMARY/SECONDARYLOCATION (9999999.06).01NAMEV PROVIDER (9000010.06).01PROVIDER.04PRIMARY/SECONDARYV CPT (9000010.18).01CPT.03[{.03>9000010} SERVICE CONNECTED][{.03>9000010} Not SERVICE CONNECTED][{.03>9000010} 9000010.07-.12 = 'P'].03.03.03[{.03>9000010} Not admission record (rule not needed in examples we've seen)]

Raw Mappings

key status direction source mapApproach mapCase FHIR Path subPath mapValue mapParameter mapComment FHIR URL | Ver
429 team-approved V2F VISIT - VISIT ID (9000010-15001) source value Encounter.identifier[va-visitid] .value .system=http://va.gov/identifiers/$Sta3n/9000010-15001 http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
430 team-approved V2F VISIT - VISIT/ADMIT DATE&TIME (9000010-.01) fixed value IMP, null or > now Encounter.status #planned http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
431 team-approved V2F VISIT - VISIT/ADMIT DATE&TIME (9000010-.01) fixed value IMP, not null, < now, .18 null Encounter.status #in-progress http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
432 team-approved V2F VISIT - CHECK OUT DATE&TIME (9000010-.18) fixed value IMP, not null, < now Encounter.status #finished http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
2035 for review V2F OUTPATIENT ENCOUNTER - APPOINTMENT TYPE > APPOINTMENT TYPE - NAME (409.68-.1 > 409.1-.01) fixed value {.03>9000010} SERVICE CONNECTED Encounter.extension[http://va.gov/fhir/StructureDefinition/resource-serviceConnection].valueCoding http://va.gov/fhir/vistaDefinedTerms/409.1#SC "Service Connected" Outpatient Encounter points to Visit (409.68-.05) http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
2036 for review V2F OUTPATIENT ENCOUNTER - APPOINTMENT TYPE > APPOINTMENT TYPE - NAME (409.68-.1 > 409.1-.01) fixed value {.03>9000010} Not SERVICE CONNECTED Encounter.extension[http://va.gov/fhir/StructureDefinition/resource-serviceConnection].valueCoding http://va.gov/fhir/vistaDefinedTerms/409.1#NSC "Not Service Connected" Outpatient Encounter points to Visit (409.68-.05) http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
439 team-approved V2F VISIT - SERVICE CATEGORY (9000010-.07) source value Encounter.serviceType.coding .code .system=http://va.gov/terminology/VistADefinedTerms/9000010-.07 http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
440 team-approved V2F VISIT - PATIENT NAME > PATIENT/IHS - NAME (9000010-.05 > 9000001-.01) reference Encounter.subject /Patient http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
443 team-approved V2F VISIT - VISIT/ADMIT DATE&TIME (9000010-.01) source value Encounter.period .start http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
444 team-approved V2F VISIT - CHECK OUT DATE&TIME (9000010-.18) source value Encounter.period .end http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
447 team-approved V2F V POV - POV > ICD DIAGNOSIS - CODE NUMBER (9000010.07-.01 > 80-.01) source value {.03>9000010} 9000010.07-.12 = 'P' Encounter.reasonCode.coding .code .system=termmap({VF_ICDCodingSystems,CODING SYSTEM(1.1)}) do we need visit in col e and pov in col g? http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
2030 for review V2F target not supported Encounter.hospitalization because of must-support: Outpatient so no hospitalization http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
458 team-approved V2F VISIT - DSS ID (9000010-.08) reference Encounter.location[va-stop].location /Location Stop Code http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
459 team-approved V2F VISIT - HOSPITAL LOCATION (9000010-.22) reference Encounter.location[va-loc].location /Location http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
614 for review V2F VISIT - PATIENT STATUS IN/OUT (9000010-15002) terminologyMaps Encounter.class VF_encounterClass 84% are Outpatient (2024 Jan-Mar) http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
1599 for review V2F VISIT - LOC. OF ENCOUNTER > LOCATION - NAME > INSTITUTION (9000010-.06 > 9999999.06-.01 > 4) reference Encounter.serviceProvider /Organization .display = {NAME (.01)}
.identifier.value = {STATION NUMBER (99)}
.identifier.system = http://va.gov/identifiers/4-99
http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
1614 for review V2F V PROVIDER - PROVIDER > NEW PERSON (9000010.06-.01 > 200-) reference {.03>9000010} Encounter.participant .individual /PractitionerRole code in ProviderRole; name and id in Reference to Provider http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
1854 for review V2F V PROVIDER - PRIMARY/SECONDARY (9000010.06-.04) terminologyMaps {.03>9000010} Encounter.participant .type VF_encounterParticipationType http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
1615 for review V2F V CPT - CPT > CPT (9000010.18-.01 > 81-) source value {.03>9000010} Not admission record (rule not needed in examples we've seen) Encounter.type .coding.system=http://www.ama-assn.org/go/cpt
.coding.code = {CPT CODE (.01)}
.coding.display = {SHORT NAME (2)} 
.text = {SHORT NAME (2)}
http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
1799 for review V2F target not supported Encounter.participant.period http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
2241 for review V2F PATIENT MOVEMENT - VISIT FILE ENTRY (405-.27) source value admission record (9000010-.07 = H) Encounter.identifier[va-movement] .value .system=http://va.gov/identifiers/[Sta3n]/405 Reverse pointer. Provided by VPR; VistA relationship not in CDW. Needs a slice http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
2244 for review V2F V POV - POV > ICD DIAGNOSIS - (9000010.07-.01 > 80-) source value {.03>9000010} Encounter.diagnosis.condition Preadopt R5 extension Encounter.diagnosis.condition.extension[http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.diagnosis.condition].extension[concept].valueCodeableConcept.coding .system=termmap(VF_ICDCodingSystems,{CODING SYSTEM(1.1)}) .code = {CODE NUMBER(.01)} http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1
2245 for review V2F V POV - PRIMARY/SECONDARY (9000010.07-.12) terminologyMaps {.03>9000010} Encounter.diagnosis.use VF_EncounterDiagnosisUse http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter | 5.0.1

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameVeterans Health Information Systems Technology and Architecture (VistA)Clinical Data Warehouse (CDW)Summary Document Architecure (SDA)Virtual Patient Record XML (VPR)Workflow Patterndoco
.. Encounter
Event
... id
... meta
... implicitRules
... language
... text
... contained
... Slices for extension
.... extension:resource-serviceConnection
..... id
..... extension
..... url
..... value[x]
fixed value = http://va.gov/fhir/vistaDefinedTerms/409.1#NSC "Not Service Connected" when OUTPATIENT ENCOUNTER - APPOINTMENT TYPE > APPOINTMENT TYPE - NAME (409.68-.1 > 409.1-.01) if {.03>9000010} Not SERVICE CONNECTED
Outpatient Encounter points to Visit (409.68-.05)
Outpat.Visit.AppointmentTypeIEN Outpat.Workload.AppointmentTypeIEN Dim.AppointmentType.AppointmentType
... modifierExtension
... Slices for identifier
Event.identifier
.... identifier:All Slices
..... id
..... extension
..... use
..... type
..... system
..... value
..... period
..... assigner
.... identifier:va-visitid
Event.identifier
..... id
..... extension
..... use
..... type
..... system
fixed value = http://va.gov/identifiers/$Sta3n/9000010-15001
mapParameter line 1
..... value
source value based on VISIT - VISIT ID (9000010-15001)
Outpat.Visit.VisitIdentifier Outpat.Workload.VisitIdentifier
Encounter.Extension[EncounterExtension].VisitID Encounter.Extension[EncounterExtension].VisitID
..... period
..... assigner
.... identifier:va-movement
Event.identifier
..... id
..... extension
..... use
..... type
..... system
fixed value = http://va.gov/identifiers/[Sta3n]/405 if admission record (9000010-.07 = H)
mapParameter line 1
..... value
source value based on PATIENT MOVEMENT - VISIT FILE ENTRY (405-.27) if admission record (9000010-.07 = H)
Reverse pointer. Provided by VPR; VistA relationship not in CDW. Needs a slice
Encounter.EncounterNumber
..... period
..... assigner
... status
  • fixed value = #finished when VISIT - CHECK OUT DATE&TIME (9000010-.18) if IMP
  • not null
  • < now
Outpat.Visit.CheckOutDateTime Outpat.Workload.CheckOutDateTime
Encounter.ToTime
visit.dateTime visit.visitString
Event.status
... statusHistory
.... id
.... extension
.... modifierExtension
.... status
.... period
... class
terminologyMaps using VF_encounterClass on VISIT - PATIENT STATUS IN/OUT (9000010-15002)
84% are Outpatient (2024 Jan-Mar)
Outpat.Visit.PatientStatusInOut Outpat.Workload.PatientStatusInOut
visit.patientClass
... classHistory
.... id
.... extension
.... modifierExtension
.... class
.... period
... type
source value based on V CPT - CPT > CPT (9000010.18-.01 > 81-) if {.03>9000010} Not admission record (rule not needed in examples we've seen)
Outpat.VProcedure.CPTIEN Outpat.VProcedureCPTModifier.CPTIEN Outpat.VProcedureDiagnosis.CPTIEN Outpat.WorkloadVProcedure.CPTIEN Outpat.WorkloadVProcedureCPTModifier.CPTIEN Outpat.WorkloadVProcedureDiagnosis.CPTIEN
Encounter.Extension[EncounterExtension].Cpt Encounter.Extension[EncounterExtension].Cpt Procedure.Procedure Procedure.Procedure[CodeTableDetail.Procedure].Code
visit.cpt [m] (>81-.01) visit.cpt [m] (>81-2) visit.type (>81-.01) visit.type (>81-2)
Event.code
.... id
.... extension
.... coding
..... id
..... extension
..... system
fixed value = http://www.ama-assn.org/go/cpt if {.03>9000010} Not admission record (rule not needed in examples we've seen)
mapParameter line 1
..... version
..... code
source value based on V CPT - CPT > CPT - CPT CODE (9000010.18-.01 > 81-.01) if {.03>9000010} Not admission record (rule not needed in examples we've seen)
mapParameter line 2
Outpat.VProcedure.CPTIEN Outpat.VProcedureCPTModifier.CPTIEN Outpat.VProcedureDiagnosis.CPTIEN Outpat.WorkloadVProcedure.CPTIEN Outpat.WorkloadVProcedureCPTModifier.CPTIEN Outpat.WorkloadVProcedureDiagnosis.CPTIEN Dim.CPT.CPTCode Dim.CPT.CPTCode
Encounter.Extension[EncounterExtension].Cpt Encounter.Extension[EncounterExtension].Cpt Procedure.Procedure Procedure.Procedure[CodeTableDetail.Procedure].Code
visit.cpt [m] (>81-.01) visit.cpt [m] (>81-2) visit.type (>81-.01) visit.type (>81-2)
..... display
source value based on V CPT - CPT > CPT - SHORT NAME (9000010.18-.01 > 81-2) if {.03>9000010} Not admission record (rule not needed in examples we've seen)
mapParameter line 3
Outpat.VProcedure.CPTIEN Outpat.VProcedureCPTModifier.CPTIEN Outpat.VProcedureDiagnosis.CPTIEN Outpat.WorkloadVProcedure.CPTIEN Outpat.WorkloadVProcedureCPTModifier.CPTIEN Outpat.WorkloadVProcedureDiagnosis.CPTIEN Dim.CPT.CPTName Dim.CPT.CPTName
Encounter.Extension[EncounterExtension].Cpt Encounter.Extension[EncounterExtension].Cpt Procedure.Procedure Procedure.Procedure[CodeTableDetail.Procedure].Code
visit.cpt [m] (>81-.01) visit.cpt [m] (>81-2) visit.type (>81-.01) visit.type (>81-2)
..... userSelected
.... text
source value based on V CPT - CPT > CPT - SHORT NAME (9000010.18-.01 > 81-2) if {.03>9000010} Not admission record (rule not needed in examples we've seen)
mapParameter line 4
Outpat.VProcedure.CPTIEN Outpat.VProcedureCPTModifier.CPTIEN Outpat.VProcedureDiagnosis.CPTIEN Outpat.WorkloadVProcedure.CPTIEN Outpat.WorkloadVProcedureCPTModifier.CPTIEN Outpat.WorkloadVProcedureDiagnosis.CPTIEN Dim.CPT.CPTName Dim.CPT.CPTName
Encounter.Extension[EncounterExtension].Cpt Encounter.Extension[EncounterExtension].Cpt Procedure.Procedure Procedure.Procedure[CodeTableDetail.Procedure].Code
visit.cpt [m] (>81-.01) visit.cpt [m] (>81-2) visit.type (>81-.01) visit.type (>81-2)
... serviceType
Event.code
.... id
.... extension
.... coding
..... id
..... extension
..... system
fixed value = http://va.gov/terminology/VistADefinedTerms/9000010-.07
mapParameter line 1
..... version
..... code
source value based on VISIT - SERVICE CATEGORY (9000010-.07)
Outpat.Visit.ServiceCategory Outpat.Workload.ServiceCategory
Encounter.EncounterCodedType Encounter.ExternalId Encounter.ToTime
visit.serviceCategory visit.visitString
..... display
..... userSelected
.... text
... priority
... subject
reference based on VISIT - PATIENT NAME > PATIENT/IHS - NAME (9000010-.05 > 9000001-.01)
Outpat.Visit.PatientIEN Outpat.Workload.PatientIEN
Encounter.EncounterMRN
Event.subject
... episodeOfCare
Event.context
... basedOn
Event.basedOn
... participant
Event.performer
.... id
.... extension
.... modifierExtension
.... type
terminologyMaps using VF_encounterParticipationType on V PROVIDER - PRIMARY/SECONDARY (9000010.06-.04) if {.03>9000010}
Outpat.VProvider.PrimarySecondary Outpat.WorkloadVProvider.PrimarySecondary
visit.provider [m]
Event.performer.function
.... period
target not supported
.... individual
reference based on V PROVIDER - PROVIDER > NEW PERSON (9000010.06-.01 > 200-) if {.03>9000010}
code in ProviderRole; name and id in Reference to Provider
Outpat.VProvider.ProviderIEN Outpat.WorkloadVProvider.ProviderIEN
Encounter.ConsultingClinicians
visit.provider [m] (>200-.01) visit.provider [m] (>200-8932.1)
Event.performer.actor
... appointment
Event.basedOn
... period
Event.occurrence[x]
.... id
.... extension
.... start
source value based on VISIT - VISIT/ADMIT DATE&TIME (9000010-.01)
Immun.ImmunizationContraRefusalEvent.VisitDateTime Outpat.Visit.VisitDateTime Outpat.VisitLogic.VisitDateTime Outpat.Workload.VisitDateTime
Encounter.ConsultingClinician[CareProvider].Description Encounter.ConsultingClinician[CareProvider].Name
visit.dateTime visit.visitString
.... end
source value based on VISIT - CHECK OUT DATE&TIME (9000010-.18)
Outpat.Visit.CheckOutDateTime Outpat.Workload.CheckOutDateTime
Encounter.ToTime
... length
Event.occurrence[x]
... reasonCode
Event.reasonCode
.... id
.... extension
.... coding
..... id
..... extension
..... system
fixed value = urn:see-termmap-in-mapParameter if {.03>9000010} 9000010.07-.12 = 'P'
mapParameter line 1
..... version
..... code
source value based on V POV - POV > ICD DIAGNOSIS - CODE NUMBER (9000010.07-.01 > 80-.01) if {.03>9000010} 9000010.07-.12 = 'P'
do we need visit in col e and pov in col g?
Outpat.VDiagnosis.ICDIEN Outpat.WorkloadVDiagnosis.ICDIEN Dim.ICD10.ICD10Code Dim.ICD9.ICD9Code
Diagnosis.Diagnosis Diagnosis.Diagnosis[CodeTableDetail.Diagnosis].Code
visit.icd [m] (>80-.01) visit.icd [m] (>80-1.1) visit.icd [m] (>80-10) visit.reason (>80-.01) visit.reason (>80-1.1) visit.reason (>80-10)
..... display
..... userSelected
.... text
... reasonReference
Event.reasonCode
... diagnosis
.... id
.... extension
.... modifierExtension
.... condition
source value based on V POV - POV > ICD DIAGNOSIS - (9000010.07-.01 > 80-) if {.03>9000010}
Preadopt R5 extension Encounter.diagnosis.condition.extension[http://hl7.org/fhir/5.0/StructureDefinition/extension-Encounter.diagnosis.condition].extension[concept].valueCodeableConcept.coding .system=termmap(VF_ICDCodingSystems,{CODING SYSTEM(1.1)}) .code = {CODE NUMBER(.01)}
Outpat.VDiagnosis.ICDIEN Outpat.WorkloadVDiagnosis.ICDIEN
Diagnosis.Diagnosis Diagnosis.Diagnosis[CodeTableDetail.Diagnosis].Code
visit.icd [m] (>80-.01) visit.icd [m] (>80-1.1) visit.icd [m] (>80-10) visit.reason (>80-.01) visit.reason (>80-1.1) visit.reason (>80-10)
Event.reasonReference
.... use
terminologyMaps using VF_EncounterDiagnosisUse on V POV - PRIMARY/SECONDARY (9000010.07-.12) if {.03>9000010}
Outpat.VDiagnosis.PrimarySecondary Outpat.WorkloadVDiagnosis.PrimarySecondary
visit.icd [m] visit.reason
.... rank
... account
... hospitalization
target not supported
because of must-support: Outpatient so no hospitalization
.... id
.... extension
.... modifierExtension
.... preAdmissionIdentifier
.... origin
.... admitSource
.... reAdmission
.... dietPreference
.... specialCourtesy
.... specialArrangement
.... destination
.... dischargeDisposition
... Slices for location
.... location:All Slices
..... id
..... extension
..... modifierExtension
..... location
Event.location
..... status
..... physicalType
..... period
.... location:va-stop
..... id
..... extension
..... modifierExtension
..... location
reference based on VISIT - DSS ID (9000010-.08)
Stop Code
Outpat.Visit.PrimaryStopCodeIEN Outpat.Visit.SecondaryStopCodeIEN Outpat.Workload.PrimaryStopCodeIEN Outpat.Workload.SecondaryStopCodeIEN
Encounter.Extension[EncounterExtension].StopCode
visit.stopCode (>40.7-.01)
Event.location
..... status
..... physicalType
..... period
.... location:va-loc
..... id
..... extension
..... modifierExtension
..... location
reference based on VISIT - HOSPITAL LOCATION (9000010-.22)
Outpat.Visit.LocationIEN Outpat.Workload.LocationIEN
Encounter.ExternalId Encounter.HealthCareFacility
visit.creditStopCode (>44-2503) visit.location (>44-.01) visit.visitString
Event.location
..... status
..... physicalType
..... period
... serviceProvider
reference based on VISIT - LOC. OF ENCOUNTER > LOCATION - NAME > INSTITUTION (9000010-.06 > 9999999.06-.01 > 4)
Outpat.Visit.InstitutionIEN Outpat.Workload.InstitutionIEN
Encounter.EncounterMRNAA Encounter.EncounterNumberAssigningAuthority Encounter.EnteredAt
visit.facility (>4-.01) visit.facility (>4-99)
Event.performer.actor
.... id
.... extension
.... reference
.... type
.... identifier
..... id
..... extension
..... use
..... type
..... system
fixed value = http://va.gov/identifiers/4-99
mapParameter line 3
..... value
source value based on VISIT - LOC. OF ENCOUNTER > LOCATION - NAME > INSTITUTION - STATION NUMBER (9000010-.06 > 9999999.06-.01 > 4-99)
mapParameter line 2
Outpat.Visit.InstitutionIEN Outpat.Workload.InstitutionIEN
Encounter.EncounterMRNAA Encounter.EncounterNumberAssigningAuthority Encounter.EnteredAt
visit.facility (>4-.01) visit.facility (>4-99)
..... period
..... assigner
.... display
source value based on VISIT - LOC. OF ENCOUNTER > LOCATION - NAME > INSTITUTION - NAME (9000010-.06 > 9999999.06-.01 > 4-.01)
mapParameter line 1
Outpat.Visit.InstitutionIEN Outpat.Workload.InstitutionIEN
Encounter.EncounterMRNAA Encounter.EncounterNumberAssigningAuthority Encounter.EnteredAt
visit.facility (>4-.01) visit.facility (>4-99)
... partOf
Event.partOf

doco Documentation for this format