Skip to main content
Create a session by providing patient information and clinical sections:Create a session by providing patient information (name, birthdate, gender), clinical sections for content generation, optional session ID, and multilingual settings through the createSession method.
The minimum required patient information includes:
  • Name: Patient’s full name
  • Birthdate: Date of birth in Date format
  • Gender: “MALE” or “FEMALE”
Additional optional information can be provided through the setSessionContext method.
Yes, use the setSessionContext method to update patient information, provider details, or add diagnosis codes after session creation:Use the setSessionContext method to update patient information, provider details, or add diagnosis codes after session creation.
Yes. Pass existing patient diagnoses with SukiAmbientConstant.kDiagnosisInfo in setSessionContext, configure LOINC sections for the note, and retrieve structured diagnoses after the session with getStructuredData(for:). Behavior matches the Ambient APIs for reconciliation and output. Refer to Problem-Based Charting, Create session, and Session status and content retrieval.
Sessions can be in the following states:
  • NotCreated: No session has been initialized
  • Recording: Session is actively recording audio
  • Paused: Recording is temporarily paused
  • Ended: Session completed, content generation in progress
  • Canceled: Session was canceled, no content will be generated
Check the current state using SukiAmbientCoreManager.shared.sessionState.
Yes, you can pause and resume sessions:The SDK provides pause and resume methods to temporarily stop and restart recording while keeping the session active.Note that you can only pause an active recording and only resume a paused session.
  • End: Stops recording and begins AI content generation. Use this for completed sessions.
  • Cancel: Stops recording and discards all data. No content will be generated. This action cannot be undone.
End stops recording and begins AI content generation for completed sessions, while Cancel stops recording and discards all data with no content generation.
The current SDK version supports one active session at a time. You must end or cancel the current session before creating a new one. Locally, create can return sessionInProgress. Across devices for the same EMR encounter, create can return remoteSessionConflict(blockingSessionId:). Refer to Ambient interoperability.
Pass SukiAmbientConstant.kEmrEncounterId and SukiAmbientConstant.kSessionId (Session Group ID / encounter_id) on createSession. Store sessionId and compositionId when present. Refer to Ambient interoperability and Interoperable identifiers.
Yes. In the Mobile SDK, sessionId and recordingId are the same value. Use sessionId from the createSession response for recording controls and session-scoped APIs. It maps to Ambient API ambient_session_id.
All session methods can throw SukiAmbientCoreError. Always use do-catch blocks:All session methods can throw SukiAmbientCoreError. Use do-catch blocks to handle errors like session not initialized or attempting to record in the background. Create can also return SukiStatus for FAILED_PRECONDITION and INVALID_ARGUMENT without offline fallback.
iOS doesn’t allow apps to start recording while in the background. The SDK will throw an appIsNotActive error. You should:
  1. Handle this error gracefully
  2. Notify the user to bring the app to the foreground
  3. Retry the operation once the app is active
Use the session delegate to receive real-time updates:Use the session delegate to receive real-time updates about content generation completion and handle events like suggestions generated or generation failures.
Last modified on July 24, 2026