# AI赋能智慧养老系统项目需求分析与概要设计报告

| 文档属性 | 内容 |
| --- | --- |
| 文档版本 | V3.0 |
| 文档类型 | 完整需求分析与概要设计报告 |
| 适用场景 | JavaEE 应用开发实训与智慧养老机构照护管理 |
| 系统形态 | 后台管理端 + 移动端 App + 家属服务端 |
| 建设策略 | 一期核心落地，二期业务增强，三期 AI 规则预警 |
| 编制日期 | 2026-07-01 |

## 一、项目概述

### 1.1 建设背景

随着养老服务数字化程度不断提升，养老机构需要通过信息化系统对老人档案、入住退住、床位房间、健康照护、护理任务、应急事件、设备运维、家属沟通和运营数据进行统一管理。传统线下登记方式存在数据分散、查询低效、过程难追踪、异常响应滞后等问题，难以支撑精细化养老服务管理。

AI赋能智慧养老系统是一套面向养老机构照护场景的综合应用系统，包含后台管理端、移动端 App 和家属服务端。系统通过数字化流程优化养老服务管理，通过规则预警实现轻量级 AI 赋能，并以 JavaEE 应用开发为实训载体，训练学生完成需求分析、系统设计、数据库建模、接口设计、编码实现和测试验收的完整工程能力。

### 1.2 项目目标

- 建立老人全生命周期管理能力，覆盖建档、入住、床位分配、照护、退住等过程。
- 建立健康照护、护理任务、安全应急、设备运维和家属沟通的一体化业务闭环。
- 建立基于规则的预警中心，对健康异常、用药逾期、护理任务逾期、设备故障和应急事件进行提醒。
- 建立运营数据看板，支撑床位占用、护理质量、健康异常、应急处理和服务满意度统计。
- 以 JavaEE 单体分层架构为基础，保证课程实训可实现、可测试、可验收。

### 1.3 系统定位

系统定位为“机构照护管理型智慧养老系统”。一期目标是完成机构日常照护管理的核心闭环；二期补充运营服务、家属互动和课程活动能力；三期引入规则预警和风险识别能力，形成具有智能化特征的养老管理系统。

### 1.4 设计原则

| 原则 | 设计要求 |
| --- | --- |
| KISS | 采用 JavaEE 单体分层架构，避免课程项目阶段引入不必要的分布式复杂度。 |
| YAGNI | 一期只实现核心照护闭环，二期和三期作为明确规划，不混入一期验收。 |
| DRY | 账号、权限、通知、日志、附件、分页、状态流转和预警规则统一抽象。 |
| SOLID | 模块按业务职责拆分，Controller、Service、Repository、Entity 边界清晰。 |
| 可追踪 | 需求、数据实体、接口、类图、流程图和验收标准之间保持对应关系。 |

## 二、建设分期与范围边界

### 2.1 分期建设范围

| 分期 | 建设目标 | 功能范围 | 交付要求 |
| --- | --- | --- | --- |
| 一期：核心照护管理 | 建立机构日常照护业务闭环 | 老人档案、入住退住、床位房间、健康记录、护理计划、护理任务、紧急呼叫、设备运维、公告通知、账号权限、数据看板 | 必须可开发、可测试、可验收 |
| 二期：运营服务增强 | 补齐家属服务、运营和活动服务能力 | 用药计划、用药提醒、探访预约、家属端、服务反馈、费用记录、活动课程、活动评价、实训评价 | 作为增强建设范围，可在一期稳定后迭代 |
| 三期：AI 规则预警 | 建立轻量智能提醒能力 | 健康异常预警、用药逾期预警、护理任务逾期预警、设备故障预警、应急事件预警、风险老人识别 | 采用规则引擎和统计分析，不引入复杂模型训练 |

### 2.2 分期路线图

```mermaid
gantt
    title 智慧养老系统分期建设路线图
    dateFormat  YYYY-MM-DD
    axisFormat  %m-%d
    section 一期核心照护管理
    老人档案与入住床位      :a1, 2026-07-01, 10d
    健康记录与护理任务      :a2, after a1, 12d
    应急事件与设备运维      :a3, after a2, 10d
    权限通知与数据看板      :a4, after a3, 8d
    section 二期运营服务增强
    家属端与探访预约        :b1, after a4, 10d
    用药提醒与费用记录      :b2, after b1, 10d
    活动课程与服务反馈      :b3, after b2, 8d
    section 三期AI规则预警
    预警规则中心            :c1, after b3, 8d
    风险识别与统计分析      :c2, after c1, 8d
```

### 2.3 范围边界

| 范围类型 | 内容 |
| --- | --- |
| 一期范围内 | 老人全生命周期、床位房间、健康记录、护理任务、应急事件、设备运维、公告通知、权限日志、基础看板。 |
| 二期范围内 | 用药计划、家属端、探访预约、费用记录、服务反馈、活动课程、活动评价。 |
| 三期范围内 | 规则预警、异常提醒、风险老人识别、预警统计。 |
| 明确范围外 | 医保结算、在线支付、第三方硬件协议适配、复杂 AI 模型训练、多机构 SaaS、多租户计费平台。 |

## 三、用户角色与权限模型

### 3.1 用户角色

| 角色 | 主要职责 | 核心诉求 |
| --- | --- | --- |
| 系统管理员 | 维护账号、角色、权限、字典、系统参数 | 权限边界清晰，操作可追踪 |
| 机构管理人员 | 查看运营看板、审批入住退住、协调资源 | 快速掌握机构运营状态 |
| 护理主管 | 制定护理计划、分配护理任务、检查任务完成情况 | 护理过程标准化、任务可追踪 |
| 护理人员 | 执行护理任务、巡检打卡、提交护理记录和异常事件 | 移动端操作简单，任务提醒明确 |
| 医护人员 | 维护健康记录、用药计划、健康异常处理建议 | 健康数据连续、异常提醒及时 |
| 维修人员 | 处理设备报修、记录维修结果 | 工单状态清晰，设备位置明确 |
| 老人 | 查看个人信息、活动通知、服务安排 | 信息易读，操作步骤少 |
| 家属 | 查看老人动态、健康记录、护理记录、预约探访、提交反馈 | 及时了解老人状态并参与沟通 |
| 教师/学生 | 基于系统开展 JavaEE 实训、设计和验收 | 业务边界明确，模块可拆分 |

