Appointment

Overview

The Appointment resource provides the ability to retrieve information about appointments, write new appointments, and update the status of existing appointments.

Date is required when searching by patient, practitioner, or location.

When integrating your application with a client’s production environment you will work with the client to determine the Practitioner and Location ids (Millennium personnel and location codes, respectively) which they want to make available to third-party applications for enabling scheduling functionality.

Appointment types for use in FHIR scheduling workflows must be resource list based. The ability to retrieve slots and book appointments that are order role based are not supported in FHIR workflows.

The status of arrived does not change the state of the millennium appointment but instead updates the patient tracking status to a value of Arrived.

R4 exposes a native checked-in status which allows for an appointment to transition from the booked state to the checked-in state. This is a change from the DSTU2 value mapping.

When updating an appointment, the resource provides the ability to change the Appointment.status in the following sequences:

Video Visit functionality requires additional licensing, configuration and application support.

The following fields are returned if valued:

Terminology Bindings

Appointment.cancelationReason
Appointment.serviceCategory
Appointment.serviceType
Appointment.reasonCode
  • Description
    • Coded reason this appointment is scheduled.
  • Note
    • Currently not bound to any terminology.
Appointment.participant.type

Extensions

Custom Extensions

All URLs for custom extensions are defined as https://fhir-ehr.cerner.com/r4/StructureDefinition/{id}

ID Value[x] Type Description
is-cancelable boolean Indication of whether the Appointment can be canceled or not.
is-reschedulable boolean Indication of whether the Appointment can be rescheduled or not.
group-appointment-id string The ID of the appointment group that this appointment is a part of.

Search for Appointments that meet supplied query parameters:

GET /Appointment?:parameters

Implementation Notes

Authorization Types

Parameters

Name Required? Type Description
_id Yes, or one of patient, practitioner, or location. token The logical resource id associated with the Appointment. Example: 3005759
date Yes, or -date-or-req-period when using patient, practitioner, or location. date The Appointment start date time with offset. Example: 2019-06-07T22:22:16.270Z
-date-or-req-period Yes, or date when using patient, practitioner, or location. date The Appointment start date time with offset or the Appointment requested period date time with offset. Example: 2019-06-07T22:22:16.270Z
patient Yes, or _id reference A single or comma separated list of Patient references. Example: 4704007
practitioner Yes, or _id reference A single or comma separated list of Practitioner references. Example: 2578010
location Yes, or _id reference A single or comma separated list of Location references. Example: 633867
status No token A single or comma separated list of appointment statuses. Example: arrived
_count No number The maximum number of results to return.

Notes:

Headers

Accept: application/fhir+json
Authorization: <OAuth2 Bearer Token>

Example

Request

GET https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment?patient=12724066&date=ge2020-01-01T22:22:16.270Z

Response

