TorbatYar/frontend/docs/healthcare-ui-completion-report.md
Mortezakoohjani 625275e55b feat(healthcare): add backend service and finalize frontend build
Add the Healthcare platform backend (phases 13.0–13.7) with Alembic migration revision fix, production deploy script, validation reports, shared UI exports, and loyalty list page client directives so Next.js build succeeds.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 11:38:31 +03:30

4.3 KiB

Healthcare UI Completion Report

Date: 2026-07-26
Scope: All existing /healthcare/* routes (114 pages)
Module root: frontend/src/modules/healthcare


Summary

Healthcare portal pages were upgraded from read-only list views to enterprise CRUD workspaces backed by the real healthcareApi client. A shared HealthcareResourceWorkspace engine powers tables, cards, search, saved filters, create/edit dialogs, workflow actions, audit drawers, and permission gates.


Architecture

Layer Location Role
Routes app/healthcare/** Thin re-exports only
Business UI src/modules/healthcare/pages/* Portal-specific composition
Entity screens src/modules/healthcare/components/entities/* Full CRUD + workflows
CRUD engine src/modules/healthcare/components/crud/HealthcareResourceWorkspace.tsx Reusable enterprise table
Shared UI src/shared/ui, src/shared/hooks Timeline, calendar, filters
API src/modules/healthcare/services/healthcare-api.ts Real BFF → :8010

Portal Completion Matrix

Portal Pages CRUD / Workflows Calendar Audit Permissions
Admin 14 Clinics, doctors, patients, pharmacies, settings, audit catalog
Reception 10 Appointments, queue, walk-in, check-in/out
Doctor 16 Schedule, availability, appointments, Rx, records doctor gate
Patient 18 Book/cancel appointments, docs, notifications, profile patient gate
Clinic 11 Departments, branches, staff, services, policies
Hospital 9 Departments, beds, staff, appointments
Pharmacy 7 Rx workflow (accept→ready→pickup), delivery
Public site 17 Search, book, profiles (existing + API) public
Hub / Mobile 3 Portal launcher

Enterprise Features Delivered

  • CRUD: create / edit / delete dialogs for foundation entities
  • Workflow actions: appointment confirm/cancel/no-show; visit start/finish/defer; prescription pharmacy pipeline
  • Search & filters: debounced search, status filter, saved filter presets (localStorage)
  • Views: responsive table + card toggle
  • Calendar: AppointmentCalendar for reception & doctor schedules
  • Audit: entity detail drawer + timeline from /api/v1/audit
  • Permissions: useHealthcarePermissions + PermissionDeniedState; backend enforces 403
  • Patient portal: book wizard, cancel appointment, document upload refs, notification prefs
  • Loading / empty / error states: unified via shared DS + healthcare page shells
  • RTL / theme: inherits platform CSS vars, dark mode, --health-accent* tokens

Key New Files

src/shared/hooks/useDebouncedValue.ts
src/shared/hooks/useSavedFilters.ts
src/shared/ui/Timeline.tsx
src/shared/ui/AppointmentCalendar.tsx
src/shared/ui/PermissionDeniedState.tsx
src/modules/healthcare/components/crud/HealthcareResourceWorkspace.tsx
src/modules/healthcare/components/entities/foundation.tsx
src/modules/healthcare/components/entities/workflows.tsx
src/modules/healthcare/components/entities/clinical.tsx
src/modules/healthcare/hooks/useHealthcarePermissions.ts
src/modules/healthcare/constants/permissions.ts

Known Limitations

  1. Encounters list API — backend exposes create/update/finalize but no collection list; UI supports create + placeholder list until list endpoint ships.
  2. Medical records list — no list endpoint; lookup-by-ID panel + create form provided.
  3. Insurance / lab / imaging — not exposed as dedicated REST resources in healthcare service v0.13.7; patient lab results mapped to patient-portal/documents with document_type filter.
  4. Full build — Next.js production build fails on pre-existing modules/hospitality TypeScript error (z namespace); healthcare bundle compiles successfully.

Self-Audit

  • No placeholder buttons on upgraded portal pages
  • No mock data in module business code
  • Module boundary respected (validate:healthcare PASS)
  • 114 routes intact
  • Zero circular deps in healthcare module (32 files)