Files
ladill-care/docs/specialty-module-design-standard.md
T
isaaccladandCursor 57358e4206
Deploy Ladill Care / deploy (push) Failing after 1m2s
Add specialty clinical records on the shared shell (Phase 3).
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

240 lines
8.9 KiB
Markdown

# Ladill Care Specialty Module Design & Development Standard
## Objective
Develop all specialty modules using a unified architecture, consistent UI/UX, shared workflows, reusable components, and common design principles while allowing each specialty to introduce its own clinical workflows and records.
Every specialty module should feel like a natural extension of Ladill Care rather than a separate application.
---
## Core Design Principles
### 1. Workflow-Driven
Every module begins with the patient journey.
Do not design screens first. Design the workflow first.
**Example — Dentistry**
```
Appointment → Registration → Payment → Waiting Room → Dental Chair
→ Treatment → Prescription → Payment → Exit
```
Every module must define:
- Entry points
- Service stages
- Payment checkpoints
- Queues
- Completion criteria
### 2. Episode-Based
Every patient visit creates a clinical episode.
```
Patient → Visit → Episode → Consultation → Treatment → Billing → Completion
```
All specialty records belong to an episode.
> **Implementation note (current Care):** Prefer extending the existing `Visit` as the episode unit first. Introduce a separate `Episode` entity only when multi-visit care plans require it.
### 3. Timeline-Based
Every specialty contributes to one unified patient timeline.
Example:
```
09:15 Registration
09:23 Payment
09:35 Doctor Consultation
09:48 X-Ray Ordered
10:15 X-Ray Completed
10:32 Pharmacy
10:50 Exit
```
Every module extends the timeline — it does not create a parallel chart.
---
## UI Standards
Every module should share the same layout:
```
------------------------------------------------
Patient Header
------------------------------------------------
Patient Summary | Alerts | Insurance | Outstanding Bills | Queue Status
------------------------------------------------
Left Navigation | Main Workspace | Action Panel
Overview | |
Visits | |
History | |
Module Tabs | |
------------------------------------------------
```
The user should never feel lost switching between specialties.
### Standard Patient Header
Every module displays:
- Patient photo, name, age, gender, patient ID
- Visit number
- Current queue, current doctor
- Insurance, allergies, outstanding balance
- Emergency flags
### Module Dashboard
Every specialty module begins with a dashboard of operational metrics.
**Dentistry example:** Today's patients, waiting, in treatment, completed, revenue today, average treatment time, chairs occupied.
**Radiology example:** Scans waiting, in progress, reports pending, completed, equipment utilization.
### Common Screen Sections
Every specialty should contain:
| Section | Purpose |
| --- | --- |
| Overview | General patient / ops summary |
| Clinical Notes | Specialty-specific notes |
| Orders | Tests, medications, procedures |
| Billing | Invoices, payments, outstanding, insurance |
| Documents | Images, reports, consent forms |
| History | Previous visits |
### Standard Action Buttons
Use identical primary actions across modules:
Register · Call Next Patient · Start Consultation · Pause · Complete · Refer · Order Test · Prescribe · Generate Invoice · Receive Payment · Print · Discharge
No module should invent new terminology where a common action already exists.
---
## Queue Guidelines
Every specialty owns its own queues with specialty-specific stages.
Examples:
| Specialty | Stages |
| --- | --- |
| Dentistry | Waiting → Chair Assignment → Procedure → Recovery |
| Radiology | Waiting → Imaging Room → Reporting → Completed |
| Physiotherapy | Waiting → Session → Follow-up |
| Eye Clinic | Vision Test → Refraction → Doctor → Optical Shop |
Queues should always display: waiting time, priority, assigned staff, expected duration, status.
---
## Billing Guidelines
Every module integrates with centralized Billing.
Each service automatically generates billable items. Never hardcode billing. Services generate invoices dynamically (consultation fees, procedures, investigations, consumables, medications, insurance).
---
## Scheduling
Every specialty supports: appointments, walk-ins, follow-ups, recurring visits, and group sessions where applicable.
---
## Permissions
Each module defines role-relevant actions for: Receptionist, Nurse, Doctor, Consultant, Cashier, Technician, Administrator.
Each role only sees relevant actions.
---
## Alerts, Documents, Analytics, AI Ready
- **Alerts:** specialty-defined clinical/ops alerts (e.g. high-risk pregnancy, critical radiology report).
- **Documents:** image uploads, scanned reports, consent forms, PDF generation, electronic signatures.
- **Analytics:** patient volume, revenue, waiting time, treatment duration, staff utilization, cancellation rate, follow-up compliance.
- **AI ready:** expose structured clinical data (not free-text only) for decision support, coding, summaries, risk scoring, transcription.
---
## Specialty Module Build Prompt
Use this prompt when implementing a specific specialty:
> Develop the **[MODULE NAME]** Specialty Module as a native extension of Ladill Care.
>
> Follow the Ladill Care Design System, Workflow Engine, Queue Engine, Billing Engine, Appointment Engine, Notification Engine, Document Engine, Reporting Engine, and Permission Framework.
>
> The module must not behave like a standalone application. It must extend the patient journey already established within Ladill Care.
>
> Include: (1) Dashboard KPIs, (2) full arrival→discharge workflow, (3) specialty queues, (4) clinical workspace with standard layout, (5) billing integration, (6) scheduling, (7) documents, (8) reporting, (9) integration with registration / pharmacy / lab / radiology / accounting / CRM / notifications / audit / API, (10) UX standards — reuse components, shared design system, responsive, keyboard-first for high-volume facilities.
---
## Current implementation status (as of 2026-07)
Specialty modules share a **specialty shell** on the Care Queue Engine. Per-module clinical forms deepen in Phase 3.
| Capability | Status |
| --- | --- |
| Module catalog + activate/deactivate | Exists (`config/care_specialty_modules.php`, `SpecialtyModuleService`) |
| Department + queue provisioning | Exists (native Care Queue Engine) |
| Shared specialty shell (Overview / Visits / History / Billing / Workspace) | Exists (`SpecialtyShellService`, `care/specialty/shell.blade.php`) |
| Stage maps + service catalogs | Exists (`config/care_specialty_shell.php` — Emergency, Blood Bank, Dentistry first-class; others inherit defaults) |
| Standard patient header + timeline | Exists (reused on specialty workspace + patient chart) |
| Visit-backed specialty visits | Exists (open visits + history lists) |
| Service catalog → Billing Engine | Exists (seed on activate; add line from workspace Billing tab) |
| Specialty KPIs | Exists (overview strip) |
| Deep clinical forms / order sets / documents | Phase 3 started — Emergency, Blood Bank, Dentistry structured records + docs upload; others inherit generic notes |
| Specialty clinical alerts | Exists (derived from triage / blood request / inventory payloads) |
**Program plan:** `docs/care-queue-engine-and-specialty-plan.md` (Phase 2 shell complete; Phase 3 rolls remaining modules onto clinical depth).
| Specialty dashboard KPIs | Missing |
| Left nav Overview / Visits / History / Module Tabs | Missing |
| Clinical workspace | Missing (falls through to appointments/consultations) |
| Specialty service catalog → billing | Missing |
| Specialty-scoped reports / alerts / analytics | Missing |
**Key files today**
- `config/care_specialty_modules.php`
- `app/Services/Care/SpecialtyModuleService.php`
- `app/Http/Controllers/Care/SpecialtyModuleController.php`
- `resources/views/care/specialty/show.blade.php`
### Foundational build order (before deep per-specialty work)
1. **Specialty shell + nested routes** — shared layout with KPI strip and left nav; one family of controllers/views for all modules.
2. **Visit as the episode unit** — specialty Overview/Visits backed by `Visit` + workflow stages.
3. **Shared patient header + timeline component** — reuse on specialty History and patient chart.
4. **Specialty service catalog → billing/workflow charges** — seed charge codes on activate.
5. **Queue + clinical workspace entry points** — stage-aware queue → open consultation/assessment with specialty context.
Do not implement dentistry, maternity, cardiology, etc. as separate apps until that shared shell and Visit/queue/billing bridges exist.
---
## Care Queue Engine (product decision)
Ladill Care uses an **in-app Care Queue Engine**, fully decoupled from Ladill Queue.
- Specialty queues, call-next, and service points are Care-native.
- Ladill Queue remains a general-purpose QMS; healthcare / Care packaging is removed from Queue.
- Unified program plan: [`docs/care-queue-engine-and-specialty-plan.md`](care-queue-engine-and-specialty-plan.md).