Documentation Index
Fetch the complete documentation index at: https://developer.eka.care/llms.txt
Use this file to discover all available pages before exploring further.
Added
-
[EkaAgents] Skills in Echo Agent Kit —
GenericAgentnow supportsSkill— a lazy-loaded bundle of(instructions + tools + description)that can be attached and detached mid-conversation. Two activation modes are supported:llm(default, agent auto-injectsload_skill/unload_skillmeta-tools and an<available_skills>registry into the system prompt so the model self-routes) andmanual(host callsawait agent.activate_skill(name)from an upstream router). Skills also exposeon_activate/on_deactivatelifecycle hooks for tenant-scoped setup or telemetry, and tool-name collisions across base tools and skills are caught at agent construction. Existing agents that don’t passskills=are byte-for-byte unaffected. View docs -
[EkaAgents] Postgres engine and PgQueryTool in Echo Agent Kit — Echo Agent Kit now ships an opt-in Postgres client (
echo[postgres]extra) backed by anasyncpgconnection pool with lazy initialization, plusPgQueryTool— aBaseToolsubclass that runs a parametric SQL query and returns rows. SQL files can use psycopg-style%(name)splaceholders, which the client rewrites to asyncpg$Npositional binds. A process-wide default client can be registered withset_default_client(...)so dynamic loaders that calltool_class()resolve correctly. Configuration is read fromECHO_PG_*environment variables. View docs -
[EMR] pageBreakTableTr in Templar getHead — The
getHeadhelper in the Templar prescription engine now supportspageBreakTableTr, allowing template authors to declare table-row level page breaks for cleaner multi-page prescription rendering.
Improved
-
[EkaAgents] Echo Agent Kit v0.1.33 — Echo Agent Kit released as v0.1.33 with the new Skills primitive, Postgres engine, and
PgQueryToolbundled in.pip install -U echois safe — defaults preserve existing agent behavior. - [EMR] Diet chart authoring in Templar — Diet chart support in the Templar prescription engine has been extended with additional structure and rendering refinements, building on the diet chart sections introduced on April 22.
Added
- [Platform] ABDM ECDH Python package — The ABDM ECDH key-exchange primitives used for secure consent and data-fetch flows are now distributable as a Python package, making it easier for partners to integrate ABDM-aligned encryption helpers without re-implementing the protocol.
Improved
- [EMR] Doctor name on IPD receipts and bills — IPD receipt and bill print output now uses the doctor profile’s first-name and last-name fields directly instead of a single concatenated string, giving cleaner, more consistent doctor-name rendering across IPD billing artifacts.
Added
- [EMR] forceApiSearch flag in Patient Directory TS SDK — The Patient Directory TypeScript SDK now exposes a
forceApiSearchoption, letting integrators bypass the local cache and force a live API lookup for patient search — useful for high-confidence lookups where freshness must beat latency.
Fixed
- [EMR] Patient Directory TS SDK lookup correctness — Resolved an edge case in the Patient Directory TypeScript SDK where stale or partial cached state could surface incorrect patient search results; lookups now consistently reflect the live directory.
Improved
- [EMR] Clinic name on OPD slip — The Templar OPD slip print template now renders the clinic name in the slip header, improving identifiability of the issuing clinic on physical copies.
- [EkaAgents] MedAssist web file upload validation — The MedAssist web widget now validates uploaded files against an updated allow-list of supported file types, surfacing a clear rejection for unsupported formats before the upload is attempted.
Fixed
- [EkaAgents] [Client-Specific] MedAssist web widget configuration — Resolved a configuration regression that caused the MedAssist web widget to behave incorrectly on a partner deployment; the widget now initializes with the expected configuration on that surface.
Improved
- [EkaAgents] [Client-Specific] Doctor card revamp — Doctor discovery cards in the MCP SDK have been redesigned for the EMR client, with refreshed layout and additional doctor metadata surfaced inline. View docs
Changed
- [Platform] ABDM usage metrics events — The eka-usage-sdk now emits the latest ABDM-related usage events to Kafka, keeping the metrics pipeline aligned with current ABDM consent and linking flows.
Added
-
[EkaAgents] MCP session caching in Echo Agent Kit — The Echo Agent Kit MCP integration now caches MCP sessions per user, splitting tool discovery and session caches with independent idle and absolute TTLs, LRU eviction on pool exhaustion, and
user_session_idplumbed throughMCPTool.runviatool_context. Tool cache keys are partitioned by configurable headers (tool_cache_key_headers), and concurrent cache misses are serialized to avoid duplicate discovery work. View docs -
[EkaAgents] Doctor discovery elicitation — The MCP SDK now supports interactive elicitation for
doctor_discoverycards, allowing agents to confirm doctor availability mid-conversation before booking. View docs - [EMR] Diet charts in prescription templates — The Templar prescription engine now supports diet chart sections, enabling structured diet plans to be authored and rendered alongside prescriptions.
Improved
- [EkaAgents] MCP tool call timeout — Tool calls in the Echo Agent Kit MCP integration are now bounded by a 10-second timeout, preventing slow downstream tools from blocking agent responses indefinitely.
-
[EMR] Unit display name fallback in prescriptions — Prescription
rxandlabVitalssections now renderunit_display_namewhen available and fall back toname, producing cleaner unit labels on printed prescriptions.
Fixed
- [EMR] IPD admission TinyMCE preview — Fixed a rendering bug where the IPD admission rich-text preview was showing stale or malformed HTML in the Templar template engine.
Removed
- [EkaAgents] Legacy MCP caching layer — The previous monolithic MCP cache has been removed from the Echo Agent Kit in favor of the new split tool/session caching design.
Fixed
- [Platform] Android document UI PDF initialization — Fixed a crash where PDF rendering could initialize before view layout constraints were available, producing zero-sized canvases on some devices.
Changed
- [EMR] Prescription QR placement — The QR code on prescription PDFs has been moved into the footer details block for a cleaner header and consistent placement across templates.
Added
- [EMR] IPD admission template upgrades — The Templar prescription engine adds new fields and layout improvements to the IPD admission template, supporting richer admission notes.
Improved
- [EkaScribe] Voice-to-text error handling on iOS DocAssist — DocAssist for iOS now detects and surfaces voice-to-text failure scenarios with a clear error state instead of silently dropping the recording, making transient transcription errors recoverable for the user.
Fixed
- [EkaAgents] MedAssist web microphone restored — A temporary disablement of the microphone capture path in the MedAssist web widget was reverted on the same day after a regression was identified, restoring voice input.
Added
- [EkaAgents] Contextual popup in MedAssist web widget — The MedAssist web chat widget now supports a contextual popup, surfacing relevant suggestions and actions tied to the current conversation state.
Improved
- [EkaAgents] MedAssist nudge configurability — The onboarding nudge in the MedAssist web widget can now be disabled by integration partners that don’t want unsolicited prompts on first load.
Fixed
- [EkaAgents] Agent ID resolution in MedAssist web — Fixed a bug where the MedAssist web widget could resolve to the wrong agent ID under certain configurations, ensuring conversations always route to the configured agent.
Upgraded
- [Platform] eka-usage-sdk 0.1.1 — The eka-usage-sdk has been published at version 0.1.1, fixing the test runner and shipping the latest Kafka usage metric event definitions.
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.

