US Veterans Health Administration FHIR Map Set Implementation Guide
1.6.0 - 250701 United States of America flag

Publication Build: This will be filled in by the publication tooling

Resource Profile: Appointment - Mappings

Active as of 2025-06-20

Mappings for the Appointment 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: Appointment (Source)Use Case: Appointment (Source)PATIENT (2)1900APPOINTMENTAPPOINTMENT (2.98).001APPOINTMENT DATE/TIME.01CLINIC3STATUS9.5APPOINTMENT TYPE16CANCELLATION REASON20DATE APPT. MADE21OUTPATIENT ENCOUNTERAPPOINTMENT TYPE (409.1).01NAME10DESCRIPTIONOUTPATIENT ENCOUNTER (409.68).07CHECK OUT PROCESS COMPLETIONPATIENT (44.003)1LENGTH OF APP'TSD WAIT LIST (409.3).01PATIENT1ORIGINATING DATE13.2APPT CLINIC13.4APPT STOP CODE22DESIRED DATE OF APPOINTMENT25COMMENTS[SERVICE CONNECTED][Not SERVICE CONNECTED]

Raw Mappings

key status direction source mapApproach mapCase FHIR Path subPath mapValue mapParameter mapComment FHIR URL | Ver
731 team-approved V2F APPOINTMENT - STATUS (2.98-3) terminologyMaps Appointment.status VF_AppointmentStatus simple maps in Terminology; complex defined here. http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
732 team-approved V2F APPOINTMENT - STATUS (2.98-3) fixed value I, NT, Null; Null check-in date (44.003-309), null check-out date (44.003-303) Appointment.status #booked simple maps in Terminology; complex defined here. http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
733 team-approved V2F APPOINTMENT - STATUS (2.98-3) fixed value I, NT, Null; Non-null check-in date (44.003-309), null check-out date (44.003-303) Appointment.status #arrived simple maps in Terminology; complex defined here. http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
734 team-approved V2F APPOINTMENT - STATUS (2.98-3) fixed value I, NT, Null; Non-null check-in date (44.003-309), non-null check-out date (44.003-303) Appointment.status #fulfilled simple maps in Terminology; complex defined here. http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
2033 for review V2F APPOINTMENT - APPOINTMENT TYPE > APPOINTMENT TYPE - NAME (2.98-9.5 > 409.1-.01) fixed value SERVICE CONNECTED Appointment.extension[http://va.gov/fhir/StructureDefinition/resource-serviceConnection].valueCoding http://va.gov/fhir/vistaDefinedTerms/409.1#SC "Service Connected" http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
2034 for review V2F APPOINTMENT - APPOINTMENT TYPE > APPOINTMENT TYPE - NAME (2.98-9.5 > 409.1-.01) fixed value Not SERVICE CONNECTED Appointment.extension[http://va.gov/fhir/StructureDefinition/resource-serviceConnection].valueCoding http://va.gov/fhir/vistaDefinedTerms/409.1#NSC "Not Service Connected" http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
735 team-approved V2F APPOINTMENT - CANCELLATION REASON (2.98-16) terminologyMaps Appointment.cancelationReason VF_AppointmentCancellationReason http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
739 team-approved V2F target not supported Appointment.specialty http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
740 team-approved V2F APPOINTMENT - APPOINTMENT TYPE > APPOINTMENT TYPE - NAME (2.98-9.5 > 409.1-.01) source value Appointment.appointmentType .text http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
741 team-approved V2F target not supported Appointment.reasonCode http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
742 team-approved V2F target not supported Appointment.reasonReference http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
743 team-approved V2F APPOINTMENT - APPOINTMENT DATE/TIME (2.98-.001) source value Appointment.start http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
1612 for review V2F APPOINTMENT - OUTPATIENT ENCOUNTER > OUTPATIENT ENCOUNTER - CHECK OUT PROCESS COMPLETION (2.98-21 > 409.68-.07) source value Appointment.end Added to meet FHIR Core constraint app-2 http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
744 team-approved V2F PATIENT - LENGTH OF APP'T (44.003-1) source value Appointment.minutesDuration http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
745 team-approved V2F APPOINTMENT - DATE APPT. MADE (2.98-20) source value Appointment.created http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
746 team-approved V2F APPOINTMENT - CLINIC (2.98-.01) reference Appointment.participant[va-clinic] .actor /Location .type.coding.code = #PART
.status = #accepted
http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
1722 for review V2F PATIENT - APPOINTMENT > APPOINTMENT (2-1900 > 2.98) reference Appointment.participant[va-patient] .actor /Patient .type.coding.code = #PART
.status = #accepted
Added patient to the appointment map so that it is not assumed http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
748 team-approved V2F SD WAIT LIST - PATIENT (409.3-.01) fixed value not null Appointment.status #waitlist LVH returns "Waitlisted". "Waitlisted" is the display value and "waitlist" is the code. This is a required FHIR value set. 3/15/2023 LVH will fix http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
749 team-approved V2F SD WAIT LIST - APPT STOP CODE (409.3-13.4) source value Appointment.serviceCategory[va-stop-code].coding .code .system=http://va.gov/terminology/VistADefinedTerms/409.3-13.4 http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
750 team-approved V2F SD WAIT LIST - DESIRED DATE OF APPOINTMENT (409.3-22) source value Appointment.start http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
751 team-approved V2F SD WAIT LIST - ORIGINATING DATE (409.3-1) source value Appointment.created http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
752 team-approved V2F SD WAIT LIST - COMMENTS (409.3-25) source value Appointment.comment http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
754 team-approved V2F SD WAIT LIST - APPT CLINIC (409.3-13.2) reference Appointment.participant[va-apptclinic] .actor /Location .type.coding.code = #PART
.status = #tentative
http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1
1791 for review V2F APPOINTMENT - APPOINTMENT TYPE > APPOINTMENT TYPE - DESCRIPTION (2.98-9.5 > 409.1-10) source value Appointment.description Added after PHAPI gap analysis to match PHAPI fields http://hl7.org/fhir/StructureDefinition/Appointment | 4.0.1

Mappings to Structures in this Implementation Guide

No Mappings Found

Mappings to other Structures

No Mappings Found

Other Mappings

NameWorkflow PatternRIM MappingiCalendarFiveWs Pattern MappingHL7 v2 Mappingdoco
.. Appointment
Request
Act[@moodCode <= 'INT']
VEVENT
... id
... meta
... implicitRules
... language
... text
Act.text?
... contained
N/A
... Slices for extension
.... extension:resource-serviceConnection
..... id
n/a
..... extension
..... url
N/A
..... value[x]
N/A
... modifierExtension
N/A
... identifier
Request.identifier
.id
UID
FiveWs.identifier
  • SCH-1
  • SCH-2
  • ARQ-1
  • ARQ-2
... status
Request.status
.statusCode
STATUS
FiveWs.status
SCH-25
... cancelationReason
n/a
... Slices for serviceCategory
  • n/a
  • might be inferred from the ServiceDeliveryLocation
CATEGORIES
.... serviceCategory:va-stop-code
  • n/a
  • might be inferred from the ServiceDeliveryLocation
CATEGORIES
..... id
n/a
..... extension
n/a
..... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
...... id
n/a
...... extension
n/a
...... system
./codeSystem
C*E.3
...... version
./codeSystemVersion
C*E.7
...... code
./code
C*E.1
...... display
CV.displayName
C*E.2 - but note this is not well followed
...... userSelected
CD.codingRationale
Sometimes implied by being first
..... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... serviceType
Request.code
  • n/a
  • might be inferred from the ServiceDeliveryLocation
... specialty
.performer.AssignedPerson.code
FiveWs.class
... appointmentType
.code
CLASSIFICATION
ARQ-7
.... id
n/a
.... extension
n/a
.... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
.... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
... reasonCode
Request.reasonCode
.reasonCode
  • AIS-3
  • SCH-7
... reasonReference
Request.reasonReference
.inboundRelationship[@typeCode = 'RSON'].observation
... priority
Request.priority
.priorityCode
PRIORITY
FiveWs.class
  • ARQ-12
  • SCH-11.6 / TQ1-9
... description
.text
SUMMARY
NTE-3
... supportingInformation
Request.supportingInfo
.inboundRelationship[@typeCode = 'SPRT'].observation
ATTACH
FiveWs.context
... start
Request.occurrence[x]
.effectiveTime.low
DTSTART
FiveWs.init
  • ARQ-11.1
  • SCH-11.4 / TQ1-7
... end
Request.occurrence[x]
.effectiveTime.high
DTEND
FiveWs.done[x]
SCH-11.5 / TQ1-8/ calculated based on the start and the duration which is in ARQ-9
... minutesDuration
Request.occurrence[x]
  • type = ('SXPR_TS'
  • 'PIVL_TS')].width
DURATION (e.g. PT15M)
... slot
.outboundRelationship[@typeCode = 'REFR'].act[@classCode = 'ACT'][@moodCode = 'SLOT']
... created
Request.authoredOn
.author.time
CREATED
... comment
Request.note
.subjectOf.observation[@moodCode = 'EVN'][code = 'annotation'].value
DESCRIPTION (for internal use)
NTE-3
... patientInstruction
.subjectOf.observation[@moodCode = 'EVN'][code = 'annotation'].value
DESCRIPTION (for patient use)
NTE-3
... basedOn
Request.basedOn
.outboundRelationship[@typeCode = 'FLFS'].act[@classCode < 'ActCareProvisionRequestType'][@moodCode = 'RQO']
... Slices for participant
  • Request.performer
  • Request.subject
performer | reusableDevice | subject | location
ATTENDEE component to be created
  • PID
  • AIP
  • AIG
  • AIL
.... participant:All Slices
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... type
(performer | reusableDevice | subject | location).@typeCode
n/a
  • AIP-4
  • AIG-4
..... actor
performer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
(Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
FiveWs.who
PID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
..... required
(performer | reusableDevice | subject | location).@performInd
ROLE=REQ-PARTICIPANT (roleparam)
..... status
(performer | reusableDevice | subject | location).statusCode
mailto:john@doe.com (rsvpparam | partstatparam)
  • AIP-12
  • AIG-14
..... period
n/a
.... participant:va-clinic
  • Request.performer
  • Request.subject
performer | reusableDevice | subject | location
ATTENDEE component to be created
  • PID
  • AIP
  • AIG
  • AIL
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... type
(performer | reusableDevice | subject | location).@typeCode
n/a
  • AIP-4
  • AIG-4
...... id
n/a
...... extension
n/a
...... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
....... id
n/a
....... extension
n/a
....... system
./codeSystem
C*E.3
....... version
./codeSystemVersion
C*E.7
....... code
./code
C*E.1
....... display
CV.displayName
C*E.2 - but note this is not well followed
....... userSelected
CD.codingRationale
Sometimes implied by being first
...... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
..... actor
performer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
(Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
FiveWs.who
PID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
..... required
(performer | reusableDevice | subject | location).@performInd
ROLE=REQ-PARTICIPANT (roleparam)
..... status
(performer | reusableDevice | subject | location).statusCode
mailto:john@doe.com (rsvpparam | partstatparam)
  • AIP-12
  • AIG-14
..... period
n/a
.... participant:va-patient
  • Request.performer
  • Request.subject
performer | reusableDevice | subject | location
ATTENDEE component to be created
  • PID
  • AIP
  • AIG
  • AIL
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... type
(performer | reusableDevice | subject | location).@typeCode
n/a
  • AIP-4
  • AIG-4
...... id
n/a
...... extension
n/a
...... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
....... id
n/a
....... extension
n/a
....... system
./codeSystem
C*E.3
....... version
./codeSystemVersion
C*E.7
....... code
./code
C*E.1
....... display
CV.displayName
C*E.2 - but note this is not well followed
....... userSelected
CD.codingRationale
Sometimes implied by being first
...... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
..... actor
performer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
(Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
FiveWs.who
PID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
..... required
(performer | reusableDevice | subject | location).@performInd
ROLE=REQ-PARTICIPANT (roleparam)
..... status
(performer | reusableDevice | subject | location).statusCode
mailto:john@doe.com (rsvpparam | partstatparam)
  • AIP-12
  • AIG-14
..... period
n/a
.... participant:va-apptclinic
  • Request.performer
  • Request.subject
performer | reusableDevice | subject | location
ATTENDEE component to be created
  • PID
  • AIP
  • AIG
  • AIL
..... id
n/a
..... extension
n/a
..... modifierExtension
N/A
..... type
(performer | reusableDevice | subject | location).@typeCode
n/a
  • AIP-4
  • AIG-4
...... id
n/a
...... extension
n/a
...... coding
  • union(.
  • ./translation)
  • C*E.1-8
  • C*E.10-22
....... id
n/a
....... extension
n/a
....... system
./codeSystem
C*E.3
....... version
./codeSystemVersion
C*E.7
....... code
./code
C*E.1
....... display
CV.displayName
C*E.2 - but note this is not well followed
....... userSelected
CD.codingRationale
Sometimes implied by being first
...... text
./originalText[mediaType/code="text/plain"]/data
C*E.9. But note many systems use C*E.2 for this
..... actor
performer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
(Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
FiveWs.who
PID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
..... required
(performer | reusableDevice | subject | location).@performInd
ROLE=REQ-PARTICIPANT (roleparam)
..... status
(performer | reusableDevice | subject | location).statusCode
mailto:john@doe.com (rsvpparam | partstatparam)
  • AIP-12
  • AIG-14
..... period
n/a
... requestedPeriod
Request.occurrence[x]
  • type = ('SXPR_TS'
  • 'PIVL_TS')]
ARQ-11

doco Documentation for this format