Commit Graph
112 Commits
Author SHA1 Message Date
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 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 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 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 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 e227f8705f Allow specialty doctors to open patient charts and order labs.
Deploy Ladill Care / deploy (push) Successful in 1m18s
Branch-scoped staff could 404 on charts when the patient's home branch differed from the visit site; Orders also linked doctors to a lab index they could not access.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 16:49:59 +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 40325144bb Open Prescribe from consultation as a modal/bottomsheet.
Deploy Ladill Care / deploy (push) Successful in 46s
Reuse the shared prescription form in x-modal so desktop gets a popup and mobile gets the existing bottomsheet behavior, then return to the consultation after create.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:58:58 +00:00
isaaccladandCursor 2b3eed8f84 Consolidate consultation and specialty actions into a sticky panel.
Deploy Ladill Care / deploy (push) Successful in 35s
Desktop uses a right sticky Actions column; mobile uses a FAB above the nav that opens a bottomsheet. Request investigations moves into a modal/sheet, and Call next is available on the consultation panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:38:09 +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 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 e62cb24bfc Stack queue card hierarchy: ticket, patient, then room/doctor.
Deploy Ladill Care / deploy (push) Successful in 1m42s
Stops cramming ticket status, destination, and patient name onto one line across Patient, Pharmacy, Lab, and specialty queues.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 06:16:50 +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 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 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 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 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