Part 1: The Voicebot
The AI clinical assistant that calls your patients so you don't have to
Built on Kore.ai's conversational AI platform, the bot conducts intelligent, adaptive health check-in
calls with patients. It speaks naturally, handles unexpected responses gracefully, extracts clinical
entities from speech, and escalates when it detects risk, all in real time.
Every call is structured across three sequential flows:
FLOW 1: Intro Flow (Patient Identification + Overall Wellbeing)
Outbound Call Initiation: The call is triggered automatically based on the patient's monitoring
schedule stored in the database.
Greeting:
"Hello [Patient Name], my name is [botname], your doctor's assistant."
Small Talk Module (pilot phase) A brief, warm conversational opener based on the patient's known
hobbies and interests, pulling data from the monitoring form (e.g., hiking, nature, travel) to
establish rapport before the clinical questions begin.
Question 1: Patient Identity Verification
"Could you please provide your patient ID number?"
| Patient Says |
System Action |
| Provides valid ID (e.g., 1485) |
Verified and fetches the patient profile, proceeds |
| Provides unrecognized ID |
"Sorry, could not recognize your Patient ID, please try again." loops back |
| Says, "I don't know my number." |
Routes to fallback retry → if still unresolved, escalates to a human agent |
Question 2: Overall Health Assessment
"Hello [Name], how are you doing overall compared to yesterday?"
| Patient Says |
Bot Response |
| "I feel very good." |
Logs positive sentiment, proceeds to Flow 2 |
| "I feel about the same as yesterday." |
Logs neutral, proceeds |
| "I feel bad, worse than yesterday." |
"I am sorry to hear that. What specifically makes you feel worse?" |
| Something unrecognized |
"Sorry, I did not get that. Could you please repeat?" re-prompts up to 2x |
If the patient describes feeling worse:
-
Clear answer (identifies symptom or reason) → logged with entity, proceeds
-
Unclear or no answer → "I am sorry, I did not catch that. Could you repeat the issue in different
words?" → if still unclear, flags for human review
FLOW 2: Patient-Specific Monitoring
Adaptive clinical assessment across 5 health dimensions
This is the bot's core clinical engine. Each area uses entity extraction, branching logic, and
threshold-based escalation to go beyond simple yes/no answers, extracting clinically meaningful data
from natural speech.
Question 1: Chronic Pain Sequence
"Do you feel any regular pain today?"
Key Entities Extracted: PainRating (1–10) · pain_id (body part)
-
No / Not sure → logged, proceeds
-
Yes → "Where do you feel the pain?"
-
-
Patient identifies body part (e.g., back, hip, knee) → entity extracted
-
"Last time you spoke about your lower back pain, do you feel it today?" (references prior
call data)
-
"On a scale of 1–10, how significant is your pain today, where 1 is barely noticeable, and 10
is agonizing?"
-
Patient identifies a number → logged
-
Patient unclear → "Sorry, I did not get that, could you please repeat?"
-
"Ok, noted. Any other pain?" → Yes loops back / No proceeds
Hip Pain Specific Sub-Flow (condition-specific):
"How is your hip pain compared to yesterday?"
Question 2: Blood Pressure Sequence
"Have you measured your blood pressure today?"
Key Entity Extracted: BloodPressure, two separate numeric values:
systolic/diastolic
The bot is trained to recognize blood pressure stated in any natural format, "one twenty over
eighty", "120/80", "it was high this morning", and normalize it to a numeric pair.
Classification Logic:
| Reading |
Classification |
Action |
| Systolic < 100 |
Low
|
Flagged, doctor notified |
| Systolic 101–130 |
Normal
|
Logged, proceed |
| Systolic 131+ |
High
|
Emergency Alert Triggered |
-
Patient hasn't measured → "Can you measure your blood pressure now? I will wait." or "That's
okay, please try to measure it before tomorrow."
-
If a patient reports a very high reading → bot immediately escalates: "That reading is
concerning, I am notifying your doctor right now." → Emergency node fires → doctor alerted in real
time
Question 3: Sleep Monitoring Sequence
"How did you sleep last night?"
Key Entities Extracted: SleepTime (hours) · Hours/quality descriptors (restful,
broken, difficulty falling asleep)
-
Slept well → logged positive
-
Did not sleep well → "Tell me specifically what affected your sleep last night?"
-
-
Identifies disturbance (pain, anxiety, noise) → entity captured
-
Patient unclear → re-prompt with fallback
-
"How many hours did you sleep?" → numeric extraction
-
Sleep quality index calculated and compared to the patient's baseline
-
Deteriorating patterns across multiple calls → flagged to doctor with commentary
Question 4: Hydration Monitoring
"How much water/fluids have you had today?"
Key Entity Extracted: Litres_of_fluids
Question 5: Medication Intake Monitoring
"Have you taken today's dose of [PrescribedMedicine1]?"
Key Entities Extracted: Medication_name · Prescription_id · Prescription_admin
(dosage, timing, method)
| Patient Says |
Bot Action |
| "Yes, I have" |
Compliance logged, proceed |
| "What medication is that?" |
Bot reads full prescription: "You have [Med] prescribed to take 1 pill every morning with
breakfast. Have you taken those?"
|
| "No, I have not." |
"I see, why haven't you taken the medicine?" |
| → "I forgot." |
"Let me remind you, your doctor prescribed [Med] at [dosage/time]." Reminder logged
|
| → "It made me feel bad." |
"How did it make you feel bad? What did it do to you?" |
| → Patient describes symptom |
"Alright, I will notify your doctor of this side effect." → Doctor alert triggered immediately
|
| → Unrecognized response |
"Sorry, I did not get that. Could you please repeat?" |
FLOW 3: Outro Flow
Closing the loop, two-way communication between the patient and the doctor
Optional Announcement Module: If the doctor has left a message for the patient, the
bot reads it at the end of the call:
"Your doctor has left the following message for you: [Doctor's message]."
Question 1: Patient Message to Doctor:
"Would you like to leave any message for your doctor?"
| Response |
Action |
| "Yes" + says message |
Transcribed and logged → sent to doctor portal |
| "Yes" (without message) |
"Ok, please say your message" → captures it |
| "No" |
Proceeds to closing |
| No answer / unclear |
"I am sorry, I did not catch that. Could you repeat the issue in different words?" |
Closing:
"Thank you for your time today. All the information will be sent to your doctor, and I will talk to
you again on [Next Scheduled Date]."
Every patient response throughout the call is passed through Kore.ai's NLP sentiment engine. Beyond
clinical data, the bot detects emotional indicators, distress, sadness, confusion, and anxiety in the
patient's language and tone. A sentiment score is appended to every call record, feeding into the
overall wellness assessment on the doctor's dashboard.