Status: 200 OK
{
  "resourceType": "Bundle",
  "id": "69eeaac3-5def-4ffd-8e51-04150cbb5385",
  "type": "searchset",
  "link": [
    {
      "relation": "self",
      "url": "https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment?date=ge2020-01-01T22%3A22%3A16.270Z&patient=4817663"
    }
  ],
  "entry": [
    {
      "fullUrl": "https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517",
      "resource": {
        "fullUrl": "https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517",
        "resource": {
          "resourceType": "Appointment",
          "id": "4817517",
          "meta": {
            "versionId": "1",
            "lastUpdated": "2020-07-06T18:46:08.000Z"
          },
          "text": {
            "status": "generated",
            "div": "<div xmlns="http://www.w3.org/1999/xhtml"><p><b>Appointment</b></p><p><b>Status</b>: Booked</p><p><b>Service Type</b>: Established Patient</p><p><b>Start</b>: Jul  8, 2020  1:00 P.M. UTC</p><p><b>End</b>: Jul  8, 2020  1:15 P.M. UTC</p><p><b>Slot Id</b>: 21265426-633867-6828001-60</p><p><b>Participants</b>: Practitioner: Cerner Test, Physician - Primary Care Cerner, Patient: SMART,NANCY, Location: MX Clinic 1</p></div>"
          },
          "extension": [
            {
              "valueBoolean": false,
              "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-cancelable"
            },
            {
              "valueString": "1408108",
              "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/group-appointment-id"
            },
            {
              "valueBoolean": false,
              "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-reschedulable"
            }
          ],
          "status": "booked",
          "cancelationReason": {
            "coding": [
              {
                "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14229",
                "code": "2191414701",
                "display": "Scheduled by mistake",
                "userSelected": true
              },
              {
                "system": "http://terminology.hl7.org/CodeSystem/appointment-cancellation-reason",
                "code": "oth-err",
                "display": "Other: Error",
                "userSelected": false
              }
            ],
            "text": "Scheduled by mistake"
          },
          "serviceCategory": [
            {
              "coding": [
                {
                  "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/16127",
                  "code": "22721463",
                  "display": "DIAGNOSTIC",
                  "userSelected": true
                },
                {
                  "system": "http://snomed.info/sct",
                  "code": "261004008",
                  "display": "Diagnostic intent (qualifier value)",
                  "userSelected": false
                }
              ],
              "text": "DIAGNOSTIC"
            }
          ],
          "serviceType": [
            {
              "coding": [
                {
                  "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14249",
                  "code": "24477854",
                  "display": "Established Patient",
                  "userSelected": true
                }
              ],
              "text": "Established Patient"
            }
          ],
          "description": "Established Patient",
          "start": "2020-07-08T13:00:00.000Z",
          "end": "2020-07-08T13:15:00.000Z",
          "minutesDuration": 15,
          "slot": [
            {
              "reference": "Slot/21265426-633867-6828001-60"
            }
          ],
          "participant": [
            {
              "type": [
                {
                  "coding": [
                    {
                      "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
                      "code": "PPRF",
                      "display": "primary performer"
                    }
                  ]
                }
              ],
              "actor": {
                "reference": "Practitioner/593923",
                "display": "Cerner Test, Physician - Primary Care Cerner"
              },
              "required": "required",
              "status": "accepted"
            },
            {
              "type": [
                {
                  "coding": [
                    {
                      "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14250",
                      "code": "4572",
                      "display": "Patient",
                      "userSelected": true
                    }
                  ],
                  "text": "Patient"
                }
              ],
              "actor": {
                "reference": "Patient/12724066",
                "display": "SMART, NANCY"
              },
              "required": "required",
              "status": "accepted"
            },
            {
              "actor": {
                "reference": "Location/21304876",
                "display": "MX Clinic 1"
              },
              "required": "required",
              "status": "accepted"
            }
          ],
          "patientInstruction": "Preparations:\n- Please arrive 30 minutes prior to your scheduled appointment\nPost Appointment Instructions:\n- Be sure to return to the Front Desk prior to departing after your appointment",
          "requestedPeriod": [
            {
              "start": "2020-07-08T13:00:00.000Z",
              "end": "2020-07-08T13:15:00.000Z"
            }
          ]
        }
      }
    }
  ]
}

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Errors

The common errors and OperationOutcomes may be returned.

Retrieve by id

List an individual Appointment by its id:

GET /Appointment/:id

Authorization Types

Headers

Accept: application/fhir+json
Authorization: <OAuth2 Bearer Token>

Example

Request

GET https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517

Response

