自建自动审核程序的风险评估与对策探讨*
2019-03-19陈建波胡朝晖王永松王家健
陶 然,陈建波,何 君,胡朝晖,李 娜,王永松,王家健△
(1.海南金域医学检验中心有限公司实验诊断部,海南海口 570311;2.广州金域医学检验中心实验诊断部,广东广州 510330;3.北京金域医学检验实验室实验诊断部,北京 100015)
近年来,得益于信息自动化技术的飞速发展,自动审核技术在医学检验领域具有效率提升、质量保证的优势,被越来越多的医疗机构引入[1-2]。使用方式从完全依赖中间件[3]到实验室(检验科)信息系统(LIS)、中间件各承载部分功能[4]到脱离中间件完全自行开发[5],数据广泛性、功能灵活性的不断提升使其前景愈加广阔。目前各种自动审核培训班、文献报道都显示,越来越多的医疗机构开始自建自动审核程序,只有更多的检验项目使用自动审核,以临床为导向、多项目的关联审核才能真正实现。目前鲜见自建自动审核程序风险评估的报道,《CNAS-CL02:2012》[6]中风险要求仅3条。本实验室自2013年开始建立自动审核程序,截止目前已应用至13个实验室的8个技术平台,基于庞大的数据量和结构复杂度,笔者深切感受到项目构建过程中风险管理的重要性,风险内容未考虑周全或应对方案不完整均可能导致患者结果报告错误。本研究旨在介绍项目进程中的风险及应对方案。
1 材料与方法
1.1材料 Java 1.7、Oracles及Mongo DB数据库、C /S结构、JavaScript引擎,Loadrunner11.0压力测试工具。
1.2方法 风险评估由项目管理组采用风险矩阵完成,所有策略测试有效后投入使用。
2 结 果
2.1风险1 规则执行负荷。2016年12月开始启用时规则呈每月30%的速度递增,达到1 500条规则后程序响应速度开始变慢,2 000条时引起生产抱怨。解决方案:(1)执行“哨兵”[7]、多线程异步[8]的规则查找方式,规则池按项目切割,规则建立随即划入相应项目规则池,缩小规则的查找范围;单线程即时查找改为多个线程同步并发;(2)数据库规则每日凌晨7:00由Mongo DB数据库同步更新到redis缓存(基于内存的高性能Key-value数据库)大幅提升响应速度;(3)CPU长期监控,若平均负荷超出90%,考虑增加服务器;(4)实验室上线前行压力测试,关注CPU使用率、内存空闲量、磁盘使用率等关键指标,符合要求方可上线。效果:优化前单个报告自动审核平均时间8.3 s,CPU平均耗用55%,高峰时段95%,优化后,自动审核中位数时间2.3 s,80%的报告单在3.5 s以内,CPU平均耗用23%,高峰时段50%以内,程序负荷有效缓解。
2.2风险2 规则执行有效性。包括运行有效性和临床有效性。前者表示规则设置后能否被程序识别,程序执行效果是否符合实验室人员设置的目的,与程序功能有关;后者表示规则执行的结果是否具有最佳的临床报告判断决策,这部分与程序功能无关,仅与设置的规则判断值相关。运行有效性不足带来的风险:程序中存在大量的,未能执行且占用空间的“僵尸”规则,执行结果不符合人员预期的“无效”规则,实际生产中,实验室人员误认为所有规则已执行,实际上仅有部分规则执行,报告单未被充足的规则审核,出现漏检、错检。解决方案:引入“规则周期”,规则具有“正式”、“待转正”两种状态,“待转正”规则执行后,批单人员查看系统的执行结果和人为判断是否一致,若一致,说明系统能够正确识别、执行规则,“待转正”规则效果正确度加1分,若不一致,说明设置错误导致系统无法正确读取规则,质疑规则有效性。若某“待转正”规则的执行效果正确度得分达到要求,实验室管理人员 “转正”该规则;若未达到“转正要求”,删除规则重新建立。另外,若某项目存在“待转正”规则,涉及该项目的报告单必须由人工审核,只有该项目的所有规则均为“转正”状态,方可允许程序自动审核。方案效果:相比手工记录,每条规则线上节约10 min,某实验室发现“僵尸”规则26条,“错误”规则32条。临床有效性不足带来的风险:程序报警的报告,但人员最终未干预,导致假阳性,浪费人员复核精力与成本;程序未报警的临床报告人员却施加干预,报告单漏检的假阴性风险。解决方案:建立“基于操作轨迹反向决策”模式:若程序报警(红色),理应干预报告,实际人员直接批准报告,记录规则“伪红”+1;若程序报警通过(绿色),理应直接批准报告,实际干预报告,记录项目“伪绿”+1。程序周期性统计规则的报警百分比和“伪红”百分比,若某规则报警概率大于80%且伪红率大于80%,需修改规则;任一项目“伪绿”百分比大于20%,提示需增加规则。结果:以生化岗位为例,251条规则中,63条规则被提示可修改阈值, 62个项目中,5个项目被提示需增加规则。
2.3风险3 程序故障防范。包括2个方面:急停开关、规则日志。程序急停的风险:一旦程序环境出现问题,需紧急停止自动审核确保充沛的CPU供给。解决方案:自动审核程序加入个人开关和实验室开关,前者控制个人,后者控制实验室,均可选择性关闭/开启自动审核。方案效果:2016-2017年由于CPU耗用异常急停2次,2018年未有出现异常。规则执行日志包括实时显示自动审核执行进度、记录自动审核的触发规则和违背规则。规则执行日志不足的风险:人员无法得知自动审核进度和程序处理逻辑,等待时间过长导致人员焦虑且无法得知需继续等待还是系统故障。解决方案:程序实时显示自动审核进度:待审核报告/已完成报告,两者相等表明自动审核执行完毕,若后者逐步增加且小于前者,表明程序正在执行,若后者数值停滞增长,表明程序故障需联系IT人员。若批单人员不认可程序审核判断,可根据日志线索记录自助查因。方案效果:相比2017年,新上线实验室呼叫IT支援次数减少90%,自助查因确保实验室人员快速理解程序,自动审核实验室培训周期由3个月降低到平均15 d。
3 讨 论
自动审核通过计算机执行规则,降低差错、提升效率、缩短检验结果回报时间(TAT)[9];另一方面,多学科的实施也为以疾病为导向的整合报告解读提供可能[10]。但是,程序功能的提升也伴随着复杂度、风险的增大。程序构建和运营的各个阶段,风险评估不可或缺。本实验室的13家实验室截至2017年底,设置10 127条规则,自动审核程序每天处理58 000张报告,测试数约290 000,按照每个测试触发4条规则,每天自动审核程序将执行110万次规则,至少220万次计算。
基于庞大的数据处理量带来的报告隐患,本文的风险在使用厂家中间件的实验室体现不显著,原因在于:(1)中间件多配置流水线,多用于生化、血液学科[11],报告基数较小,不同学科的项目无法使用自动审核(如发光法与免疫法行乙肝检测、电泳法与杂交法行地中海贫血检测)。反之,一旦用于多个学科,项目关联性、结果报告方式差异对自动审核功能的多样化、灵活化开始有一定要求;(2)独立检验所面对的分析前要求,自动审核不仅仅局限于结果,还需在分析前阶段进行资料信息的预审核;(3)自动审核是异常数据的有力抓手,其灵魂不仅局限在结果审核,阳性率分析、病例分析都可来源于此。所以,若完全自建自动审核程序,不能仅着眼于接口或者服务器的扩充,整体流程设计和持续优化是确保自动审核可持续性发展的必要条件。
规则执行负荷在所有风险中影响评级最高且鲜有文献报道。之前本实验室自动审核曾导致2次大规模LIS宕机,实验室人员抱怨强烈。调查后发现,规则查找和历史数据比对消耗大量内存。异步多线程和哨兵模式前期改善结构,后期规则同步缓存改善运维,结合后显著降低CPU耗用。
规则执行有效性中包含临床有效性和执行有效性,笔者认为执行有效应受到首要重视,ISO15189 CNAS-CL02 5.9.2中明确要求[6]:在使用前应确认该标准可以正确应用,并对可能影响功能的系统变化进行验证。既往的研究采用人机一致性的方式[12]。此法基于报告单维度进行比对,若有异常,查因繁琐难度大。执行顾问提出建立“模拟程序”运行批量数据比较双程序效果的方式因成本高放弃。最终,笔者引入了“规则生命周期”直接使用患者报告,直接进行规则效果的人机对话,此法工作量适中,游戏化操作显著提升人员测试积极性,在此基础上再行报告单比对消除风险。
在以上基础进行临床有效性改善,医疗机构之间交流沟通联合制定自动审核规则即为改善方式之一。笔者使用了“基于操作轨迹反向决策”的方法,程序根据审核人员更改结果痕迹得出规则改善建议,若在此基础上,增加内部、客户投诉的结果错误,程序根据结果分布趋势识别异常,将是临床有效性的巨大突破。
程序故障防范在ISO15189 CNAS-CL02 5.9.2中明确要求[6]:有过程可快速暂停自动选择和报告的功能。基于此笔者建立了2层开关,同时,开关也可用于员工批单的培训。规则日志是笔者建立程序以来使用最多的功能,该功能广泛用于规则运行异常的原因查找。同时,记录的触发规则和运行数据可用于阳性率等质量监控工作[13]。基于该记录的血液病提示也有报道[10]。
4 结 论
以上的哨兵模式、多线程异步、缓存更新、规则周期、操作轨迹反向决策、双层开关、规则执行进度、规则日志共计8项风控措施均依照“实施-评估-反馈-再决策”的模式确立,经过2年的系统改善,目前程序得以平稳运行。随着数字化技术的发展,目前的自动审核还存在宽广的功能拓展空间[14-16],例如建立适应各级实验室的类似阿里云的自动审核程序包,围绕“性能、功能、体验”的风险控制将是成功实施的必要条件。