预计阅读时间:10 分钟
公共卫生数据自动化处理 - RPA 实战案例
本文介绍一套基于影刀 RPA 的公共卫生数据自动化处理系统,实现多源异构系统间的数据自动获取、清洗、录入及监控,效率提升 80%,数据准确率达 100%。
📖 项目背景
公共卫生管理系统涉及多个子系统的数据交互,包括:
传统工作模式存在以下痛点:
本项目通过 影刀 RPA 实现了 15 个自动化机器人,覆盖 6 个核心业务系统,让基层公共卫生人员从繁琐的重复劳动中解放出来。
🏗️ 系统架构
┌─────────────────────────────────────────────────────────────────┐ │ RPA 控制中心 │ │ 任务调度 / 状态监控 / 异常告警 / 日志管理 │ └────────────────────────────┬────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 自动化机器人矩阵 │ ├─────────────────────────────────────────────────────────────────┤ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 数据获取机器人 │ │ 数据清洗机器人 │ │ 数据录入机器人 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 模拟操作机器人 │ │ 监控巡检机器人 │ │ 报表生成机器人 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └────────────────────────────┬────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 业务系统对接 │ ├─────────────────────────────────────────────────────────────────┤ │ 免疫规划系统 / 居民健康档案 / 慢病管理 / 体检管理 │ └─────────────────────────────────────────────────────────────────┘
🤖 核心功能模块
1. 数据获取机器人
功能: 自动从各业务系统抓取数据
支持的数据源:
实现逻辑:
影刀 RPA 数据获取逻辑示例
def data_acquisition():
1. 登录免疫规划系统
影刀.打开浏览器("https://免疫规划系统.com")
影刀.输入账号("username", "admin")
影刀.输入密码("password", "")
影刀.点击("登录")
2. 导航到数据查询页面
影刀.点击("数据查询")
影刀.选择日期范围("2024-01-01", "2024-12-31")
3. 抓取表格数据
数据表 = 影刀.获取表格("接种记录表格")
4. 导出数据
影刀.点击("导出Excel")
影刀.等待下载完成()
return 数据表
2. 数据清洗机器人
功能: 对原始数据进行清洗、转换、标准化
处理内容:
| 处理类型 | 说明 | 示例 |
| 去除重复 | 识别并删除重复记录 | 同一人同一天多条接种记录 |
| 格式统一 | 标准化日期、身份证号等 | 身份证 15位→18位 |
| 缺失值处理 | 填充或标记缺失数据 | 空白出生日期标记为"未知" |
| 数据校验 | 逻辑校验与异常标记 | 年龄与出生日期不符 |
| 类型转换 | 文本转数值、日期格式转换 | "2024/1/1"→"2024-01-01" |
清洗流程:
def data_cleaning(原始数据):
1. 去除重复记录
清洗后 = 原始数据.去重(关键字段=["身份证号", "接种日期"])
2. 标准化身份证号
清洗后["身份证号"] = 清洗后["身份证号"].apply(转换18位身份证)
3. 填充缺失值
清洗后["联系方式"].fillna("未知", inplace=True)
4. 数据校验
异常记录 = 清洗后[清洗后.年龄 != 计算年龄(清洗后.出生日期)]
异常记录标记为("数据异常")
return 清洗后
3. 数据录入机器人
功能: 自动将清洗后的数据录入目标系统
应用场景:
| 场景 | 说明 | 提升效率 |
| 档案录入 | 居民健康档案信息录入 | 80% |
| 接种登记 | 疫苗接种信息登记 | 85% |
| 慢病录入 | 慢病患者信息录入 | 75% |
| 报表填报 | 统计数据填报 | 70% |
录入流程:
def data_entry(清洗后数据, 目标系统):
1. 打开目标系统
影刀.打开浏览器(目标系统.url)
影刀.登录(目标系统账号)
2. 逐条录入数据
for index, row in 清洗后数据.iterrows():
影刀.点击("新增")
填充表单字段
影刀.输入("姓名", row["姓名"])
影刀.输入("身份证号", row["身份证号"])
影刀.输入("联系电话", row["联系电话"])
... 其他字段
影刀.点击("保存")
处理异常弹窗
if 影刀.存在("重复提示"):
影刀.点击("覆盖")
3. 提交汇总
影刀.点击("提交")
4. 监控巡检机器人
功能: 定时检查关键业务数据,发现异常及时告警
监控指标:
| 指标 | 告警阈值 | 处理方式 |
| 接种率 | < 90% | 钉钉/微信通知 |
| 慢病管理率 | < 85% | 邮件通知 |
| 数据完整率 | < 95% | 短信告警 |
| 异常数据 | > 50条/天 | 电话通知 |
巡检流程:
def scheduled_inspection():
while True:
1. 查询关键指标
接种率 = 查询("SELECT COUNT() FROM 接种记录 WHERE 日期=今天") / 查询("SELECT COUNT() FROM 目标人群")
2. 检查阈值
if 接种率 < 0.9:
发送告警({
"类型": "接种率低",
"当前值": f"{接种率*100}%",
"阈值": "90%",
"处理人": "公卫负责人"
})
3. 检查异常数据
异常数量 = 查询异常记录()
if 异常数量 > 50:
发送告警({
"类型": "数据异常",
"数量": 异常数量,
"需要处理": True
})
4. 等待下次巡检
等待(3600) 每小时巡检一次
📊 项目成果
1. 场景覆盖
| 业务系统 | 机器人数量 | 自动化场景 |
| 免疫规划 | 4 个 | 接种登记、数据导出、报表生成 |
| 居民健康档案 | 3 个 | 档案录入、信息更新、数据同步 |
| 慢病管理 | 3 个 | 患者录入、随访记录、健康评估 |
| 体检管理 | 2 个 | 体检预约、体检结果录入 |
| 其他系统 | 3 个 | 数据汇总、跨系统同步 |
| 总计 | 15 个 | 20+ 项高频操作 |
2. 效率提升
| 指标 | 人工处理 | RPA 处理 | 提升 |
| 单次数据录入 | 15 分钟 | 3 分钟 | 80% |
| 日处理量 | 50 条 | 500 条 | 10x |
| 月节省人力 | 75 小时/人 | - | 25 小时/月 |
3. 质量提升
| 指标 | 人工处理 | RPA 处理 | 提升 |
| 数据准确率 | 92% | 100% | +8% |
| 错误率 | 8% | 0% | -100% |
| 及时性 | 延迟 1-2 天 | 实时 | - |
4. 异常处理
🛠️ 技术栈
| 技术 | 用途 |
| 影刀 RPA | 流程自动化开发与执行 |
| Python | 数据清洗与处理脚本 |
| Pandas | 数据分析处理 |
| MySQL | 数据存储 |
| 定时任务 | 自动化调度 |
💡 实施经验
1. 需求调研技巧
2. 开发要点
3. 推广策略
🚀 未来展望
📈 总结
本项目成功将 RPA 技术应用于公共卫生领域,实现了:
- ⚡ 效率飞跃 - 整体工作效率提升 80%
- 🎯 质量提升 - 数据准确率达到 100%
- 👥 人力释放 - 每月为每位基层人员节省约 25 小时
- 🔍 监管增强 - 及时发现并处理 47 起数据异常
该项目已作为数字化转型标杆案例在区域内推广,为其他单位的 RPA 应用提供了可复制的经验。
让 RPA 成为基层公卫人的得力助手 🏥
本文由 suisui 发布