### 3.2 角色权限图

```mermaid
flowchart LR
    Admin[系统管理员] --> P1[账号权限]
    Admin --> P2[系统配置]
    Manager[机构管理人员] --> P3[运营看板]
    Manager --> P4[入住退住审批]
    Supervisor[护理主管] --> P5[护理计划]
    Supervisor --> P6[任务派发]
    Nurse[护理人员] --> P7[护理任务执行]
    Nurse --> P8[巡检打卡]
    Doctor[医护人员] --> P9[健康记录]
    Doctor --> P10[用药计划]
    Repair[维修人员] --> P11[维修工单]
    Elder[老人] --> P12[个人信息查看]
    Family[家属] --> P13[家属端查看]
    Family --> P14[探访预约与反馈]
    Teacher[教师/学生] --> P15[实训评价]
```

## 四、需求分析

### 4.1 总体需求

系统应围绕“老人入住 -> 档案建档 -> 床位分配 -> 健康记录 -> 护理计划 -> 护理任务 -> 异常预警 -> 应急处理 -> 家属通知 -> 数据看板”的主线构建。后台管理端负责业务配置、数据维护、统计分析和审批处理；移动端 App 支持护理人员现场执行、老人查看信息和家属查看动态；规则预警中心负责对异常数据和逾期任务进行提醒。

### 4.2 功能需求

| 编号 | 分期 | 模块 | 功能点 | 需求描述 | 验收要点 |
| --- | --- | --- | --- | --- | --- |
| FR-01 | 一期 | 老人全生命周期 | 老人档案管理 | 支持老人基础信息、健康摘要、联系人、入住状态维护。 | 档案可新增、编辑、查询，关键字段校验生效。 |
| FR-02 | 一期 | 老人全生命周期 | 入住登记 | 支持登记入住时间、护理等级、床位、家属联系人。 | 入住后床位状态变为占用，生成入住记录。 |
| FR-03 | 一期 | 老人全生命周期 | 退住办理 | 支持退住申请、退住确认、床位释放。 | 退住后老人状态更新，床位恢复可用。 |
| FR-04 | 一期 | 床位房间管理 | 房间管理 | 支持楼栋、楼层、房间信息维护。 | 房间可按楼层和状态查询。 |
| FR-05 | 一期 | 床位房间管理 | 床位管理 | 支持床位编号、所属房间、床位状态维护。 | 床位状态可在空闲、占用、维修间流转。 |
| FR-06 | 一期 | 健康照护 | 健康记录 | 支持体温、血压、心率、血氧等生命体征记录。 | 健康记录可按老人和时间查询。 |
| FR-07 | 一期 | 健康照护 | 健康档案 | 支持过敏史、慢病信息、健康摘要维护。 | 健康档案与老人档案关联。 |
| FR-08 | 一期 | 护理服务 | 护理等级 | 支持为老人设置护理等级并关联服务标准。 | 护理等级变更有记录。 |
| FR-09 | 一期 | 护理服务 | 护理计划 | 支持按护理等级创建护理计划。 | 护理计划可生成护理任务。 |
| FR-10 | 一期 | 护理服务 | 护理任务 | 支持任务派发、接收、执行、完成和逾期标记。 | 任务状态流转正确，完成记录可追踪。 |
| FR-11 | 一期 | 护理服务 | 巡检打卡 | 支持护理人员巡检打卡并记录异常说明。 | 巡检记录关联护理人员、老人和时间。 |
| FR-12 | 一期 | 安全应急 | 紧急呼叫 | 支持老人或护理人员提交紧急呼叫。 | 呼叫生成应急事件并通知相关人员。 |
| FR-13 | 一期 | 安全应急 | 应急事件处理 | 支持事件接警、派发、处理、完成、归档。 | 应急事件状态可追踪，处理结果可查看。 |
| FR-14 | 一期 | 设备运维 | 设备台账 | 支持设备编号、类型、位置、状态、责任人维护。 | 设备编号唯一，状态变化有记录。 |
| FR-15 | 一期 | 设备运维 | 设备报修 | 支持故障上报、派单、维修记录和完成确认。 | 工单完成后设备状态可恢复正常。 |
| FR-16 | 一期 | 公告通知 | 公告发布 | 支持按角色和范围发布公告。 | 草稿不可见，发布后目标用户可见。 |
| FR-17 | 一期 | 公告通知 | 消息阅读状态 | 支持未读、已读状态维护。 | 用户阅读后状态更新。 |
| FR-18 | 一期 | 账号权限 | 账号角色管理 | 支持账号启停、角色分配、权限控制。 | 停用账号不可登录，角色菜单隔离。 |
| FR-19 | 一期 | 数据可视化 | 基础运营看板 | 展示老人数量、床位占用、护理任务、应急事件、设备状态。 | 看板数据与业务记录一致。 |
| FR-20 | 二期 | 用药管理 | 用药计划 | 支持维护药品名称、剂量、频次、用药时间。 | 用药计划与老人档案关联。 |
| FR-21 | 二期 | 用药管理 | 用药提醒 | 支持按计划生成提醒并记录服药状态。 | 逾期未确认可生成提醒记录。 |
| FR-22 | 二期 | 家属服务 | 家属端信息查看 | 家属可查看授权范围内的老人档案摘要、健康记录、护理记录。 | 家属只能查看绑定老人数据。 |
| FR-23 | 二期 | 家属服务 | 探访预约 | 支持家属提交探访预约，工作人员审核。 | 预约状态可追踪。 |
| FR-24 | 二期 | 家属服务 | 服务反馈 | 支持家属提交服务评价和反馈。 | 反馈可处理、回复和归档。 |
| FR-25 | 二期 | 运营管理 | 费用记录 | 支持记录护理费、床位费、服务费等费用信息。 | 费用记录可按老人和周期查询。 |
| FR-26 | 二期 | 活动课程 | 活动课程发布 | 支持活动课程创建、发布、报名和容量控制。 | 发布后授权用户可查看并报名。 |
| FR-27 | 二期 | 活动课程 | 活动签到评价 | 支持签到、活动评价、参与统计。 | 签到和评价数据可统计。 |
| FR-28 | 三期 | 规则预警 | 预警规则配置 | 支持健康阈值、任务逾期、设备故障等规则配置。 | 启用规则后可参与预警判断。 |
| FR-29 | 三期 | 规则预警 | 预警记录 | 支持生成、确认、处理、关闭预警记录。 | 预警状态完整可追踪。 |
| FR-30 | 三期 | 智能分析 | 风险老人识别 | 根据健康异常、应急事件、护理频次识别高风险老人。 | 风险列表可按规则结果生成。 |

