Files
akmon/doc_eldercare/eldercare_system_development_plan.md
2026-01-20 08:04:15 +08:00

710 lines
28 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 养老管理系统开发方案 (基于现有数据库结构)
## 项目概述
基于现有 zhipao.sql 数据库结构,开发一套完整的多租户养老管理系统,采用 uni-app-x 框架,严格遵循 UTS Android 兼容性要求。
## 数据库设计方案
### 1. 复用现有核心组件
#### 1.1 用户管理系统 (完整复用)
```sql
-- 直接使用现有表结构
-- ak_users (基础用户表)
-- ak_user_contacts (联系方式)
-- ak_user_profiles (个人资料)
-- ak_user_roles (用户角色关联)
```
#### 1.2 权限角色系统 (扩展现有)
```sql
-- 基于现有角色系统,增加养老系统特有角色
INSERT INTO public.ak_roles (name, description, level, is_system) VALUES
('elder', '入住老人', 5, true),
('family', '家属用户', 15, true),
('caregiver', '护理员', 25, true),
('nurse', '护士', 35, true),
('doctor', '医生', 45, true),
('facility_admin', '机构管理员', 55, true),
('system_admin', '系统管理员', 100, true);
-- 添加养老系统权限
INSERT INTO public.ak_permissions (code, name, resource_type, action, description) VALUES
-- 老人权限
('elder.profile.read', '查看个人档案', 'profile', 'read', '查看自己的档案信息'),
('elder.health.read', '查看健康记录', 'health', 'read', '查看自己的健康数据'),
-- 家属权限
('family.elder.read', '查看老人信息', 'elder', 'read', '查看关联老人的信息'),
('family.visit.create', '预约探访', 'visit', 'create', '预约探访老人'),
-- 护理员权限
('caregiver.care.manage', '护理管理', 'care', 'manage', '执行日常护理任务'),
('caregiver.elder.read', '查看老人信息', 'elder', 'read', '查看负责老人信息'),
-- 护士权限
('nurse.health.manage', '健康管理', 'health', 'manage', '管理老人健康记录'),
('nurse.medication.manage', '用药管理', 'medication', 'manage', '管理用药计划'),
-- 医生权限
('doctor.diagnosis.manage', '诊疗管理', 'diagnosis', 'manage', '管理医疗诊断'),
('doctor.prescription.manage', '处方管理', 'prescription', 'manage', '开具处方');
```
#### 1.3 多租户架构 (改造复用)
```sql
-- 地区管理 → 机构区域管理
-- ak_regions 表直接使用
-- 学校管理 → 养老机构管理
-- 基于 ak_schools 表结构
CREATE TABLE public.ec_facilities (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(128) NOT NULL, -- 机构名称
region_id uuid REFERENCES public.ak_regions(id), -- 所属地区
type VARCHAR(32), -- 机构类型nursing_home, assisted_living, day_care
license_number VARCHAR(64), -- 许可证号
contact_phone VARCHAR(32), -- 联系电话
address TEXT, -- 详细地址
capacity INT, -- 床位总数
current_occupancy INT DEFAULT 0, -- 当前入住人数
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 班级管理 → 护理单元管理
-- 基于 ak_classes 表结构
CREATE TABLE public.ec_care_units (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
facility_id uuid REFERENCES public.ec_facilities(id) ON DELETE CASCADE,
name VARCHAR(32) NOT NULL, -- 护理单元名称(如A栋1楼、康复区)
unit_type VARCHAR(32), -- 单元类型general, dementia, medical, rehab
bed_capacity INT, -- 床位数
current_occupancy INT DEFAULT 0, -- 当前入住数
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
#### 1.4 设备管理系统 (改造复用)
```sql
-- 基于 ak_devices 表,扩展为健康监测设备
CREATE TABLE public.ec_devices (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
facility_id uuid REFERENCES public.ec_facilities(id),
elder_id uuid REFERENCES public.ak_users(id), -- 关联老人
device_type VARCHAR(32) NOT NULL, -- 设备类型blood_pressure, glucose, heart_rate, fall_detector
device_name VARCHAR(64), -- 设备名称
device_mac VARCHAR(64), -- 设备MAC
location VARCHAR(128), -- 设备位置
bind_time TIMESTAMP WITH TIME ZONE DEFAULT now(),
status VARCHAR(16) DEFAULT 'active', -- active, inactive, maintenance
last_sync TIMESTAMP WITH TIME ZONE, -- 最后同步时间
extra JSONB -- 设备特有配置
);
```
### 2. 养老系统核心业务表
#### 2.1 老人档案管理
```sql
-- 老人基本档案
CREATE TABLE public.ec_elders (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
user_id uuid UNIQUE REFERENCES public.ak_users(id) ON DELETE CASCADE, -- 关联用户表
facility_id uuid REFERENCES public.ec_facilities(id), -- 所属机构
care_unit_id uuid REFERENCES public.ec_care_units(id), -- 护理单元
elder_code VARCHAR(32) UNIQUE, -- 老人编号
name VARCHAR(64) NOT NULL, -- 姓名
id_card VARCHAR(32), -- 身份证号
gender VARCHAR(16), -- 性别
birthday DATE, -- 出生日期
nationality VARCHAR(32), -- 民族
religion VARCHAR(32), -- 宗教信仰
marital_status VARCHAR(16), -- 婚姻状况
education VARCHAR(32), -- 文化程度
occupation VARCHAR(64), -- 职业
admission_date DATE, -- 入住日期
care_level VARCHAR(16), -- 护理等级self_care, assisted, full_care, dementia
room_number VARCHAR(16), -- 房间号
bed_number VARCHAR(16), -- 床位号
payment_method VARCHAR(16), -- 付费方式self_pay, insurance, government
monthly_fee DECIMAL(10,2), -- 月费用
deposit DECIMAL(10,2), -- 押金
status VARCHAR(16) DEFAULT 'active', -- 状态active, discharged, deceased
created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 家属联系人
CREATE TABLE public.ec_family_contacts (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
user_id uuid REFERENCES public.ak_users(id), -- 关联家属用户账号
name VARCHAR(64) NOT NULL, -- 联系人姓名
relationship VARCHAR(32), -- 关系son, daughter, spouse, sibling, other
phone VARCHAR(32), -- 电话
email VARCHAR(128), -- 邮箱
address TEXT, -- 地址
is_emergency_contact BOOLEAN DEFAULT false, -- 是否紧急联系人
is_primary BOOLEAN DEFAULT false, -- 是否主要联系人
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
#### 2.2 健康管理
```sql
-- 健康档案
CREATE TABLE public.ec_health_records (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
record_type VARCHAR(32), -- 记录类型admission, routine, emergency, discharge
record_date DATE,
height_cm INT, -- 身高
weight_kg DECIMAL(5,2), -- 体重
blood_pressure_systolic INT, -- 收缩压
blood_pressure_diastolic INT, -- 舒张压
heart_rate INT, -- 心率
temperature DECIMAL(4,1), -- 体温
blood_sugar DECIMAL(5,2), -- 血糖
medical_history TEXT, -- 病史
current_medications TEXT, -- 当前用药
allergies TEXT, -- 过敏史
mental_status TEXT, -- 心理状态
mobility_level VARCHAR(16), -- 行动能力independent, assisted, wheelchair, bedridden
cognitive_level VARCHAR(16), -- 认知能力normal, mild, moderate, severe
recorded_by uuid REFERENCES public.ak_users(id), -- 记录人
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 基于现有 ak_biometric_data 表结构扩展
-- 生命体征监测数据
CREATE TABLE public.ec_vital_signs (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
device_id uuid REFERENCES public.ec_devices(id), -- 监测设备
vital_type VARCHAR(32), -- 体征类型blood_pressure, heart_rate, temperature, oxygen, glucose
systolic_pressure INT, -- 收缩压
diastolic_pressure INT, -- 舒张压
heart_rate INT, -- 心率
temperature DECIMAL(4,1), -- 体温
oxygen_saturation INT, -- 血氧饱和度
glucose_level DECIMAL(5,2), -- 血糖
measured_at TIMESTAMP WITH TIME ZONE, -- 测量时间
measured_by uuid REFERENCES public.ak_users(id), -- 测量人
notes TEXT, -- 备注
is_abnormal BOOLEAN DEFAULT false, -- 是否异常
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
#### 2.3 护理管理
```sql
-- 护理计划 (基于 ak_training_plans 改造)
CREATE TABLE public.ec_care_plans (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
plan_name VARCHAR(128) NOT NULL, -- 计划名称
plan_type VARCHAR(32), -- 计划类型daily, medical, rehabilitation, nutrition
description TEXT, -- 描述
start_date DATE, -- 开始日期
end_date DATE, -- 结束日期
frequency VARCHAR(32), -- 频率daily, weekly, monthly
assigned_caregiver uuid REFERENCES public.ak_users(id), -- 负责护理员
created_by uuid REFERENCES public.ak_users(id), -- 创建人
status VARCHAR(16) DEFAULT 'active', -- 状态
created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 护理任务 (基于 ak_assignments 改造)
CREATE TABLE public.ec_care_tasks (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
care_plan_id uuid REFERENCES public.ec_care_plans(id),
task_name VARCHAR(128) NOT NULL, -- 任务名称
task_type VARCHAR(32), -- 任务类型medication, hygiene, mobility, nutrition, social
description TEXT, -- 任务描述
scheduled_time TIMESTAMP WITH TIME ZONE, -- 计划执行时间
assigned_to uuid REFERENCES public.ak_users(id), -- 分配给
priority VARCHAR(16) DEFAULT 'normal', -- 优先级low, normal, high, urgent
estimated_duration INT, -- 预计耗时(分钟)
status VARCHAR(16) DEFAULT 'pending', -- 状态pending, in_progress, completed, cancelled
due_date TIMESTAMP WITH TIME ZONE, -- 截止时间
created_by uuid REFERENCES public.ak_users(id), -- 创建人
created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 护理记录 (基于 ak_assignment_submissions 改造)
CREATE TABLE public.ec_care_records (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
task_id uuid REFERENCES public.ec_care_tasks(id) ON DELETE CASCADE,
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
caregiver_id uuid REFERENCES public.ak_users(id) ON DELETE CASCADE, -- 护理员
start_time TIMESTAMP WITH TIME ZONE, -- 开始时间
end_time TIMESTAMP WITH TIME ZONE, -- 结束时间
actual_duration INT, -- 实际耗时(分钟)
care_content TEXT, -- 护理内容
elder_condition TEXT, -- 老人状况描述
issues_notes TEXT, -- 问题或注意事项
photo_urls TEXT[], -- 相关照片
status VARCHAR(16) DEFAULT 'completed', -- 状态
rating INT, -- 护理质量评分(1-5)
supervisor_notes TEXT, -- 主管备注
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
#### 2.4 医疗管理
```sql
-- 医疗记录
CREATE TABLE public.ec_medical_records (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
doctor_id uuid REFERENCES public.ak_users(id), -- 医生
visit_type VARCHAR(32), -- 就诊类型routine, emergency, consultation, follow_up
visit_date TIMESTAMP WITH TIME ZONE, -- 就诊时间
chief_complaint TEXT, -- 主诉
symptoms TEXT, -- 症状
diagnosis TEXT, -- 诊断
treatment_plan TEXT, -- 治疗方案
prescription TEXT, -- 处方
follow_up_date DATE, -- 复诊日期
notes TEXT, -- 医生备注
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 用药管理
CREATE TABLE public.ec_medications (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
medical_record_id uuid REFERENCES public.ec_medical_records(id), -- 关联医疗记录
medication_name VARCHAR(128) NOT NULL, -- 药品名称
dosage VARCHAR(64), -- 剂量
frequency VARCHAR(64), -- 用药频率
route VARCHAR(32), -- 给药途径oral, injection, topical
start_date DATE, -- 开始日期
end_date DATE, -- 结束日期
prescribed_by uuid REFERENCES public.ak_users(id), -- 开药医生
instructions TEXT, -- 用药说明
side_effects TEXT, -- 副作用注意
status VARCHAR(16) DEFAULT 'active', -- 状态active, completed, discontinued
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 用药记录
CREATE TABLE public.ec_medication_logs (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
medication_id uuid REFERENCES public.ec_medications(id) ON DELETE CASCADE,
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
administered_by uuid REFERENCES public.ak_users(id), -- 给药人
scheduled_time TIMESTAMP WITH TIME ZONE, -- 计划给药时间
actual_time TIMESTAMP WITH TIME ZONE, -- 实际给药时间
dosage_given VARCHAR(64), -- 实际给药剂量
status VARCHAR(16), -- 状态given, refused, missed, delayed
notes TEXT, -- 备注
side_effects_observed TEXT, -- 观察到的副作用
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
#### 2.5 服务管理
```sql
-- 餐饮服务
CREATE TABLE public.ec_meal_services (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
facility_id uuid REFERENCES public.ec_facilities(id) ON DELETE CASCADE,
meal_date DATE NOT NULL, -- 用餐日期
meal_type VARCHAR(16), -- 餐次类型breakfast, lunch, dinner, snack
menu_items JSONB, -- 菜单项目
nutritional_info JSONB, -- 营养信息
special_diet_options JSONB, -- 特殊饮食选项
created_by uuid REFERENCES public.ak_users(id), -- 创建人
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 用餐记录
CREATE TABLE public.ec_meal_records (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
meal_service_id uuid REFERENCES public.ec_meal_services(id),
meal_type VARCHAR(16), -- 餐次
meal_date DATE, -- 用餐日期
food_items JSONB, -- 实际用餐项目
appetite_level VARCHAR(16), -- 食欲good, fair, poor
amount_consumed VARCHAR(16), -- 进食量full, half, quarter, none
assistance_needed BOOLEAN DEFAULT false, -- 是否需要协助
assisted_by uuid REFERENCES public.ak_users(id), -- 协助人员
notes TEXT, -- 备注
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 活动安排
CREATE TABLE public.ec_activities (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
facility_id uuid REFERENCES public.ec_facilities(id) ON DELETE CASCADE,
activity_name VARCHAR(128) NOT NULL, -- 活动名称
activity_type VARCHAR(32), -- 活动类型recreation, therapy, education, social, exercise
description TEXT, -- 活动描述
location VARCHAR(128), -- 活动地点
start_time TIMESTAMP WITH TIME ZONE, -- 开始时间
end_time TIMESTAMP WITH TIME ZONE, -- 结束时间
max_participants INT, -- 最大参与人数
instructor uuid REFERENCES public.ak_users(id), -- 活动指导员
requirements TEXT, -- 参与要求
materials_needed TEXT, -- 所需物品
status VARCHAR(16) DEFAULT 'scheduled', -- 状态
created_by uuid REFERENCES public.ak_users(id), -- 创建人
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 活动参与记录
CREATE TABLE public.ec_activity_participations (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
activity_id uuid REFERENCES public.ec_activities(id) ON DELETE CASCADE,
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
participation_status VARCHAR(16), -- 参与状态registered, attended, absent, cancelled
enjoyment_level VARCHAR(16), -- 参与满意度excellent, good, fair, poor
behavior_notes TEXT, -- 行为观察记录
staff_notes TEXT, -- 工作人员备注
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 访客管理
CREATE TABLE public.ec_visits (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
visitor_name VARCHAR(64) NOT NULL, -- 访客姓名
visitor_relationship VARCHAR(32), -- 与老人关系
visitor_id_card VARCHAR(32), -- 访客身份证
visitor_phone VARCHAR(32), -- 访客电话
visit_date DATE, -- 访问日期
start_time TIME, -- 开始时间
end_time TIME, -- 结束时间
visit_purpose TEXT, -- 访问目的
items_brought TEXT, -- 携带物品
approved_by uuid REFERENCES public.ak_users(id), -- 审批人
check_in_time TIMESTAMP WITH TIME ZONE, -- 实际签到时间
check_out_time TIMESTAMP WITH TIME ZONE, -- 实际签出时间
status VARCHAR(16) DEFAULT 'scheduled', -- 状态scheduled, in_progress, completed, cancelled
notes TEXT, -- 备注
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
### 3. AI分析与报告系统 (基于现有系统改造)
#### 3.1 健康预警系统
```sql
-- 基于 ak_ai_reports 改造
CREATE TABLE public.ec_health_alerts (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
alert_type VARCHAR(32), -- 预警类型vital_signs, medication, fall_risk, behavior
severity VARCHAR(16), -- 严重程度low, medium, high, critical
title VARCHAR(128), -- 预警标题
description TEXT, -- 预警描述
data_source JSONB, -- 触发预警的数据
ai_analysis JSONB, -- AI分析结果
recommendations TEXT, -- 建议措施
status VARCHAR(16) DEFAULT 'active', -- 状态active, acknowledged, resolved
acknowledged_by uuid REFERENCES public.ak_users(id), -- 确认人
acknowledged_at TIMESTAMP WITH TIME ZONE, -- 确认时间
resolved_by uuid REFERENCES public.ak_users(id), -- 处理人
resolved_at TIMESTAMP WITH TIME ZONE, -- 处理时间
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 基于 ak_video_analysis 改造 - 行为分析
CREATE TABLE public.ec_behavior_analysis (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
elder_id uuid REFERENCES public.ec_elders(id) ON DELETE CASCADE,
device_id uuid REFERENCES public.ec_devices(id), -- 监控设备
analysis_type VARCHAR(32), -- 分析类型fall_detection, wandering, sleep_pattern, activity_level
video_url TEXT, -- 视频链接
timestamp_start TIMESTAMP WITH TIME ZONE, -- 分析开始时间
timestamp_end TIMESTAMP WITH TIME ZONE, -- 分析结束时间
ai_results JSONB, -- AI分析结果
confidence_score DECIMAL(3,2), -- 置信度
is_anomaly BOOLEAN DEFAULT false, -- 是否异常
alert_generated BOOLEAN DEFAULT false, -- 是否生成预警
reviewed_by uuid REFERENCES public.ak_users(id), -- 审核人
review_notes TEXT, -- 审核备注
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
### 4. 系统配置与管理
#### 4.1 通知模板系统
```sql
-- 基于现有通知系统扩展
CREATE TABLE public.ec_notification_templates (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
template_code VARCHAR(64) UNIQUE NOT NULL, -- 模板代码
template_name VARCHAR(128) NOT NULL, -- 模板名称
category VARCHAR(32), -- 分类health, care, visit, emergency, system
subject_template TEXT, -- 标题模板
content_template TEXT, -- 内容模板
variables JSONB, -- 模板变量定义
delivery_methods VARCHAR(16)[], -- 发送方式app, sms, email
is_active BOOLEAN DEFAULT true, -- 是否启用
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
-- 通知发送记录
CREATE TABLE public.ec_notification_logs (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
template_id uuid REFERENCES public.ec_notification_templates(id),
recipient_id uuid REFERENCES public.ak_users(id), -- 接收人
elder_id uuid REFERENCES public.ec_elders(id), -- 关联老人
subject VARCHAR(256), -- 实际标题
content TEXT, -- 实际内容
delivery_method VARCHAR(16), -- 发送方式
delivery_status VARCHAR(16), -- 发送状态pending, sent, failed, delivered
sent_at TIMESTAMP WITH TIME ZONE, -- 发送时间
delivered_at TIMESTAMP WITH TIME ZONE, -- 送达时间
error_message TEXT, -- 错误信息
created_at TIMESTAMP WITH TIME ZONE DEFAULT now()
);
```
## 前端页面结构规划
### 1. 用户角色页面结构
#### 1.1 老人用户 (Elder)
```
pages/elder/
├── dashboard.uvue # 个人仪表板
├── profile/
│ ├── basic.uvue # 基本信息
│ ├── health.uvue # 健康档案
│ └── family.uvue # 家属联系
├── health/
│ ├── vitals.uvue # 生命体征
│ ├── medications.uvue # 用药记录
│ └── records.uvue # 健康记录
├── services/
│ ├── meals.uvue # 餐饮服务
│ ├── activities.uvue # 活动安排
│ └── visits.uvue # 访客管理
└── notifications.uvue # 消息通知
```
#### 1.2 家属用户 (Family)
```
pages/family/
├── dashboard.uvue # 家属仪表板
├── elder/
│ ├── overview.uvue # 老人概况
│ ├── health.uvue # 健康状况
│ ├── care.uvue # 护理记录
│ └── activities.uvue # 活动参与
├── visits/
│ ├── schedule.uvue # 探访预约
│ └── history.uvue # 探访记录
├── communication/
│ ├── messages.uvue # 消息中心
│ └── alerts.uvue # 健康预警
└── reports.uvue # 护理报告
```
#### 1.3 护理员 (Caregiver)
```
pages/caregiver/
├── dashboard.uvue # 工作仪表板
├── tasks/
│ ├── today.uvue # 今日任务
│ ├── schedule.uvue # 任务安排
│ └── history.uvue # 历史记录
├── elders/
│ ├── list.uvue # 负责老人列表
│ ├── profile.uvue # 老人详情
│ └── care-notes.uvue # 护理笔记
├── records/
│ ├── care.uvue # 护理记录
│ ├── vitals.uvue # 生命体征
│ └── incidents.uvue # 事件记录
└── handover.uvue # 交班记录
```
#### 1.4 护士 (Nurse)
```
pages/nurse/
├── dashboard.uvue # 护士工作台
├── patients/
│ ├── list.uvue # 老人列表
│ ├── assessment.uvue # 健康评估
│ └── care-plans.uvue # 护理计划
├── medications/
│ ├── administration.uvue # 给药管理
│ ├── schedule.uvue # 用药安排
│ └── monitoring.uvue # 用药监控
├── health/
│ ├── vitals.uvue # 生命体征监测
│ ├── alerts.uvue # 健康预警
│ └── reports.uvue # 健康报告
└── documentation.uvue # 护理文档
```
#### 1.5 医生 (Doctor)
```
pages/doctor/
├── dashboard.uvue # 医生工作台
├── patients/
│ ├── list.uvue # 患者列表
│ ├── medical-history.uvue # 病史查看
│ └── consultation.uvue # 会诊记录
├── diagnosis/
│ ├── examination.uvue # 查体记录
│ ├── diagnosis.uvue # 诊断记录
│ └── treatment.uvue # 治疗方案
├── prescriptions/
│ ├── create.uvue # 开具处方
│ ├── review.uvue # 处方审核
│ └── history.uvue # 处方历史
└── reports/
├── medical.uvue # 医疗报告
└── statistics.uvue # 统计分析
```
#### 1.6 机构管理员 (Facility Admin)
```
pages/admin/
├── dashboard.uvue # 管理仪表板
├── residents/
│ ├── list.uvue # 入住老人管理
│ ├── admission.uvue # 入住办理
│ └── discharge.uvue # 出院办理
├── staff/
│ ├── list.uvue # 员工管理
│ ├── scheduling.uvue # 排班管理
│ └── performance.uvue # 绩效管理
├── facilities/
│ ├── rooms.uvue # 房间管理
│ ├── equipment.uvue # 设备管理
│ └── maintenance.uvue # 维护记录
├── services/
│ ├── meals.uvue # 餐饮管理
│ ├── activities.uvue # 活动管理
│ └── visits.uvue # 访客管理
├── finance/
│ ├── billing.uvue # 费用管理
│ ├── payments.uvue # 收费记录
│ └── reports.uvue # 财务报表
└── reports/
├── occupancy.uvue # 入住率报告
├── care-quality.uvue # 护理质量
└── statistics.uvue # 统计报表
```
### 2. 共享组件设计
#### 2.1 基础组件
```
components/
├── common/
│ ├── EcHeader.uvue # 页面头部
│ ├── EcSidebar.uvue # 侧边栏
│ ├── EcCard.uvue # 信息卡片
│ ├── EcList.uvue # 列表组件
│ ├── EcForm.uvue # 表单组件
│ ├── EcModal.uvue # 模态框
│ └── EcPagination.uvue # 分页组件
├── charts/
│ ├── VitalChart.uvue # 生命体征图表
│ ├── HealthTrend.uvue # 健康趋势图
│ └── StatisticChart.uvue # 统计图表
├── elder/
│ ├── ElderCard.uvue # 老人信息卡
│ ├── HealthStatus.uvue # 健康状态
│ └── CareLevel.uvue # 护理等级显示
├── tasks/
│ ├── TaskList.uvue # 任务列表
│ ├── TaskCard.uvue # 任务卡片
│ └── TaskProgress.uvue # 任务进度
└── notifications/
├── AlertBadge.uvue # 预警徽章
├── MessageList.uvue # 消息列表
└── NotificationItem.uvue # 通知项
```
### 3. UTS Android 严格兼容性要求
#### 3.1 代码规范
```typescript
// ✅ 正确的 UTSJSONObject 访问模式
type都集中到 /eldercar/atypes.uts中
function processElderData(data: UTSJSONObject): ElderInfo {
return {
id: (data as UTSJSONObject).getString('id') ?? '',
name: (data as UTSJSONObject).getString('name') ?? '',
age: (data as UTSJSONObject).getNumber('age') ?? 0,
careLevel: (data as UTSJSONObject).getString('care_level') ?? 'self_care',
isActive: (data as UTSJSONObject).getBoolean('is_active') ?? true
}
}
// ✅ 安全的布尔值检查
// ✅ UTS 兼容的函数定义
/utils/store中获取
```
### 4. 开发优先级与里程碑
#### 第一阶段:核心基础功能 (4周)
1. 用户认证与权限系统
2. 老人档案管理
3. 基础护理记录
4. 简单的健康监测
#### 第二阶段:护理业务完善 (4周)
1. 完整的护理计划与任务管理
2. 用药管理系统
3. 餐饮与活动服务
4. 访客管理
#### 第三阶段:高级功能 (4周)
1. AI健康预警系统
2. 行为分析与跌倒检测
3. 报表统计系统
4. 移动端优化
#### 第四阶段:系统完善 (2周)
1. 多租户管理界面
2. 系统配置与维护
3. 数据导入导出
4. 性能优化与测试
## 技术架构说明
### 后端架构
- **数据库**: Supabase PostgreSQL
- **认证**: /components/supadb/
- **存储**: /components/supadb/ Storage (照片、视频、文档)
- **实时通信**: /components/supadb/ Realtime
- **API**: /components/supadb/ajsupa.uts
### 前端架构
- **框架**: uni-app-x
- **状态管理**: /utils/store
- **UI组件**: 自定义组件库 (严格UTS兼容)
- **图表**: uCharts (UTS兼容版本)
- **网络请求**: uni.request (UTS兼容封装)
### 开发工具链
- **IDE**: VS Code + uni-app插件
- **版本控制**: Git
- **部署**: Supabase + 小程序云开发
- **监控**: Supabase Dashboard + 自定义监控
这个开发方案充分利用了现有数据库结构的优势,同时满足养老管理系统的特殊需求,确保系统的可扩展性和维护性。
这个系统的目录就放在/pages/eldercare/ ,可以分角色创建不同的目录和页面,可以参考 /sports/下面的页面