Commit Graph
64 Commits
Author SHA1 Message Date
isaaccladandCursor dd4bc493b4 Hard-delete Care remote Queue adapter (Phase 5).
Deploy Ladill Care / deploy (push) Failing after 1m13s
Care Queue Engine is the only path; remove QueueClient, driver config, and remote HTTP tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 11:16:41 +00:00
isaaccladandCursor 57358e4206 Add specialty clinical records on the shared shell (Phase 3).
Deploy Ladill Care / deploy (push) Failing after 1m2s
Visit-scoped structured forms for Emergency triage, Blood Bank requests,
and Dentistry odontogram with derived alerts, document upload, and KPI counts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 10:09:32 +00:00
isaaccladandCursor 0181221fe8 Add shared specialty module shell (Phase 2).
Deploy Ladill Care / deploy (push) Successful in 52s
Overview/Visits/History/Billing/Workspace layout with stage maps, KPIs,
patient header/timeline, and service catalogs seeded into Billing on activate.
Emergency, Blood Bank, and Dentistry ship first-class shell configs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 10:01:17 +00:00
isaaccladandCursor 6cf5a24019 Add in-app Care Queue Engine (Phase 1 MVP).
Deploy Ladill Care / deploy (push) Successful in 1m28s
Issue, call-next, serve, and complete tickets locally so Care Pro no longer
needs QUEUE_API_* when CARE_QUEUE_DRIVER=native (default). Remote Ladill Queue
remains available for cutover; PHPUnit keeps the remote driver for existing fakes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 09:54:06 +00:00
isaaccladandCursor e9a76fec80 Expand specialty modules; pin Emergency and Blood Bank on Pro.
Deploy Ladill Care / deploy (push) Successful in 1m37s
Add Cardiology through Child Welfare to the specialty catalog, keep Emergency and Blood Bank always enabled on Pro/Enterprise sidebars, and generate matching demo specialty doctors.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 09:27:05 +00:00
isaaccladandCursor f87f216fb4 Fix empty demo lab catalog for admins.
Deploy Ladill Care / deploy (push) Successful in 2m7s
Seed investigation types early (before clinical data), expand the default catalog, scope Lab → Catalog by organization, and harden practitioner-branch sync so a mid-reseed failure cannot wipe the catalog.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 09:06:35 +00:00
isaaccladandCursor 899b08179e Allow explicit multi-branch practitioner assignment for telemedicine.
Deploy Ladill Care / deploy (push) Successful in 1m29s
Replace optional “All branches” with required branch checkboxes; doctors may switch only among assigned sites, never org-wide by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 08:50:03 +00:00
isaaccladandCursor d643687335 Lock doctors to a single branch — never a branch picker.
Deploy Ladill Care / deploy (push) Successful in 1m3s
Doctors were treated as multi-branch when Identity cleared branch_id; now they stay on their assigned/desk site, specialty desks are home-branch only, and the queue shows site name as text only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 08:45:57 +00:00
isaaccladandCursor bb4dbee81a Restrict specialty modules to doctors assigned to that specialty.
Deploy Ladill Care / deploy (push) Successful in 1m10s
Nav and pages require a linked practitioner desk in the module department; demo seeds specialty doctors and stops overwriting their assigned waiters.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 08:37:06 +00:00
isaaccladandCursor dcbc62d1d3 Lock doctors to their assigned patients and hide branch filters.
Deploy Ladill Care / deploy (push) Successful in 1m2s
Doctors no longer see branch/practitioner pickers; queue, appointments, patients, and dashboard only include visits on their linked desk.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 06:28:07 +00:00
isaaccladandCursor 5264035705 Scope staff Care queries to the organization owner_ref.
Deploy Ladill Care / deploy (push) Successful in 1m11s
Demo doctors were querying their own public_id, so branches/patients/queues looked empty even though the Pro tenant had data.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 06:20:31 +00:00
isaaccladandCursor e94708d46c Issue Queue tickets for every waiting appointment when integration is on.
Deploy Ladill Care / deploy (push) Successful in 51s
Patient queue syncs consultation and specialty waiters; specialty contexts now provision desks so check-in/onboarding no longer leaves half the list on local positions only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 06:12:32 +00:00
isaaccladandCursor 4e910a1db7 Fix patient queue showing position 1 for every waiter.
Deploy Ladill Care / deploy (push) Successful in 1m44s
Specialty demo seed reused slot+1 per module; repair duplicates on queue load and renumber after demo seed so waiting lists show 1..n.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 05:54:47 +00:00
isaaccladandCursor 6cfecc1763 Persist admin branch filter across Patient, Pharmacy, Lab, and Bills queues.
Deploy Ladill Care / deploy (push) Successful in 57s
Admins pick a working branch once; session keeps Pharmacy Call Next and lists scoped to that site so ticket numbers no longer collide across branches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 05:49:24 +00:00
isaaccladandCursor 88f84a4f96 Assign every demo waiter to a doctor and sync Queue tickets.
Deploy Ladill Care / deploy (push) Successful in 1m54s
Link DemoWorld doctor staff to practitioners, clear unresolved routing, distribute staff across branches, and restore scoped consultation/pharmacy ticket sync so demos are not left Unassigned.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 05:34:45 +00:00
isaaccladandCursor 86d79b5099 Restore Care queue FIFO after demo skip left tickets Unassigned.
Deploy Ladill Care / deploy (push) Successful in 1m2s
Provision one branch/context at a time instead of the whole org, fall back to a desk when doctor counters are catching up, sync pharmacy tickets in Care list order on page load, and seed waiting_at/queue_position for demos.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 23:05:42 +00:00
isaaccladandCursor 640b62010a Fix Care settings 500s and slow saves under Queue/demo load.
Deploy Ladill Care / deploy (push) Successful in 52s
Defer Queue provision and ticket backfill after the settings response, harden messaging credential creation against lock races, and stop wrapping demo seed in a long-held transaction.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 22:57:25 +00:00
isaaccladandCursor 88b5a4e3ab Skip Queue HTTP entirely during Care demo seed.
Deploy Ladill Care / deploy (push) Successful in 1m33s
Enterprise reseeds were blocked for minutes on queue.ladill.com calls; local specialty data still seeds, and Queue tickets can backfill on first visit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 22:50:26 +00:00
isaaccladandCursor fd2c854c57 Keep demo specialty seeding off the Queue API hot path.
Deploy Ladill Care / deploy (push) Successful in 1m52s
Enterprise reseeds were hanging on per-module Queue HTTP; activate specialties locally first, then provision once, and limit ticket sync to core contexts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 22:36:57 +00:00
isaaccladandCursor db6d0617e9 Enable all specialty modules with demo traffic for Pro/Enterprise demos.
Deploy Ladill Care / deploy (push) Successful in 1m9s
Free and real onboarding stay opt-in; Pro/Enterprise demos activate every catalog specialty and seed waiting appointments so module pages are populated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 21:55:30 +00:00
isaaccladandCursor c461430441 Recover empty Care demo tenants after onboarding races.
Deploy Ladill Care / deploy (push) Successful in 54s
Demo Pro was left as an empty workflow shell after lock-timeout races; clear leftover rollout flags on seed, sync-reseed empty tenants on login, and repair missing facility workflow indexes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 21:38:21 +00:00
isaaccladandCursor 3ee59a0956 Activate Care workflows across check-in and financial clearance.
Deploy Ladill Care / deploy (push) Failing after 1m9s
Enforce service-queue gates, cashier settlements, and clinical stage progression so patient journeys cannot bypass configured payment or authorization rules.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 21:13:06 +00:00
isaaccladandCursor 86bfce1e17 Add workflow-centric patient journey with financial gates.
Deploy Ladill Care / deploy (push) Failing after 45s
Introduces a facility workflow engine as Care's primary configuration
object: onboarding now leads with a facility category (which modules to
enable) and a workflow template (how patients move + where money is
collected), including standard herbal hospital/clinic templates.