### 4.3 非功能需求

| 编号 | 类别 | 需求说明 |
| --- | --- | --- |
| NFR-01 | 性能 | 常规列表查询 3 秒内返回；高频列表必须分页；看板统计应避免全表实时扫描。 |
| NFR-02 | 安全 | 所有业务接口必须认证授权；老人健康、费用和家属数据仅授权角色可见。 |
| NFR-03 | 可靠性 | 关键状态流转必须具备幂等或重复提交保护，避免任务、工单、预警重复处理。 |
| NFR-04 | 可用性 | 后台菜单按业务域组织；移动端优先展示待办任务、提醒和老人关键信息。 |
| NFR-05 | 可维护性 | 按业务域拆分 Service，状态枚举和规则判断集中管理，避免散落在控制层。 |
| NFR-06 | 可审计 | 登录、档案修改、入住退住、护理任务、应急事件、费用变更必须记录操作日志。 |
| NFR-07 | 数据备份 | 核心业务数据应支持定期备份和恢复验证。 |
| NFR-08 | 可扩展 | 二期和三期功能通过新增模块扩展，不破坏一期核心数据结构。 |

## 五、系统建模

### 5.1 系统上下文图

```mermaid
flowchart LR
    Admin[系统管理员] --> Web[后台管理端]
    Manager[机构管理人员] --> Web
    Supervisor[护理主管] --> Web
    Doctor[医护人员] --> Web
    Repair[维修人员] --> Web
    Nurse[护理人员] --> App[移动端 App]
    Elder[老人] --> App
    Family[家属] --> FamilyPortal[家属服务端]
    Teacher[教师/学生] --> Web

    Web --> Server[JavaEE 应用服务]
    App --> Server
    FamilyPortal --> Server
    Server --> DB[(关系型数据库)]
    Server --> FileStore[(附件与导出文件)]
    Server --> Alert[规则预警中心]
    Alert --> Notify[消息通知]
```

### 5.2 用例图

```mermaid
flowchart TB
    Admin[系统管理员]
    Manager[机构管理人员]
    Supervisor[护理主管]
    Nurse[护理人员]
    Doctor[医护人员]
    Repair[维修人员]
    Elder[老人]
    Family[家属]
    Teacher[教师/学生]

    UC01[账号权限管理]
    UC02[老人档案管理]
    UC03[入住退住管理]
    UC04[床位房间管理]
    UC05[健康记录管理]
    UC06[用药计划管理]
    UC07[护理计划管理]
    UC08[护理任务执行]
    UC09[巡检打卡]
    UC10[紧急呼叫处理]
    UC11[设备台账维护]
    UC12[维修工单处理]
    UC13[公告通知管理]
    UC14[家属信息查看]
    UC15[探访预约]
    UC16[服务反馈]
    UC17[费用记录]
    UC18[活动课程管理]
    UC19[规则预警处理]
    UC20[运营数据看板]

    Admin --> UC01
    Manager --> UC03
    Manager --> UC04
    Manager --> UC17
    Manager --> UC20
    Supervisor --> UC07
    Supervisor --> UC19
    Nurse --> UC08
    Nurse --> UC09
    Nurse --> UC10
    Doctor --> UC05
    Doctor --> UC06
    Repair --> UC11
    Repair --> UC12
    Elder --> UC10
    Elder --> UC18
    Family --> UC14
    Family --> UC15
    Family --> UC16
    Teacher --> UC18
    Teacher --> UC20
```

### 5.3 业务领域划分图

```mermaid
mindmap
  root((智慧养老系统))
    核心照护
      老人档案
      入住退住
      床位房间
      健康记录
      护理任务
      应急事件
    运营服务
      家属端
      探访预约
      费用记录
      服务反馈
      活动课程
    支撑能力
      账号权限
      公告通知
      操作日志
      数据看板
    智能能力
      规则配置
      异常预警
      风险识别
      预警统计
```

### 5.4 总体业务流程图

```mermaid
flowchart TD
    Start([开始]) --> Register[老人档案建档]
    Register --> CheckIn[入住登记]
    CheckIn --> AssignBed[床位分配]
    AssignBed --> Health[健康档案与健康记录]
    Health --> CarePlan[制定护理计划]
    CarePlan --> CareTask[生成护理任务]
    CareTask --> Execute[护理执行与巡检打卡]
    Execute --> Abnormal{是否异常}
    Abnormal -- 否 --> Record[归档服务记录]
    Abnormal -- 是 --> Alert[生成预警或应急事件]
    Alert --> Handle[处理并通知相关人员]
    Record --> Dashboard[更新数据看板]
    Handle --> Dashboard
    Dashboard --> End([结束])
```

## 六、概要架构设计

### 6.1 总体架构图

```mermaid
flowchart TB
    subgraph Client[客户端层]
        WebUI[后台管理端 Web]
        Mobile[移动端 App]
        FamilyUI[家属服务端]
    end

    subgraph Application[JavaEE 应用服务]
        Controller[Controller 表现层]
        Auth[认证授权与审计]
        Service[Service 业务服务层]
        Rule[规则预警组件]
        Repository[Repository 数据访问层]
        Common[通用组件]
    end

    subgraph Storage[数据存储层]
        DB[(关系型数据库)]
        Files[(附件与导出文件)]
    end

    WebUI --> Controller
    Mobile --> Controller
    FamilyUI --> Controller
    Controller --> Auth
    Controller --> Service
    Service --> Rule
    Service --> Repository
    Service --> Common
    Rule --> Repository
    Repository --> DB
    Common --> Files
```

