1数据来源

表名来源数据量关键字段
base_resident_info入住协议(轻流)4446人id_number, caregiver_name, institution, area, admission_date, status, care_level, bed_number
biz_care_plans照护计划(轻流 appKey: c0uduv881c02)2851条(生效)id_number, plan_date, plan_status
base_org_area机构休养区映射91条institution, area
关联方式:所有表通过 id_number(身份证号)关联。
离院判定status = '离院' 视为离院,排除在检查范围外。在住状态包括:在住、请假(外出住院)、请假(其他)。

2规则一:在住检查(全覆盖)

检查对象:base_resident_info 中所有非离院老人(status != '离院')

条件结果标识
照护计划表中有该老人 plan_status='生效' 的记录已完成绿色行
照护计划表中无该老人生效状态的记录未完成红色行
-- 核心SQL逻辑 SELECT r.*, CASE WHEN p.id_number IS NOT NULL THEN 1 ELSE 0 END AS has_plan FROM base_resident_info r LEFT JOIN biz_care_plans p ON r.id_number = p.id_number AND p.plan_status = '生效' WHERE r.status != '离院'
⚠ 只要有一条生效状态的照护计划即视为完成,不关心计划制定日期。

3规则二:新入住7天内检查

检查对象:入住日期在筛选范围内、且入住已满7天的老人

  • 入住日期 ≥ 用户设定的起始日期(默认30天前)
  • 入住日期 + 7天 ≤ 今天(确保观察期满7天)
条件结果标识
有生效计划,且 plan_date ≤ admission_date + 7天7天内完成绿色行
有生效计划,但 plan_date > admission_date + 7天超期完成黄色行
无生效计划未完成红色行
📅 截止日期计算:截止日期 = 入住日期 + 7天。例如:6月1日入住 → 截止日期6月8日。
plan_date 与该截止日期比较判断完成状态。
-- 核心SQL逻辑 SELECT r.*, ADDDATE(r.admission_date, 7) AS deadline, CASE WHEN p.id_number IS NULL THEN '未完成' WHEN p.plan_date <= ADDDATE(r.admission_date, 7) THEN '7天内完成' ELSE '超期完成' END AS completion_status FROM base_resident_info r LEFT JOIN biz_care_plans p ON r.id_number = p.id_number AND p.plan_status = '生效' WHERE r.status != '离院' AND r.admission_date >= '起始日期' AND ADDDATE(r.admission_date, 7) <= CURDATE()

4筛选条件

条件说明适用
机构从 base_org_area 加载,动态联动休养区两者
休养区根据所选机构联动两者
检查类型在住检查 / 新入住检查两者
入住起始日期默认30天前,仅新入住检查时显示新入住
🔀 切换检查类型时,入住起始日期筛选项自动显示/隐藏。

5统计口径

在住检查统计

指标公式
在住老人非离院老人总数
已完成照护计划中有生效记录的人数
未完成照护计划中无生效记录的人数
完成率已完成 ÷ 在住老人 × 100%

新入住检查统计

指标公式
新入住(已满7天)符合时间范围且已满7天的老人总数
7天内完成plan_date ≤ 入住+7天的人数
超期完成plan_date > 入住+7天的人数
未完成无生效计划的人数

6数据更新机制

  • 照护计划同步:每日凌晨 04:30 通过 sync_care_plans.py 从轻流全量同步(DIFF-MERGE)
  • 入住协议同步:每日凌晨 01:30 通过 sync_resident_info.py 从轻流全量同步(断点续传)
  • 检查页面:每次打开页面实时查询数据库,无缓存,数据延迟取决于最近一次同步