Commit Graph
207 Commits
Author SHA1 Message Date
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 76241ac2b5 Use compact operational KPIs in the Reports page hero.
Deploy Ladill Care / deploy (push) Successful in 56s
Hero cards now show patient/appointment/lab counts instead of long currency strings, and page-hero values truncate safely for large figures.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 11:09:25 +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 9eb6c21828 Add nursing assessment packs, ward board, and nurse performance KPIs.
Deploy Ladill Care / deploy (push) Successful in 55s
Seeds NEWS2/Braden/Morse/pain packs with visit vitals and a unit dashboard for MAR, assessments, notes, and handover activity.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 10:32:52 +00:00
isaaccladandCursor cb6e59e5ed Add ward MAR board plus nursing notes and SBAR handovers.
Deploy Ladill Care / deploy (push) Successful in 52s
Nurses can chart given/held/refused doses from active prescriptions on placed patients, and document chronologic notes and unit shift handovers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 10:15:58 +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 56a663a777 Replace Maternity with Women's Health (OB/GYN) and configurable service lines.
Deploy Ladill Care / deploy (push) Successful in 26s
Keeps Fertility as a separate specialty, adds OB/GYN and fertility staff roles, and migrates live org settings from maternity → womens_health.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 09:48:19 +00:00
isaaccladandCursor 938f351ede Expand specialty RBAC with dedicated specialist roles and support access.
Deploy Ladill Care / deploy (push) Successful in 41s
Add cardiologist/ENT/derm/ophthalmology/ortho/podiatry/fertility roles and
manage/refer/view matrices so GPs, nurses, lab, pharmacy, and reception get
realistic module access beyond single-app specialists.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 09:21:26 +00:00
isaaccladandCursor ac870bcf33 Implement Care RBAC role→permission→app matrix.
Deploy Ladill Care / deploy (push) Successful in 57s
Replace broad doctor/nurse specialty access with granular roles and primary
apps, permission inheritance for lab/BB managers, and cannot-rules for
discharge, lab approve, and cashier vs billing officer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 00:24:09 +00:00
isaaccladandCursor 55a1288d30 Register ambulance specialty module in the Care catalog.
Deploy Ladill Care / deploy (push) Successful in 28s
The suite landed without the catalog entry after a parallel Child Welfare merge; restore it so activation, demo flags, and departments work.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 22:38:24 +00:00
isaaccladandCursor c0e5d8ef00 Add full Ambulance and Child Welfare specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 54s
EMS clinic workflow (dispatch → scene → transport → handover) plus completed CWC suite, with shell stages, clinical records, reports/print, demo seed, and suite tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 22:25:52 +00:00
isaaccladandCursor 8c18ecc5c9 Add full Dermatology, Podiatry, and Fertility specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 35s
Bring thin catalog modules to the same depth as Cardiology with stages, clinical tabs, reports/print, demo seed, and suite tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 22:03:01 +00:00
isaaccladandCursor 7b722c71d0 Add full Vaccination, Pathology, and Infusion specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 34s
Mirror Oncology-depth stage flows, workspace controllers, clinical forms, reports/print, demo seed, and suite tests. Pathology stays clinic specialty complementary to the Lab app.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 21:39:15 +00:00
isaaccladandCursor b7e5a7d9ad Add full Oncology, Renal Care, and Surgery specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 32s
Match Pediatrics/ENT depth with stages, workspace tabs, clinical records, reports/print, demo seed, and suite tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 20:16:18 +00:00
isaaccladandCursor dc86b51ed5 Add full Pediatrics, Orthopedics, and ENT specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 43s
Mirror Cardiology-depth stage flows, workspace tabs, reports/print, clinical
alerts, demo seeds, and PHPUnit coverage for child health, fracture clinic,
and ENT pathways.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 19:12:38 +00:00
isaaccladandCursor 8e23cdeae3 Add full Radiology, Cardiology, and Psychiatry specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 49s
Mirror the Ophthalmology/Maternity shell pattern with stages, stage_tabs,
workspace clinical records, reports/print, demo seeds, and suite tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 18:41:55 +00:00
isaaccladandCursor b3805023b1 Add Prescribe to specialty workspace Actions.
Deploy Ladill Care / deploy (push) Successful in 41s
Reuse the GP consultation prescribe modal, gate with prescriptions.manage, and return to the specialty workspace after create.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 17:50:40 +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 cfa71c2c15 Add full Physiotherapy and Maternity specialty clinical suites.
Deploy Ladill Care / deploy (push) Successful in 52s
Mirror Eye Care depth with stages, workspace tabs, clinical JSON, stage Move→tab routing, reports/print, demo seeds, and suite feature tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:39:22 +00:00
isaaccladandCursor 2f724daf49 Open the matching workspace tab after specialty stage advance.
Deploy Ladill Care / deploy (push) Successful in 45s
Stage Move CTAs and pills previously always redirected to overview; map each stage to its tab via shell config so examination lands on exam, etc.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:21:43 +00:00
isaaccladandCursor be7bd8f433 Add shared specialty stage stepper to all workspace shells.
Deploy Ladill Care / deploy (push) Successful in 35s
Lift Eye Care stage pills into a reusable action-bar component so every
module visit workspace shows config-driven stages with RBAC-gated Move CTAs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 16:13:29 +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 1d3db4f803 Add full Eye Care (ophthalmology) specialty clinical suite.
Deploy Ladill Care / deploy (push) Successful in 35s
Mirror Emergency/Blood Bank depth with stages, workspace tabs, workflow/analytics services, reports/print, demo clinical seed, and feature tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 15:19:04 +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 64e3f75159 Let nurses open specialty visits from the queue list.
Deploy Ladill Care / deploy (push) Successful in 51s
Open on waiting/called cards no longer requires consultations.manage so
view roles can re-enter Emergency and other specialty workspaces.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 13:52:28 +00:00
isaaccladandCursor f82964b2a0 Remove Care cashier access to Ladill POS.
Deploy Ladill Care / deploy (push) Successful in 47s
Cashiers collect via Billing only; strip POS from demo staff grants and StaffUx/launcher so the suite hub no longer offers POS for that role.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:47:07 +00:00
isaaccladandCursor 4ad3a8a901 Show payments and paid bills on billing dashboards.
Deploy Ladill Care / deploy (push) Successful in 1m21s
Cashiers and other bills.view roles get today's collections breakdown and a recent paid-invoice list under the existing metric cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:40:04 +00:00
isaaccladandCursor e69c7da0d6 Fix bill payment forms to use major currency units.
Deploy Ladill Care / deploy (push) Successful in 56s
Cashiers saw pesewa integers (e.g. 4000) while history showed GHS 40.00; accept and prefill major amounts and convert to minor on record/checkout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:30:31 +00:00
isaaccladandCursor a34d6579cd Fix cashier desk: unpaid bills on every demo branch.
Deploy Ladill Care / deploy (push) Successful in 39s
Demo seeding used i%3 for both branch and paid status, so Ridge Clinic only got paid invoices. Cashiers now default to outstanding balances and Call next is secondary to the walk-up unpaid list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:22:54 +00:00
isaaccladandCursor b84c7e31ba Make cashier billing invoices actionable for walk-up payment.
Deploy Ladill Care / deploy (push) Successful in 1m1s
Clarify booth Call next vs unpaid invoice list, and expose Pay/View row actions so cashiers can open bills when the booth queue is empty.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:16:49 +00:00
isaaccladandCursor ff316f15c6 Redirect cashiers from legacy service queues to Billing.
Deploy Ladill Care / deploy (push) Successful in 48s
Doctor-only Queue left non-doctors landing on Appointments, which cashiers
(and pharmacists/lab techs) cannot open — restore role-natural list routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 23:11:32 +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 c8a7115e49 Link demo specialty desks after SSO remap and tighten keyword matching.
Deploy Ladill Care / deploy (push) Successful in 58s
Specialty seeder looked up members by email user_ref only, so remapped
demo logins never got practitioner.member_id and saw every module.
Also stop short keywords like "ent" matching "dentistry".

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 22:18:49 +00:00
isaaccladandCursor d02760c527 Limit specialty module visibility to matching desk specialists.
Deploy Ladill Care / deploy (push) Successful in 35s
GPs keep broad general/limited manage and restricted view/refer; dentists and other desk specialists only see modules that match their specialty.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 22:09:15 +00:00
isaaccladandCursor 9ecc3ad7f0 Fix dentistry demo seed scoping departments by branch.
Deploy Ladill Care / deploy (push) Successful in 52s
care_departments has no organization_id; match the Blood Bank seeder pattern so demo:seed no longer fails on dental specialty data.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 21:56:18 +00:00
isaaccladandCursor ad3d8b5ce4 Seed Blood Bank demo inventory_note on open visits.
Deploy Ladill Care / deploy (push) Successful in 28s
Pro/enterprise DemoTenantSeeder now upserts visit-scoped facility stock so the Inventory tab and reports show unit counts and a low-stock alert without manual entry.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 21:46:13 +00:00
isaaccladandCursor f688a48c37 Add full Blood Bank specialty suite on shared shell.
Deploy Ladill Care / deploy (push) Successful in 37s
Mirror Emergency: stage workflow, issue/transfusion records, analytics,
print, and action-menu stage flow without a parallel EHR.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 21:36:57 +00:00
isaaccladandCursor 847d63c1c2 Allow consultation assessments when patient home branch differs.
Deploy Ladill Care / deploy (push) Successful in 40s
Doctors scoped to the visit branch were getting app 404s on nested
assessment routes because authorizePatient compared the patient's home
branch, unlike consultation/prescription auth which uses the visit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 21:26:58 +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 1128ea31cc Add GET /consultations/{uuid}/assessments for consultation-scoped forms.
Deploy Ladill Care / deploy (push) Successful in 50s
Only POST existed on that path, so navigating to the natural collection URL 404'd. Serve the patient assessments index with consultation return context, and cover it with a doctor feature test.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 20:39:02 +00:00
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