Reschedule appointment

An appointment is rescheduled by updating the Appointment resource. The Slot reference and start and end times are updated to match the new appointment slot.

  • Appointment slot => new slot
  • Appointment start/end => new time
PUT [base]/Appointment/605790
Content-Type: application/fhir+json
{
  "resourceType": "Appointment",
  "id": "605790",
  ...
  "start": "2020-01-03T09:00:00Z",
  "end": "2020-01-03T09:30:00Z",
  "slot": [
    {
      "reference": "Slot/234567890"
    }
  ],
  ...
}

Response

If the appointment is created successfully, the server responds with a 200 OK.

The full resource can also be returned. See more: http://www.hl7.org/fhir/http.html#ops

Implementation example

Example client call when using HAPI FHIR

    public void rescheduleAppointment(FinnishAppointmentAppointment appointment) {
        appointment.setSlot(List.of(new Reference(new IdDt(ResourceTypes.SLOT.toCode(), "12345"))));
        appointment.setStart(Date.from(Instant.parse("2020-01-03T09:00:00Z")));
        appointment.setEnd(Date.from(Instant.parse("2020-01-03T09:30:00Z")));

        String baseUrl = "http://example.com/fhir";
        FhirContext fhirContext = FhirContext.forR4();
        IGenericClient client = fhirContext.newRestfulGenericClient(baseUrl);

        client.update()
                .resource(appointment)
                .execute();
    }

Error handling

The update should be rejected with a 400 Bad Request if the resource id in the URL and JSON body do not match.

See more: http://www.hl7.org/fhir/http.html#rejecting-updates