Status: 200 OK
{
  "fullUrl": "https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517",
  "resource": {
    "resourceType": "Appointment",
    "id": "4817517",
    "meta": {
      "versionId": "1",
      "lastUpdated": "2020-07-06T18:46:08.000Z"
    },
    "text": {
      "status": "generated",
      "div": "<div xmlns="http://www.w3.org/1999/xhtml"><p><b>Appointment</b></p><p><b>Status</b>: Booked</p><p><b>Service Type</b>: Established Patient</p><p><b>Start</b>: Jul  8, 2020  1:00 P.M. UTC</p><p><b>End</b>: Jul  8, 2020  1:15 P.M. UTC</p><p><b>Slot Id</b>: 21265426-633867-6828001-60</p><p><b>Participants</b>: Practitioner: Cerner Test, Physician - Primary Care Cerner, Patient: SMART,NANCY, Location: MX Clinic 1</p></div>"
    },
    "extension": [
      {
        "valueBoolean": false,
        "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-cancelable"
      },
      {
        "valueString": "1408108",
        "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/group-appointment-id"
      },
      {
        "valueBoolean": false,
        "url": "https://fhir-ehr.cerner.com/r4/StructureDefinition/is-reschedulable"
      }
    ],
    "status": "booked",
    "cancelationReason": {
      "coding": [
        {
          "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14229",
          "code": "2191414701",
          "display": "Scheduled by mistake",
          "userSelected": true
        },
        {
          "system": "http://terminology.hl7.org/CodeSystem/appointment-cancellation-reason",
          "code": "oth-err",
          "display": "Other: Error",
          "userSelected": false
        }
      ],
      "text": "Scheduled by mistake"
    },
    "serviceCategory": [
      {
        "coding": [
          {
            "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/16127",
            "code": "22721463",
            "display": "DIAGNOSTIC",
            "userSelected": true
          },
          {
            "system": "http://snomed.info/sct",
            "code": "261004008",
            "display": "Diagnostic intent (qualifier value)",
            "userSelected": false
          }
        ],
        "text": "DIAGNOSTIC"
      }
    ],
    "serviceType": [
      {
        "coding": [
          {
            "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14249",
            "code": "24477854",
            "display": "Established Patient",
            "userSelected": true
          }
        ],
        "text": "Established Patient"
      }
    ],
    "description": "Established Patient",
    "start": "2020-07-08T13:00:00.000Z",
    "end": "2020-07-08T13:15:00.000Z",
    "minutesDuration": 15,
    "slot": [
      {
        "reference": "Slot/21265426-633867-6828001-60"
      }
    ],
    "participant": [
      {
        "type": [
          {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
                "code": "PPRF",
                "display": "primary performer"
              }
            ]
          }
        ],
        "actor": {
          "reference": "Practitioner/593923",
          "display": "Cerner Test, Physician - Primary Care Cerner"
        },
        "required": "required",
        "status": "accepted"
      },
      {
        "type": [
          {
            "coding": [
              {
                "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14250",
                "code": "4572",
                "display": "Patient",
                "userSelected": true
              }
            ],
            "text": "Patient"
          }
        ],
        "actor": {
          "reference": "Patient/12724066",
          "display": "SMART, NANCY"
        },
        "required": "required",
        "status": "accepted"
      },
      {
        "actor": {
          "reference": "Location/21304876",
          "display": "MX Clinic 1"
        },
        "required": "required",
        "status": "accepted"
      }
    ],
    "patientInstruction": "Preparations:\n- Please arrive 30 minutes prior to your scheduled appointment\nPost Appointment Instructions:\n- Be sure to return to the Front Desk prior to departing after your appointment",
    "requestedPeriod": [
      {
        "start": "2020-07-08T13:00:00.000Z",
        "end": "2020-07-08T13:15:00.000Z"
      }
    ]
  }
}

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Example - Video Visit

Request

GET https://fhir-open.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817572

Response

