AANUSARAN Build-ready
Product + system blueprintIndia-first outpatient care

The visit ends.
The care loop doesn't.

Anusaran is a multilingual AI care companion that prepares the patient, assists the doctor, and holds every test, result, medicine and follow-up until the next safe action is taken.

BeforeIntake · history · consent
DuringListen · document · verify
AfterTrack · explain · escalate
अनुसरणCARE LOOPDoctor remains in control
2languages at launch
Hindi + English
3connected surfaces
Doctor · patient · WhatsApp
1source of truth
Signed clinical record
0autonomous prescriptions
Human approval, always

Not another
ambient scribe.

A scribe's job ends when the note is written. In outpatient care, that is when risk begins: tests are still pending, results return later, instructions are forgotten, and the ordering doctor may never see what happened next.

Build an agent scoped to the visit, not merely the conversation.

Anusaran creates the note, but its real product is the durable list of commitments created by that note—and the evidence-backed decisions needed to close them.

The note is crowded.
The risk is delayed.

Indian OPDs already have scribe products. The defensible gap is continuity: turning each order and instruction into a durable, owned workflow after the patient leaves.

AMBIENT SCRIBEConversation → note

Useful, increasingly available, and finished when documentation is complete.

ANUSARANVisit → verified decisions → closure

Drafts like a scribe, then keeps running for a week to close every commitment the clinician created.

1.8–2.2 minreported consultation time per patient in a high-volume super-speciality OPD
50.4 minreported waiting time versus 9.5 minutes of consultation in one tertiary OPD study
6.8–62%range of missed laboratory-result follow-up reported in the cited systematic review
1–35.7%range of missed radiology follow-up reported in the cited review
90%loss to follow-up reported in the cited Indian hypertension cohort
4–5 agentsthe coordination ceiling used to keep the core clinical workflow understandable

Planning figures are carried over from the supplied OPD direction brief; verify the underlying studies before using them as external clinical or commercial claims.

THE DEMO MOMENT

A result becomes a decision—not another notification.

  1. Day 0 · 11:40Doctor signs the visit and a medication plan. The system opens a result-review loop.
  2. Day 1 · Result arrivesA renal marker crosses a configured safety rule. The active prescription is re-evaluated.
  3. Doctor WhatsAppAn evidence-linked decision card arrives with safe, pre-drafted options—not an autonomous order.
  4. One tap after reviewThe signed decision becomes a Hindi or English patient message and voice note.

One visit. Three moments.
No abandoned promises.

The workflow deliberately touches the contested consultation as lightly as possible and does its best work before and after it.

01
50 minutes before

Patient arrives prepared

Phone OTP, consent, five Hindi/English voice questions, medicine photos and prior reports produce a concise pre-consult brief.

  • WhatsApp or patient PWA
  • Restricted red-flag screen
  • No diagnosis or advice
03
The next 7 days

Every loop gets an owner

Orders, results, medication reviews and follow-ups persist across restarts. Exceptions return to the doctor as decision cards.

  • Durable OpenLoop records
  • Hindi/English reminders
  • Escalate, never prescribe

Meet people where
the work already happens.

Four interfaces share one authorization model, one record, and one care-loop engine.

DOCTOR / WEBException inbox

Doctor dashboard

Today's queue, patient roster, unsigned notes, results requiring review, overdue loops and consent history—ranked by action required.

PATIENT / PWAHealth timeline
नमस्ते, Lakshmi
NEXT STEPBlood test tomorrow8:30 AM · City Lab

Patient companion

Approved notes, simpler explanations, prescriptions, reports, reminders and audio playback—never an unapproved AI draft.

WHATSAPPVoice + text
Namaste. Aapki follow-up kal hai. Kya aapne blood test karwa liya?
Voice message 0:12
Theek hai. Main clinic team ko bata raha hoon.

No new app required

Intake, voice notes, reminders, result uploads and human handoff. Sensitive records open behind authenticated links.

CLINIC / SIDECAREvidence review
MEDICATIONMetformin 500 mg▶ 07:03–07:07 · clinician
Confirm dose and frequency
2 fields verified

Fits the existing EMR

Use official APIs first, FHIR/HL7 second, structured export third, and browser-assisted entry only as a transitional fallback.

Deterministic spine.
Agentic nodes.

State transitions are code. Models operate only inside bounded nodes with typed inputs, typed outputs and auditable evidence.

CHANNELS

Doctor dashboardPatient PWAWhatsAppEMR sidecar

PLATFORM

FastAPI gatewayConsent + RBACVisit state machineCare-loop engine

INTELLIGENCE

OpenAI Responses APISaaras STTBulbul TTSSafety rules

DATA + INTEROP

PostgreSQL + RedisEncrypted object storeFHIR / ABDMAppend-only ledger
FRONTENDNext.js · TypeScript · React 19

Astryx behind product-owned wrappers, TanStack Query, React Hook Form and Zod.

BACKENDPython · FastAPI · uv

Pydantic contracts, SQLAlchemy 2, Alembic migrations and generated OpenAPI clients.

WORKFLOWSCelery now · Temporal later

