Patient audio source

Patient WebSocket. It automatically stops and finalizes its source when the doctor requests Patient Audio Off.

Read the complete multi-source protocol guide. Copy all shared values and the complete expected-source list from the doctor page. The API key is never saved.

Disconnected

Shared consultation

Patient source

Important: Keep these source IDs unchanged for this consultation. Use the same shared values as the doctor page. Connecting the same source twice returns duplicate_source.

Copy the shared values from the doctor page. The first page opened also stores them in this browser's local storage.

Example init payload

Controls

Microphone idle
Live voice spikes0%

Patient workflow and important notes

  1. Copy the API key and all shared consultation values from the doctor page. Doctor and patient source IDs must be unique and both must appear in expected_sources.
  2. Select Refresh from fields to verify the complete patient init payload, including protocol_version, category, language, and recorder MIME type.
  3. Select Connect, wait for source.accepted, and then start the microphone.
  4. The recorder sends binary audio—not JSON or Base64—every five seconds. Confirm delivery through chunk.ack events.
  5. Patient Audio Off flushes the final recorder chunk and sends source.stop with a client timestamp.
  6. If the doctor disables this source, the page handles source.stop_requested automatically and finalizes the patient audio within the server grace period.

Permissions: a patient socket cannot send source.disable or session.complete. Those operations belong to a doctor source.

Security: the API key is sent only in init, redacted from the event log, and never saved to local storage or placed in the URL.

Events