Status: 200 OK
{
  "resourceType": "Appointment",
  "id": "4817572",
  "meta": {
    "versionId": "2-1",
    "lastUpdated": "2020-07-11T05:05:01.000Z"
  },
  "text": {
    "status": "generated",
    "div": "<div xmlns="http://www.w3.org/1999/xhtml"><p><b>Appointment</b></p><p><b>Status</b>: No Show</p><p><b>Service Type</b>: Video Visit</p><p><b>Start</b>: Jul 10, 2020  1:00 P.M. UTC</p><p><b>End</b>: Jul 10, 2020  1:15 P.M. UTC</p><p><b>Slot Id</b>: 21265426-633867-6828001-60</p><p><b>Participants</b>: Patient: SMART, NANCY, Practitioner: Applegate MD, Christina, Location: MX Clinic 1</p><p><b>Video Visit</b>: Yes</p></div>"
  },
  "contained": [
    {
      "resourceType": "HealthcareService",
      "id": "28",
      "type": [
        {
          "text": "Patient Virtual Meeting Room"
        }
      ],
      "telecom": [
        {
          "system": "url",
          "value": "https://www.google.com/",
          "period": {
            "start": "2020-07-13T08:00:00.000Z",
            "end": "2020-07-13T08:10:00.000Z"
          }
        }
      ]
    },
    {
      "resourceType": "HealthcareService",
      "id": "31",
      "type": [
        {
          "text": "Provider Virtual Meeting Room"
        }
      ],
      "telecom": [
        {
          "system": "url",
          "value": "https://www.google.com/",
          "period": {
            "start": "2020-07-13T08:00:00.000Z",
            "end": "2020-07-13T08:10:00.000Z"
          }
        }
      ]
    }
  ],
  "status": "noshow",
  "cancelationReason": {
    "coding": [
      {
        "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14229",
        "code": "2191414701",
        "display": "Scheduled by mistake",
        "userSelected": true
      },
      {
        "system": "http://terminology.hl7.org/CodeSystem/appointment-cancellation-reason",
        "code": "oth-err",
        "display": "Other: Error",
        "userSelected": false
      }
    ],
    "text": "Scheduled by mistake"
  },
  "serviceCategory": [
    {
      "coding": [
        {
          "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/16127",
          "code": "22721463",
          "display": "DIAGNOSTIC",
          "userSelected": true
        },
        {
          "system": "http://snomed.info/sct",
          "code": "261004008",
          "display": "Diagnostic intent (qualifier value)",
          "userSelected": false
        }
      ],
      "text": "DIAGNOSTIC"
    }
  ],
  "serviceType": [
    {
      "coding": [
        {
          "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14249",
          "code": "2572307911",
          "display": "Video Visit",
          "userSelected": true
        }
      ],
      "text": "Video Visit"
    }
  ],
  "reasonCode": [
    {
      "text": "Testing Video Visit"
    }
  ],
  "description": "Video Visit",
  "start": "2020-07-10T13:00:00.000Z",
  "end": "2020-07-10T13:15:00.000Z",
  "minutesDuration": 15,
  "slot": [
    {
      "reference": "Slot/21265426-633867-6828001-60"
    }
  ],
  "participant": [
    {
      "type": [
        {
          "coding": [
            {
              "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14250",
              "code": "4572",
              "display": "Patient",
              "userSelected": true
            }
          ],
          "text": "Patient"
        }
      ],
      "actor": {
        "reference": "Patient/12724066",
        "display": "SMART, NANCY"
      },
      "required": "required",
      "status": "accepted"
    },
    {
      "type": [
        {
          "coding": [
            {
              "system": "https://fhir.cerner.com/ec2458f2-1e24-41c8-b71b-0e701af7583d/codeSet/14250",
              "code": "4574",
              "display": "Resource",
              "userSelected": true
            }
          ],
          "text": "Resource"
        },
        {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
              "code": "PPRF",
              "display": "primary performer"
            }
          ]
        }
      ],
      "actor": {
        "reference": "Practitioner/593923",
        "display": "Applegate MD, Christina"
      },
      "required": "required",
      "status": "accepted"
    },
    {
      "actor": {
        "reference": "Location/21304876",
        "display": "MX Clinic 1"
      },
      "required": "required",
      "status": "accepted"
    },
    {
      "type": [
        {
          "text": "Patient Virtual Meeting Room"
        }
      ],
      "actor": {
        "reference": "#28"
      },
      "status": "accepted"
    },
    {
      "type": [
        {
          "text": "Provider Virtual Meeting Room"
        }
      ],
      "actor": {
        "reference": "#31"
      },
      "status": "accepted"
    }
  ],
  "requestedPeriod": [
    {
      "start": "2020-07-10T13:00:00.000Z",
      "end": "2020-07-10T13:15:00.000Z"
    }
  ]
}

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Errors

