Files
teatea-pension/.trellis/tasks/archive/2026-07/07-02-elder-bed-context-optimization/design.md

2.3 KiB

Elder Bed Context Optimization Design

Summary

Add read-only cross-module context to the existing elder and bed workspaces. The implementation should not merge workflows; it only surfaces concise recent signals from persisted admissions, care tasks, health records, and emergency incidents.

Data Boundary

Use existing persisted tables:

  • admissions / beds / rooms for current bed state.
  • care_tasks for recent and active care execution.
  • vital_records and health_anomaly_reviews for health context.
  • system_incidents for safety/emergency context.

No schema change is required. system_incidents does not have elder/bed foreign keys yet, so emergency context is shown only when an incident's title, description, or source clearly mentions the elder name, bed code, or room label.

Permission Boundary

Server pages decide which context to load:

  • admission:read / facility:read: bed/admission context.
  • care:read: recent care task context.
  • health:read: health anomalies and latest vitals.
  • incident:read: matching open/acknowledged emergency context.

Users without a permission should not receive that context in props.

Server Helper

Add modules/operations/server/context.ts:

  • listElderBedContextData(input)
  • input:
    • organizationId
    • permissions
    • elders
    • beds
    • admissions
  • output:
    • elderContexts: Record<string, ElderOperationalContext>
    • bedContexts: Record<string, BedOperationalContext>

The helper should batch queries and keep bounded result sizes.

UI Design

Elder list

Add a compact "近期联动" column:

  • current bed/admission is already shown in the bed column.
  • show up to three concise lines:
    • latest active/recent care task.
    • latest health anomaly or vital summary.
    • matching open/acknowledged emergency event.
  • If no permitted context exists, show -.

Bed workspace

Add an occupant context column to the bed status table:

  • show current elder care level/status.
  • show active/recent care task for that occupant.
  • show matching emergency event for occupant or bed when present.
  • Keep actions in the existing workflows; context is read-only.

Compatibility

  • Existing elder CRUD remains unchanged.
  • Existing admission workflows remain unchanged.
  • Client refresh continues to update elder/bed/admission tables; cross-module snippets are refreshed on page reload.