New features
-
Ambient interoperability: The Mobile SDK now interoperates with other Suki products that support ambient workflows. Pass
SukiAmbientConstant.kEmrEncounterIdwhen callingcreateSessionto associate the session with an EMR encounter. This lets the Mobile SDK, Ambient APIs, and Web SDK contribute to and access the same clinical note for a patient visit. IfcreateSessionreturnsremoteSessionConflict(blockingSessionId:), another Suki product already has an active ambient session for the same encounter. CallcancelRemoteAmbientSessionorendSessionRemotelywith the returnedblockingSessionId, then retrycreateSession. Listen for theSessionEvent.sessionTerminatedByPeerevent (.cancelledor.ended) to detect when another Suki product ends the shared session. Update your UI to reflect the session state, but do not call the localend(),cancel(), orclear()methods. -
Shared note read APIs: The Mobile SDK also adds APIs to list and read shared note content stored on the device.
Use
listEncounterNotes(emrEncounterId:)to retrievecompositionIdvalues. Then pass thecompositionIdas thenoteIdwhen calling:getNoteContext(noteId:)getNoteContent(noteId:)getNoteStructuredData(noteId:)
encounterContent(encounterId:)with the Session Group ID asencounterId. Do not pass the EMR encounter id.
Enhancements
-
Create session response identifiers: On a successful online
createSession, the response now includes:sessionId(maps to Ambient APIambient_session_id)- Optional
compositionId(maps to Ambient APIcomposition_id)
When
createSession is performed offline, the response does not include a compositionId.Keep the following identifiers separate:sessionIdin thecreateSessionresponse identifies the current ambient session. It maps to Ambient APIambient_session_id. It is not the Session Group ID.encounter_idis the Session Group ID. Pass this value asSukiAmbientConstant.kSessionIdwhen resuming or joining a shared note.compositionIdidentifies the shared clinical note. It is not the Session Group ID.
-
Create session error behavior:
FAILED_PRECONDITIONandINVALID_ARGUMENTerrors now return aSukiStatusresponse. The SDK no longer falls back to creating an offline session for these errors. -
Bearer ProviderInfo: Pass the provider id using
SukiAmbientConstant.kIdduring initialization. The SDK includesprovider_idin the authentication and registration requests when it is not present in the JWT.
Enhancements
-
Orders info: Added support to provide optional orders info context parameter while creating an ambient session using the
SukiAmbientConstant.kOrdersInfokey in the iOS SDK. Required: If you provideSukiAmbientConstant.kOrdersInfo, each medication order must include the following payload keys:drug_name: The medication namemedication_code: The medication codestrength: The medication strengthformat: The medication formatroute: The medication routelinked_diagnosis_codes: The medication diagnosis codesmetadata: The medication metadata
-
EMR info: Added support to provide optional EMR info context parameter while creating an ambient session using the
SukiAmbientConstant.kEmrInfokey in the iOS SDK.If you provideSukiAmbientConstant.kEmrInfo, you must provide theSukiAmbientConstant.kTargetEmrkey with a string identifier for the target EMR.
Enhancements
- Enhanced visit context: Added support for visit-related metadata parameters in the
setSessionContextmethod, including visit type, encounter type, provider role, reason for visit, and chief complaint. These parameters provide additional context to improve note generation accuracy and clinical relevance.
API changes
- Extended
setSessionContextmethod to accept new optional visit context parameters:visitType: Enum values include “New Patient / Intake”, “Established patient”, “Wellness”, “ED”encounterType: Enum values include “ambulatory”, “inpatient”, “ED”providerRole: Enum values include “Primary/Attending”, “Consulting”reasonForVisit: String parameter with a maximum of 255 characterschiefComplaint: String parameter with a maximum of 255 characters
- All new parameters are optional; existing flows continue to work without these parameters
- Free text fields (
reasonForVisitandchiefComplaint) enforce a 255-character limit
New features
-
User feedback collection: Added
submitFeedback(_:for:onCompletion:)method to collect user feedback on AI-generated content, helping you gather insights on note quality and user satisfaction. -
Audio buffer monitoring: Added
audioBufferFilled(withPercentage: Double)case to the session delegate to notify you when the audio buffer reaches a certain fill percentage. This helps you display connection status indicators in your UI.
Enhancements
- Improved offline handling: Offline mode now includes a 15-second buffer to handle temporary connection problems. This gives you more time to show connection status notifications in your UI before the session fully transitions to offline mode.
- Enhanced getting started guide: Improved the getting started guide with a workflow diagram to help you understand the process of using the Suki Mobile SDK.
New features
- Personalization preferences: Added
setPersonalizationPreferences(_:completionHandler:)method to configure clinical note generation preferences. Customize verbosity levels and note section styles to match your clinical documentation needs.
Enhancements
- Note customization options: Configure verbosity levels (concise, balanced, detailed) and note section styles (narrative or bulleted) for supported LOINC sections including History of Present Illness, Assessment, Plan, and Assessment & Plan.
API changes
- New
setPersonalizationPreferences(_:completionHandler:)method for configuring note generation preferences - Preferences are persisted and automatically applied to all future note generations
New features
-
Diagnosis context support: Added
SukiAmbientConstant.kDiagnosisInfoparameter tosetSessionContextfor structured diagnosis context, improving note accuracy by providing relevant diagnosis information. -
Structured data retrieval: Introduced
getStructuredData(for:onCompletion:)method to retrieve structured output data and diagnoses from completed sessions, enabling better integration with EHR systems.
API changes
- Extended
setSessionContextwith diagnosis information support - New
getStructuredDatamethod for accessing structured session output - Supports ICD-10, IMO, and SNOMED code types
New features
- Session context method: Introduced
setSessionContext(with:onCompletion:)method for setting patient, provider context, and LOINC codes after session creation, providing more flexibility in when you provide context information.
Enhancements
-
Improved session workflow: Separated patient, provider, and section context from
createSessionto a dedicatedsetSessionContextmethod, making the session creation process more streamlined. - Enhanced LOINC integration: Enhanced section generation using LOINC codes with automatic clinical section creation. LOINC codes alone are sufficient: the SDK automatically generates appropriate clinical sections.
API changes
createSessionmethod now focuses solely on session initialization- Patient, provider, and section context should be set using
setSessionContext - LOINC codes alone are sufficient: SDK automatically generates appropriate clinical sections
New features
- Audio buffering: Implemented audio buffering to reduce the number of offline sessions caused by brief internet interruptions, improving session continuity during temporary network issues.
-
Multilingual support: Added
SukiAmbientConstant.kIsMultilingualparameter to session creation for multilingual processing support, enabling accurate note generation for conversations in multiple languages.
Enhancements
- Background recording handling: Added proper error handling when attempting to start recording while the app is backgrounded, providing clearer error messages and preventing unexpected behavior.
Bug fixes
- Fixed “No record exists for offline upload” failure category identified through note failure tracing dashboard
- Improved session recovery reliability during network transitions