### 6.2 功能模块图

```mermaid
flowchart TD
    System[AI赋能智慧养老系统]
    System --> M1[老人全生命周期]
    System --> M2[床位房间管理]
    System --> M3[健康照护管理]
    System --> M4[护理服务管理]
    System --> M5[安全应急管理]
    System --> M6[设备运维管理]
    System --> M7[家属服务管理]
    System --> M8[运营服务管理]
    System --> M9[公告通知管理]
    System --> M10[规则预警中心]
    System --> M11[数据可视化]
    System --> M12[账号权限与日志]

    M1 --> M101[档案]
    M1 --> M102[入住]
    M1 --> M103[退住]
    M2 --> M201[房间]
    M2 --> M202[床位]
    M3 --> M301[健康记录]
    M3 --> M302[用药计划]
    M4 --> M401[护理计划]
    M4 --> M402[护理任务]
    M5 --> M501[紧急呼叫]
    M5 --> M502[应急事件]
    M7 --> M701[探访预约]
    M7 --> M702[服务反馈]
    M10 --> M1001[规则配置]
    M10 --> M1002[预警记录]
```

### 6.3 模块职责表

| 模块 | 主要职责 | 分期 |
| --- | --- | --- |
| 老人全生命周期 | 档案、入住、退住、联系人、状态管理 | 一期 |
| 床位房间管理 | 楼栋、楼层、房间、床位状态和占用关系 | 一期 |
| 健康照护管理 | 健康档案、生命体征、用药计划和提醒 | 一期/二期 |
| 护理服务管理 | 护理等级、护理计划、任务派发、执行、巡检 | 一期 |
| 安全应急管理 | 紧急呼叫、应急事件、处理闭环、家属通知 | 一期 |
| 设备运维管理 | 设备台账、故障报修、维修派单和归档 | 一期 |
| 家属服务管理 | 家属端查看、探访预约、服务反馈 | 二期 |
| 运营服务管理 | 费用记录、活动课程、评价统计 | 二期 |
| 规则预警中心 | 规则配置、预警生成、确认、处理、关闭 | 三期 |
| 数据可视化 | 床位、护理、健康、应急、设备、费用、活动指标 | 一期/二期/三期 |
| 账号权限与日志 | 账号、角色、权限、审计日志 | 一期 |

## 七、数据库设计

### 7.1 核心数据对象

| 数据对象 | 分期 | 关键字段 | 主要关系 |
| --- | --- | --- | --- |
| UserAccount | 一期 | user_id, username, password_hash, role_id, status | 关联角色、日志、通知阅读 |
| Role | 一期 | role_id, role_name, permission_codes | 关联用户账号 |
| Elder | 一期 | elder_id, name, gender, age, status, health_summary | 关联入住、床位、健康、护理、应急 |
| FamilyMember | 二期 | family_id, elder_id, name, phone, relation | 关联老人和家属端账号 |
| Room | 一期 | room_id, building, floor, room_no, status | 关联床位 |
| Bed | 一期 | bed_id, room_id, bed_no, status | 关联入住记录 |
| CheckInRecord | 一期 | checkin_id, elder_id, bed_id, checkin_at, checkout_at, status | 关联老人和床位 |
| HealthRecord | 一期 | record_id, elder_id, temperature, blood_pressure, heart_rate, spo2, recorded_at | 关联老人和预警 |
| MedicationPlan | 二期 | plan_id, elder_id, medicine_name, dosage, frequency, start_date, status | 关联用药提醒 |
| MedicationReminder | 二期 | reminder_id, plan_id, remind_time, confirm_status | 关联用药计划 |
| CareLevel | 一期 | level_id, level_name, service_standard | 关联老人和护理计划 |
| CarePlan | 一期 | plan_id, elder_id, level_id, content, status | 生成护理任务 |
| CareTask | 一期 | task_id, plan_id, assignee_id, due_time, status | 关联护理人员和巡检记录 |
| PatrolRecord | 一期 | patrol_id, task_id, elder_id, staff_id, result, checked_at | 关联护理任务 |
| EmergencyEvent | 一期 | event_id, elder_id, caller_id, status, level, result | 关联通知和预警 |
| Device | 一期 | device_id, code, type, location, status, owner_id | 关联维修工单 |
| RepairTicket | 一期 | ticket_id, device_id, reporter_id, assignee_id, status, result | 关联设备和员工 |
| Notice | 一期 | notice_id, title, content, target_scope, publish_status | 关联阅读记录 |
| NoticeRead | 一期 | read_id, notice_id, user_id, read_status, read_at | 关联通知和用户 |
| VisitAppointment | 二期 | appointment_id, elder_id, family_id, visit_time, status | 关联家属和老人 |
| Feedback | 二期 | feedback_id, elder_id, family_id, content, status, reply | 关联家属和处理人 |
| FeeRecord | 二期 | fee_id, elder_id, fee_type, amount, period, status | 关联老人 |
| CourseActivity | 二期 | course_id, title, time, location, capacity, status | 关联报名签到 |
| Enrollment | 二期 | enrollment_id, course_id, elder_id, sign_status | 关联课程和老人 |
| ScoreEvaluation | 二期 | score_id, course_id, elder_id, score, comment | 关联课程和评价 |
| AlertRule | 三期 | rule_id, rule_type, condition_expr, level, enabled | 生成预警 |
| AlertRecord | 三期 | alert_id, rule_id, elder_id, source_type, status, message | 关联老人和业务来源 |
| AuditLog | 一期 | log_id, user_id, action, target_type, target_id, created_at | 记录关键操作 |

### 7.2 ER 图

