New features
- Optional microphone selection: Ambient recording accepts an optional
deviceIdso capture uses a specificaudioinputdevice. Passconfig.audio.deviceIdtouseAmbientSession, or pass{ audio: { deviceId } }tostartAmbientSessionandresumeAmbientSession. Your app owns device enumeration and picker UI. Changing the microphone while recording requirespause()thenresume(). There is no publicswitchMicrophoneAPI. When an exactdeviceIdis unavailable, start or resume fails without falling back to the browser default.
-
Embedded Forms: You can now seed Embedded Form templates and prior section text on an ambient session with
setSessionContextorupdateSessionContextusingsections[].precharted_content. Mid-visit updates requireupdateMasksuch as["sections"]and replace the fullsectionslist. After the note is ready, read filled values fromsection_structured_valueswithgetAmbientSessionStructuredData,getAmbientSessionSectionStructuredData, matching encounter helpers, and React hooks such asuseUpdateAmbientSessionContextanduseAmbientSessionSectionStructuredData. Your app decides when to refetch; the SDK does not poll Embedded Form results in the background. Note structured data does not include Embedded Forms in this release. Headed Web SDK UI and Form filling are out of scope for V1. Learn more in Embedded Forms overview.
New features
-
Ambient interoperability: The Headless Web SDK now interoperates with other Suki products that support ambient workflows. Pass
emrEncounterIdwhen callingsession.create()to associate the session with an EMR encounter. This lets the Headless Web SDK, Ambient APIs, Mobile SDK, and Web SDK contribute to and access the same clinical note for a patient visit. Ifsession.create()fails withreason: "sessionAlreadyExists", another Suki product already has an active ambient session for the same encounter. ReadblockingSessionIdfromerror.additionalProperties, callcancelRemoteorendRemotewith that session id, then retrysession.create(). PassonSessionTerminatedByPeertouseAmbientSessionto detect when another Suki product ends the live session. Update your UI to reflect the session state. Do not call localcancel(),submit(),cancelRemote(), orendRemote()for this direction. The SDK already tears down the local session. -
Shared note listing: Use
useGetEncounterInfo({ emrEncounterId })to list note and session identifiers for an EMR encounter. Use Ambient API note-level endpoints with the returnednote_id(or create responsenoteId) for note content, context, and structured data. The Headless Web SDK does not expose React hooks for note content reads. -
Create response
noteId: On a successfulsession.create(), the response now includes:ambientSessionId(maps to Ambient APIambient_session_id).noteId(maps to Ambient APInote_id).
session.isSuccessis true,ambientSessionIdandnoteIdare also available on theuseAmbienthook return. -
Patient identity on session context:
setSessionContextnow supports optionalpatient.patient_idand structuredpatient.name(family,given,suffix,use). An emptynameobject is dropped and is not sent. Name values are passed through as provided. The SDK does not force normalization.
Enhancements
- Session type detection: Added
sessionTypeproperty to theuseAmbientSessionhook. This property indicates whether a session was submitted while online or offline. Use it to display appropriate UI indicators and handle offline sessions differently in your application.