01
Module 1 — Doctor EHR
The clinical workspace,
built for doctor speed
A clean, fast electronic health record. Every common action — SOAP note, prescription, lab
order, consent trigger — reachable in 2 clicks or fewer. Wired to HAPI FHIR R4 as the source of truth.
📅
Appointment Calendar
Day, week, and agenda views with multi-doctor columns. Drag to reschedule. Color-coded by
type. Tracks status from booked → arrived → in-progress → completed.
Drag to rescheduleMulti-doctorReal-time slots
🗂
Full Patient Chart
Every visit, note, prescription, lab result, consent form, and invoice — in one
scrollable timeline. Download the complete record as PDF anytime. Allergy list always visible at the top.
Full historyPDF exportAllergy list
✍️
SOAP Note Editor
Structured S / O / A / P fields. AI draft button fills the note from the voice
transcript. ICD-10 code lookup built into Assessment. One-click sign — PDF generated and stored
automatically.
AI draftICD-10 lookupDigital signAuto PDF
💊
e-Prescriptions
Drug name autocomplete with generic alternatives. Set dosage, route, frequency, duration,
refill count. Controlled-substance flagging. PDF auto-sent to patient via WhatsApp on save.
Drug autocompleteControlled-substance
flagAuto WA delivery
🔬
Lab Orders & Results
Order labs from a catalog. Track status ordered → collected → resulted → delivered. When
results are uploaded, the PDF is automatically sent to the patient via WhatsApp. No staff action needed.
Lab catalogStatus trackingAuto delivery
👥
Multi-Doctor & Roles
Unlimited practitioners. Each doctor has their own calendar, digital signature, and
license number on PDFs. Four roles: Doctor, Nurse, Coordinator, Admin — each sees only what they need.
Unlimited doctors4 rolesDoctor-scoped views
02
Clinical Foundation — FHIR R4
Your data in an open standard
— yours forever
HAPI FHIR R4 is the source of truth for all clinical data. Self-hosted on your own AWS
account. No third-party vendor holds your records. Fully exportable and portable to any FHIR system in the
world.
12 clinical data types stored
Patient
Demographics, contacts, language preferences
Encounter
Every visit — in-person and telehealth
Observation
Vitals — BP, HR, temp, weight, SpO₂
Condition
ICD-10 diagnoses with clinical status
MedicationRequest
Prescriptions with full dosing details
DiagnosticReport
Lab results with PDF attachment
Consent
eConsent records with signing audit
Appointment
Scheduling with slot allocation
Clinical events trigger actions automatically
1
Encounter finished
Invoice created + NPS survey queued
Odoo billing record auto-created. NPS WhatsApp scheduled for 24 hours later. Zero
staff effort.
2
Lab result finalized
Patient notified immediately
WhatsApp sent with interpretation (normal / high / low) and a PDF download link.
3
Prescription created
Medication details sent to patient
Patient receives dosing instructions and PDF before leaving the clinic.
4
Consent signed
EHR badge turns green instantly
Doctor sees real-time update. All scheduled reminders cancelled automatically.
ℹ️
HAPI FHIR 7.4 — open-source (Apache 2.0), running on your own AWS account. Your data never
goes to a third-party FHIR vendor. Supports full bulk export for complete data portability at any time.
03
Module 2 — Patient Portal
Patients help themselves —
no app download needed
A Progressive Web App (PWA) that works in any browser. Patients book appointments, sign
consent forms, view lab results, and join video calls — all from a WhatsApp link. Nothing to install.
PWA
iOS, Android & desktop
Offline
Service worker cache
SSO
Keycloak or token-based
📋
Self-Service Booking
Patients see real doctor availability and book, reschedule, or cancel appointments. No
phone call to the clinic needed.
✍️
Consent Form Signing
Tap the WhatsApp link → read the document → draw signature → submit. No login. No app.
Done in under a minute.
🎥
Join Telehealth Video
One tap from the WhatsApp reminder. Browser opens, camera tested, patient joins the video
call. No install, no confusion.
🧪
Lab Results
Results appear the moment the doctor uploads them — with reference ranges,
interpretation, and a PDF download.
🧾
Prescriptions & Invoices
Every prescription and invoice from every visit. Downloadable PDFs with line items, IVA
breakdown, and payment status.
🔔
Push Notifications
Browser push even when the app is closed — lab ready, appointment reminder, consent
pending, new coordinator message.
04
Module 3 — Voice AI + SOAP Drafting
Give doctors back an
hour every day
Voice scribe listens during the consultation, transcribes with on-device AI — audio never
leaves your server — then Claude drafts a complete SOAP note in under 30 seconds. Doctor reviews and signs.
On-device
Audio never leaves server
ES + EN
Bilingual transcription
How it works — 6 steps
1
Doctor taps the microphone button
Ambient listening starts. The browser captures audio using the native MediaRecorder API.
Any laptop or tablet microphone works — no special hardware needed.
2
Audio streams to your Voice Service
Audio chunks stream in real time to the Vriksha Voice Service running inside your own AWS
environment. Encrypted in transit. Never sent to a third-party STT provider.
3
On-device engine transcribes the conversation
sherpa-onnx — an open-source model — runs inside your container. Spanish-optimized. Under
500ms latency per audio chunk. Patient audio stays completely private.
4
Text transcript sent to Claude AI
Transcript + patient context (age, gender, chief complaint, vitals) sent to Claude API.
Only the text transcript leaves your infrastructure — never the audio recording.
5
Complete SOAP note drafted in under 30 seconds
Claude returns all four sections — Subjective, Objective, Assessment (with ICD-10
suggestions), and Plan (with follow-up timing). Pre-filled in the editor and clearly labeled "AI Draft."
6
Doctor reviews, edits, and signs
One read-through, any edits needed, then sign. Note locks to the encounter. PDF generated
and stored. Audio recording deleted post-signing for patient privacy.
Additional AI capabilities
🏷
ICD-10 Auto-Coding
Claude suggests diagnosis codes in the Assessment section. Doctor selects and confirms —
never auto-applied without review.
💊
Medication Suggestions
Based on the diagnosis, Claude suggests common first-line medications with dosing. Doctor
adds to the prescription with one click.
📅
Follow-Up Timing
Claude recommends follow-up timing based on the condition. Pre-fills the "return in X
days" Plan field automatically.
🎙
Voice Commands
"Open next patient", "Add 120/80 BP", "Schedule follow-up in 7 days" — doctor speaks,
system responds, without typing.
🛡️
AI Safety: All AI output is clearly labeled "AI Draft." The system never auto-signs a note.
No AI action modifies the patient record without the doctor explicitly confirming it first.
05
Communication — WhatsApp
4,000 patient messages
a month. Zero staff effort.
Eight automated message flows, triggered by clinical events in real time. All Meta Business
API approved and ready before go-live. Your coordinators focus on care — not copy-pasting messages.
| Message |
When it sends |
What the patient receives |
|
Booking Confirmation
Immediate
|
The moment an appointment is booked |
Doctor name, date, time, location, and a link to reschedule or cancel |
|
Consent Form
On booking
|
Sent with the booking confirmation (or manually by doctor) |
Consent type description, signing link (expires in 72 hours) |
|
Reminder — 24 hours
Scheduled
|
Exactly 24 hours before the appointment |
Appointment details — reply "1" to confirm, "2" to cancel |
|
Reminder — 2 hours
Scheduled
|
2 hours before the appointment |
Brief reminder — includes video join link if it's a telehealth visit |
|
Lab Results Ready
Real-time
|
The moment results are uploaded by staff |
Test name, interpretation (normal / high / low), PDF download link |
|
Prescription Ready
Real-time
|
When the doctor saves a prescription |
Medication name, dosing summary, PDF download link |
|
Invoice Delivery
Within 5 min
|
After the appointment is completed |
Invoice total, service breakdown, PDF download link |
|
NPS Survey
+24 hours
|
24 hours after the appointment ends |
"How was your experience with Dr. X? Reply 1–10." Score ≤ 6 alerts the coordinator. |
💬
Inbound replies are handled automatically. Patient replies "1" → appointment confirmed. "2"
→ cancelled. A 1–10 NPS reply → score stored. "STOP" → opt-out recorded. Anything else → routed to
coordinator's queue.
⚠️
Max 3 automated messages per patient per day. All 8 templates are Meta-approved before
go-live. Patients can opt out at any time by replying STOP.
06
Module 4 — Telehealth
SOAP note already drafted
when you hang up
Daily.co video embedded directly in the EHR. Voice scribe runs during the call. When it ends,
the SOAP draft is waiting. Patients join from the WhatsApp reminder link — no app, no account.
1
Telehealth appointment booked
A unique Daily.co video room is automatically created and the link stored with the
appointment. Room expires 2 hours after the scheduled end — no stale links.
2
Patient receives the video link via WhatsApp 2 hours before
Patient taps the link — browser opens, camera and mic tested, patient joins. No login, no
install, no confusion.
3
Doctor opens the encounter — video and SOAP are side by side
The video call is embedded next to the SOAP note editor in the EHR. Doctor sees patient
video on the left, note editor on the right. No window switching.
4
Voice scribe captures the consultation in the background
Transcript builds in real time in the scribe panel while the doctor and patient talk
normally.
5
Call ends → SOAP draft is ready in under 30 seconds
Doctor clicks End Call. Claude generates the complete SOAP note from the transcript.
Doctor reviews, edits if needed, signs. Done.
6
Session recording saved (with patient consent)
If the patient consented to recording in the pre-visit consent form, the video is saved
to S3 and linked to the encounter in the patient chart.
🔒
HIPAA-eligible: Daily.co offers a Business Associate Agreement (BAA). All video calls are
encrypted end-to-end. Room tokens expire after the appointment — no unauthorized access ever possible.
07
Module 5 — e-Consent
Patient signs from the waiting room
on their phone
Doctor clicks one button. Patient gets a WhatsApp link. Patient reads the form, draws their
signature, and submits. Doctor sees "Signed ✓" in real time. No paper, no scanner, no delays.
How it works — 5 steps
1
Doctor triggers consent in EHR
One click. Select the consent type. System creates a FHIR Consent record and a
secure, time-limited signing link.
2
WhatsApp link sent in seconds
Patient's phone buzzes. No login required — a unique token in the URL identifies
them. Link expires in 72 hours.
3
Patient reads and signs
Reads the consent document in the browser, then draws their signature with a finger
on the touchscreen. Tap to confirm.
4
Signed PDF created and stored
Signature merged into the consent document. PDF uploaded to S3 and linked to the
patient encounter in FHIR.
5
EHR badge turns green in real time
Doctor gets an instant status update. Doctor can proceed with treatment. All
scheduled reminder jobs automatically cancelled.
Four consent types included
📄
General Treatment
Standard consent for outpatient consultations
💉
IV Therapy
Required before any intravenous treatment
🩹
Minor Surgical Procedure
For procedures requiring formal written consent
🎥
Telehealth + Recording
Video consult consent and optional session recording
⚖️
Legally defensible audit trail. IP address, user agent, timestamp, and signing data
recorded for every signature. 10-year retention per Colombian health law (Ley 1581).
08
Module 6 — Billing & Invoicing
Invoice in the patient's hands
before they reach their car
Appointment completed → Odoo creates the invoice → PDF generated → WhatsApp delivers it within
5 minutes. No manual billing steps. IVA-compliant for Colombia.
Invoice lifecycle
1
Doctor marks appointment completed in EHR
FHIR Encounter status flips to "finished" — this is the trigger for the entire billing
chain.
2
Odoo invoice auto-created
Middleware creates the billing record in Odoo. Patient matched to their Odoo partner.
Line items pulled from the clinic's configurable service price catalog.
3
PDF generated with your clinic's branding
Custom invoice template: clinic header, doctor name and license, diagnosis code, IVA line
breakdown, total in both COP and USD.
4
WhatsApp delivers the PDF automatically
Patient receives a download link within 5 minutes of the appointment ending. Zero staff
involvement.
5
Payment recorded — status updated everywhere
Staff records payment method (cash, card, Nequi, Daviplata). Invoice status flips to
"paid" in Odoo and in the patient portal simultaneously.
🇨🇴
Colombia IVA Compliant
19% IVA applied automatically per Colombian tax law. Line-level IVA breakdown printed on
every invoice.
💱
Dual Currency Display
Stored in COP. Every invoice shows both COP and USD at the current day's exchange rate.
📊
Revenue Reports
Revenue by doctor, service type, and month. Full P&L and cash flow dashboard built into
Odoo.
⏰
Overdue Tracking
Odoo tracks unpaid invoices, sends coordinator alerts, and triggers a follow-up reminder
sequence.
09
Module 7 — Business OS
The back-office runs itself
on Odoo 17
Odoo 17 Community handles everything non-clinical — HR, inventory, procurement, patient CRM,
and full accounting. Three custom Vriksha.Health modules tie it directly to the FHIR clinical layer.
👥
HR & Payroll
Doctor and staff contracts, attendance tracking, payroll calculation, leave management,
and overtime rules — all in one place.
📈
Patient Pipeline (CRM)
Track patients from first contact → intake → first visit → active → retention risk.
Custom pipeline stages built for healthcare clinics.
📦
Medical Supply Inventory
Stock management for consumables, medications, and equipment. Low-stock alerts and
automatic reorder thresholds.
💰
Full Accounting
Double-entry accounting, bank reconciliation, expense tracking, supplier invoices, and
financial reporting. No separate accounting software needed.
🔗
FHIR Patient Sync
Every FHIR patient is automatically mirrored in Odoo as a customer record. Bidirectional,
real-time. Clinical and business data always in sync.
💬
WhatsApp Dashboard
Coordinator sees all outbound messages, delivery status, and inbound patient replies in
one Odoo view. No switching apps.
10
Platform — Security
Healthcare-grade security
from the first day
Keycloak SSO across all services. All data encrypted at rest and in transit. Full audit log of
every action. Compliant with Colombian Ley 1581 (data protection) and aligned with HIPAA-eligible AWS services.
🔐
Single Sign-On — Keycloak
One login for the EHR, patient portal, and all services. Separate realms for staff and
patients. Optional two-factor authentication for doctors.
🔒
Encryption Everywhere
Database encrypted with AWS AES-256. S3 documents encrypted at rest. All connections use
TLS 1.3. No unencrypted HTTP anywhere.
📋
Full Audit Log
Every create, read, update, delete, sign, and export — logged with actor ID, role,
resource type, IP address, and timestamp. 10-year retention. Append-only table.
🌐
Network Isolation
Databases live in isolated AWS subnets with no internet access. Only the load balancer is
publicly reachable. All internal services communicate via private VPC.
🎫
Token-Based Consent Signing
Patients sign without a login — a 64-character secure token in their WhatsApp link.
Expires in 72 hours. Single-use. Signer IP and timestamp logged on every submission.
🧱
Role-Based Access Control
Doctor, Nurse, Coordinator, Admin — each role sees only what they need. FHIR
resource-level authorization enforced on every API call, not just at the UI level.
11
Platform — Infrastructure
Production AWS hosting —
fully included
Everything runs on AWS ECS Fargate — serverless containers, nothing to patch or manage.
Multi-AZ database redundancy. 99.9% uptime SLA. Provisioned and managed by Vriksha. Included in your $999/month.
Multi-AZ
Database redundancy
$290
AWS cost at 500 patients/mo
0
Servers to manage yourself
| Service |
What it does |
Technology |
| Clinical data store |
FHIR R4 REST API — stores all patient records, encounters, and labs |
HAPI FHIR 7.4 |
| Integration bus |
Routes events between services, triggers WhatsApp and billing automatically |
Node.js |
| Business OS |
Billing, HR, patient CRM, inventory, accounting |
Odoo 17 |
| Auth server |
SSO for all services, role management, JWT token issuance |
Keycloak 24 |
| Voice AI |
Speech-to-text transcription and SOAP note drafting pipeline |
sherpa-onnx |
| Database |
4 isolated PostgreSQL databases (FHIR, Odoo, Keycloak, App) |
RDS PostgreSQL 15 Multi-AZ |
| Job queue |
Scheduled WhatsApp messages, consent reminders, NPS surveys |
BullMQ Redis |
| Document storage |
Consent PDFs, lab results, invoices, voice recordings |
AWS S3 |
| Patient Portal & EHR |
React PWA and EHR served globally from the nearest edge location |
CloudFront + S3 |
12
Platform — Third-Party Integrations
Best tools, already
wired together
Every third-party service is pre-integrated and fully tested before handoff. You provide the
API keys on setup day. All integration costs are included in your monthly fee.
💬
Twilio — WhatsApp Business API
Powers all 8 automated message flows. Handles inbound reply parsing and routing. All
message templates Meta Business API approved before go-live.
8 automated flowsInbound
routingMeta pre-approved
~$20/mo
🎥
Daily.co — Telehealth Video
Auto room creation on booking, React SDK embedded directly in the EHR, session
recording, HIPAA Business Associate Agreement (BAA) available.
HIPAA BAAAuto room
creationSession recording
~$22/mo
🤖
Anthropic Claude API — AI SOAP Drafting
claude-sonnet-4-6 generates SOAP note sections, suggests ICD-10 codes, recommends
medications and follow-up timing from the voice transcript.
SOAP draftingICD-10
codingMedication suggestions
~$8/mo
🎙
sherpa-onnx — On-Device Speech-to-Text
Open-source STT model running inside your own AWS container. Audio never sent to any
third party. Spanish-optimized. Under 500ms latency per audio chunk.
On-device onlySpanish-optimizedZero audio leakage
In compute
☁️
AWS — Complete Infrastructure
ECS Fargate, RDS PostgreSQL, S3, CloudFront, Route53, ACM SSL, CloudWatch, Secrets
Manager, ElastiCache — all provisioned and managed by Vriksha.
99.9% SLATerraform
managedMulti-AZ
Included