```mermaid
erDiagram
    ROLE ||--o{ USER_ACCOUNT : grants
    USER_ACCOUNT ||--o{ AUDIT_LOG : writes
    ELDER ||--o{ FAMILY_MEMBER : has
    FAMILY_MEMBER ||--o| USER_ACCOUNT : binds
    ELDER ||--o{ CHECKIN_RECORD : has
    ROOM ||--o{ BED : contains
    BED ||--o{ CHECKIN_RECORD : assigned
    ELDER ||--o{ HEALTH_RECORD : owns
    ELDER ||--o{ MEDICATION_PLAN : owns
    MEDICATION_PLAN ||--o{ MEDICATION_REMINDER : generates
    CARE_LEVEL ||--o{ CARE_PLAN : defines
    ELDER ||--o{ CARE_PLAN : owns
    CARE_PLAN ||--o{ CARE_TASK : generates
    STAFF ||--o{ CARE_TASK : executes
    CARE_TASK ||--o{ PATROL_RECORD : records
    ELDER ||--o{ EMERGENCY_EVENT : triggers
    DEVICE ||--o{ REPAIR_TICKET : has
    STAFF ||--o{ REPAIR_TICKET : handles
    NOTICE ||--o{ NOTICE_READ : tracks
    USER_ACCOUNT ||--o{ NOTICE_READ : reads
    ELDER ||--o{ VISIT_APPOINTMENT : receives
    FAMILY_MEMBER ||--o{ VISIT_APPOINTMENT : books
    FAMILY_MEMBER ||--o{ FEEDBACK : submits
    ELDER ||--o{ FEE_RECORD : has
    COURSE_ACTIVITY ||--o{ ENROLLMENT : includes
    ELDER ||--o{ ENROLLMENT : joins
    COURSE_ACTIVITY ||--o{ SCORE_EVALUATION : evaluates
    ALERT_RULE ||--o{ ALERT_RECORD : creates
    ELDER ||--o{ ALERT_RECORD : receives

    ELDER {
        bigint elder_id PK
        string name
        string gender
        int age
        string status
        string health_summary
    }
    ROOM {
        bigint room_id PK
        string building
        string floor
        string room_no
        string status
    }
    BED {
        bigint bed_id PK
        bigint room_id FK
        string bed_no
        string status
    }
    CHECKIN_RECORD {
        bigint checkin_id PK
        bigint elder_id FK
        bigint bed_id FK
        datetime checkin_at
        datetime checkout_at
        string status
    }
    HEALTH_RECORD {
        bigint record_id PK
        bigint elder_id FK
        decimal temperature
        string blood_pressure
        int heart_rate
        int spo2
        datetime recorded_at
    }
    CARE_TASK {
        bigint task_id PK
        bigint plan_id FK
        bigint assignee_id FK
        datetime due_time
        string status
    }
    EMERGENCY_EVENT {
        bigint event_id PK
        bigint elder_id FK
        bigint caller_id FK
        string level
        string status
        string result
    }
    ALERT_RECORD {
        bigint alert_id PK
        bigint rule_id FK
        bigint elder_id FK
        string source_type
        string level
        string status
        string message
    }
```

## 八、核心类设计

### 8.1 核心领域类图

```mermaid
classDiagram
    class Elder {
        +Long elderId
        +String name
        +String status
        +String healthSummary
        +checkIn(bed)
        +checkOut()
    }
    class Room {
        +Long roomId
        +String roomNo
        +String status
    }
    class Bed {
        +Long bedId
        +String bedNo
        +String status
        +occupy()
        +release()
        +repair()
    }
    class CheckInRecord {
        +Long checkinId
        +Date checkinAt
        +Date checkoutAt
        +String status
    }
    class HealthRecord {
        +Long recordId
        +BigDecimal temperature
        +String bloodPressure
        +Integer heartRate
        +Integer spo2
        +isAbnormal()
    }
    class MedicationPlan {
        +Long planId
        +String medicineName
        +String dosage
        +String frequency
        +generateReminders()
    }
    class CarePlan {
        +Long planId
        +String content
        +String status
        +generateTasks()
    }
    class CareTask {
        +Long taskId
        +Date dueTime
        +String status
        +accept()
        +finish()
        +markOverdue()
    }
    class EmergencyEvent {
        +Long eventId
        +String level
        +String status
        +dispatch()
        +finish()
    }
    class AlertRule {
        +Long ruleId
        +String ruleType
        +String conditionExpr
        +Boolean enabled
        +match(source)
    }
    class AlertRecord {
        +Long alertId
        +String level
        +String status
        +confirm()
        +close()
    }

    Room "1" --> "0..*" Bed
    Elder "1" --> "0..*" CheckInRecord
    Bed "1" --> "0..*" CheckInRecord
    Elder "1" --> "0..*" HealthRecord
    Elder "1" --> "0..*" MedicationPlan
    Elder "1" --> "0..*" CarePlan
    CarePlan "1" --> "0..*" CareTask
    Elder "1" --> "0..*" EmergencyEvent
    AlertRule "1" --> "0..*" AlertRecord
    Elder "1" --> "0..*" AlertRecord
```

### 8.2 服务层类图

```mermaid
classDiagram
    class AuthService {
        +login(username, password)
        +checkPermission(userId, permission)
    }
    class ElderService {
        +createElder(cmd)
        +updateElder(cmd)
        +checkIn(cmd)
        +checkOut(elderId)
    }
    class BedService {
        +assignBed(elderId, bedId)
        +releaseBed(bedId)
        +changeStatus(bedId, status)
    }
    class HealthService {
        +recordHealth(cmd)
        +queryTrend(elderId)
    }
    class CareService {
        +createPlan(cmd)
        +dispatchTask(cmd)
        +finishTask(taskId)
    }
    class EmergencyService {
        +createEvent(cmd)
        +dispatch(eventId)
        +finish(eventId)
    }
    class AlertService {
        +evaluate(source)
        +createAlert(rule, source)
        +close(alertId)
    }
    class DashboardService {
        +overview()
        +careStats()
        +riskStats()
    }

    ElderService --> BedService
    HealthService --> AlertService
    CareService --> AlertService
    EmergencyService --> AlertService
    DashboardService --> ElderService
    DashboardService --> CareService
    DashboardService --> EmergencyService
```

## 九、接口设计

### 9.1 核心接口族

