网站首页  词典首页

请输入您要查询的论文:

 

标题 Drools规则引擎在医疗数据合规系统中的应用
范文

    赵新 王火剑

    

    

    

    摘 要:目前实现医疗数据合规控费的监控系统大多采用传统命令式编码实现,其中将业务规则逻辑与业务系统进行捆绑。当业务规则逻辑或规则知识库发生变更时,则需要研发人员重新修改编码,且非研发人员无法灵活地进行规则编辑维护。为解决上述问题,引入Jboss的KIE可视化配置管理系统,业务专家可通过该系统自定义编辑规则文件,并引用Drools规则引擎对规则文件进行解析。因此,只需维护规则文件即可,而无需采用传统命令式编码实现业务规则,减少了系统开发与维护工作量。业务系统调用Drools规则引擎进行校验、解析规则文件,并与医疗数据进行匹配碰撞,从而实现了规则逻辑和业务系统解耦,避免了医疗政策变化对业务系统的影响,增强了系统适用性与灵活性。

    关键词:Drools;规则引擎;可视化;医疗数据合规

    DOI:10. 11907/rjdk. 182781 开放科学(资源服务)标识码(OSID):

    中图分类号:TP319文献标识码:A 文章编号:1672-7800(2019)007-0163-04

    Application of Drools Rule Engine in Medical Data Compliance System

    ZHAO Xin1,WANG Huo-jian2

    (1. Run Technologies CO., LTD.,Beijing 100096,China;

    2. Network Security Corps of Zhejiang Public Security Bureau, Hangzhou 310000,China)

    Abstract: At present, most of the monitoring systems for implementing medical data compliance control fees are implemented by traditional imperative coding, in which business rule logic and business system bundles are implemented.When the business rule logic or rule knowledge base changes, the R&D personnel need to re-edit the code implementation, and non-R&D personnel cannot flexibly perform rule editing and maintenance. In order to solve the above problems, JBoss' Drools rule engine and KIE visual configuration management system are cited. The business experts can visualize the custom editing rule logic and rule knowledge base, and develop the rule logic without hard coding, which reduces the development and maintenance of the system. The business system calls the Drools rule engine to check and parse the rules file, and the medical data is matched and collided, thereby realizing the decoupling of the rule logic and the business system, avoiding the influence of the medical policy change on the business system, and enhancing the applicability of the system and flexibility.

    Key Words: Drools;rule engine;visualization;medical data compliance

    作者簡介:赵新(1987-),女,北京锐安科技有限公司数据分析师,研究方向公安大数据分析。

    0 引言

    医保部门通过制定大量业务规则进行医保基金的审核控费,以减少医保基金的不合理支出,提高基金使用率。如今很多信息技术已应用于医院医保的精细化管理中[1]。本文的医疗数据合规审核系统主要依托规则库对医疗机构上传的结算单数据进行逐单逐项审核,以实现医保结算单审核的自动化处理,缩小人工抽检范围与审核盲区,降低人工抽审工作量,从而减少人工成本,并提高审单准确性与工作效率。

    目前有很多学者与机构对医保审核系统进行了研究[2],已有较为成熟的产品在各大医院得到应用,并取得显著成效[3]。但目前医疗合规智能系统规则是通过硬编码实现的,每个规则都需要单独开发实现。其中规则逻辑与业务系统捆绑,当业务规则改变或新增业务规则时,则需要重新梳理逻辑,开发或修改代码,不易于系统维护。所以本文采用JBOSS开源的Drools 规则引擎,并引入drools的KIE可视化配置管理系统对原系统进行优化。目前Drools规则引擎已发展相当成熟,并广泛应用于企业营销[6]、物联网[7]、制造业[8]、金融保险[9]等领域。引进drools规则引擎的优势主要有以下几方面:①业务规则与系统解耦。将规则从系统中剥离,从原有代码转变为规则文本文件,Drools引擎提供了规则知识库的组织管理方式;②规则知识库可视化与自定义设置。在规则知识库中可以灵活修改或新增规则逻辑及规则明细;③规则流程化管理。Drools引擎集成流程引擎JBPM,可以通过组织不同规则及执行顺序,形成业务工作流;④规则编制方式多样化。KIE框架提供了电子表格、导向规则表、商业过程等高级别编制方式,业务人员与用户可以参与规则编制过程;⑤简化应用系统开发。无需进行编码开发规则的逻辑实现,且规则可视化维护完成后直接编译发布即可,无需重启应用系统,从而减少了系统开发的编码量与维护成本。

    1 Drools规则引擎

    Drools是JBoss公司开发的一款基于Java语言、开源的规则引擎。该规则引擎从业务层中独立出一套处理业务逻辑的API接口,从而实现了规则逻辑与业务系统的完全解耦。

    本文使用Drools6.5版本,规则引擎执行过程为:推理引擎(Interface Engine)加载解析规则文件(Production Memory),然后加载匹配数据(Working Memory),调用ReteOO算法进行匹配,得出匹配结果,其匹配规则的生命周期由Agenda进行管理。Drools规则解析过程如图1所示。

    2 KIE可视化配置管理

    Drools引擎提供了可视化配置编辑管理的KIE系统,可按照规则引擎支持的规则文件格式维护所需的知识库,从而将规则知识库从业务系统中剥离。知识库主要涉及以下几个方面:

    (1)审核数据模型。定义规则所用的审核数据模型,将模型的jar包导入KIE系统。系统解析jar包,在定义规则时,可动态使用审核数据模型中的对象及对象属性。

    (2)规则文件。规则文件可以是.drl、xls、brl或.gdst文件。其中,常用的描述文件是.drl和 xls 文件,而 xls 文件更直观且易于维护,更容易被业务人员理解。因本文的医保规则是规则逻辑+规则知识数据,所以使用导向性决策表(.dgst)定义规则。该规则文件支持模板+数據的格式,且可以可视化地选择数据模型对象及对象属性,并编辑规则条件,如in、not in、<=、>=、!=等条件。对于较复杂的规则逻辑,可使用编写脚本的方式将Java代码直接嵌入规则文件中。

    业务专家人员可自定义新增业务规则,如新增“限老年人用药”规则,并可对已有监控规则中的具体明细条目进行编辑,如新增、修改、删除某些限老年人使用的药品项目。规则从系统中解耦,从原有代码转变为规则文本文件,研发人员无需硬编码实现规则逻辑,从而减少了开发与维护工作量。

    (3)工作流。KIE可视化配置界面使用JBPM6实现规则流程编辑,在规则定义时,必须增加ruleflow-group属性列用于流程编排。编排工作流时,用户可自定义所需的监控规则及规则执行顺序,从而满足不同场景的应用要求。如在重点关注某类疾病的场景中,可将该类疾病的部分规则进行组合使用。

    3 系统应用

    3.1 系统设计

    项目目前采用组件模式开发,所以对JBOSS提供的KIE框架进行二次开发,封装成通用业务规则引擎,并在通用的基础上封装偏向不同业务的规则引擎组件。系统框架分为以下四层,如图2所示。

    图2 医疗数据合规系统框架

    (1)应用系统层。应用系统层通过spring bean集成业务规则引擎组件,主要功能为定义监控审核任务,并通过配置规则引擎需要的参数,启动规则引擎组件服务,注入医疗业务数据,如就诊信息、结算信息、处方信息等。

    (2)业务规则引擎组件层。 业务规则引擎组件在通用引擎提供技术的基础上,将应用系统数据转化成具体业务模型数据。业务规则引擎拆分数据中的元素,分别插入规则引擎,例如从审核实体里拆分Person、TreatInfo、SettleInfo、Hospital、Doctor以及诊疗信息里的处方,分别插入规则引擎作为Fact,审核模型如图3所示。

    图3 Drools规则引擎审核数据模型

    (3)通用引擎组件层。封装KIE API、多线程处理模型、消息队列模型与异常模型以供业务规则引擎组件使用,该组件层面向KieSession知识库,规则流程使用Kie框架API,也体现了项目面向流程开发的原则。

    该组件层对KieSession进行封装,在收到需审核的数据后,需要主动调用fireAllRules方法执行工作流中编辑的所有规则。Drools规则引擎对规则文件进行解析,加载医疗模型数据,Drools推理引擎调用ReteOO算法执行匹配规则,输出匹配结果。

    (4)第三方引擎层。引用JBOSS KIE框架提供的API。

    3.2 数据流向

    医疗数据合规系统数据流向如图4所示。

    (1)应用系统加载医保系统数据,构造审核实体数据单元。以某人的某次就诊结算信息为单元,封装就诊信息、结算信息、医嘱信息、处方信息等,将数据注入到业务规则引擎配置的消息通道。

    (2)业务规则引擎组件从配置的消息通道中读入数据。

    图4 数据流向

    (3)将业务模型数据转换成引擎能识别的审核数据元素。启动相应审核流程,将审核数据元素注入到通用引擎提供的API中。

    (4)Drools引擎接收数据输入,初始化kieSession,动态加载KIE发布的业务规则和工作流,或静态加载生成的业务规则jar包。规则引擎完成工作流启动,解释业务规则,对审核数据元素进行处理,并根据业务规则作出相应决策。

    (5)审核流程完成后通知应用系统审核完成,并返回审核结果,即医疗数据是否合规,若违规,则进行违规提醒。

    3.3 规则审核示例

    以“限儿童规则”为例,主要流程如下:

    (1)业务规则定义“限儿童规则”,KIE可视化配置示例如图5所示。

    其中每一行配置一条规则,每一列为该条规则的逻辑条件。业务专家人员可在“编辑器”->“决策表”功能里可视化地自定义编辑规则逻辑,如再添加一个科室条件等。同时可以点击“添加行”,增加一条限儿童使用的规则明细。该规则的逻辑实现及知识库数据无需研发人员在业务系统中进行编码开发,只需按图5示例配置规则文件,即可实现规则逻辑、数据与业务系统解耦。

    (2)定义业务应用场景,编辑jbpm6工作流,此例中将“限儿童规则”添加到工作流。审核任务将执行该业务应用场景的工作流,并加载该工作流配置的所有规则文件。

    (3)审核模型信息。患者张三,32岁,北医三院门诊就诊,诊断结果为“风寒感冒”,医嘱处方中包含 “康泰克”、“银翘解毒片”、“小儿止咳颗粒(编码340200038)”等,对张三此次就诊情况封装审核模型,将审核模型注入Drools引擎。

    (4)Drools规则引擎解析工作流中配置的“限儿童规则”文件,并加载张三患者的就诊模型数据,将两者进行匹配碰撞。匹配到张三大于18岁,且处方中包含“小儿止咳颗粒(编码340200038)”药品,则该处方医疗数据违规,输出匹配结果“直接扣款,扣款金额xx元,处方违规”,以及提醒信息:“小儿止咳颗粒只能用于18岁以下儿童”。

    (5)Drools引擎审核完成,将步骤(4)中的审核结果返回业务应用系统,审核任务结束。

    3.4 Drools优化

    在实时监控审核任务执行情况时,发现内存使用率持续超过了90%。因Drools引擎是基于RETEOO算法的,而该算法是通过牺牲空间换取时间,在形成匹配网络时保留了中间结果,易造成内存溢出,故需要进行JVM内存优化,并且运行完规则引擎后需调用dispose方法释放内存[19]。

    4 结语

    对于规则频繁发生变化的情况,业务领域专家可根据行业政策、知识等及时调整规则文件,而无需进行硬编码实现。调整完规则文件后可进行动態发布,业务系统更新加载新发布的规则知识库,无需重启应用即可快速响应需求变更。

    该规则引擎亦存在一些不足,除内存消耗较大外,其对于某些特殊场景的规则实现比较复杂,无法通过配置完成,需要编写Drools语法脚本,不便于业务人员维护。在使用决策表规则文件时,若规则中捆绑知识数据过多,将使可视化配置系统加载渲染速度较慢,且在业务系统调用引擎进行规则匹配时,匹配效率不高。

    由此可以看出,Drools规则引擎可应用于任何与商业规则、业务规则,甚至数据清洗规则相关的场景,且随着规则引擎工具的不断发展与完善,其在实际项目工程中的应用将越来越广泛。

    参考文献:

    [1] 吴旭东,陈庆莹,宫明. 现代信息技术在医院医保精细化管理中的应用[J]. 实用医药杂志,2017,34(1):83-86.

    [2] 王芬芬,朱超雷,陈磊,等. 医保智能审核系统设计[J]. 解放军医院管理杂志,2016,23(10):928-931,968.

    [3] 范玉改,李大奇. 医保智能审核系统的应用与成效分析[J]. 中国医院,2017,21(5):60-62.

    [4] 尚尔路.? 规则自动生成技术研究及其在医保审核中的应用[D]. 成都:电子科技大学,2017.

    [5] 缪姝妹,刘云,景慎旗,等. 基于ODM规则引擎的CDS医疗监控平台建设探讨[J]. 中国卫生信息管理杂志,2018,15(5):592-596.

    [6] 张乐. 基于规则引擎Drools的企业营销系统的设计与实现[D]. 南京:东南大学,2016.

    [7] 池深启. 轻量级规则引擎Drools在物联网平台中的应用研究[D]. 杭州:浙江工业大学,2017.

    [8] 牛凯. 规则引擎Drools在制造业J2EE系统中的应用研究[J]. 成组技术与生产现代化,2014,31(2):7-13.

    [9] 余昀锦. 保险行业中Drools规则引擎的研究与应用[D]. 北京:北京邮电大学,2014.

    [10] 陶晓俊,朱敏. 基于规则引擎的企业服务开发模式[J]. 计算机技术与发展,2008(2):115-118.

    [12] THU E E,NWE N. Transforming model oriented program into Android source code based on Drools rule engine[J]. Journal of Computer & Communications,2017,5(3):49-59.

    [13] 张渊,夏清国. 基于Rete算法的JAVA规则引擎[J]. 科学技术与工程,2006(11):1548-1550.

    [14] 童毅. 规则引擎中模式匹配算法及规则引擎应用的研究[D]. 北京:北京邮电大学,2010.

    [15] 黄颖.? 基于规则引擎的合同归并生产解决方案[C]. 全国冶金自动化信息网2018年会论文集,2018.

    [16] KINYUA J,WEPPENAAR D V,VERMAAK H. An intelligent maintenance management system based on multi-agent systems and the Drools planner[C]. Wuhan:International Conference on Computational Intelligence & Industrial Application,2010.

    [17] 蓝雯飞,邢志宝,强小利. 一种Drools规则引擎封装模型及其实现[J]. 中南民族大学学报:自然科学版,2015,34(3):95-99.

    [18] 汤冬冬. 基于Drools的分布式业务规则引擎的设计与实现[D]. 大连:大连理工大学,2016.

    [19] 刘金龙. drools规则引擎模式匹配效率优化研究及实现[D]. 成都:西南交通大学,2007.

    (责任编辑:黄 健)

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/11 22:48:33