流程和实操步骤

更新于 2026年10月13日 版权声明
三、流程和实操步骤

(一)流程

1.流程分析

从住院病案首页采集2022年度该院所有住院记录,提取“病案号”“姓名”“住院次数”“出院科别”“主要诊断名称”“主要诊断编码”和“出院日期”等,导入Excel文件后进行“数据透视表”处理,将“出院科别”和“主要诊断名称”分别设置为一二级行标签,并将“姓名”设置为值的计数项。对于科室1,在新建文件夹下创建Excel表1用于存取该科室数据,将该科室相关病种和出院人数拷贝至该Excel下的Sheet表单,并根据出院人数将表格进行降序排列,同时生成新列统计各个病种的顺位(相同出院人数按同一顺位计)。保存Excel表1后返回数据透视表,下一个科室重复上述操作,直至所有科室统计完成,如图7-12所示。2021年及2020年重复上述操作。

图示

图7-12 住院疾病顺位统计流程

2.痛点分析

从流程分析可看出,每一年度的每一科室涉及的重复操作包括从生成的数据透视表中复制该科室的病种名称及相应的出院人数、粘贴至新创建的Excel中、按出院人数进行降序排列、生成病种顺位次序、更改文件名称并保存退出。每一年度对应30个科室,即需要重复30次上述操作;而一共有3个年度数据需求,即需要执行30×3次即90次重复操作。即使操作Excel娴熟的“老手”,也难以在90次重复操作中保证不出差错;甚至,重复操作所带来的时间消耗与“精神疲倦”无疑是在折磨统计员。

3.流程优化

可以看出上述操作存在大量重复固定的步骤,可运用RPA对该流程进行自动化处理。本例运用华为WeAutomate RPA结合Python的方式实现自动化处理。主程序设计如图7-13所示,分为“打开原始表”“原始表生成数据透视表”和“顺位统计”三个模块。“打开原始表”模块利用WeAutomate自动打开生成的“住院病人信息表”,并对文件打开状态进行判断,文件成功打开则获取Excel表格的总行数并提示用户文件已被成功读取,否则提示无法打开目标文件。“原始表生成数据透视表”模块用于实现原始表的数据透视表生成,并将所有出院科室类别存入数组中,以备后续文件命名使用。生成的数据透视表依次按科室、病种和出院人数归类,WeAutomate支持绝大部分Python库文件,包括本例所运用到的pandas库和openpyxl库。“顺位统计”模块最终实现数据透视表各科室病种数据的拷贝与排序、顺位号生成以及文件统一命名。

图示

图7-13 运用RPA和Python脚本优化住院疾病顺位统计流程

(二)实施步骤

各步骤源程序见附录2。

1.打开原始表

在打开原始表之前,先检查目标路径下的文件是否存在。这里,我们将原始表放置在系统桌面下,调用“folderExist”控件(图7-14),将必填参数项“资源目录路径”设置为我们的C盘桌面下的原始数据文件路径(由于不同计算机C盘桌面路径名称不一,读者可以思考下如何调用WeAutomate文件控件自动捕获该文件路径)。如文件路径错误或文件不存在,程序将弹出提示,告知用户修改文件路径(图7-15);如文件存在,则打开该文件,并弹出提示,告知用户原始文件已被捕获(图7-16)。

图示

图7-14 判断原文件是否存在的控件及参数设置

图示

图7-15 文件路径错误或文件不存在时弹出消息窗口(https://www.daowen.com)

图示

图7-16 原始数据文件存在且被打开时提示用户

之后获取原始数据文件的总列数和总行数,采用“excelGetColumnCount”和“excelGetRowCount”控件,并将总列数对应的数字列转化为字母列名称,最后调用“运行python表达式”控件,执行“ "A1:"+Max_Col_Name+str(@{Max_Row})”语句,获取整个表单的范围(图7-17)。

图示

图7-17 获取原始数据文件数据范围

2.原始表生成数据透视表

调用“excelCreatePivotTable”控件,设置sheet页名称、数据源、目标Sheet名、目标起始位置、透视表名等必填参数项。如可将出院科别、疾病名称作为行标签,参数分别设置为:(出院科别,xlRowField)、(疾病名称,xlRowField);将姓名作为计数项,参数设置为:(姓名,xlDataField,xlCount)。成功创建透视表后通过消息窗口提示用户(图7-18)。

图示

图7-18 创建数据透视表并弹窗提示

获取创建的数据透视表总行数,调用“运行python表达式”获取除表头外的行数,即“数据透视表总行数-1”数值(图7-19)。最后,调用“excelCloseWorkbook”控件关闭工作簿。

图示

图7-19 获取数据透视表除表头外总行数

3.调用Python脚本拷贝数据透视表中各科室数据并排序

由于WeAutomate是基于Python语言开发的,且Python环境下有着丰富的库文件供表型数据处理,故采用Python脚本完成后续处理。调用openpyxl、re和pandas库,打开原始数据表中sheet名为“数据透视表”的数据表,检索“出院科别”所在列,记录该列表头下一行单元格的数值(第一个科室名称)及行数r1,同时继续检索该列,如单元格为非空(表明已到下一个科室),则记下所对应的行数r2。故r1到r2-1行内所对应的内容为第一个科室的数据,将所对应的范围内所有单元格拷贝并采用快速排序算法根据“出院人数”进行排序,同时新建一个名称为该科室名的Excel文件,将排序后的数据拷贝至该Excel文件并根据出院人数统计每个疾病的顺位,保存并退出该Excel文件后,将r2赋值给r1并继续检索“数据透视表”中“出院科别”所在列,直至检索完毕。至此完成Python脚本。

在WeAutomate Studio中,调用“exec.py”控件,将打包好的Python脚本放在项目所在文件路径下,并用该控件调用编写好的Python脚本。在完成所有科室统计后弹窗提示用户已完成统计(图7-20)。

图示

图7-20 调用Python脚本完成科室数据拷贝及排序

在完成所有统计流程的程序设计后,在WeAutomate Studio中将该项目下所有模块打包,并将压缩包导入至WeAutomate Assistant,即机器人助手,便于程序包管理、定时启动、监控执行过程等。

✍AI写作