The common errors and OperationOutcomes may be returned.

Patch

Patch an existing Appointment.

PATCH /Appointment/:id

Implementation Notes

Authorization Types

Headers

Authorization: <OAuth2 Bearer Token>
Accept: application/fhir+json
Content-Type: application/json-patch+json
If-Match: W/"<Current version of the Appointment resource>"

Patch Operations

Path Operation Value Type
/status replace code
  • Description
    • The status of the appointment
  • Example
    • {
        "op": "replace",
        "path": "/status",
        "value": "cancelled"
      }
      
  • Notes
      • Only "arrived", "checked-in", "cancelled", "booked", and "fulfilled" are supported
      • This patch operation must be accompanied by the add Slot patch operation when updating status to "booked"
/slot add Reference (Slot)
  • Description
    • The slot that this appointment is filling
  • Example
    • {
        "op": "add",
        "path": "/slot",
        "value": [
          {
            "reference":"Slot/1986119705-4048128-15648907-60"
          }
        ]
      }
      
  • Notes
      • When present, this patch operation must be accompanied by the replace Status patch operation with a value of "booked"
      • Only one Slot reference may be provided in the value array
/reasonCode add List of CodeableConcept
  • Description
    • The clinical reason for why this appointment is being scheduled
  • Example
    • {
        "op": "add",
        "path": "/reasonCode",
        "value": [
          {
            "text": "I have a headache"
          }
        ]
      }
      
  • Notes
      • When present, this patch operation must be accompanied by the replace Status patch operation with a value of "booked"
      • Only one CodeableConcept may be provided in the value array
      • CodeableConcept.text is required and CodeableConcept.coding, if present, will be ignored
      • When the value array is empty, reasonCode will be removed
/cancelationReason add CodeableConcept
  • Description
    • The coded reason for the appointment being cancelled
  • Example
    • {
        "op": "add",
        "path": "/cancelationReason",
        "value": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/appointment-cancellation-reason",
              "code": "oth-err"
            }
          ]
        }
      }
      
  • Notes
      • When present, this patch operation must be accompanied by the replace Status patch operation with a value of "cancelled"
      • Only one coding may be provided in the value
      • The cancelation reason value.coding can be either from the standard or proprietary system, but not both
      • CodeableConcept.coding is required and CodeableConcept.text, if present, will be ignored