Templates materialize into care_facility_workflows/care_workflow_stages.
The engine tracks a visit's position via care_visit_stage_advances and,
with FinancialGateService, gates a stage's queue behind a cleared
FinancialObligation (paid/authorized/waived/deferred) for "before"
payment timing while leaving "after" (pay-at-exit) flows unblocked.
Gated behavior is opt-in behind the workflow_engine/financial_gates
rollout flags; legacy orgs keep current behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 20:47:33 +00:00
isaaccladandCursor c319692b33 Create demo org shell before login redirect.
Deploy Ladill Care / deploy (push) Successful in 42s
Async reseed alone still left the first Care request without an onboarded org; ensure the shell synchronously, then refresh demo data afterResponse().

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 19:33:04 +00:00
isaaccladandCursor 2c2cc1e938 Keep Care org onboarded during demo login reseed.
Deploy Ladill Care / deploy (push) Successful in 1m19s
Avoid the onboarding flash when reset-on-login deletes the tenant before the afterResponse() reseed finishes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 19:29:09 +00:00
isaaccladandCursor a3521247e0 Route pharmacy, lab, and billing tickets through a shared FIFO pool.
Deploy Ladill Care / deploy (push) Successful in 57s
Stop pre-assigning prescriptions to a default counter so Call next follows arrival order and each pharmacist only serves one active patient at a time.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 19:06:36 +00:00
isaaccladandCursor 986ec0155c Document that Care owns healthcare stage provisioning under Queue v2.
Deploy Ladill Care / deploy (push) Successful in 1m24s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 18:00:42 +00:00
isaaccladandCursor 94e53d05bf Keep consultation context on nested clinical pages and add Call again on patient queue cards.
Deploy Ladill Care / deploy (push) Successful in 1m7s
Doctors can return to the active consultation from forms, lab, prescriptions, pathways, and bills; queue cards can re-announce called/serving tickets via the existing Queue recall bridge.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 17:48:34 +00:00
isaaccladandCursor e73b39b678 Route Care tickets to per-staff service points instead of shared branch queues.
Deploy Ladill Care / deploy (push) Successful in 1m40s
Provision one consultation point per doctor (room + identity) and role-based
points for pharmacy, lab, billing, and triage. Fixed-doctor appointments and
walk-ins issue only to the assigned point; Call next respects that assignment
and flags unresolved patients rather than random routing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 17:22:14 +00:00
isaaccladandCursor c5151ad476 Fix Call next when Care waiters lack Queue tickets.
Deploy Ladill Care / deploy (push) Successful in 1m35s
Demo/pre-integration waiting lists showed patients but Call next hit an empty Queue and flashed a red error. Backfill missing tickets on Call next and queue load, and treat empty Call next as info.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 16:53:52 +00:00
isaaccladandCursor 015a4cc7fe Wire Care lists into Ladill Queue workflows instead of reception panels.
Deploy Ladill Care / deploy (push) Successful in 1m45s
When Queue integration is on, role pages issue tickets into their own
department queues and drive Call next → Serve → Complete on the native
lists. Integration off leaves existing UI unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 16:27:48 +00:00
isaaccladandCursor 15638d1672 Fall back to sole Queue branch when Care branch names differ.
Deploy Ladill Care / deploy (push) Successful in 1m31s
Free single-location Queue orgs often use a default name like
Main Branch while Care stubs send Main; reuse the only branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 16:09:31 +00:00
isaaccladandCursor cd020512c3 Create real Queue counters when specialty modules activate.
Deploy Ladill Care / deploy (push) Successful in 1m39s
Wire module activation to the Queue create/upsert APIs, persist
queue and counter UUIDs on Care stubs, and soft-deactivate on
module off so embedded service counters work without manual setup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 16:03:16 +00:00
isaaccladandCursor dec282d25d Embed Ladill Queue on role pages and add specialty modules under Settings.
Deploy Ladill Care / deploy (push) Successful in 53s
Remove the standalone Service Queues nav so call-next/now-serving lives on clinical queue, appointments, pharmacy, lab, and specialty surfaces; Pro orgs can activate dentistry and related modules with branch departments and queue stubs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 15:55:47 +00:00
isaaccladandCursor e0a7a64d38 Add clinical device registry, browser wedge scan, and local agent API.
Deploy Ladill Care / deploy (push) Successful in 1m39s
Branch-scoped Care devices with hashed agent tokens, patient barcode lookup/labels, and provenance-aware vitals from a minimal device agent (Pro for agent hardware; wedge free).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 14:28:46 +00:00
isaaccladandCursor 1da90203e8 Remove Faker from DemoTenantSeeder for --no-dev prod seeds.
Deploy Ladill Care / deploy (push) Successful in 1m51s
DemoWorld seeding already used deterministic catalogs; the last randomElement calls blocked production demo:seed without fakerphp/faker.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 14:11:51 +00:00
isaaccladandCursor dd4efec135 Seed Care demos from shared DemoWorld with staff roles.
Deploy Ladill Care / deploy (push) Successful in 1m0s
Patients, branches, and org identity now match suite continuity keys; staff Members are created for training SSO without login reseed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 13:27:07 +00:00
isaaccladandCursor 679577a7b3 Reseed Care demo tenants after each SSO login.
Deploy Ladill Care / deploy (push) Successful in 2m38s
Demo Free/Pro/Enterprise accounts wipe and reload sample clinic data on
authorization-code SSO callbacks so every sales walkthrough starts clean.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 11:17:16 +00:00
isaaccladandCursor b12dbc79dd Add plan-aware Care demo:seed command.
Deploy Ladill Care / deploy (push) Successful in 1m54s
Seed clinic tenants with Free, Pro, and Enterprise volumes plus FK-safe reset for sales demos.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 10:02:52 +00:00
isaacclad f6780b9958 fix(assessments): enable engine by default and wire into live UI
Deploy Ladill Care / deploy (push) Successful in 54s
The assessment engine was built but opt-in and hidden: flag defaulted
off, no sidebar entry, and no settings toggle. Default assessments_engine
on, auto-seed catalog when empty, add Settings toggle and Assessments
nav, and surface guidance from the patients list.
2026-07-16 23:05:48 +00:00
isaacclad 2ce4bc8993 feat(assessments): layered clinical assessment engine end-to-end
Deploy Ladill Care / deploy (push) Successful in 1m26s
Add a template-driven assessment system with universal intake, clinical
pathways, disease instruments (stroke MVP + extended, diabetes, and ten
specialty packs), scoring, patient outcome trends, REST/API + FHIR
export, and Enterprise org-level assessment analytics. Seed packs and
design/licensing docs ship for deploy and pre-GA review.
2026-07-16 22:58:09 +00:00
isaacclad 8896088425 chore(pricing): raise Care Pro to GHS 2490 per branch/mo
Deploy Ladill Care / deploy (push) Successful in 54s
Increase Care Pro monthly branch price by GHS 500 (1990 → 2490).
2026-07-16 12:10:19 +00:00
isaacclad f7baa6ebf0 fix(care): use clinic name as email From display, not Ladill Care
Deploy Ladill Care / deploy (push) Successful in 28s
Patient-facing suite (and Bird fallback) emails should appear from the
organization name. Stop defaulting from_name to CARE_SMTP_FROM_NAME.
Appointment notifications also prefer suite messaging with the same rule.
2026-07-16 11:58:24 +00:00
isaacclad c9f5df6ed7 feat(messaging): suite-channel patient email/SMS and entitlement sync
Deploy Ladill Care / deploy (push) Successful in 40s
Prefer platform suite messaging for patient email/SMS, fall back to product
keys; write suite entitlements on Pro wallet, prepaid, and renewal.
2026-07-16 11:24:21 +00:00
isaacclad 7a0a7fcb88 Add Paystack, Flutterwave, and Hubtel for encounter billing.
Deploy Ladill Care / deploy (push) Successful in 1m0s
Clinics on Pro/Enterprise can connect their own gateway in Integrations and collect card or MoMo on bills with 0% Ladill fee, while cash payments and balance totals stay correct for pending checkouts.
2026-07-16 10:24:28 +00:00
isaacclad 85eb04d2a3 Gate Care branch management behind Pro like Frontdesk.
Deploy Ladill Care / deploy (push) Successful in 1m25s
Free plans keep a single setup branch but get an upgrade screen for Branches; Pro/Enterprise unlock multi-branch management via plan features.
2026-07-16 09:14:58 +00:00
isaacclad c6fd2547ef Add branch seat selector on Care plan checkout.
Deploy Ladill Care / deploy (push) Successful in 40s
Let operators pick how many branches to bill next to the monthly/prepaid toggles so Pro and Enterprise totals and charges use branches × per-branch rate.
2026-07-15 14:21:30 +00:00
isaacclad f9aa4a679f Tighten Care free tier and bill Pro/Enterprise per branch.
Deploy Ladill Care / deploy (push) Successful in 29s
Free keeps core records, appointments, and basic workflows; Pro unlocks lab, pharmacy, billing, and Queue. Both paid tiers bill per branch with unlimited branches. Enterprise adds multi-dept workflows, analytics, AI-assisted healthcare integration, and priority support (not Afia).
2026-07-15 14:14:35 +00:00
isaaccladandCursor 50f515cf6a Hide finance and admin KPIs from roles that lack them.
Deploy Ladill Care / deploy (push) Successful in 33s
Doctors no longer see revenue, open bills, or org admin cards on the Care dashboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 22:32:41 +00:00
isaaccladandCursor c425aa12ac Replace Upgrade to Pro with Report Issue for staff.
Deploy Ladill Care / deploy (push) Successful in 1m4s
Non-owners submit tickets to Ladill admin via Identity support API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 22:23:47 +00:00