US Veterans Health Administration FHIR Map Set Implementation Guide
2.5.0 - 260401a United States of America flag

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

StructureMap: Vpr2VAAppointment

Official URL: http://va.gov/fhir/StructureMap/Vpr2VAAppointment Version: 2.5.0
Draft as of 2026-03-31 Computable Name: Vpr2VAAppointment

map "http://va.gov/fhir/StructureMap/Vpr2VAAppointment" = "Vpr2VAAppointment"

uses "http://va.gov/fhir/StructureDefinition/VprAppointment" alias VprAppointment as source
uses "http://va.gov/fhir/StructureDefinition/VprDemographics" alias VprDemographics as source
uses "http://va.gov/fhir/StructureDefinition/VAAppointment" alias VAAppointment as target

group map(source appointment : VprAppointment, source demographics : VprDemographics, target tgt : VAAppointment) <<type+>> {
  appointment.apptStatus as v -> tgt.status = v;
  appointment.patientClass as v -> tgt.status = v;
  appointment.serviceCategory as v -> tgt.status = v;
  appointment.apptStatus as v -> tgt.status = '#booked';
  appointment.patientClass as v -> tgt.status = '#booked';
  appointment.serviceCategory as v -> tgt.status = '#booked';
  appointment.apptStatus as v -> tgt.status = '#arrived';
  appointment.patientClass as v -> tgt.status = '#arrived';
  appointment.serviceCategory as v -> tgt.status = '#arrived';
  appointment.apptStatus as v -> tgt.status = '#fulfilled';
  appointment.patientClass as v -> tgt.status = '#fulfilled';
  appointment.serviceCategory as v -> tgt.status = '#fulfilled';
  appointment.type as v ->  tgt.extension as e0,  e0.url = 'http://va.gov/fhir/StructureDefinition/resource-serviceConnection',  e0.value = 'http://va.gov/fhir/CodeSystem/409.1#SC \"Service Connected\"',  e0.value = 'http://va.gov/fhir/CodeSystem/409.1#NSC \"Not Service Connected\"';
  appointment.type as v ->  tgt.appointmentType as a0,  a0.text = v;
  appointment.dateTime as v -> tgt.start = v;
  appointment.id as v -> tgt.start = v;
  appointment.visitString as v -> tgt.start = v;
  appointment.clinicStop as v ->  tgt.participant as p0,  p0.actor = v,  p0.actor = v,  p0.actor = v,  p0.actor = v,  p0.actor = v,  p0.actor = v,  p0.status = '#accepted',  p0.status = '#accepted',  p0.status = '#accepted',  p0.status = '#accepted',  p0.status = '#accepted',  p0.status = '#accepted';
  appointment.clinicStop as v ->  tgt.participant as p0,  p0.type as t1,  t1.coding as c2,  c2.code = '#PART',  c2.code = '#PART',  c2.code = '#PART',  c2.code = '#PART',  c2.code = '#PART',  c2.code = '#PART';
  demographics.familyName as v ->  tgt.participant as p0,  p0.actor as a1,  a1.display = v,  a1.display = v,  a1.display = v;
  appointment.type as v -> tgt.description = v;
}