Review and Approve
Use the Review and Approve screen to manage incoming appointment requests. Doctors can approve the proposed time, suggest an alternative, or decline the request.

This screen includes:
- Appointment metadata, including proposed time and participant details.
- A Suggested Scheduling card (appears only after selecting Suggest Another Alternative; behavior matches Alternative Offer).
- Action buttons: Approve, Suggest Another Alternative, and Decline.
- Conditional disclaimers and eligibility warnings.
- Button state logic based on session validity or required inputs.
- Automatic closure on success, with real-time status updates.
Workflow
- On the homepage, select Manage Appointments > Appointment List.
- Review the proposed date and time.
- Select one of the following actions:
- Approve confirms the appointment and submits the response.
- Suggest Another Alternative opens a Suggested Scheduling card to propose different times.
- Decline triggers a modal requiring a cancellation reason.
- After submission, the screen closes automatically and the appointment status updates in the list.
Validations
- Enables or disables actions based on appointment status and input state.
- Requires at least one valid date and time to activate Submit when suggesting an alternative.
- Displays coverage warnings and disclaimers before any submission.
- Prevents all actions for expired appointments or inactive doctor accounts.
Actions
- Approve confirms the appointment, sends the update, and closes the screen.
- Suggest Another Alternative opens the scheduling card, accepts inputs, and submits proposed times.
- Decline opens a modal, requires a reason, then cancels the request.
- On success:
- Saves the selected action.
- Closes the screen.
- Updates the appointment in the Appointment List.
Suggested Scheduling Validator
Use the following rules to ensure alternative proposals meet system requirements. See Suggested Scheduling.
Validation Rule | Behavior |
---|---|
Requires at least one date + time | Rejects empty or invalid input. |
Maximum of three alternatives | Rejects if more than three time blocks are added. |
Cannot overlap existing times | Highlights overlap and disables submission. |
Enforces minimum lead time | Requires at least 2 hours from current time. |
Enforces doctor availability window | Accepts proposals only within configured work hours. |
Requires timezone confirmation | Displays timezone dropdown if not pre-selected in profile. |
Displays warning for low coverage | Shows coverage warning if suggestion leads to out-of-network risk. |
SDK and API References
- SDK Reference
- API Reference
GET
/profile/appointments/{id}/approve
Retrieves the necessary data or UI components to respond to an appointment request whether approving, declining, or suggesting alternatives.
UI Element Types
Level | Reference | Type | Label | Placement |
---|---|---|---|---|
1 | alternative-{1} | Card | Suggested Scheduling | — |
1 | another-alternative | Link | Suggest another alternative | — |
1 | spacer | Spacer | — | — |
1 | approve | Button | Approve | — |
POST
/profile/appointments/{appointment-id}/approve
Submits the response to the appointment request and handles both direct approval or submission of alternatives.
Parameters
Name | Type | Required | Description |
---|---|---|---|
disclaimer-displayed | Boolean | No | Controls whether a disclaimer message is displayed during approval. |
location~{n} | int | Yes | Unique identifier for the location (used in each alternative). |
profile~{n} | int | Yes | Unique identifier for the doctor (used in each alternative). |
date~{n} | Date | Yes | Date of the appointment (used in each alternative). |
time~{n} | Time | Yes | Time of the appointment (used in each alternative). |
Errors
Code | Description |
---|---|
APPOINTMENT_CHANGED | The appointment changed and must be reloaded. |
APPOINTMENT_DATE_NOT_COVERED | The proposed date is not covered by policy terms. |
FORBIDDEN_DUE_TO_POLICY_TERMS | Policy restrictions prevent approval of this appointment. |
THIRD_PARTY_DATA_INVALID | External data is missing or malformed. |
FIELDS_VALIDATION_ERROR | One or more required fields are missing or invalid. |