Redis queue for the MVP; durable OpenLoop schema designed for production workflow migration.

DEPLOYMENTAWS Mumbai · Docker

ECS/Fargate, RDS, ElastiCache, S3, Cognito, KMS, Secrets Manager and WAF.

S0
Consent
S1
Intake
S2
Chart
S3
Consult
S4
Draft
S5
Verify
S6
Sign
S7
Loops
S8
Resolve

Six bounded jobs.
Not six autonomous minds.

Split components only when context, latency, failure cost or lifetime is materially different.

A01Patient-facing

Intake companion

Uses waiting time to collect the complaint, duration, medicines, allergies, old reports and a restricted red-flag screen. Never diagnoses or advises.

PreConsultBrief
A02Retrieval service

Chart assembler

Builds a short, sourced view of prior visits, trends, active medicines and confirmed OCR candidates. Retrieval code, not a free-roaming agent.

ChartContext
A03Clinician-facing

Documentation agent

Converts the diarised transcript into a structured encounter. Every field carries evidence; missing information remains empty.

EncounterDraft
A04Independent safety

Verifier

Sees the source and draft, not the generator rationale. Produces typed findings, combined with deterministic medication and identity rules.

VerifierFinding[]
A05Multi-day workflow

Care-loop agent

Holds every test, result, titration, follow-up and red-flag watch until its success condition is met or a human takes ownership.

OpenLoop[]
A06Patient-facing

Care companion

Explains signed instructions, runs approved check-ins and speaks Hindi or English. It escalates uncertainty instead of improvising care.

PatientMessage

Write the schemas
before the interface.

These contracts make provenance, abstention and resumability properties of the system rather than prompt requests.

EncounterDraft {
  visit_id
  locale_primary: "hi-IN" | "en-IN"
  soap: { s, o, a, p }
  fields: [{
    path, value,
    evidence: {
      segment_id, t0, t1, speaker,
      verbatim_source
    },
    confidence,
    confirm_required
  }]
  orders[]
  prescriptions[]
}
OpenLoop {
  visit_id, patient_id
  type: "lab_pending" | "result_review"
      | "follow_up" | "red_flag_watch"
  clinical_question
  active_rx_snapshot[]
  due_by
  owner: "patient" | "clinician" | "system"
  success_condition
  escalation_policy
  status: "open" | "nudged" | "satisfied"
      | "escalated" | "abandoned"
}
VerifierFinding {
  code: "UNSUPPORTED" | "CONTRADICTION"
      | "OMISSION_CRITICAL" | "RX_RISK"
      | "ORDER_UNMAPPED" | "SPEAKER_UNCERTAIN"
  severity: "blocking" | "warn" | "info"
  field_path
  message
  evidence_refs[]
}
LedgerEntry {
  visit_id, timestamp
  actor_id, actor_type
  model_id, prompt_version
  input_hash, output_hash
  findings[]
  clinician_delta
  override_reason
  latency_ms
}

One source of truth.
Every channel is a view.

PostgreSQL owns clinical state. WhatsApp, dashboards and the sidecar never maintain separate patient truth.

usersdoctor_profilespatient_profilesclinicsclinic_membershipscare_relationshipsconsentsappointmentsencountersrecordingstranscript_segmentsclinical_note_versionsprescriptionscare_plansopen_loopspatient_check_insalertsmessagesmodel_runsaudit_events
METHODENDPOINTINTENT
POST/v1/encountersCreate a consent-bound visit
POST/v1/encounters/{id}/recordingsUpload encrypted chunks
POST/v1/encounters/{id}/completeQueue final transcription
GET/v1/encounters/{id}/draft-noteFetch evidence-linked draft
POST/v1/encounters/{id}/signCreate immutable signed version
GET/v1/doctors/me/patientsAuthorized patient roster
GET/v1/doctors/me/alertsException-first clinical inbox
GET/v1/patients/me/timelinePatient-visible approved history
POST/v1/follow-upsCreate durable commitment
POST/v1/webhooks/twilio/whatsappValidated inbound channel
ACCESS RULEauthenticated AND correct_role AND active_clinic_membership AND active_care_relationship AND sufficient_consent

Warm enough to trust.
Clear enough to audit.

The companion can feel human without pretending to be one.

VOICE INSarvam Saaras v3

Code-mixed transcription, timestamps, batch diarisation.

THINKOpenAI structured output

Bounded tools, approved context, strict schemas.

VOICE OUTSarvam Bulbul v3

Hindi and Indian English, consistent calm voice.

COMPANION INTRODUCTION

“Namaste, main aapke clinic ka AI care assistant hoon. Main aapko doctor ki instructions samjha sakta hoon.”

  • Short responses
  • Natural pauses
  • Patient can interrupt
  • Always identifies as AI

Unsupported is a state.
Abstention is a feature.

A better prompt is not a safety system. Safety comes from representation, permissions, deterministic gates and human ownership.

01

Evidence required

No transcript span or chart pointer means the field fails validation.

02

Catalogue-bound

Drugs and tests resolve against the clinic's real formulary and master.

03

Critical confirmation

Drug, dose, frequency, allergy, order and uncertain speaker always require review.

04

