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:
- From Proposed to Booked, or Cancelled
- From Booked to Arrived, Checked-In, or Cancelled
- From Arrived to Checked-In, or Cancelled
- From Checked-In to Fulfilled, or Cancelled
Video Visit functionality requires additional licensing, configuration and application support.
The following fields are returned if valued:
- Appointment id
- Status
- Cancelation Reason
- ServiceCategory
- ServiceType
- Slot
- Participant
- Reason code
- Description
- Start date time
- End date time
- Duration in minutes
- Comment
- Patient Instruction
- Requested period
- Extensions including is cancelable, is reschedulable, group appointment id
Terminology Bindings
Appointment.cancelationReason |
|
Appointment.serviceCategory |
|
Appointment.serviceType |
|
Appointment.reasonCode |
|
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
Search for Appointments that meet supplied query parameters:
GET /Appointment?:parameters
Implementation Notes
- Valid ids for the
practitioner
andlocation
search parameters will be determined by the client and provided when integrating your application with the client’s production environment. See overview for details.
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:
- The
patient
,practitioner
, andlocation
parameters may be included only once and may not be used in combination. For example,patient=1234,5678
is supported butpatient=1234&patient=5678
andpatient=1234&location=5678
are not. - Either
date
or-date-or-req-period
parameter may be provided:- once with a prefix and time component to indicate a specific date/time. (e.g.
&date=ge2019-12-07T22:22:16.270Z
,&date=lt2019-12-14T22:22:16.270Z
) - twice with the prefixes
ge
andlt
to indicate a specific range. The date and prefix pairs must define an upper and lower bound. (e.g.&date=ge2019-12-07T22:22:16.270Z&date=lt2019-12-14T22:22:16.270Z
)
- once with a prefix and time component to indicate a specific date/time. (e.g.
- Search by
date
returns appointments with a status other thanproposed
that start and end within the date range provided. - Search by
-date-or-req-period
returns the same appointments as thedate
parameter, but also returns appointments with a status ofproposed
that either are requested to start or are requested to end between the dates provided. - The retrieved appointments are sorted first by
start
date ascending (earliest first), followed by the provided search parameter (patient
,practitioner
orlocation
) andstart
time ascending (earliest first).
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
- For Video Visit link patch operations, both read and write scopes are required.
- This implementation follows the JSON PATCH spec.
- Only operations on the paths listed below are supported.
- For Video Visit link patch operation paths,
contained
index 0 represents the provider link andcontained
index 1 represents the patient link. - Video Visit link patching requires additional licensing, client configuration, cloud configuration, and application support.
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 |
|
|
|||
/slot
|
add |
Reference (Slot ) |
|
|
|||
/reasonCode
|
add |
List of CodeableConcept |
|
|
|||
/cancelationReason
|
add |
CodeableConcept |
|
|
|||
/contained/0/telecom/0/value
|
add |
string |
|
|
|||
/contained/1/telecom/0/value
|
add |
string |
|
|
|||
/contained/0/telecom/0/period/start
|
add |
datetime |
|
|
|||
/contained/0/telecom/0/period/end
|
add |
datetime |
|
|
|||
/contained/0/telecom/0/value
|
replace |
string |
|
|
|||
/contained/1/telecom/0/value
|
replace |
string |
|
|
|||
/contained/0/telecom/0/period/start
|
replace |
datetime |
|
|
|||
/contained/0/telecom/0/period/end
|
replace |
datetime |
|
|
|||
/patient-status
|
replace |
code |
|
|
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.
Example - Add Video Visit Links
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.
Example - Replace Video Visit Links
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:
- Updating an Appointment resource with the incorrect version will result in a
409 Conflict
response. - Updating an Appointment resource without sending the
If-Match
header will result in a412 Precondition Failed
response. - Updating an Appointment resource which is currently being modified will result in a
423 Locked
response. - If the Appointment resource could not be updated because of an operation that is necessary for the update (eg. encounter association),
424 Failed Dependency
response will be returned. - Patching a Video Visit appointment with add operations that has previously been patched for Video Visit links will result in a
409 Conflict
response. - Mixing add and replace patch operations is not supported while patching a Video Visit Appointment and will result in a
422 Unprocessable Entity
response. - Patching a Video Visit appointment with any missing required patch operations will result in a
422 Unprocessable Entity
response. - Patching an Appointment with a participant status other than “accepted” will result in a
422 Unprocessable Entity
response.
Create
Create a new Appointment.
POST /Appointment
Implementation Notes
- The modifier elements implicitRules and modifierExtension are not supported and will be rejected if present.
-
Appointment.status
must be set toproposed
orbooked
. -
Appointment.reasonCode
if set, must be a list containing exactly one CodeableConcept. - When
Appointment.status
is set toproposed
:-
Appointment.serviceType
must be a list containing exactly one CodeableConcept. -
Appointment.participant
must be a list containing exactly one Patient participant and at least one Location participant. -
Appointment.participant.actor
must be a reference to a Patient or a Location. -
Appointment.participant.status
must be set toneeds-action
. -
Appointment.requestedPeriod
must be a list containing a single Period. BothAppointment.requestedPeriod.start
andAppointment.requestedPeriod.end
must be set.
-
- When
Appointment.status
is set tobooked
:-
Appointment.slot
must be a list containing exactly one reference to the Slot in which this appointment is being booked.Appointment.slot[0].reference
specifies an availability in the Scheduling system, which indicates details such as practitioner, location, and time. -
Appointment.participant
must be a list containing exactly one Patient participant. -
Appointment.participant.actor
must be a reference to a Patient. -
Appointment.participant.status
must be set toaccepted
.
-
-
Appointment.participant.type
must not be set.
Authorization Types
Headers
Authorization: <OAuth2 Bearer Token>
Content-Type: application/fhir+json
Body Fields
Name | Required | Type | |
---|---|---|---|
resourceType
|
Yes |
string |
|
|
|||
status
|
Yes |
code |
|
|
|||
serviceCategory
|
No |
CodeableConcept |
|
|
|||
serviceType
|
No |
CodeableConcept |
|
|
|||
reasonCode
|
No |
List of CodeableConcept |
|
|
|||
slot
|
No |
Reference (Slot ) |
|
|
|||
participant
|
Yes |
BackboneElement |
|
|
|||
participant.actor
|
Yes |
Reference (Patient , Location ) |
|
|
|||
participant.status
|
Yes |
code |
|
|
|||
comment
|
No |
string |
|
|
|||
requestedPeriod
|
No |
List of Period |
|
|
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.