⚠️ Breaking
- [EkaAgents] MCP SDK profile creation requires mobile number — The
PatientDatamodel in the Eka MCP SDK now makesmobilemandatory and enforces the^\+91[6-9]\d{9}$pattern for Indian mobile numbers. Profile creation calls that previously omittedmobileor passed an unformatted number will now fail validation. Update integrations to always supply a country-coded mobile number. View docs
🔗 New Integrations
- [EkaAgents] MedAI Tools MCP server — Published a dedicated MedAI Tools MCP surface with introduction, quickstart, authentication, and tool reference pages, giving agents a documented entry point for medical-AI tool access independent of the EMR MCP. View docs
Improved
- [EkaAgents] Doctor card revamp for EMR client — The MCP SDK now emits a standardized success elicitation response for doctor discovery and availability flows. Tool responses include a
_metablock with display message, toast text, andtool_resultpayload (selected doctor, hospital, slot, date), and renameselected_datetopreferred_datefor consistency with the elicitation contract. View docs
Changed
- [Platform] Usage SDK ABDM metric types — The
abdmmetric category in the Eka Usage SDK (Go and Python) has been restructured fromapi_call,abha,consent,fetch,storagetoabha,linking,data_transfer, aligning the surface with the actual ABDM workflows that consumers need to track.
Improved
-
[EkaAgents] Doctor discovery elicitation in MCP SDK —
doctor_discovery_toolnow returns adoctor_cardelicitation component with astatus: "success"field andis_elicitation: truemarker, letting agent clients render structured doctor selection cards instead of raw lists. View docs -
[EMR] Lab vitals display-name fallback — Investigative readings tables in prescription PDFs now use
unit_dislay_namewhen present and fall back toname, ensuring lab vitals print with their preferred display label. View docs -
[EMR] IPD admission notes rich-text rendering — IPD admission notes that contain HTML (entered via the rich-text editor) now render inside a
tiny-mcestyled block in printed prescriptions, preserving formatting that previously rendered as a plain<span>. View docs
Migrated
- [EkaAgents] Echo Agent Kit MCP transport — bare-metal sessions — The
MCPConnectionManagerhas been rewritten to open a freshClientSessionper call with no connection pooling, no session caching, and no class-level state. Parallel-safe by construction at the cost of one initialize round-trip per tool call (~10–50ms typical). The interim session-cache redesign (withuser_session_id) was removed in the same release. TheMCPConnectiontype,connection_ttl,pool_key_headers, andcleanup_allare gone; callers should drop those references. Echo SDK bumps to 0.1.30, then 0.1.31.
Upgraded
- [EkaAgents] Echo Agent Kit MCP read timeout configurable —
MCPServerConfig.sse_read_timeoutnow defaults from theECHO_MCP_TOOL_TIMEOUTenvironment variable (10s default, was 300s), and the value is now propagated toClientSession(read_timeout_seconds=…). Operators can tune MCP read timeouts without code changes. Download helper timeout reduced from 30s to 10s for tighter blob-fetch ceilings.
Improved
- [EMR] Prescription footer QR placement — The QR code in prescription PDF custom footers has been relocated into the footer details block so it consistently aligns with signature, page number, and approval text instead of floating outside the bordered region. View docs
Fixed
- [EMR] Android document UI PDF reader stability — The
VerticalPDFReaderin the Android document UI is now wrapped in aBoxWithConstraintsand only initializes onceconstraints.maxWidth > 0, preventing initialization crashes when the reader is mounted before its parent has been laid out. Applied to bothRecordPreviewComponentsandAddRecordPreviewScreen.
🔗 New Integrations
- [Platform] Consent Management Web SDK docs — Published a Get Started guide for the Consent Management Web SDK covering installation, initialization, consent request flows, and ABDM integration touchpoints, alongside an Overview update in the ABDM Connect API reference. View docs
Added
-
[EMR] Diet chart rendering in prescription PDFs — Prescription PDFs now render diet charts as a top-level pad element when
tool.apps.dietChartis present, injecting the stored HTML content directly into the document. View docs -
[EMR] Configurable IPD admission printing — Prescription templates accept a new
admissionToIPDPrintConfigblock withentityandprintOnlyWhenAdvisedflags, and theIpdAdmissionpayload now supports anotes_htmlfield for rich-text admission notes. View docs
Fixed
- [EkaScribe] DocAssist iOS voice-to-text recovery — The DocAssist iOS chat recovers from voice processing errors by clearing the
voiceProcessingflag and re-enabling text input on connection or chat errors, and the cancel button inVoiceInputViewis now only shown while the user is actively recording. Removed an unusedSwiftProtobufimport.
Added
-
[Platform] Eka Usage SDK 0.1.1 — First public release of the Eka Usage SDK in Go and Python, providing a typed surface for emitting platform usage metrics across
emr_tools,clinical_tools,comms, andabdmcategories. Includes a working test suite and CI publishing pipeline. -
[EkaAgents] Contextual popup nudge in MedAssist web widget — The MedAssist web widget can now fetch a contextual nudge from the user-nudge API and display it as a popup near the chat button, with cached metadata, configurable delay, and meta-tag-aware targeting. The feature ships behind a
CALL_NUDGEflag that is currentlyfalse, so no nudge calls are made until it is flipped on.
Fixed
- [EkaAgents] MedAssist web widget agent ID — Updated the default agent ID baked into the widget loader so embedded widgets connect to the correct agent in production instead of falling back to a stale identifier.
Improved
- [EkaScribe] Android SDK MP3 encoding — The EkaScribe Android SDK now uses MP3 encoding (via LAME) instead of AAC/MP4, producing raw MPEG Layer III bitstreams for more reliable audio chunk uploads. The AAC encoder and MP4 format option have been removed. View docs
-
[EkaScribe] Android SDK partial output polling — Transaction result polling in the Android SDK now checks statuses across
integration,transcript, andcustomfields withintemplateResults, replacing the legacyoutputlist. Empty statuses are treated as failures instead of timing out, improving error detection. View docs - [EkaScribe] iOS SDK parallel chunk processing — The EkaScribe iOS SDK now processes audio chunks in parallel, improving transcription throughput and reducing end-to-end latency for longer recording sessions.
- [EkaAgents] Doctor discovery tool in MCP SDK — The Eka MCP SDK now includes a doctor discovery tool for EMR workspaces, enabling agents to search for available doctors within a clinic context. View docs
- [EkaAgents] MedAssist web widget responsive layout — The MedAssist web chat widget now renders correctly on small screens (under 360px and 767px widths), preventing layout overflow and improving usability on mobile devices.
Added
-
[EkaAgents] OTP authentication for EMR clients in MCP SDK — The Eka MCP SDK now includes an
authentication_elicitationtool enabled by default for EMR workspaces, supporting SMS-based OTP login with country code selection, OTP verification, and UHID profile selection. Agents can authenticate clinic users mid-conversation without leaving the AI client. View docs -
[EkaScribe] Document management in JS SDK — The EkaScribe JS SDK now exposes
createDocument,deleteDocument, andgetChunkTranscriptmethods, enabling programmatic document lifecycle management and per-chunk transcript retrieval directly from the SDK. View docs
Improved
-
[EkaScribe] Output polling parameters in JS SDK — The
pollOutputSummarymethod now acceptsdocument_idanddlpquery parameters, and the status API response type includesdocument_idanddocument_pathfields. The status API timeout has been increased from 16s to 20s for improved reliability. View docs - [EkaAgents] MCP SDK workspace tool fallback — When a workspace has no explicitly configured tool list, the MCP SDK now falls back to the default EMR tool set instead of failing, improving resilience for new workspace onboarding.
Improved
-
[EMR] Prescription PDF asset loading — S3-hosted assets such as doctor signatures in prescription PDFs now include cache-busting query parameters, preventing stale cached versions from appearing. Signature display is also now controlled by a
show_signatureconfiguration flag for more flexible template rendering. View docs - [EMR] Eye exam ordering in prescription PDFs — Ophthalmology examination tables in prescription PDFs now render in the correct display order, ensuring eye-care data appears consistently across generated documents. View docs
-
[EMR] Patient Directory API extras field — The
extrasfield in the Update EMR User endpoint now documents restrictions: no nested lists, no dictionaries inside lists, only one level of nesting in dictionaries, keys must not exceed 16 characters, and keys starting with_are ignored. View docs
Added
- BODHI open-source clinical knowledge graphs — Two SNOMED-linked knowledge graphs (bodhi-s for condition–symptom mapping and bodhi-m for concept–drug–lab investigation mapping) are now publicly available. The graphs contain 9,300+ nodes and 16,700+ relationships across six formats (Neo4j, CSV, JSONL, PyG, RDF/Turtle, browser JSON), supporting symptom checking, differential diagnosis, and patient health profiling use cases. Released under CC BY-NC 4.0.
Improved
- [Client-Specific] Prescription PDF template engine — Added support for configurable prescription template styles, enabling custom PDF layouts that map clinical data (symptoms, history, vitals, medications, investigations, diagnosis, advices, review, and signature) to form-specific positions. A new
template_styleconfiguration option controls which layout is applied during PDF generation.
Improved
- IPD billing PDF layout — The pricing summary in IPD billing PDFs now displays Total Paid and Amount Due/Overpaid labels, replacing the previous single “Amount to be paid” line for clearer printed output. View docs
- OPD slip enhancements — OPD slips now print tags and additional data fields, and the token number font size has been increased for better readability at the front desk.
- Echo Agent Kit — Empty prompt variables are now handled gracefully, preventing errors when prompt templates contain optional or unfilled placeholders. View docs
- Medical Records Android SDK — Oversized images are now validated before upload with a clear user alert, and PDF URI resolution has been moved to a background thread to prevent main-thread crashes.
Fixed
- Health Records Android SDK — Missing files during record processing are now handled gracefully instead of causing crashes, with improved error handling in MD5 checksum generation.
Updates
- EkaScribe documentation revamped — The EkaScribe docs now include a Quick Start guide with a step-by-step TypeScript SDK integration walkthrough. Integration methods are reordered to recommend SDKs first, REST APIs second, and Chrome Extension third. SDK sidebar titles use proper casing, and deprecated APIs are nested under a warning section for clarity. View docs
Updates
- EkaScribe documentation revamped — A new Quick Start guide walks you through installing the SDK and transcribing your first consultation in minutes. SDKs are now promoted as the recommended integration path, and v1 APIs are marked deprecated with clear migration pointers to the v2 APIs. View docs
- Retrieve EMR User API — A new GET endpoint is available in the Patient Directory to retrieve an EMR user profile by OID, complementing the existing update endpoint. View docs
New features
- New Patient Directory APIs — Two new endpoints are now available in the Patient Directory: retrieve a patient profile by username, and update an EMR user profile (name, contact details, blood group, salutation, and custom fields). View docs
Updates
- EkaScribe documentation revamped — The EkaScribe docs have been restructured with a new Quick Start guide, reordered integration methods (SDKs recommended first, then REST APIs, then Chrome Extension), improved SDK sidebar titles, and deprecated APIs now nested under a warning group for clarity. View docs
New features
- New Patient Directory APIs — Two new endpoints are now available in the Patient Directory: retrieve a patient profile by username, and update an EMR user profile (name, contact details, blood group, salutation, and custom fields). View docs
Updates
- EkaScribe documentation revamp — The EkaScribe docs have been reorganized with a new Quick Start guide for the TypeScript SDK, SDKs promoted above REST APIs as the recommended integration path, corrected sidebar titles, and deprecated API endpoints clearly marked. View docs
New features
- ABHA login and profile tools in MCP SDK — The Eka MCP SDK now includes tools for ABHA login and profile management. Agents can initiate login via mobile, Aadhaar, ABHA number, or PHR address, verify OTP, select from multiple ABHA profiles, and retrieve the ABHA card — all within an agent conversation. View docs
Updates
- MCP Server documentation restructured — The MCP Server docs have been reorganized into separate Remote MCP and Local MCP SDK guides, with per-client setup instructions and a comparison table, making it easier to choose the right deployment model and get connected faster. View docs
-
_metafield support in doctor discovery and availability tools — The Eka MCP SDK now forwards_metacontext from tool calls to thedoctor_discoveryanddoctor_availabilitytools. This lets MCP clients pass additional metadata (such as UI hints or session context) when searching for doctors or checking appointment availability. View docs - More ophthalmology tables in prescription PDFs — Prescription PDFs now include pachymetry, Amsler grid, and contact lens examination tables, expanding the range of eye-care data printed alongside the rest of the prescription. View docs
- MedAssist iOS background session handling — MedAssist chat sessions on iOS now gracefully handle app backgrounding. When you switch away and return, the session reconnects automatically so conversations are not lost mid-interaction.
Bug fixes
- MedAssist iOS error handling — Fixed an issue where WebSocket errors during a MedAssist chat session could fail silently. Errors such as session timeouts and connection drops are now surfaced with clear messages, and the chat UI recovers gracefully.
New features
- Ophthalmology tables in prescription PDFs — Prescription PDFs now include ophthalmology examination tables, so eye-care data captured during a visit is printed alongside the rest of the prescription. View docs
Updates
New features
- IPD billing PDF generation — Clinics can now generate inpatient department (IPD) billing documents as PDFs. The generated PDF includes patient details, admission information, an itemized bills and receipts table, and a pricing summary with discounts. View docs
Updates
- Medical Records Android SDK — Record grid items now support conditional visibility for contextual actions, giving integrators more control over the options displayed on each medical record card.
New features
- Patient benefits tool in MCP Server — A new
get_patient_benefitstool is available in the Eka MCP Server, letting agents retrieve available offers and benefits for a specific patient. View docs
Updates
- Email authentication in MCP Server — Authentication elicitation now supports email as a verification method in addition to mobile number, giving users more flexibility during in-agent authentication flows. View docs
- MedAssist iOS chat improvements — The MedAssist chat experience on iOS now includes updated suggestion chips, improved message bubbles, and better file upload handling.
Updates
- OPD slip improvements — OPD slips now display price and patient (PT) attributes, giving clinic staff more complete information at a glance.
- Pagify SDK — Improved iframe cleanup logic so embedded views are properly removed when a job completes, whether or not a container ID is specified.
- EkaScribe iOS SDK — Updated session ID generation for improved reliability and removed an unused dependency.
Bug fixes
- MedAssist web widget — Fixed an issue where OTP verification could fail silently or return incorrect error messages. The verification flow now properly handles edge cases including callback requests and missing patient records.
New features
- Vaccination reminder webhooks — Receive webhook events when vaccination reminders are triggered for patients. View docs
- Appointment reminder webhooks — New webhook endpoints for appointment reminders, follow-up reminders, and their instant variants. View docs
- Follow-up appointment confirmation API — Confirm follow-up appointments programmatically using the new endpoint. View docs
- Appointment rescheduling via MCP Server — You can now reschedule appointments through the Eka MCP Server.
- ABDM milestone flows — Structured milestone guides (M1–M4) for ABDM integration, covering ABHA creation, login, profile management, and health data exchange. View docs
Updates
-
Doctor Profile API — The Get Doctor Profile response now includes a
salutationfield. View docs -
Echo Agent Kit — Added
_metafield support per the MCP specification for passing tool call metadata. Elicitation support now includes status tracking, messaging, and handling of multiple tool elicitations. View docs - EkaScribe Android SDK v4.0.4 — Architecture V2 with Java sample app support, session cancellation, and improved state management with idempotent operations. View docs
- Authentication elicitation in MCP Server — MCP Server tools now support authentication elicitation, allowing tools to prompt for credentials during execution. View docs
- EkaScribe JS SDK — Improved error tracking, header handling, and ES6 build support. View docs
Bug fixes
- EkaVoiceToRx — Fixed an issue where transcription results could appear in the wrong order, and resolved a bug where the stop button was unresponsive during active sessions.
- Medical Records (iOS) — Fixed an issue where deleting a record could fail silently.