/contained/0/telecom/0/value add string
  • Description
    • The provider Video Visit link
  • Example
    • {
        "op": "add",
        "path": "/contained/0/telecom/0/value",
        "value": "http://providerlink.vmr.net"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of add
      • The URL length must be less than or equal to 255 characters
/contained/1/telecom/0/value add string
  • Description
    • The patient Video Visit link
  • Example
    • {
        "op": "add",
        "path": "/contained/1/telecom/0/value",
        "value": "http://patientlink.vmr.net"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of add
      • The URL length must be less than or equal to 255 characters
/contained/0/telecom/0/period/start add datetime
  • Description
    • The start datetime for the Video Visit
  • Example
    • {
        "op": "add",
        "path": "/contained/0/telecom/0/period/start",
        "value": "2019-07-13T08:00:00.000Z"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • The value for this patch operation will be applied to both the provider Video Visit link and the patient Video Visit link
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of add
/contained/0/telecom/0/period/end add datetime
  • Description
    • The end datetime for the Video Visit
  • Example
    • {
        "op": "add",
        "path": "/contained/0/telecom/0/period/end",
        "value": "2019-07-13T08:30:00.000Z"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • The value for this patch operation will be applied to both the provider Video Visit link and the patient Video Visit link
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of add
/contained/0/telecom/0/value replace string
  • Description
    • The provider Video Visit link
  • Example
    • {
        "op": "replace",
        "path": "/contained/0/telecom/0/value",
        "value":  "http://providerlink.vmr.net"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of replace
      • The URL length must be less than or equal to 255 characters
/contained/1/telecom/0/value replace string
  • Description
    • The patient Video Visit link
  • Example
    • {
        "op": "replace",
        "path": "/contained/1/telecom/0/value",
        "value":  "http://patientlink.vmr.net"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of replace
      • The URL length must be less than or equal to 255 characters
/contained/0/telecom/0/period/start replace datetime
  • Description
    • The start datetime for the Video Visit
  • Example
    • {
        "op": "replace",
        "path": "/contained/0/telecom/0/period/start",
        "value":  "2019-07-13T08:30:00.000Z"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • The value for this patch operation will be applied to both the provider Video Visit link and the patient Video Visit link
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of replace
/contained/0/telecom/0/period/end replace datetime
  • Description
    • The end datetime for the Video Visit
  • Example
    • {
        "op": "replace",
        "path": "/contained/0/telecom/0/period/end",
        "value":  "2019-07-14T08:30:00.000Z"
      }
      
  • Notes
      • This patch operation may be used only for Video Visit appointments
      • The value for this patch operation will be applied to both the provider Video Visit link and the patient Video Visit link
      • This patch operation must be accompanied by all other Video Visit link patch operations with an op of replace
/patient-status replace code
  • Description
    • The participant status on Patient participant types
  • Example
    • {
        "op": "replace",
        "path": "/patient-status",
        "value":  "accepted"
      }
      
  • Notes
      • This patch operation may be used only for appointments with a "booked" status
      • This patch operation may be used only for Patient participants with a "tentative" status

Example

Request

PATCH https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517

Body

[
  {
    "op": "replace",
    "path": "/status",
    "value": "cancelled"
  }
]

Response

Status: 200 OK
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Tue, 26 Mar 2019 15:42:29 GMT
Etag: W/"10"
Last-Modified: Tue, 26 Mar 2019 15:42:27 GMT
Vary: Origin
X-Request-Id: 47306a14c8a2c3afd4ab85aa9594101d

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Example - Update Status to Booked

Request

PATCH https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517

Body

[
  {
    "op": "add",
    "path": "/slot",
    "value": [
      {
        "reference": "Slot/24477854-21304876-62852027-0"
      }
    ]
  },
  {
    "op": "replace",
    "path": "/status",
    "value": "booked"
  }
]

Response

Status: 200 OK
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Tue, 26 Mar 2019 15:42:29 GMT
Etag: W/"10"
Last-Modified: Tue, 26 Mar 2019 15:42:27 GMT
Vary: Origin
X-Request-Id: 47306a14c8a2c3afd4ab85aa9594101d

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Example - Update reasonCode

Request

PATCH https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517

Body

[
  {
    "op": "add",
    "path": "/slot",
    "value": [
      {
        "reference": "Slot/24477854-21304876-62852027-0"
      }
    ]
  },
  {
    "op": "replace",
    "path": "/status",
    "value": "booked"
  },
  {
    "op": "add",
    "path": "/reasonCode",
    "value": [
      {
        "text": "I have a headache"
      }
    ]
  }
]

Response

Status: 200 OK
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Tue, 26 Mar 2019 15:42:29 GMT
Etag: W/"1"
Last-Modified: Tue, 26 Mar 2019 15:42:27 GMT
Vary: Origin
X-Request-Id: 47306a14c8a2c3afd4ab85aa9594101d

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Example - Add cancelationReason

Request

PATCH https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517

Body

[
  {
    "op": "replace",
    "path": "/status",
    "value": "cancelled"
  },
  {
    "op": "add",
    "path": "/cancelationReason",
    "value": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/appointment-cancellation-reason",
          "code": "oth-err"
        }
      ]
    }
  }
]

Response

Status: 200 OK
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Tue, 26 Mar 2019 15:42:29 GMT
Etag: W/"1"
Last-Modified: Tue, 26 Mar 2019 15:42:27 GMT
Vary: Origin
X-Request-Id: 47306a14c8a2c3afd4ab85aa9594101d

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Request

PATCH https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4627745

Body

[
  {
    "op": "add",
    "path": "/contained/0/telecom/0/value",
    "value": "http://providerlink.vmr.net"
  },
  {
    "op": "add",
    "path": "/contained/1/telecom/0/value",
    "value": "http://patientlink.vmr.net"
  },
  {
    "op": "add",
    "path": "/contained/0/telecom/0/period/start",
    "value": "2019-07-13T08:00:00.000Z"
  },
  {
    "op": "add",
    "path": "/contained/0/telecom/0/period/end",
    "value": "2019-07-13T08:10:00.000Z"
  }
]

Response

Status: 200 OK
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Tue, 26 Mar 2019 15:42:29 GMT
Etag: W/"10-1"
Last-Modified: Tue, 26 Mar 2019 15:42:27 GMT
Vary: Origin
X-Request-Id: 47306a14c8a2c3afd4ab85aa9594101d

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Request

PATCH https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4627745

Body

[
  {
    "op": "replace",
    "path": "/contained/0/telecom/0/value",
    "value": "http://providerlink.vmr.net"
  },
  {
    "op": "replace",
    "path": "/contained/1/telecom/0/value",
    "value": "http://patientlink.vmr.net"
  },
  {
    "op": "replace",
    "path": "/contained/0/telecom/0/period/start",
    "value": "2019-07-13T08:00:00.000Z"
  },
  {
    "op": "replace",
    "path": "/contained/0/telecom/0/period/end",
    "value": "2019-07-13T08:10:00.000Z"
  }
]

Response

Status: 200 OK
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Tue, 26 Mar 2019 15:42:29 GMT
Etag: W/"10-1"
Last-Modified: Tue, 26 Mar 2019 15:42:27 GMT
Vary: Origin
X-Request-Id: 47306a14c8a2c3afd4ab85aa9594101d

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Example - Update Participant Status

Request

PATCH https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/4817517

Body

[
  {
    "op": "replace",
    "path": "/patient-status",
    "value": "accepted"
  }
]

Response

Status: 200 OK
Cache-Control: no-cache
Content-Length: 0
Content-Type: text/html
Date: Tue, 26 Mar 2019 15:42:29 GMT
Etag: W/"10"
Last-Modified: Tue, 26 Mar 2019 15:42:27 GMT
Vary: Origin
X-Request-Id: 47306a14c8a2c3afd4ab85aa9594101d

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Errors

The common errors and OperationOutcomes may be returned.

In addition, the following errors may be returned:

Create

Create a new Appointment.

POST /Appointment

Implementation Notes

Authorization Types

Headers

Authorization: <OAuth2 Bearer Token>
Content-Type: application/fhir+json

Body Fields

Name Required Type
resourceType Yes string
  • Description
    • The type of the FHIR resource.
  • Example
    • {
        "resourceType": "Appointment"
      }
      
  • Notes
    • resourceType must be Appointment
status Yes code
  • Description
    • A code representing the status of the new Appointment.
  • Example
    • {
        "status": "booked"
      }
      
  • Notes
    • When creating a new appointment, the status must be booked or proposed.
serviceCategory No CodeableConcept
  • Description
    • A broad categorization of the service that is to be performed during this appointment.
serviceType No CodeableConcept
  • Description
    • The specific service that is to be performed during this appointment.
  • Example
    • {
        "serviceType": [
          {
            "coding": [
              {
                "system": "http://snomed.info/sct",
                "code": "408443003",
                "display": "General medical practice",
                "userSelected": false
              }
            ],
            "text": "General medical practice"
          }
        ]
      }
      
  • Notes
    • Required when Appointment.status is set to proposed. Must contain exactly one CodeableConcept.
reasonCode No List of CodeableConcept
  • Description
    • Coded reason this appointment is scheduled.
  • Example
    • {
        "reasonCode": [
          {
            "text": "I have a cramp"
          }
        ]
      }
      
  • Notes
    • The reasonCode.text is required.
slot No Reference (Slot)
  • Description
    • The availability to which the appointment is booked.
  • Example
    • {
        "slot": [
          {
            "reference": "Slot/21265426-633867-6828001-60"
          }
        ]
      }
      
  • Notes
    • Required when Appointment.status is set to booked. Must contain exactly one Reference.
participant Yes BackboneElement
  • Description
    • Participants involved in appointment.
  • Example
    • {
        "participant": [
          {
            "actor": {
              "reference": "Patient/4704007",
              "display": "Smart, Barney R"
            },
            "status": "accepted"
          }
        ]
      }
      
  • Notes
    • Participant.type must not be set.
participant.actor Yes Reference (Patient, Location)
  • Description
    • A Patient or Location that is participating in the Appointment.
  • Example
    • {
        "actor": {
          "reference": "Patient/4704007",
          "display": "Smart, Barney R"
        }
      }
      
  • Notes
    • See Implementation Notes above for more information. Reference.display is not required.
participant.status Yes code
  • Description
    • Participation status of the Patient or Location.
  • Example
    • {
        "status": "accepted"
      }
      
  • Notes
    • When creating a new appointment with a status of booked, this value must be accepted. When creating a new appointment with a status of proposed, this value must be `needs-action`.
comment No string
  • Description
    • Additional text to aid in facilitating the appointment.
  • Example
    • {
        "comment: "Further explain MRI results"
      }
      
requestedPeriod No List of Period
  • Description
    • Potential date/time interval(s) requested to allocate the appointment within.
  • Example
    • {
        "requestedPeriod": [
          {
            "start": "2015-02-07T13:28:17-05:00",
            "end": "2016-02-07T13:28:17-05:00"
          }
        ]
      }
      
  • Notes
    • Required when Appointment.status is set to proposed.

Example - Proposed Appointment

Request

POST https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment

Body

{
  "resourceType": "Appointment",
  "status": "proposed",
  "serviceType": [
    {
      "coding": [
        {
          "code": "408443003",
          "system": "http://snomed.info/sct"
        }
      ]
    }
  ],
  "reasonCode": [
    {
      "text": "I have a cramp"
    }
  ],
  "comment": "Appointment request comment",
  "participant": [
    {
      "actor": {
        "reference": "Patient/12724066"
      },
      "status": "needs-action"
    },
    {
      "actor": {
        "reference": "Location/21304876",
        "display": "MX Clinic 1"
      },
      "status": "needs-action"
    }
  ],
  "requestedPeriod": [
    {
      "start": "2020-02-07T13:28:17-05:00",
      "end": "2021-02-07T13:28:17-05:00"
    }
  ]
}

Response

Status: 201 Created
Cache-Control: no-cache
Content-Length: 0
Content-Type: application/fhir+json
Date: Tue, 12 May 2020 20:25:01 GMT
Etag: W/"0"
Last-Modified: Tue, 12 May 2020 20:25:01 GMT
Location: https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/6427746
Vary: Origin
X-Request-Id: 12814f1d23156f10ca94374f94c9ea02

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Example - Booked Appointment

Request

POST https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment

Body

{
  "resourceType": "Appointment",
  "status": "booked",
  "slot": [
    {
      "reference": "Slot/24477854-21304876-62852027-0"
    }
  ],
  "participant": [
    {
      "actor": {
        "reference": "Patient/12724066"
      },
      "status": "accepted"
    }
  ],
  "reasonCode": [
    {
      "text": "I have a cramp"
    }
  ]
}

Response

Status: 201 Created
Cache-Control: no-cache
Content-Length: 0
Content-Type: application/fhir+json
Date: Thu, 30 May 2019 19:49:25 GMT
Etag: W/"0"
Last-Modified: Thu, 30 May 2019 19:49:23 GMT
Location: https://fhir-ehr-code.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Appointment/20465903
Vary: Origin
X-Request-Id: 1638e30e497b93ff4383b2ff0eaeea68

The ETag response header indicates the current If-Match version to use on subsequent updates.

Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.

Errors

The common errors and OperationOutcomes may be returned.