Skip to content

Appointment Response Profile

Canonical../StructureDefinition/nexus-appointment-response
Statusdraft · 1.26.0
BaseAppointmentResponse (constraint)
SourceFSH · JSON

A participant's answer to a booking: whether the person an appointment is for has accepted it, is still deciding, or has declined. Written by an integrating system outside the EMR and read wherever a booking's confirmation state is displayed, which is derived from participantStatus rather than from Appointment.status. An answer supersedes an earlier answer rather than amending it, and the latest one describes where the booking stands.

Examples

Answer Stored Without a Status · Booking Confirmed by the Patient

Booking Confirmed by the Patient

The answer a day sheet reads to show a booking as Confirmed. The confirmation lives here and not on the appointment, whose status is still booked -- a consumer reading only Appointment.status cannot tell a confirmed booking from an unanswered one. Carries an actor, which is what makes the answer reachable by a patient-scoped search, and is dated only by meta.lastUpdated, because R4 gives this resource no date of its own

AppointmentResponse/nexus-appointment-response-avery-accepted — claims conformance to Appointment Response Profile

{
  "resourceType": "AppointmentResponse",
  "id": "nexus-appointment-response-avery-accepted",
  "meta": {
    "profile": [
      "../StructureDefinition/nexus-appointment-response"
    ],
    "lastUpdated": "2026-05-30T18:04:11.220-04:00"
  },
  "text": {
    "status": "generated",
    "div": "<div xmlns='http://www.w3.org/1999/xhtml'><p>Avery Linwood confirmed the June 1 booking with Dr. Navarro. This is the resource a day sheet reads to show the booking as <em>Confirmed</em>: the answer lives here, not on the appointment, and <code>Appointment.status</code> is still <code>booked</code>.</p><p><strong>Recency is the server stamp.</strong> R4 gives this resource no date of its own -- <code>start</code> and <code>end</code> would be a proposed new time for the visit, not the moment of the answer -- so <code>meta.lastUpdated</code> is what decides which of several answers to one booking is the current one.</p><p><strong>The actor is what makes this answer reachable from the chart.</strong> A search scoped to one patient matches through <code>actor</code>, so an answer that named nobody would be found only by a search naming the appointment.</p></div>"
  },
  "appointment": {
    "reference": "Appointment/nexus-emr-core-appointment-example-with-slot",
    "display": "Avery Linwood with Dr. Navarro, June 1 2026 10:00"
  },
  "actor": {
    "reference": "Patient/avery-linwood",
    "display": "Avery Linwood"
  },
  "participantStatus": "accepted",
  "comment": "Confirmed from the reminder link."
}