Commit Graph
90 Commits
Author SHA1 Message Date
isaaccladandCursor b077467c4b Fix Call next when doctor desk is missing from cached points.
Deploy Ladill Care / deploy (push) Successful in 48s
Assigned doctors could see board waiters while Call next returned empty because ensure() early-returned without provisioning a newly linked desk. Re-provision on point miss, recover stale tickets, and align empty messaging with visible waiters.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 20:31:52 +00:00
isaaccladandCursor c123097f3c Fix Call next by advancing Care waiters and reclaiming desk tickets.
Deploy Ladill Care / deploy (push) Successful in 51s
Call next now picks the next board appointment, issues or reclaims its ticket onto the calling desk, and still fires display/voice announcements — so patients are not left stuck when tickets sit on the wrong point after sync-on-GET was removed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 20:18:52 +00:00
isaaccladandCursor eaba400c7c Align queue/branch and specialty CTA tests with patient-queue access rules.
Deploy Ladill Care / deploy (push) Successful in 42s
hospital_admin no longer opens /queue, and nurses get Specialty home instead of Back to queue after the patient-flow board gate.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:51:55 +00:00
isaaccladandCursor a5bbbe23b1 Speed up Queue board loads by dropping sync and gate side effects.
Deploy Ladill Care / deploy (push) Successful in 1m22s
Stop issuing missing tickets and refreshing financial gates on every GET;
eager-load advances, cap board rows, and cache specialty department maps.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:50:03 +00:00
isaaccladandCursor 93c7a71ee5 Redesign Care patient-flow board and remove Queue from nurses.
Deploy Ladill Care / deploy (push) Successful in 39s
Shared queue-board is now a Waiting/Called/In care/Done stage board with prominent tickets and Call next; nurses lose queue.manage and canAccessPatientQueue so /queue and queue nav are gated while specialty workspaces stay available.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:42:44 +00:00
isaaccladandCursor 131ccd6edb Issue cashier booth tickets when financial gates block service.
Deploy Ladill Care / deploy (push) Successful in 41s
Pay-before-service holds now create a billing queue ticket (via an open bill) so cashiers can Call next / Serve; clearance completes the ticket and releases the clinical line as before.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:29:29 +00:00
isaaccladandCursor c3219a1bf1 Fix nurse onboarding redirects and specialty Documents 404s.
Deploy Ladill Care / deploy (push) Successful in 36s
Resolve staff memberships by invite/demo email as well as public_id so nurses stay on their employer org; block staff from owner onboarding; keep Documents viewable with module access while upload stays manage-gated.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 19:09:06 +00:00
isaaccladandCursor 656f402e8f Restrict lab catalog pricing to admins only.
Deploy Ladill Care / deploy (push) Successful in 38s
Split catalog CRUD onto lab.catalog.manage so technicians keep lab.manage for queue and results workflow without setting investigation prices.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:58:57 +00:00
isaaccladandCursor 65e54d1253 Cover all floor roles in specialty CTA ability gating.
Deploy Ladill Care / deploy (push) Successful in 24s
8a5330d already keyed Start/stage/vitals on CarePermissions for every
role; add receptionist, lab, pharmacist, and GP-without-module-manage
tests so we never regress to nurse-only branching.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:49:20 +00:00
isaaccladandCursor 8a5330d3d2 Gate specialty mutate CTAs on Care abilities, not only module manage.
Deploy Ladill Care / deploy (push) Successful in 1m3s
Nurses can manage limited specialties but lack consultations.manage, so
hide Start/stage/chart edits that 403 while keeping queue/vitals/billing
aligned with what those routes actually authorize.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:45:00 +00:00
isaaccladandCursor 9e32eb32c5 Hide specialty mutate UI when staff lack manage access.
Deploy Ladill Care / deploy (push) Successful in 36s
View/refer users keep read surfaces and refer actions; zero-access
modules stay out of nav via existing enabledModulesForMember filtering.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:33:07 +00:00
isaaccladandCursor 1e00c31b8b Give each specialty module a distinct Heroicon-style icon.
Deploy Ladill Care / deploy (push) Successful in 1m2s
Icon names live on the specialty catalog; SVG paths resolve through a shared map and render in sidebar, dashboard, settings, and the specialty shell.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:30:14 +00:00
isaaccladandCursor 61b901095f Fix avatar wallet balance by serving JSON from /wallet/balance.
Deploy Ladill Care / deploy (push) Successful in 28s
The dropdown was fetching care.wallet (account redirect HTML) instead of a
billing balance API, so Alpine always fell back to "View wallet".

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:13:13 +00:00
isaaccladandCursor 2cff8fdd6c Gate specialty modules by staff role with view and refer levels.
Deploy Ladill Care / deploy (push) Successful in 37s
Give nurses, lab techs, pharmacists, and GPs broad access to day-to-day modules, keep restricted specialties for specialists (with support nurses), and let GPs view results or refer without full clinical edit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 18:03:47 +00:00
isaaccladandCursor 7989ab9184 Ship full Emergency specialty suite on the shared shell.
Deploy Ladill Care / deploy (push) Successful in 34s
Add ED visit stages, triage-driven routing, vitals, observation, disposition, reports, and print summary so Emergency matches Dentistry’s operational depth without a parallel EHR.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:48:57 +00:00
isaaccladandCursor 18c24077e3 Use a specialty dropdown when adding practitioners.
Deploy Ladill Care / deploy (push) Successful in 26s
Replace free-text specialty on practitioner and team-invite forms with a shared selectable list so clinicians pick a known specialty.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:39:29 +00:00
isaaccladandCursor 2ac84faf73 Label multi-branch department picks and add searchable patients.
Deploy Ladill Care / deploy (push) Successful in 27s
Make appointment/practitioner department (and practitioner) options show branch names so duplicates are distinguishable, and replace the patient select with a searchable dropdown.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:31:32 +00:00
isaaccladandCursor 5a1d47b9cc Add specialty module and GP service pricing settings.
Deploy Ladill Care / deploy (push) Successful in 51s
Admin dashboard module cards open per-module settings with editable service prices; GP consultation and clinic fees live under Settings → GP pricing (inventory drugs unchanged).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:19:18 +00:00
isaaccladandCursor ce782382c5 Complete Dentistry commercial suite with PMS depth.
Deploy Ladill Care / deploy (push) Successful in 31s
Add plan lifecycle, visit stages with chair/recovery points, primary dentition charting, imaging void, revenue reports, perio exams, lab cases, and recalls.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 17:11:15 +00:00
isaaccladandCursor 0edd653187 Ship commercial Dentistry suite with odontogram and treatment plans.
Deploy Ladill Care / deploy (push) Failing after 36s
Replace placeholder clinical forms with patient-level FDI charting, multi-visit plans, procedure-to-bill linking, imaging, reports, and demo seed data.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 16:33:34 +00:00
isaaccladandCursor a00a8249ad Improve specialty workspace actions and Call next handoff.
Deploy Ladill Care / deploy (push) Successful in 40s
Move timeline into a workspace tab, surface Complete consultation and Call again in Actions, and make Call next end the current encounter then open the next called patient.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 16:12:30 +00:00
isaaccladandCursor 5bdc17777c Route all specialty patient flow through Queue.
Deploy Ladill Care / deploy (push) Successful in 37s
Remove Dentistry and other specialty modules from the sidebar; Queue now uses each doctor's specialty desk context for Call next, waiting lists, and Start into specialty clinical workspaces.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 16:03:38 +00:00
isaaccladandCursor ec9135c59d Give specialty modules the same Queue UI as GPs.
Deploy Ladill Care / deploy (push) Successful in 36s
Specialty homes now use the shared Waiting/In care board with Call next, Start routes specialty tickets into specialty workspaces, and redundant Dentistry/Specialty module chrome is removed.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 15:52:00 +00:00
isaaccladandCursor c273b9a476 Fix admin billing status chart limited to invoices created this month.
Deploy Ladill Care / deploy (push) Successful in 1m23s
Show the current invoice book by status so Paid/Partial are not hidden when create dates fall outside MTD.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:00:18 +00:00
isaaccladandCursor 8e406dc93c Make admin Patients, Appointments, Inventory, Billing, and Reports data-driven.
Deploy Ladill Care / deploy (push) Successful in 44s
Facility admins see analytics overviews instead of operational directories; floor roles keep list UIs, with optional ?view=list for admins who need records.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 13:38:55 +00:00
isaaccladandCursor 612e021e85 Reserve floor queues for clinical staff and deepen specialty forms.
Deploy Ladill Care / deploy (push) Successful in 41s
Hospital admins no longer see specialty/queue floor nav; Call next is a full-width button; specialty encounters open module-specific clinical forms instead of the general consultation page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 12:04:05 +00:00
isaaccladandCursor bd8218fb45 Fix specialty Call next vs WAITING KPI mismatch.
Deploy Ladill Care / deploy (push) Successful in 1m44s
Admins without a desk now scan all specialty service points, KPIs use the same branch as queue ops, and empty Call next flashes explain tickets vs other branches.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 11:41:45 +00:00
isaaccladandCursor 4c4dfc7dbf Wire specialty Start consultation to the real consultation page.
Deploy Ladill Care / deploy (push) Successful in 58s
Doctors leave the specialty shell into Care consultations instead of a no-op workspace link.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 11:36:57 +00:00
isaaccladandCursor dee9a0f2df Hide specialty department roster from the module overview.
Deploy Ladill Care / deploy (push) Failing after 1m4s
Departments still provision in the background; the list added no operational value on the page.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 11:24:44 +00:00
isaaccladandCursor 03befd1e7f Add Care waiting-area TV displays with browser TTS voice.
Deploy Ladill Care / deploy (push) Failing after 57s
Call-next and recall queue announcements for lobby screens without Ladill Queue.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 11:23:15 +00:00
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 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