| 接口族 | 方法与路径示例 | 主要用途 | 分期 | 权限要求 |
| --- | --- | --- | --- | --- |
| 认证接口 | POST /api/auth/login | 登录并获取会话信息 | 一期 | 所有用户 |
| 老人档案接口 | GET/POST/PUT /api/elders | 老人档案维护 | 一期 | 管理员、工作人员 |
| 入住退住接口 | POST /api/check-ins, PUT /api/check-ins/{id}/checkout | 入住登记与退住办理 | 一期 | 管理员、工作人员 |
| 房间接口 | GET/POST/PUT /api/rooms | 房间维护 | 一期 | 管理员、工作人员 |
| 床位接口 | GET/POST/PUT /api/beds | 床位维护和状态调整 | 一期 | 管理员、工作人员 |
| 健康记录接口 | GET/POST /api/health-records | 生命体征记录和查询 | 一期 | 医护人员、护理人员 |
| 护理等级接口 | GET/POST /api/care-levels | 护理等级维护 | 一期 | 护理主管 |
| 护理计划接口 | GET/POST/PUT /api/care-plans | 护理计划维护 | 一期 | 护理主管 |
| 护理任务接口 | GET/POST/PUT /api/care-tasks | 护理任务派发与执行 | 一期 | 护理主管、护理人员 |
| 巡检接口 | POST /api/patrol-records | 巡检打卡记录 | 一期 | 护理人员 |
| 应急事件接口 | GET/POST/PUT /api/emergency-events | 紧急呼叫和应急事件处理 | 一期 | 护理人员、管理人员 |
| 设备接口 | GET/POST/PUT /api/devices | 设备台账维护 | 一期 | 管理员、维修人员 |
| 工单接口 | GET/POST/PUT /api/repair-tickets | 设备报修处理 | 一期 | 护理人员、维修人员 |
| 公告接口 | GET/POST/PUT /api/notices | 公告发布和阅读状态维护 | 一期 | 工作人员、老人、家属 |
| 看板接口 | GET /api/dashboard/overview | 查询运营统计指标 | 一期 | 管理人员、教师 |
| 用药计划接口 | GET/POST/PUT /api/medication-plans | 用药计划维护 | 二期 | 医护人员 |
| 用药提醒接口 | GET/PUT /api/medication-reminders | 用药提醒和确认 | 二期 | 护理人员、家属 |
| 家属端接口 | GET /api/family/elders/{id}/summary | 家属查看老人摘要 | 二期 | 家属 |
| 探访预约接口 | GET/POST/PUT /api/visit-appointments | 探访预约与审核 | 二期 | 家属、工作人员 |
| 服务反馈接口 | GET/POST/PUT /api/feedback | 服务评价、回复和归档 | 二期 | 家属、工作人员 |
| 费用接口 | GET/POST /api/fee-records | 费用记录和查询 | 二期 | 管理人员、家属 |
| 活动课程接口 | GET/POST/PUT /api/courses | 活动课程发布和维护 | 二期 | 工作人员、教师 |
| 规则接口 | GET/POST/PUT /api/alert-rules | 预警规则配置 | 三期 | 管理员、护理主管 |
| 预警接口 | GET/PUT /api/alerts | 预警确认、处理和关闭 | 三期 | 管理人员、护理人员 |

## 十、关键业务流程设计

### 10.1 老人入住流程图

```mermaid
flowchart TD
    Start([开始]) --> Create[创建老人档案]
    Create --> Check[校验身份证明和联系人]
    Check --> ChooseBed[选择房间床位]
    ChooseBed --> Available{床位是否可用}
    Available -- 否 --> Rechoose[重新选择床位]
    Rechoose --> ChooseBed
    Available -- 是 --> SetCare[设置护理等级]
    SetCare --> Save[生成入住记录]
    Save --> Occupy[床位状态改为占用]
    Occupy --> Plan[生成初始护理计划]
    Plan --> End([完成入住])
```

### 10.2 护理任务流程图

```mermaid
flowchart TD
    Start([护理计划生效]) --> Generate[生成护理任务]
    Generate --> Dispatch[派发给护理人员]
    Dispatch --> Accept[护理人员接收]
    Accept --> Execute[执行护理]
    Execute --> Check{是否发现异常}
    Check -- 否 --> Finish[提交完成记录]
    Check -- 是 --> Abnormal[提交异常说明]
    Abnormal --> Alert[触发预警或应急事件]
    Finish --> Archive[归档护理记录]
    Alert --> Archive
```

### 10.3 健康异常预警流程图

```mermaid
flowchart TD
    Start([录入健康记录]) --> LoadRule[加载健康阈值规则]
    LoadRule --> Match{是否命中异常规则}
    Match -- 否 --> Save[保存健康记录]
    Match -- 是 --> CreateAlert[生成健康预警]
    CreateAlert --> Notify[通知医护或护理主管]
    Notify --> Confirm[确认预警]
    Confirm --> Handle[处理并填写结果]
    Handle --> Close[关闭预警]
    Save --> End([结束])
    Close --> End
```

### 10.4 紧急呼叫处理流程图

```mermaid
flowchart TD
    Call([紧急呼叫]) --> Event[生成应急事件]
    Event --> Notify[通知护理人员和管理人员]
    Notify --> Dispatch[分派处理人]
    Dispatch --> Arrive[到场处理]
    Arrive --> NeedFamily{是否通知家属}
    NeedFamily -- 是 --> Family[推送家属通知]
    NeedFamily -- 否 --> Record[记录处理过程]
    Family --> Record
    Record --> Finish[完成事件]
    Finish --> Archive[事件归档]
```

### 10.5 设备报修流程图

```mermaid
flowchart TD
    Fault[发现设备故障] --> Ticket[提交维修工单]
    Ticket --> Mark[设备状态改为故障]
    Mark --> Assign[分配维修人员]
    Assign --> Repair[维修处理]
    Repair --> Result{是否修复}
    Result -- 是 --> Normal[设备恢复正常]
    Result -- 否 --> Pending[继续维修或停用]
    Normal --> Archive[工单归档]
    Pending --> Archive
```

### 10.6 家属探访预约流程图

```mermaid
flowchart TD
    Start([家属提交预约]) --> CheckTime[校验探访时间]
    CheckTime --> Review[工作人员审核]
    Review --> Pass{是否通过}
    Pass -- 否 --> Reject[驳回并说明原因]
    Pass -- 是 --> Confirm[生成预约记录]
    Confirm --> Notify[通知家属和护理人员]
    Notify --> Visit[到访签到]
    Visit --> Finish[预约完成]
```

