Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
f6c22de
Added the whitelist domain of bucket (#427)
durgeshateka Nov 13, 2025
9abc581
updated documentation with configurable org icons (#428)
nishantmourya-eka Nov 13, 2025
d41f574
changed desc text for urls in abha doc (#429)
nishantmourya-eka Nov 14, 2025
8376c4b
push (#430)
Samudranil31 Nov 19, 2025
961de66
update doc for cc link (#431)
shyamvlmna Nov 19, 2025
54508d0
status codes (#433)
Samudranil31 Nov 20, 2025
0d3a497
get hip users api (#434)
nadeem-ekacare Nov 24, 2025
6503910
abha search (#437)
shyamvlmna Nov 26, 2025
cc5ff52
Feature/abd 9 (#438)
shyamvlmna Nov 26, 2025
a6dd635
Feature/abd 9 (#439)
shyamvlmna Nov 26, 2025
5f61358
Sachin/webhook documentation (#435)
sachinjaiswal-eka Nov 26, 2025
b6b6f32
Added the output_language in documentation (#440)
durgeshateka Nov 28, 2025
8a89500
Durgesh/output language (#441)
durgeshateka Nov 28, 2025
2ec154e
[MED-14] Update MR upload documentation to state tags are treated as …
neelimasingh849 Dec 2, 2025
14344b0
No-Show Appointment api added
Samudranil31 Dec 3, 2025
bb15f65
No-Show Appointment (#443)
Samudranil31 Dec 3, 2025
b886061
push (#444)
Samudranil31 Dec 3, 2025
2a7d631
payload change in no show api (#445)
Samudranil31 Dec 4, 2025
e02f1b4
fhir-structure docs added (#446)
durgeshateka Dec 4, 2025
3a51b2c
medication request added (#447)
durgeshateka Dec 8, 2025
e9121e4
Durgesh/medicationrequest add (#448)
durgeshateka Dec 8, 2025
70b3cca
added type field for the mcert webhook (#449)
sachinjaiswal-eka Dec 10, 2025
299c366
Response added Create (#450)
rohit19872 Dec 11, 2025
f13fe58
updated ekascribe TS SDK docs (#451)
Sanikagoyal Dec 11, 2025
a5002b0
Added the resources in fhir structure (#453)
durgeshateka Dec 17, 2025
9676720
Added the system requirements in ekascribe (#454)
durgeshateka Dec 17, 2025
6518e1f
Durgesh/system req (#455)
durgeshateka Dec 17, 2025
ccc2439
Eka Care MCP documentation with integration steps (#456)
mayank-garg-eka Dec 18, 2025
4216a53
removed getTemplateOutput method (#457)
Sanikagoyal Dec 19, 2025
cad6ae8
fixed documentation and added console
vikalp Dec 22, 2025
9d83502
Abha sdk doc update (#458)
nishantmourya-eka Dec 24, 2025
3c31562
[ENG-168] nhpr documentation (#459)
neelimasingh849 Jan 2, 2026
e682e67
added skip abha option,hip id in abha sdk (#462)
nishantmourya-eka Jan 7, 2026
d19114d
Ekascribe android sdk updated (#463)
divyesh11 Jan 8, 2026
4f43c70
Update the existing iOS document (#465)
BRUNDAB19B Jan 9, 2026
6e3648d
updated callback docs (#466)
Sanikagoyal Jan 9, 2026
6d822a9
updated ts docs (#468)
Sanikagoyal Jan 12, 2026
3db990b
Update the eka scribe new architecture doc (#469)
BRUNDAB19B Jan 15, 2026
5d41a02
added changes regarding assessment sdk (#470)
durgeshateka Jan 20, 2026
c2f5ce5
Face Auth (#471)
rohit19872 Jan 21, 2026
efd4f40
Added python sdk for report parsing
vishal24tuniki Jan 21, 2026
a40c2a0
updated doc
vishal24tuniki Jan 22, 2026
808d40c
updated docs
vishal24tuniki Jan 22, 2026
6dd6aae
add java sdk doc
vishal24tuniki Jan 22, 2026
97cd64b
added documentation for classification (#473)
neelimasingh849 Jan 22, 2026
8579500
Removed required from dt (#474)
neelimasingh849 Jan 22, 2026
93dd625
Status Session API (#472)
rohit19872 Jan 22, 2026
3886394
temporarily removed parsed report (#476)
neelimasingh849 Jan 23, 2026
807204a
added documentation for the get business information api (#475)
sachinjaiswal-eka Jan 23, 2026
8a0575d
removed fhir (#477)
neelimasingh849 Jan 23, 2026
ece75bb
Sachin/hub 296 documentation for business api (#478)
sachinjaiswal-eka Jan 23, 2026
ad33060
added changes regarding assessment flow structure and inhancement (#479)
durgeshateka Jan 23, 2026
1582034
abdm sdk (#481)
shyamvlmna Jan 23, 2026
be7d0b0
complete fhir bundle example added (#482)
durgeshateka Jan 23, 2026
6b60f88
Updating eka care developer portal (#484)
BRUNDAB19B Jan 27, 2026
6c14806
added documentation for onboarding apis (#480)
sachinjaiswal-eka Jan 27, 2026
78bedc1
Sachin/hub 282 onboarding apis documentation (#485)
sachinjaiswal-eka Jan 27, 2026
00fc471
New branch => changes regarding main doc tab (#487)
priyankadvekacare Jan 27, 2026
51acaf6
made unique_identifier as medentory for doctor initiated assessment (…
durgeshateka Jan 28, 2026
9c3d837
Auth docs update (#483)
piyush-at-eka Jan 28, 2026
2928dd3
Auto login docs (#489)
rohit19872 Jan 28, 2026
4e110c4
Redirect to console (#490)
piyush-at-eka Jan 29, 2026
8768da4
Add step for using token (#491)
piyush-at-eka Jan 29, 2026
eb7e90c
Echo Agent Kit (#492)
dicodetomy-paradox Jan 29, 2026
83c089c
get started changes
priyankadvekacare Feb 2, 2026
8798a95
refactor records sdk docs (#493)
Gajendra8911 Feb 2, 2026
d7f4fa0
remove deprecated query params
vishal24tuniki Feb 2, 2026
55784f2
make document type string instead of enum
vishal24tuniki Feb 2, 2026
f9e5654
rename path param
vishal24tuniki Feb 2, 2026
87ef6b3
Update in missed occurences
vishal24tuniki Feb 2, 2026
b3481d9
rename add record title (#496)
vishal24tuniki Feb 2, 2026
c370e30
product details added
priyankadvekacare Feb 2, 2026
0c74df2
remove records sdk
vishal24tuniki Feb 2, 2026
60eb558
updated docs - update output (#499)
Sanikagoyal Feb 3, 2026
96ae716
Ip allowlist (#464)
orbi-ci-bot Feb 3, 2026
22f43b5
NHPR Docs fix (#498)
rohit19872 Feb 3, 2026
b8f4f98
Invite flow changes (#500)
piyush-at-eka Feb 6, 2026
7833376
Add link for visiting dev console (#501)
piyush-at-eka Feb 6, 2026
cb63d2f
eka medai links added (#502)
priyankadvekacare Feb 9, 2026
c56fe3b
added more details fields for the oboarding apis (#503)
sachinjaiswal-eka Feb 10, 2026
85cc8af
models/spotlight/dataset new data added
priyankadvekacare Feb 13, 2026
13f4343
next line
priyankadvekacare Feb 13, 2026
3d7f507
space added
priyankadvekacare Feb 13, 2026
2c8820c
Sachin/onboarding api changes (#506)
sachinjaiswal-eka Feb 13, 2026
509294b
added theme and scan&share flow in docs (#507)
nishantmourya-eka Feb 23, 2026
9ead48f
hiu enc keyset (#508)
shyamvlmna Feb 23, 2026
7f7a030
update m2 documentation (#509)
shyamvlmna Feb 24, 2026
a05debb
Feature/eng 449 (#510)
shyamvlmna Feb 24, 2026
3ac633b
abdm ecdh apis (#511)
shyamvlmna Feb 27, 2026
801e7f8
refined and updated abha docs (#512)
nishantmourya-eka Feb 27, 2026
7ef96f4
new blog parrotlet-a 2 pro added
priyankadvekacare Mar 6, 2026
2bb945f
new blog parrotlet-a 2 pro name change added
priyankadvekacare Mar 6, 2026
5ceb7ca
added documentation for appointment reminder related webhook endpoint…
sachinjaiswal-eka Mar 11, 2026
ab238f9
M1 flow (#513)
rohit19872 Mar 13, 2026
b481b1c
follow up appt confirmation (#518)
Samudranil31 Mar 20, 2026
b0f9765
salutation for the get doctor profile api (#521)
sachinjaiswal-eka Mar 23, 2026
b826523
vaccination reminder: Webhook (#522)
jainkuniya Mar 24, 2026
0cc4ce2
Add changelog for week of March 20–26 (#523)
mintlify[bot] Mar 26, 2026
2867d39
echo_404_error_fix (#526)
priyankadvekacare Mar 27, 2026
efd950b
sample_changelog_ekascribe_ekaagents (#527)
priyankadvekacare Mar 27, 2026
95b37e8
linkissue (#528)
priyankadvekacare Mar 27, 2026
633288b
Add changelog for week of March 27 (#525)
mintlify[bot] Mar 27, 2026
d6288d8
Add changelog for week of March 28 (#529)
mintlify[bot] Mar 28, 2026
1c30f57
changelog_updated (#530)
priyankadvekacare Mar 28, 2026
5852612
Priyanka/changelog updates (#531)
priyankadvekacare Mar 28, 2026
42a91e6
Revert "Priyanka/changelog updates (#531)"
mayank-garg-eka Mar 28, 2026
7ef3714
Add changelog entry for week of March 29
mintlify[bot] Mar 28, 2026
c35b60e
Add changelog for week of March 30
mintlify[bot] Mar 30, 2026
305a644
github_links_rename_issues_fixed (#535)
priyankadvekacare Mar 30, 2026
c51568a
changelog_gmail_link_issue_fix (#536)
priyankadvekacare Mar 30, 2026
d8ecf79
Add March 31, 2026 changelog entry
mintlify[bot] Apr 1, 2026
182c610
Add April 2 changelog: ABHA MCP tools, more ophthalmology tables
mintlify[bot] Apr 2, 2026
d683349
Add April 3 changelog entry
mintlify[bot] Apr 3, 2026
8a07466
Consolidate week of March 31 changelog into weekly summary
mintlify[bot] Apr 5, 2026
e08fda1
eka-mcp-emr-documentation-improved (#541)
mayank-garg-eka Apr 5, 2026
3afde81
Add three-tier changelog outputs for week of March 31 – April 5, 2026
mintlify[bot] Apr 6, 2026
8c55d98
Allow pat dir api's (#544)
piyush-at-eka Apr 7, 2026
e44fdf7
Revamp EkaScribe docs: Quick Start, reorder integrations, fix SDK tit…
trilok-yadav Apr 8, 2026
e574093
Feature/life 1502 (#547)
piyush-at-eka Apr 8, 2026
82f41d5
Add changelog entry for April 8 — new Patient Directory APIs
mintlify[bot] Apr 8, 2026
b491f7d
Refine three-tier changelog outputs with structured format and expand…
mintlify[bot] Apr 6, 2026
08924dd
product_files_added
priyankadvekacare Apr 13, 2026
9b684d7
files_renamed
priyankadvekacare Apr 13, 2026
6d03693
file_rename
priyankadvekacare Apr 13, 2026
7cf1fdb
Add April 9 changelog: EkaScribe docs revamp
mintlify[bot] Apr 9, 2026
02732e7
Add changelog entry for April 8–11 (#551)
mintlify[bot] Apr 13, 2026
472cd46
update_block_added
priyankadvekacare Apr 13, 2026
def44e9
Add EkaScribe docs revamp to April 8 changelog (#552)
mintlify[bot] Apr 13, 2026
22fc246
Add April 13 changelog: EkaScribe docs revamp (#555)
mintlify[bot] Apr 13, 2026
e0cb4cd
changelog fixes (#558)
mayank-garg-eka Apr 13, 2026
b5c65b1
Add changelog entries for April 9–13 (#559)
mintlify[bot] Apr 14, 2026
cbcf079
Add April 14 changelog: BODHI knowledge graphs and prescription templ…
mintlify[bot] Apr 14, 2026
1634d7e
Add restrictions for extras (#562)
piyush-at-eka Apr 14, 2026
a038bcc
Add April 15 changelog: prescription PDF and API docs (#563)
mintlify[bot] Apr 15, 2026
c4ad530
Add April 16 changelog: MCP SDK auth and JS SDK documents (#564)
mintlify[bot] Apr 16, 2026
1642af1
Update spotlight.mdx (#565)
sankalpg Apr 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .DS_Store
Binary file not shown.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
.DS_Store
git .DS_Store
.idea/
.venv
.venv/*
node_modules
.DS_Store
369 changes: 369 additions & 0 deletions SDKs/android/ekascribe.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,369 @@
# EkaScribe SDK Documentation

EkaScribe SDK (Voice2Rx) is an Android SDK for voice-based medical transcription and documentation.
It provides real-time voice recording, transcription, and intelligent medical documentation
generation with support for multiple languages and output formats.

**Version:** 3.0.7

**Minimum Android SDK:** 23 (Android 6.0)

---

## 1. Installation

### Add Maven Repository

Add the JitPack repository to your project's `settings.gradle.kts` (or `build.gradle`):

```kotlin
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// Add below line to fetch SDK from Jitpack
maven { url = uri("<https://jitpack.io>") }
}
}

```

### Add Dependencies

Add the EkaScribe SDK and required networking dependency to your app's `build.gradle.kts`:

```kotlin
dependencies {
implementation("com.github.eka-care:Eka-Scribe-Android:${LATEST_VERSION}")
}

```

### Required Permissions

Add the following permissions to your `AndroidManifest.xml`:

```xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
```

**Note:** You must request `RECORD_AUDIO` permission at runtime for Android 6.0 and above.

---

## 2. Initialization

Initialize the SDK in your `Application` class or main `Activity`.

### Step 1: Implement Lifecycle Callbacks

Create a class that implements `Voice2RxLifecycleCallbacks` to handle session events.

```kotlin
import com.eka.voice2rx_sdk.sdkinit.Voice2RxLifecycleCallbacks
import com.eka.voice2rx_sdk.common.models.EkaScribeError

class MyVoice2RxCallbacks : Voice2RxLifecycleCallbacks {
override fun onStartSession(sessionId: String) {
// Recording started
}

override fun onStopSession(sessionId: String, recordedFiles: Int) {
// Get result when ready after stopping the session
CoroutineScope(Dispatchers.IO).launch {
Voice2Rx.pollEkaScribeResult(sessionId = sessionId).onSuccess {
Log.d(TAG, it.templates.toString())
}.onFailure {
Log.d(TAG, "error : ${it.message.toString()}")
}
}
}

override fun onPauseSession(sessionId: String) {
// Recording paused
}

override fun onResumeSession(sessionId: String) {
// Recording resumed
}

override fun onError(error: EkaScribeError) {
// Handle error
}
}

```

### Step 2: Implement TokenStorage

The networking module requires a `TokenStorage` implementation to handle authentication tokens.

```kotlin
import com.eka.networking.token.TokenStorage

class MyTokenStorage : TokenStorage {
override fun getAccessToken(): String {
return "access_token"
}

override fun getRefreshToken(): String {
return "refresh_token"
}

override fun saveTokens(accessToken: String, refreshToken: String) {
// save tokens
}

override fun onSessionExpired() {
// SessionExpired refresh token expired
}
}
```

### Step 3: Configure and Initialize

Initialize `Voice2Rx` with `Voice2RxInitConfig` and `NetworkConfig`.

```kotlin
import com.eka.voice2rx_sdk.sdkinit.Voice2Rx
import com.eka.voice2rx_sdk.sdkinit.Voice2RxInitConfig
import com.eka.networking.client.NetworkConfig
import com.eka.networking.client.AuthConfig

// 1. Configure Network
val networkConfig = NetworkConfig(
appId = "your-app-id",
baseUrl = "<https://api.eka.care/>",
appVersionName = BuildConfig.VERSION_NAME,
appVersionCode = BuildConfig.VERSION_CODE,
isDebugApp = false // false in production environment,
apiCallTimeOutInSec = 30L,
headers = mapOf(), // Optional headers
tokenStorage = MyTokenStorage()
)

// 2. Configure SDK
val config = Voice2RxInitConfig(
voice2RxLifecycle = MyVoice2RxCallbacks(),
networkConfig = networkConfig,
)

// 3. Initialize
Voice2Rx.init(config, context)

```

---

## 3. Core API Reference

All main functions are available via the `Voice2Rx` singleton object.

### Recording Control

### `startVoice2Rx`

Starts a new voice recording session.

```kotlin
fun startVoice2Rx(
mode: String = Voice2RxType.CONSULTATION.value, // "consultation" or "dictation"
patientDetails: PatientDetails? = null,
outputFormats: List<Template>, // Max 2 formats
languages: List<String>, // Max 2 languages
modelType: String, // e.g., "pro"
onError: (EkaScribeError) -> Unit,
onStart: (String) -> Unit
)

```

**Example:**

```kotlin
// Define output templates using Template(templateId, templateName)
val outputFormats = listOf(
Template(templateId = "19288d2f-81a9-46a6-b804-9651242a9b3e", templateName = "SOAP Note")
)

val languages = listOf("en-IN")

Voice2Rx.startVoice2Rx(
mode = Voice2RxType.DICTATION.value,
outputFormats = outputFormats,
languages = languages,
modelType = "pro" // or lite for faster results,
onError = { error -> Log.e("SDK", "Error: ${error.errorDetails.message}") },
onStart = { sessionId -> Log.d("SDK", "Started: $sessionId") }
)

```

### `pauseVoice2Rx`

Pauses the current recording.

```kotlin
Voice2Rx.pauseVoice2Rx()

```

### `resumeVoice2Rx`

Resumes a paused recording.

```kotlin
Voice2Rx.resumeVoice2Rx()

```

### `stopVoice2Rx`

Stops the recording and triggers processing.

```kotlin
Voice2Rx.stopVoice2Rx()

```

### `isCurrentlyRecording`

Checks if a recording is in progress.

```kotlin
val isRecording = Voice2Rx.isCurrentlyRecording()

```

### Data & Results

### `getSessionOutput`

Retrieves the transcription/generated output for a session.

```kotlin
suspend fun getSessionOutput(sessionId: String): Result<SessionResult>

```

### `pollEkaScribeResult`

Polls for results, useful for waiting until processing completes.

```kotlin
suspend fun pollEkaScribeResult(sessionId: String): Result<SessionResult>

```

### `getHistoryVoice2Rx`

Fetches session history.

```kotlin
suspend fun getHistoryVoice2Rx(count: Int? = null): Voice2RxHistoryResponse?

```

### `getFullRecordingFile`

Gets the audio file for a session.

```kotlin
fun getFullRecordingFile(sessionId: String): Result<File>

```

### Session Info & Monitoring

### `getSessionUploadInfoAsFlow`

Observe the upload stage of a session (Uploading, Processing, Completed).

```kotlin
suspend fun getSessionUploadInfoAsFlow(sessionId: String): Flow<VoiceTransactionStage>?

```

### `getVoiceActivityFlow`

Flow for real-time voice activity (speech detection, amplitude).

```kotlin
fun getVoiceActivityFlow(): Flow<VoiceActivityData>?

```

### `getAudioQualityFlow`

Flow for real-time audio quality metrics (STOI, PESQ, SI-SDR).

```kotlin
fun getAudioQualityFlow(): Flow<AudioQualityMetrics?>?

```

### Configuration & Templates

### `getTemplates`

Get available output templates.

```kotlin
suspend fun getTemplates(): Result<List<TemplateItem>>?

```

### `getUserConfigs`

Get user configuration including supported languages and modes.

```kotlin
suspend fun getUserConfigs(): Result<UserConfigs>

```

### `updateUserConfigs`

Update user preferences (selected language, mode, etc.).

```kotlin
suspend fun updateUserConfigs(selectedUserPreferences: SelectedUserPreferences): Result<Boolean>

```

---

## 4. Error Handling

Errors are returned via `EkaScribeError`.

**Common Error Codes:**

- `SUPPORTED_OUTPUT_FORMATS_COUNT_EXCEEDED`: Max 2 output formats allowed.
- `SUPPORTED_LANGUAGES_COUNT_EXCEEDED`: Max 2 languages allowed.
- `LANGUAGE_LIST_CAN_NOT_BE_EMPTY`
- `OUTPUT_FORMAT_LIST_CAN_NOT_BE_EMPTY`

**Data Class:**

```kotlin
data class EkaScribeError(
val sessionId: String,
val errorDetails: EkaScribeErrorDetails, // Contains 'message', 'displayMessage', 'code'
val voiceError: VoiceError
)

```

## 5. Cleanup

Call `releaseResources()` when the SDK is no longer needed (e.g., in `onDestroy` of your host
Activity/Application).

```kotlin
Voice2Rx.releaseResources()

```
Loading