Sanjeevani — Autonomous Patient Follow-Up That Doesn't Stop at the Dashboard
Inspiration
In rural and underserved communities, a healthcare interaction often doesn't end with a diagnosis or a recommendation — the harder problem is what happens after the patient leaves.
Symptoms can worsen between visits. Medication adherence can change. A follow-up that looked unnecessary a few days ago can suddenly become important. For ASHA workers and community health workers managing many patients, continuously monitoring these changes and manually following up with every patient is difficult.
We built Sanjeevani around a simple question:
What if a healthcare AI could notice that a patient is getting worse, understand their longitudinal history, decide that follow-up is necessary, and actually reach the patient — instead of simply putting an alert on a dashboard?
That's where CALL-E became an essential part of the system.
What it does
Sanjeevani is an agentic longitudinal healthcare system that continuously turns patient health events into actionable follow-up. Instead of treating every patient interaction as an isolated conversation, it maintains a longitudinal patient context and can:
- Understand patient conversations through Vaidya
- Convert relevant information into structured patient events
- Analyze changes in a patient's trajectory
- Generate a Care Decision
- Determine whether an automated follow-up is appropriate
- Schedule a follow-up call
- Use CALL-E to actually reach the patient
- Convert the conversation into a structured health event
- Trigger another Sanjeevani reassessment and update the next care decision
The result is a closed loop:
Patient conversation
↓
Patient Event
↓
Sanjeevani longitudinal reasoning
↓
Care Decision
↓
Follow-up scheduling
↓
CALL-E phone call
↓
Patient response
↓
New Patient Event
↓
Reassessment
↓
New Care Decision
The phone call is not the end of the workflow — it becomes another piece of the patient's longitudinal health record.
Why CALL-E
Most healthcare AI systems stop at "the patient may need follow-up," leaving the most important operational step to a human. Sanjeevani uses CALL-E to bridge the gap between AI reasoning and real-world patient interaction: when the system determines a patient meets predefined criteria for automated follow-up, it creates a controlled follow-up event, and CALL-E becomes the communication layer that reaches the patient by phone. The response is converted back into structured information and fed into Sanjeevani.
CALL-E isn't an add-on feature — it's the action layer that lets Sanjeevani's care loop leave the dashboard and reach the patient.
How it works
1. Vaidya listens to the patient
The patient interacts with Vaidya in their preferred language. Relevant information — worsening symptoms, difficulty following medication, a new symptom, improvement or deterioration — becomes a PatientEvent.
2. Sanjeevani looks at the trajectory Rather than reacting to only the newest message, Sanjeevani considers the patient's full longitudinal context: previous events, trajectory, risk, symptoms, medication adherence, and prior care decisions. This lets it distinguish "the patient mentioned a symptom" from "this patient's condition appears to be worsening compared with their previous state."
3. The agent creates a Care Decision A structured Care Decision is produced, containing risk level, priority, recommended action, follow-up interval, key signals, reasoning, and an ASHA-facing message. Clinical reasoning is deliberately separated from communication execution — not every concerning event triggers a call.
4. Deterministic safety rules gate CALL-E The LLM never unilaterally decides to place a call. An automated follow-up call requires:
decisionType = increase_followup- AND
riskLevel = high OR critical - AND
priority = high OR urgent - AND a valid patient phone number on file
Other decision types are routed differently:
| Decision | Action |
|---|---|
maintain_followup |
No automated call |
increase_followup + high/critical risk |
Controlled follow-up call |
urgent_review |
ASHA / in-person review |
escalate |
Professional intervention |
This separation keeps the system auditable and prevents uncertainty from silently becoming an automated phone call.
5. Sanjeevani schedules the follow-up
Instead of calling immediately, Sanjeevani creates a FollowUpCallEvent (e.g., Patient: Meena Patil — Risk: High — Priority: Urgent — Reason: worsening trajectory — Follow-up: scheduled in 3 days). The scheduler prevents duplicate calls for the same care decision and re-checks the patient's current state before execution — if the situation has changed, the scheduled call is cancelled rather than blindly fired days later.
6. CALL-E reaches the patient When the scheduled event comes due, Sanjeevani's communication layer invokes CALL-E. The call is designed as a follow-up interaction, not an autonomous diagnosis, and collects: whether the patient was reached, current health status, symptoms reported, medication adherence, whether urgent attention is needed, patient notes, and recommended next action.
7. The call becomes a Patient Event
The CALL-E result isn't just displayed and forgotten — it's transformed into a new PatientEvent (e.g., patient reached → symptoms worsened → medication adherence partial → needs urgent attention), written into the patient's longitudinal record.
8. Sanjeevani reassesses the patient That new event re-triggers the reassessment pipeline, producing another Care Decision. The system isn't AI → Call → Done — it's a genuine feedback loop: AI → Call → New information → AI reassessment → New decision.
Built for human oversight
Sanjeevani is not designed to replace ASHA workers. The ASHA dashboard gives them full visibility: patients requiring attention, risk and trajectory, care decisions, scheduled follow-ups, completed CALL-E calls, structured call outcomes, whether reassessment occurred, and the resulting care decision. It's an agentic assistant with human oversight, not an opaque autonomous medical system.
What we built for this hackathon
Sanjeevani was an existing healthcare system; here's what we added specifically for CALL-E:
CALL-E integration layer
- CALL-E API integration
CallRecordmodel- CALL-E communication agent
Safety and decision logic
- Deterministic safety-gating logic
- CALL-E eligibility evaluation
Autonomous scheduling and execution
- Autonomous follow-up call scheduling
- Scheduled call execution
Closed-loop processing
- CALL-E result processing
- Converting call outcomes into
PatientEvent - Automatic Sanjeevani reassessment
- Completed-call feedback loop
ASHA experience
- ASHA dashboard call visibility
- Real-time "Vaidya is making a call" notification
Challenges we ran into
Building Sanjeevani meant solving a harder problem than simply connecting an AI model to a phone-call API. The biggest challenge was deciding when the system should actually call a patient — we didn't want every AI-generated recommendation to trigger an automated call, especially in a healthcare setting. We introduced deterministic safety checks around the agent's decision: the patient must have a valid phone number, the decision must indicate an increased follow-up need, and the risk and priority must meet defined thresholds.
Another challenge was making the phone call part of the care loop rather than a one-way notification. A completed CALL-E conversation needed to become structured data that Sanjeevani could reason about again — so we designed the flow so a call outcome becomes a new PatientEvent, which triggers reassessment and can lead to a new care decision.
We also had to keep the system asynchronous: the healthcare agent shouldn't be blocked waiting for a phone call to finish. This led us to separate call scheduling, execution, result processing, and reassessment into distinct stages.
Accomplishments that we're proud of
We're proud that CALL-E isn't just a feature bolted onto Sanjeevani — it becomes an actual action layer for the agentic care system. Sanjeevani can take a patient's changing health signals, reason over their longitudinal history, generate a care decision, determine whether a follow-up call is appropriate, schedule the call, and use the resulting conversation to reassess the patient. We built a complete feedback loop:
Patient signal → AI reasoning → Care decision → CALL-E phone call
→ structured outcome → new patient event → reassessment → updated decision
We're especially proud of keeping human oversight in the system. CALL-E handles the conversation, but Sanjeevani does not attempt to replace clinical judgment or autonomously diagnose or prescribe — the ASHA dashboard remains the place where care decisions and patient trajectories are reviewed.
And technically, we integrated CALL-E into an existing, working healthcare agent system rather than building a demo that only exists for the hackathon.
Agent architecture
Sanjeevani follows an agentic lifecycle:
OBSERVE → REMEMBER → ANALYZE → ASSESS → REASON → PLAN → EXECUTE → COMMUNICATE → REPLAN
CALL-E is integrated into the COMMUNICATE / EXECUTE layer, with resulting patient information feeding back into the next reasoning cycle.
Built with
- Frontend: React, Vite, JavaScript, Axios, React Router
- Backend: Node.js, Express, MongoDB, Mongoose
- AI: Groq (Sanjeevani reasoning), existing Sanjeevani agent/orchestrator architecture
- Voice / Communication: CALL-E API, structured call outcomes,
CallRecordpersistence
Why this matters
The real-world problem isn't simply "can AI understand a patient?" — AI can increasingly do that. The harder problem is: can an AI system continuously understand what is changing, decide what action is appropriate, take that action, learn from the result, and keep a human informed?
Sanjeevani is our attempt to build that loop. CALL-E gives the system something a dashboard alone cannot: the ability to reach the patient.
What's next
- Improve autonomous scheduling reliability
- Better failure handling and controlled retry behavior
- Recurring follow-up workflows
- Richer ASHA-facing visibility
- Longitudinal care analytics
The core principle stays unchanged: AI should not just tell a healthcare worker what might need to happen next — it should help make the next appropriate action happen, safely, transparently, and with humans in the loop.
Built With
- agentic
- agents
- ai
- automation
- call
- call-e
- community
- conversational
- follow-up
- healthcare
- multilingual
- patient
- phone
- rural
- telehealth
- voice
Log in or sign up for Devpost to join the conversation.