## 十一、状态设计

### 11.1 床位状态图

```mermaid
stateDiagram-v2
    [*] --> Available: 新增床位
    Available --> Occupied: 入住分配
    Occupied --> Available: 退住释放
    Available --> Maintenance: 进入维修
    Occupied --> Maintenance: 故障停用
    Maintenance --> Available: 维修完成
```

### 11.2 护理任务状态图

```mermaid
stateDiagram-v2
    [*] --> Pending: 生成任务
    Pending --> Assigned: 派发
    Assigned --> Accepted: 接收
    Accepted --> Processing: 执行
    Processing --> Completed: 完成
    Assigned --> Overdue: 超时未处理
    Accepted --> Overdue: 超时未完成
    Overdue --> Completed: 补充完成
    Completed --> [*]
```

### 11.3 应急事件状态图

```mermaid
stateDiagram-v2
    [*] --> Submitted: 呼叫或上报
    Submitted --> Dispatched: 分派处理
    Dispatched --> Processing: 到场处理
    Processing --> Finished: 处理完成
    Finished --> Archived: 归档
    Submitted --> Cancelled: 误报关闭
    Archived --> [*]
    Cancelled --> [*]
```

### 11.4 预警状态图

```mermaid
stateDiagram-v2
    [*] --> Generated: 规则命中
    Generated --> Confirmed: 人工确认
    Confirmed --> Processing: 处理中
    Processing --> Closed: 处理完成
    Generated --> Ignored: 判定无需处理
    Closed --> [*]
    Ignored --> [*]
```

## 十二、关键时序设计

### 12.1 登录鉴权时序图

```mermaid
sequenceDiagram
    participant U as 用户
    participant C as 客户端
    participant A as AuthController
    participant S as AuthService
    participant R as UserRepository
    participant L as AuditLogService

    U->>C: 输入账号密码
    C->>A: POST /api/auth/login
    A->>S: login(username, password)
    S->>R: findByUsername(username)
    R-->>S: 用户账号与角色
    S->>S: 校验密码、状态和权限
    S->>L: 记录登录日志
    S-->>A: 返回会话与权限
    A-->>C: 登录成功
```

### 12.2 护理任务执行时序图

```mermaid
sequenceDiagram
    participant Supervisor as 护理主管
    participant API as CareTaskController
    participant S as CareService
    participant N as 护理人员
    participant A as AlertService
    participant DB as Repository

    Supervisor->>API: 创建并派发护理任务
    API->>S: dispatchTask(cmd)
    S->>DB: 保存任务状态为Assigned
    N->>API: 接收任务
    API->>S: accept(taskId)
    S->>DB: 更新状态为Accepted
    N->>API: 提交完成记录
    API->>S: finishTask(taskId, result)
    S->>A: evaluate(taskResult)
    A-->>S: 返回预警判断结果
    S->>DB: 保存护理记录和任务状态
```

### 12.3 用药提醒预警时序图

```mermaid
sequenceDiagram
    participant Timer as 定时任务
    participant M as MedicationService
    participant A as AlertService
    participant N as NoticeService
    participant DB as Repository

    Timer->>M: 扫描到期用药提醒
    M->>DB: 查询未确认提醒
    DB-->>M: 返回逾期提醒
    M->>A: evaluate(medicationReminder)
    A->>DB: 生成用药逾期预警
    A->>N: 推送提醒给护理人员或家属
    N->>DB: 保存通知记录
```

### 12.4 紧急呼叫处理时序图

```mermaid
sequenceDiagram
    participant E as 老人/护理人员
    participant C as 移动端
    participant API as EmergencyController
    participant S as EmergencyService
    participant N as NoticeService
    participant A as AlertService
    participant DB as Repository

    E->>C: 发起紧急呼叫
    C->>API: POST /api/emergency-events
    API->>S: createEvent(cmd)
    S->>DB: 保存应急事件
    S->>A: createAlert(event)
    S->>N: 通知护理人员和管理人员
    API-->>C: 返回事件编号和状态
    C->>API: 提交处理结果
    API->>S: finish(eventId, result)
    S->>DB: 更新事件状态并归档
```

## 十三、AI 规则预警设计

### 13.1 规则预警范围

| 预警类型 | 数据来源 | 示例规则 | 处理对象 |
| --- | --- | --- | --- |
| 健康异常预警 | HealthRecord | 体温高于阈值、血压异常、血氧低于阈值 | 医护人员、护理主管 |
| 用药逾期预警 | MedicationReminder | 到点后未确认服药 | 护理人员、家属 |
| 护理任务逾期预警 | CareTask | 超过任务截止时间未完成 | 护理主管 |
| 设备故障预警 | Device, RepairTicket | 设备故障未派单或超时未修复 | 维修人员、管理人员 |
| 应急事件预警 | EmergencyEvent | 高等级应急事件未及时处理 | 管理人员、护理主管 |
| 风险老人识别 | HealthRecord, EmergencyEvent, CareTask | 多次异常记录或频繁应急事件 | 医护人员、机构管理人员 |

### 13.2 规则引擎处理流程

```mermaid
flowchart TD
    Source[业务数据变化] --> Match[匹配启用规则]
    Match --> Hit{是否命中}
    Hit -- 否 --> End[结束]
    Hit -- 是 --> Create[生成预警记录]
    Create --> Level[计算预警等级]
    Level --> Notify[发送通知]
    Notify --> Confirm[人工确认]
    Confirm --> Handle[处理预警]
    Handle --> Close[关闭或忽略]
```

## 十四、部署设计

### 14.1 部署图

```mermaid
flowchart TB
    subgraph UserSide[用户侧]
        Browser[后台浏览器]
        MobileApp[移动端 App]
        FamilyBrowser[家属端浏览器或App]
    end

    subgraph ServerSide[服务器侧]
        WebServer[Web入口或静态资源服务]
        JavaApp[JavaEE应用服务]
        Scheduler[定时任务与规则扫描]
        Database[(关系型数据库)]
        FileStorage[(附件与导出文件目录)]
    end

    Browser --> WebServer
    FamilyBrowser --> WebServer
    MobileApp --> JavaApp
    WebServer --> JavaApp
    JavaApp --> Database
    JavaApp --> FileStorage
    Scheduler --> JavaApp
    Scheduler --> Database
```