Independent checks

Typed AI critique is combined with deterministic medication and identity rules.

05

Doctor signs

No prescription or change reaches the patient without a registered practitioner.

06

Immutable history

Drafts, edits, signatures, overrides and model versions remain auditable.

THE AGENT NEVERDiagnoses independentlyStarts or stops medicineHides uncertaintyHandles emergencies aloneExposes unapproved drafts

Build the record first.
Earn the companion later.

The exciting voice experience sits on top of a reliable signed record, consent model and durable workflow.

PHASE 01 · WEEKS 1–4

Doctor copilot

Identity, patient registration, consent, recording, Saaras transcription, structured notes, evidence review and signature.

SHIP: safe documentation loop
PHASE 02 · WEEKS 5–7

Two dashboards

Doctor exception inbox, patient timeline, approved notes, prescriptions, reports, permissions and audit history.

SHIP: longitudinal record
PHASE 03 · WEEKS 8–10

Care loops + WhatsApp

Durable tasks, reminders, result ingestion, voice notes, patient check-ins and clinician decision cards.

SHIP: closed-loop care
PHASE 04 · WEEKS 11–12+

Voice companion

Streaming speech, interruption, language preference and carefully scoped tools over approved care plans.

SHIP: the Baymax feeling

Release gates

≥ 0.90drug + dose F1
0unsupported structured claims
< 20smedian seconds to sign
< 2doctor edits per note
Reportfalse escalations / 100 results

One prompt to start
the implementation.

This brief contains the product surfaces, stack, invariants and release order. Copy it into Astra, then build Phase 1 before opening the scope.

Build Anusaran, an India-first AI care-loop platform for outpatient clinics.

PRODUCT
- Core wedge: an OPD agent scoped to the visit, not just the conversation. It drafts the note, then keeps every test, result, dose review and follow-up alive until resolved.
- Doctor dashboard: today's queue, patient roster, drafts awaiting signature, open loops, result-review cards, messages, and consent history.
- Patient PWA: approved visit timeline, prescriptions, reports, reminders, Hindi/English explanations, audio playback, and an AI care companion.
- WhatsApp companion: pre-visit intake, voice notes, reminders, result uploads, structured check-ins, and human escalation.
- EMR sidecar: consultation recording, evidence-linked transcript, structured note review, and safe export into an existing EMR.

STACK
- Frontend: Next.js, TypeScript, React 19, Astryx design system, TanStack Query, React Hook Form, Zod.
- Backend: Python 3.12, FastAPI, uv, Pydantic, SQLAlchemy 2, Alembic.
- Data: PostgreSQL, Redis, S3-compatible encrypted storage.
- Workflows: Celery for MVP; design OpenLoop state for later Temporal migration.
- Identity: Amazon Cognito; roles and record authorization enforced in PostgreSQL and FastAPI.
- Clinical AI: OpenAI Python SDK using the Responses API and strict structured outputs.
- Speech: Sarvam Saaras v3 for Hindi-English code-mixed STT; Sarvam Bulbul v3 for Hindi/Indian-English TTS.
- Messaging: Twilio WhatsApp for MVP.
- Deployment: Docker on AWS ECS/Fargate in Mumbai, RDS, ElastiCache, S3, KMS, Secrets Manager, WAF, OpenTelemetry and Sentry.

NON-NEGOTIABLES
- A visit is a deterministic S0–S8 state machine: consent, intake, chart, consult, draft, verify, sign, loops, resolve.
- Every clinical field must reference transcript or chart evidence.
- Preserve the original-language evidence span beside every translated field.
- Drug, dose, frequency, allergies, orders and speaker uncertainty always require explicit verification.
- Resolve drugs and tests against each clinic's catalogue; never let a model persist a raw drug or test string as clinical truth.
- Only doctor-signed records are official or patient-visible.
- The AI never independently diagnoses, prescribes, stops medicine, or handles emergencies.
- Store immutable note versions and an append-only audit ledger.
- Patient access is based on consent and care relationships; a doctor never 'owns' a patient.
- WhatsApp is a channel; PostgreSQL remains the source of truth.
- Emit ABDM-compatible FHIR R4 resources for OP consultation, prescription and diagnostic reports.

OPD MONEY SHOT
- A medicine is continued during the visit. A renal result returns the next day and crosses a configured safety threshold. The Loop agent re-evaluates the result against the signed prescription, creates a clinician decision card with evidence and pre-drafted options, and waits. Only after the doctor approves does the patient receive a Hindi/English message or voice note.

DELIVER IN PHASES
1. Doctor copilot: auth, patient registration, consent, recording, STT, structured note, evidence review, signature.
2. Dashboards: doctor exception inbox and patient timeline.
3. Care loops: durable tests, results, medications, follow-ups and escalation cards.
4. WhatsApp: text/voice intake, reminders, uploads and human handoff.
5. Voice companion: streaming STT/TTS, interruption, preferences and approved-care-plan tools.

Start as a modular monolith. Generate OpenAPI types for the frontend. Include migrations, tests, seed fixtures, audit events, tenant isolation, retry/idempotency logic, and synthetic Hindi-English consultation fixtures.