58 Commits
Author SHA1 Message Date
isaaccladandCursor 1678b05017 Hide My care unit and My shifts from hospital admins.
Deploy Ladill Care / deploy (push) Successful in 41s
Wildcard admin abilities matched those nurse workplace links; admins should use Nursing Services and Care units instead.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 17:53:47 +00:00
isaaccladandCursor 2bfaa9af4a Hide Clinical forms nav and callout from nurses.
Deploy Ladill Care / deploy (push) Successful in 53s
That surface is for consult/pathway intake. Nurses use My care unit
for ward assessments; require consultations.manage to show Clinical forms.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 16:17:52 +00:00
isaaccladandCursor 218023746d Rename My ward to My care unit in nurse station UI.
Deploy Ladill Care / deploy (push) Successful in 40s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 15:57:25 +00:00
isaaccladandCursor 45da731561 Add My ward nurse station for bedside clinical work.
Deploy Ladill Care / deploy (push) Successful in 39s
Floor nurses keep Nursing Services admin-only, but now get a My ward
home keyed off today's roster or unit placement with patient lists and
direct links to MAR, vitals/assessments, notes, and handovers. Care unit
show and board crumbs open for station users so clinical pages are
reachable without department admin rights.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 15:54:26 +00:00
isaaccladandCursor b7aca6ee2b Separate unit placements from shift duty assignments.
Deploy Ladill Care / deploy (push) Successful in 30s
Roster no longer writes temporary staff assignments; unit assignment UI drops shift fields and labels clarify the two workflows.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 11:49:18 +00:00
isaaccladandCursor 82a2b1a9a7 Restrict care unit and department setup to admins.
Deploy Ladill Care / deploy (push) Successful in 48s
Nurses keep Nursing Services for clinical work but can no longer browse or create structural units and departments.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 11:33:38 +00:00
isaaccladandCursor 7c32b34715 Gate ward admin nav to nursing roles and add My shifts for staff.
Deploy Ladill Care / deploy (push) Successful in 52s
Ambulance and other non-nursing vitals roles no longer see Care units / Nursing Services; staff get a personal duty roster view of assigned shifts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 11:26:52 +00:00
isaaccladandCursor a3839da869 Add queue kiosk and display devices for Care Queue management.
Deploy Ladill Care / deploy (push) Successful in 39s
Register walk-up kiosks and waiting-room display devices under Devices, with public kiosk ticket issue and linked TV boards surfaced in sidebar and Queue shortcuts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 10:59:02 +00:00
isaaccladandCursor b2cebe2908 Add shift templates, unit duty roster grid, and Nursing Services hub.
Deploy Ladill Care / deploy (push) Successful in 1m0s
Phase 3 staff management: real shift entities, week roster linked to temporary assignments, and a nursing ops module surface (registry, today’s allocation, unit shortcuts).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 10:40:25 +00:00
isaaccladandCursor 45a1a95142 Add visit placement on care units and beds.
Deploy Ladill Care / deploy (push) Successful in 38s
Patients can be admitted, transferred, and discharged from unit/bed stays with occupancy sync, so MAR and ward boards have inpatient context.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 10:10:37 +00:00
isaaccladandCursor 3735be3425 Add Care Units, beds, and dated staff assignments.
Deploy Ladill Care / deploy (push) Successful in 1m8s
Models employment as department/unit/shift placements with primary and temporary kinds so nurses are not permanently bound to a ward.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 10:04:39 +00:00
isaaccladandCursor dfb66369d0 Hide Laboratory nav from doctors who only have lab.view.
Deploy Ladill Care / deploy (push) Successful in 30s
The sidebar and dashboard linked to the lab work queue (lab.manage) while
gating on lab.view, so physio/GP doctors hit 403 on open.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 17:31:14 +00:00
isaaccladandCursor b44ed50fe7 Memoize specialty nav and branch lookups to stop per-request N+1.
Deploy Ladill Care / deploy (push) Successful in 28s
Sidebar was re-querying practitioners for every specialty module and also
calling ensureDefaultModulesProvisioned on each page render, which showed
up as multi-second PHP-FPM slow logs on Care.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:02:16 +00:00
isaaccladandCursor 5d9d333170 Add Lab and Blood Bank manager roles with admin UIs.
Deploy Ladill Care / deploy (push) Successful in 46s
Give lab_manager catalog/ops admin access and blood_bank_manager a branch-level stock register plus specialty admin surface, while keeping technicians on clinical queues.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 14:18:47 +00:00
isaaccladandCursor d422797050 Gate Queue to doctors and land specialty modules on list indexes.
Deploy Ladill Care / deploy (push) Successful in 34s
Hide the patient-flow Queue board from nurses, reception, and other
non-doctors; specialty home routes now render the queue board list
instead of auto-opening the first open visit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 22:53:12 +00:00
isaaccladandCursor 244bb8fba6 Hide Specialty sidebar group for desk specialists.
Deploy Ladill Care / deploy (push) Successful in 2m34s
Single-desk specialists already reach their workspace via dashboard cards; the Specialty → Dentistry nav group was redundant. GPs and multi-module roles keep the section.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 22:29:30 +00:00
isaaccladandCursor 3854fc6471 Add consultation-nested assessment create and show routes.
Deploy Ladill Care / deploy (push) Successful in 32s
Index alone still left /consultations/{uuid}/assessments/create and
/consultations/{uuid}/assessments/{uuid} unmatched (404). Wire those
paths, redirect store into the nested show, and cover the doctor form
open flow with feature tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 20:47:57 +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 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 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 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 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 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 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 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 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 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 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 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 62d42d9157 Show Care Enterprise upgrade banner to Pro users.
Deploy Ladill Care / deploy (push) Successful in 1m2s
Pro dashboards now pitch Enterprise instead of the Free unlock copy, and plan context is shared with the banner so Pro tenants no longer see Free messaging.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 11:08:13 +00:00
isaacclad 6c9051d2c6 fix(ui): use clinician-friendly assessment copy
Deploy Ladill Care / deploy (push) Successful in 1m22s
Replace internal design jargon (Layer 1, narrative source of truth,
pathway instruments) with plain clinical language on consultations,
patient charts, settings, and nav.
2026-07-16 23:17:08 +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 eaf482b5a2 Move Branches and Team into settings; drop wallet from plan CTAs.
Deploy Ladill Care / deploy (push) Successful in 1m24s
Match Frontdesk by linking branches and team from settings instead of the admin sidebar, and simplify Care plan upgrade button copy.
2026-07-16 08:58:07 +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 eb06baaa44 Hide Care Pro upgrade banner from team members.
Deploy Ladill Care / deploy (push) Successful in 38s
Only account owners with billing access see the View plans CTA.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 23:06:34 +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
isaaccladandCursor 3a7bd14b2b Add practitioners admin and staff-scoped Care UX.
Deploy Ladill Care / deploy (push) Successful in 43s
Hospital admins can manage assignable doctors and invite team members
from Ladill mailboxes; invited staff only see Care tools they need.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 21:59:39 +00:00
isaaccladandCursor 0bb19233e2 Remove desktop header search from app topbars.
Deploy Ladill Care / deploy (push) Successful in 2m43s
Drop the lg+ topbar search field; mobile search entry points are unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 06:57:06 +00:00
isaacclad 30b22e31c9 Show boot splash on app open/reload for logged-in users.
Deploy Ladill Care / deploy (push) Successful in 1m28s
Replace the once-per-session sessionStorage guard (which suppressed the loading
screen after its first appearance) with entry-aware logic: show on app entry
and reloads, suppress on internal link navigations and back/forward.
2026-07-07 20:33:40 +00:00
isaacclad 661e6ef0e8 Sync mobile notification badge and dashboard icon-link partials.
Deploy Ladill Care / deploy (push) Successful in 1m6s
Align mobile unread badge with desktop and add plus icon support for panel actions.
2026-07-03 22:41:01 +00:00
isaaccladandCursor 7663fd49f4 Add dashboard upgrade banner for free Care plans.
Deploy Ladill Care / deploy (push) Successful in 38s
Surface Pro and Enterprise pricing on the healthcare dashboard for orgs still on the free tier.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 18:13:18 +00:00
isaaccladandCursor 2808c7894e Throttle platform SSO session checks to cut per-request auth latency.
Deploy Ladill Care / deploy (push) Successful in 48s
Verify auth.ladill.com at most once every 90s; recommend Redis for session/cache in .env.example.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:49:15 +00:00
isaaccladandCursor 22646dfb62 Add Care Enterprise per-branch billing and Paystack prepaid plans.
Deploy Ladill Care / deploy (push) Successful in 1m46s
Mirrors Queue with GHS 499/branch Enterprise and 6/12/24 month Paystack checkout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 01:55:38 +00:00
isaaccladandCursor 4bc485dfea Add Care Pro billing, renewal, and scheduler.
Deploy Ladill Care / deploy (push) Successful in 35s
Organizations can subscribe from wallet, expire correctly on free tier, and renew nightly via care:pro-renew.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 01:07:23 +00:00
isaaccladandCursor 40c0eaa1a6 Add in-app Ladill Queue integration for service queue consoles.
Deploy Ladill Care / deploy (push) Successful in 37s
Settings toggle provisions Queue org via API; reception staff manage counters without leaving Care.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 21:51:17 +00:00
isaaccladandCursor a3b90656ca Fix Care billing icon to use Heroicons banknotes.
Deploy Ladill Care / deploy (push) Successful in 38s
Replace truncated credit-card path with the full banknotes icon used in Accounting.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:48:55 +00:00
isaaccladandCursor 5f4b4cf596 Use favicon.ico only in HTML partial.
Deploy Ladill Care / deploy (push) Successful in 54s
Remove favicon.svg references; user manages favicon assets directly.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:35:25 +00:00
isaaccladandCursor cf6120cb77 Align Care dashboard and sidebar with Ladill icon conventions.
Use Heroicons in indigo stat cards and match Frontdesk-style navigation styling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:31:21 +00:00
isaaccladandCursor 07f77fffd6 Cap launcher dropdown at 15 visible apps (5 rows).
Deploy Ladill Care / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 17:46:41 +00:00