### 14.2 运行约束

| 项目 | 说明 |
| --- | --- |
| 应用形态 | JavaEE 单体应用，后台、移动端和家属端共用服务端能力。 |
| 数据库 | 关系型数据库保存业务数据、账号权限、日志和统计基础数据。 |
| 定时任务 | 用于扫描用药提醒、护理任务逾期和预警规则。 |
| 安全边界 | 所有业务接口必须经过认证授权，家属端只能访问绑定老人数据。 |
| 日志审计 | 登录、档案修改、入住退住、费用变更、应急事件和预警处理必须记录日志。 |

## 十五、测试与验收

### 15.1 测试策略

| 测试类型 | 测试重点 |
| --- | --- |
| 单元测试 | Service 层业务规则，如床位状态、护理任务状态、应急事件状态、规则预警判断。 |
| 接口测试 | 登录、档案、入住、床位、健康、护理、应急、设备、家属端、预警接口。 |
| 集成测试 | 后台管理端、移动端、家属端、服务层、数据库之间的数据闭环。 |
| 权限测试 | 不同角色访问菜单、接口和敏感数据时的授权边界。 |
| 状态流转测试 | 床位、护理任务、应急事件、预警记录的状态转换合法性。 |
| 验收测试 | 按功能需求编号逐项验证业务输出和流程闭环。 |

### 15.2 需求追踪矩阵

| 需求编号 | 对应模块 | 设计元素 | 验收场景 |
| --- | --- | --- | --- |
| FR-01 | 老人档案 | Elder, ElderService, /api/elders | 新增老人档案并按条件查询 |
| FR-02 | 入住登记 | CheckInRecord, Bed, /api/check-ins | 入住后床位变为占用 |
| FR-03 | 退住办理 | CheckInRecord, BedService | 退住后释放床位 |
| FR-04 | 房间管理 | Room, /api/rooms | 按楼层查询房间 |
| FR-05 | 床位管理 | Bed, BedService, /api/beds | 床位状态正确流转 |
| FR-06 | 健康记录 | HealthRecord, HealthService | 录入生命体征并查询趋势 |
| FR-07 | 健康档案 | Elder.healthSummary | 健康摘要与老人档案关联 |
| FR-08 | 护理等级 | CareLevel | 护理等级变更有记录 |
| FR-09 | 护理计划 | CarePlan, CareService | 护理计划生成任务 |
| FR-10 | 护理任务 | CareTask, CareService | 任务派发、执行、完成 |
| FR-11 | 巡检打卡 | PatrolRecord | 巡检记录关联老人和护理人员 |
| FR-12 | 紧急呼叫 | EmergencyEvent | 呼叫后生成应急事件 |
| FR-13 | 应急处理 | EmergencyService | 事件处理完成并归档 |
| FR-14 | 设备台账 | Device, DeviceService | 设备编号唯一，状态可维护 |
| FR-15 | 设备报修 | RepairTicket | 工单完成后设备恢复正常 |
| FR-16 | 公告发布 | Notice | 发布后目标用户可见 |
| FR-17 | 阅读状态 | NoticeRead | 阅读后状态更新 |
| FR-18 | 账号权限 | UserAccount, Role, AuthService | 停用账号不可登录 |
| FR-19 | 数据看板 | DashboardService | 看板指标与业务数据一致 |
| FR-20 | 用药计划 | MedicationPlan | 用药计划关联老人 |
| FR-21 | 用药提醒 | MedicationReminder, AlertService | 逾期未确认生成提醒 |
| FR-22 | 家属查看 | FamilyMember, 家属端接口 | 家属只看绑定老人 |
| FR-23 | 探访预约 | VisitAppointment | 预约审核状态可追踪 |
| FR-24 | 服务反馈 | Feedback | 反馈可回复归档 |
| FR-25 | 费用记录 | FeeRecord | 按老人和周期查询费用 |
| FR-26 | 活动课程 | CourseActivity | 活动发布并支持报名 |
| FR-27 | 活动评价 | Enrollment, ScoreEvaluation | 签到和评价可统计 |
| FR-28 | 预警规则 | AlertRule | 启用规则参与判断 |
| FR-29 | 预警记录 | AlertRecord | 预警确认、处理、关闭 |
| FR-30 | 风险识别 | AlertService, DashboardService | 生成高风险老人列表 |
| NFR-02 | 安全 | AuthService, 权限模型 | 未授权访问被拒绝 |
| NFR-06 | 审计 | AuditLog | 关键操作记录日志 |

### 15.3 分期验收标准

| 分期 | 验收标准 |
| --- | --- |
| 一期 | 老人入住、床位分配、健康记录、护理任务、紧急呼叫、设备报修、公告通知、权限控制和基础看板形成闭环。 |
| 二期 | 家属端、用药提醒、探访预约、服务反馈、费用记录、活动课程和评价统计可正常使用。 |
| 三期 | 规则配置、预警生成、预警处理、风险老人识别和预警统计可追踪、可验证。 |

## 十六、项目价值与总结

AI赋能智慧养老系统通过后台管理端、移动端 App 和家属服务端协同，覆盖养老机构从入住建档、床位管理、健康照护、护理任务、安全应急、设备运维、家属互动到运营看板的关键业务链路。系统以一期核心照护闭环为基础，二期补齐运营服务能力，三期通过规则预警实现轻量智能化。

从软件工程角度看，本报告补充了系统上下文图、角色权限图、用例图、分期路线图、领域划分图、总体架构图、功能模块图、ER 图、领域类图、服务层类图、流程图、状态图、时序图、规则预警图和部署图，使需求、架构、数据、接口、测试和验收之间具备明确追踪关系。

从课程实训角度看，该项目仍保持 JavaEE 单体分层架构，避免复杂模型训练、硬件协议适配和商业 SaaS 能力带来的过度设计，适合作为完整的软件工程课程项目和 JavaEE 应用开发实训案例。
