Video Appointments
Use Video Appointments to conduct secure video consultations between doctors and patients.
The Doctor App opens the video room from Appointment List or Appointment Details.
The video room includes a waiting state and provides controls for audio, video, and call termination.
When the session ends, the app updates the appointment status automatically.
This screen includes:
- A live video view for doctor and patient.
- A primary video area for the patient feed.
- A picture-in-picture area for the doctor feed.
- Participant name labels.
- A session timer that shows call duration.
- A toolbar for call controls and session actions.
- Session state synchronization across doctor and patient devices.
Call Lifecycle
This flow describes video session states from appointment readiness to an active session.
Video call lifecycle
(Appointment Scheduled)
|
|-- App Sends Reminder
v
(User Starts Video)
|
|-- Has Doctor Joined?
| |
| |-- No
| v
| (Display Waiting Message)
|
|-- Yes
v
(Video Session Started)
Workflow
Start a Video Appointment
- On the Appointments screen, open an appointment.
- On the Appointment Details screen, select Start Video.
- When the browser prompts for access, grant camera and microphone permissions.
important
Camera and microphone access is required to start a video appointment.
If the user denies permission, the app blocks the session until access is granted. - Wait for the patient to join.
note
The video room enters a waiting state until both participants join.
This state is expected and does not indicate a connection issue. - Use call controls as needed:
- Mute toggles microphone state.
- Disable video toggles camera state.
- Swap camera switches cameras on supported mobile devices.
- End call ends the session.
- Report issue opens a report form with session context.
Validations
The app requires a minimum network bandwidth to establish a video session.
If the connection does not meet this threshold, the app blocks the session.
These scenarios describe how the app validates Video Appointments and what the integrator can expect.
| Scenario | App Behavior | SDK Output | Example |
|---|---|---|---|
| Camera or microphone permission is missing. | The app blocks session start and displays guidance to grant permissions. | Error or blocked action; no session start. | — |
| Permission prompt is dismissed. | The app keeps the user in a non-connected state and supports retry. | No session start; subsequent attempts trigger permission handling. | — |
| Device does not support multiple cameras. | The app hides Swap camera. | UI state omits the control. | — |
| Connection quality is below the minimum threshold. | The app blocks connect and displays an error state. | Error response or session start failure. | — |
| Session remains inactive past the timeout threshold. | The app disconnects and returns to the prior screen. | Session end state; subsequent responses reflect disconnect. | — |
Actions
These scenarios describe how the app responds to key actions and what the SDK returns.
| Scenario | App Behavior | SDK Output | Example |
|---|---|---|---|
| The doctor selects Start Video with valid permissions. | The app initializes the video room and enters a waiting state until the patient joins. | Server-side confirmation or page state response for video room. | — |
| The doctor selects Mute. | The app toggles microphone state. | Local state change; session state sync when supported. | — |
| The doctor selects Disable video. | The app toggles camera stream state. | Local state change; session state sync when supported. | — |
| The doctor selects Swap camera on a supported device. | The app switches camera input. | Local state change. | — |
| The doctor selects End call. | The app ends the session and returns to the prior flow. | Session end state; subsequent page responses reflect completion. | — |
| The doctor selects Report issue. | The app opens a report form with session details. | Report workflow state; optional server-side submission. | — |
Endpoint Resources
Present Video Room
PUT
/appointments/{appointment-id}/video-room
Produces the video room screen for the specified appointment.
UI Element Types
| Level | Reference | Type | Value | Placement |
|---|---|---|---|---|
| 1 | start-call | Button | Start call. | — |
| 1 | end-call | Link | End call. | ~ |
| 1 | report-issue | Link | Report issue. | ~ |
| 1 | spacer | Spacer | — | ~ |
| 1 | swap-camera | Link | Swap camera. | ~ |
| 1 | disable-video | Link | Disable video. | ~ |
| 1 | mute | Link | Mute. | ~ |
