v12.8 — In-Patient Waves 2 and 3, Foreign-Currency Billing & Release Notice Tiers

Release Notes

Every version of CuraVerto. From a single appointments tool to an AI-first Care OS.

47

Releases

44

in 2026

174

Modules

v12.8CurrentOctober 2026

In-Patient Waves 2 and 3, Foreign-Currency Billing & Release Notice Tiers

v12.8 finishes the in-patient (IPD) build in code: fifteen further capabilities across Waves 2 and 3, from durable drafts and an ICU/HDU-lite flowsheet to a structured shift handoff, ward rounds, a family communication centre and a quality and operations MIS. Every one sits behind its own module flag, and no live clinic holds any of them, so nothing changes on any screen until a hospital opts in. A clinic with patients abroad can now price a service in a foreign currency, send a payment link in that currency and record the bill in it, settling to the clinic's own Razorpay account. Update notices grow three tiers (a calm start-of-day prompt, amber and red) so an urgent fix can reach an open tab without a clinic losing unsaved work. The dental case sheet PDF stops dropping what the doctor recorded, a full route-authentication sweep moves 21 hand-rolled checks onto the shared guard and makes 34 silent failures answer 401, and the public site gains two calculators and a pass that re-sources every competitor figure from the vendor's own page.

⚡ See what's new in v12.8 →
🏥
In-Patient Waves 2 and 3 (Off Until a Hospital Opts In)

Ward safety and continuity units

▼

Durable drafts with explicit conflict states, an ICU/HDU-lite flowsheet, an investigation review loop, a structured shift handoff, medication reconciliation with a hardened eMAR, safety-context entries and a longitudinal discharge planner each ship as their own unit with their own flag (modules.ipd_drafts, ipd_flowsheet, ipd_result_review, ipd_handoff, ipd_med_safety, ipd_safety_context, ipd_discharge_plan). Clinical rules default to not configured, so nothing is judged until a clinical lead sets it up.

Operations and quality units

▼

A work-item ownership overlay with an escalation cron, an operational "needs attention" list, ward rounds mode, a family communication centre, a quality and operations MIS and a single activity composer over the existing create routes. All are flag-gated and none writes to a money path.

ABDM and NHCX for in-patients, and a NABH-aligned document set

▼

ABDM care-context linking and NHCX claim send are built for admitted patients, audit first, behind modules.ipd_abdm_nhcx. A map plus seven on-request NABH-aligned inpatient documents sit behind their own print flag. Hindi and Telugu family-message wording and the NEWS2 bands are unreviewed proposals until a clinical advisor signs them off.

Wired into the screens that already exist

▼

The new units feed the Shift Hub work list and mount in the in-patient screens, each only when its flag is on. A bed-board abnormal-vitals flag that read a column ipd_vitals does not have is fixed, and an idempotent demo-hospital seed script with a 45-minute walk-through ships for demos.

💳
Foreign-Currency Billing & Clinic-Owned Payments

Service prices and a billing currency per patient

▼

A service can carry a fixed price in USD, AED, GBP, EUR or SGD alongside its rupee price, and a patient can have a billing currency. Nothing changes for a patient with no billing currency set.

A payment link and a bill in the patient's own currency

▼

With the clinic's own Razorpay connected, an owner can switch on "Patients abroad" in Settings > Payments. Bill Patient then shows the foreign amount, sends a payment link in that currency and records the same invoice the rupee flow would, with one rupee line noting what was paid. Money settles to the clinic's own account; CuraVerto never holds it. Today it covers consultation bills only, the link is not re-sent over WhatsApp from the bill, and the receipt is in rupees.

Razorpay webhooks verified with the clinic's own webhook secret

▼

The adapter checked webhooks against the API key secret, but Razorpay signs with the dashboard webhook secret. An optional webhook-secret field with URL and event help now sits in Settings > Payments. Without it, payments still confirm through the 15-minute reconcile poll.

Owners can open Settings > Payments, and Razorpay set-up through CuraVerto is built but off

▼

Clinic owners (who often have no admin role) were refused by the gateway, POS-device and integrations APIs; all three now admit them. A clinic screen and backend for creating a clinic's own Razorpay account through CuraVerto are built and hidden until partner credentials are issued; it is not available to any clinic today.

🔔
Release Notice Tiers

Calm, amber and red update prompts

▼

Ordinary updates wait for a day-old bundle and appear once at the start of the day. An amber tier is firmer. A red tier, reserved for an urgent fix, stays above open modals and cannot be dismissed. A snooze applies only to the tier it was set on.

Counters and a runbook so the tiers are not guessed

▼

API replies now carry a release stamp, a check:release-counters CI step guards the counters from being lowered by mistake, and a runbook records when each tier may be used.

🦷
Dental Case Sheet PDF

The PDF prints what the record holds

▼

The case sheet PDF button now works and produces a PDF only. It prints the patient's conditions, "NIL Significant", allergies, blood group, history and habits from where the record actually keeps them, plus age in the health strip and the doctor's HPI, chief complaint, diagnosis and post-op notes.

Medical history saves and shows in the editor

▼

The "NIL Significant" toggle was not saving; it does now. The editor shows the conditions already on the patient's record, and post-op templates load and apply correctly.

🛡️
Authentication Sweep & Public Endpoints

One authentication guard across the API

▼

21 routes that hand-rolled their own token check now use the shared guard, and 34 routes whose guard returned nothing on failure now answer 401. A CI ratchet blocks new routes from regressing. Three follow-up fixes landed the same day.

Public sign-up, demo-request and scribe endpoints hardened

▼

Public sign-up is rate-limited and validated, with a trusted client IP on the payment-page limiter. The demo-request route is rate-limited and tightened. The scribe extract endpoint is rate-limited and no longer answers with a wildcard CORS header, and a view and several database functions that were reachable more widely than intended are closed.

🎙️
Scribe, Public Site & Calculators

Dental and teleconsult scribe moved to a new transcription path

▼

The browser now sends short self-contained chunks to a new transcribe route and gets findings back in the same HTTP response, replacing a retired streaming sidecar and its WebSocket. Dental extraction still runs on the clinic's own key.

No-show cost and clinic break-even calculators

▼

Two free calculators on the public site, each with an opt-in call-back form and plain notes on what the estimate assumes.

Competitor figures re-sourced from the vendors' own pages

▼

Comparison pages, blog posts and the cost estimate were re-checked against each vendor's own published plans. Unsourced testimonials and the last stale competitor figures were removed, and a CuraVerto vs KiviHealth long-form comparison was added.

All Changes in v12.8

  • →In-patient Waves 2 and 3 are complete in code: fifteen units, each behind its own module flag, none enabled for any live clinic
  • →Clinical rules in the new in-patient units default to not configured, so nothing is judged until a clinical lead sets it up
  • →Foreign-currency billing: per-currency service prices, a patient billing currency, a payment link and a bill in that currency, settling to the clinic's own Razorpay
  • →Razorpay webhooks are now verified with the clinic's webhook secret, which is what Razorpay actually signs with
  • →Clinic owners can use Settings > Payments, the POS device registry and the integrations screens
  • →Update notices gain amber and red tiers; red stays above open modals and cannot be dismissed
  • →Dental case sheet PDF prints the record's conditions, allergies, blood group, history, habits and the doctor's own notes
  • →Route authentication sweep: 21 hand-rolled checks moved to the shared guard, 34 silent failures now answer 401, and a CI ratchet holds the line
  • →Dental and teleconsult scribe moved off a retired streaming sidecar to a chunked transcribe route
  • →Two public calculators (no-show cost, clinic break-even) and a re-sourcing pass over every competitor figure