710 lines
28 KiB
Markdown
710 lines
28 KiB
Markdown
# 养老管理系统开发方案 (基于现有数据库结构)
|
||
|
||
## 项目概述
|
||
|
||
基于现有 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/下面的页面
|