75 lines
2.7 KiB
Markdown
75 lines
2.7 KiB
Markdown
# Implementation Plan
|
|
|
|
## 1. Align Task Metadata
|
|
|
|
- Update task title/description if needed so the Trellis task reflects `健康数据管理` instead of care-service workspace wording.
|
|
- Keep the existing task directory unless a rename is explicitly requested.
|
|
|
|
## 2. Schema And Migration
|
|
|
|
- Add health enums and tables in `modules/core/server/schema.ts`.
|
|
- Add indexes/unique constraints:
|
|
- profile unique `(organizationId, elderId)`
|
|
- recent vital lookups by `(organizationId, elderId, recordedAt)`
|
|
- review queues by `(organizationId, status, severity)`
|
|
- Run `pnpm db:generate`.
|
|
- Review generated migration SQL.
|
|
|
|
## 3. Types And Permissions
|
|
|
|
- Add `health:read` and `health:manage` to `modules/core/types.ts`.
|
|
- Add permission definitions and default role grants in `modules/core/server/permissions.ts`.
|
|
- Add health DTOs, labels, validators, and formatting helpers in `modules/health/types.ts`.
|
|
|
|
## 4. Server Operations
|
|
|
|
- Create `modules/health/server/operations.ts`.
|
|
- Implement batched list helper for the admin page.
|
|
- Implement mutation helpers for:
|
|
- profile upsert
|
|
- vital create
|
|
- chronic condition create
|
|
- review status update
|
|
- Ensure all helpers require an organization ID and validate elder/review ownership.
|
|
|
|
## 5. API Routes
|
|
|
|
- Add `/api/health/admin`.
|
|
- Add `/api/health/profiles/[elderId]`.
|
|
- Add `/api/health/vitals`.
|
|
- Add `/api/health/chronic-conditions`.
|
|
- Add `/api/health/reviews/[id]`.
|
|
- Use `requirePermission`, structured `jsonSuccess` / `jsonFailure`, and audit logs.
|
|
|
|
## 6. Admin Page UI
|
|
|
|
- Add `app/(app)/app/settings/health/page.tsx`.
|
|
- Add `app/(app)/app/[organizationSlug]/settings/health/page.tsx` delegating to the unscoped route pattern.
|
|
- Add `modules/health/components/HealthAdminClient.tsx`.
|
|
- Use existing UI adapters for buttons, cards, dialogs, inputs, selects, tables, and badges.
|
|
- Add management nav and breadcrumbs.
|
|
|
|
## 7. Default Workspace Data
|
|
|
|
- Carefully inspect current uncommitted `modules/core/server/default-workspace-data.ts`.
|
|
- Add health seed records only if compatible with existing default seed flow.
|
|
- Tie seed records to seeded elders and organization.
|
|
|
|
## 8. Verification
|
|
|
|
- Run `pnpm lint`.
|
|
- Run `pnpm type-check`.
|
|
- Run `pnpm build`.
|
|
- If a database is available, run `pnpm db:migrate` and manually test:
|
|
- scoped management page loads.
|
|
- health profile upsert persists.
|
|
- vital record create persists.
|
|
- abnormal review update persists.
|
|
- insufficient permission returns `403`.
|
|
|
|
## Rollback Points
|
|
|
|
- Before migration generation: schema changes can be removed directly.
|
|
- After migration generation: remove generated migration files and schema changes together.
|
|
- After UI/API addition: remove `modules/health`, health API routes, settings health pages, nav/breadcrumb additions, and health permissions.
|