住院病案首页患者基本信息质控系统设计与实现
2021-08-24潘伟东胡孔法
潘伟东,胡孔法
(南京中医药大学人工智能与信息技术学院,江苏南京 210023)
0 引言
病案首页是医疗医院统计、临床研究等重要的统计学信息数据来源[1],是医院诊疗过程中最重要的内容,为医院管理、医疗质量评价、绩效考核和医疗决策提供重要依据[2],对疾病诊疗起着关键作用。住院病人的信息收集与整理非常重要[3]。研究表明,秉持客观、真实的原则,认真、详实地填写病案首页,可为疾病的诊疗提供有效、可靠的参考依据[4]。在实际操作过程中,受业务能力、主客观等因素影响,病案首页填写存在不同程度的质量问题,采取积极有效的措施加以改进迫在眉睫[5]。
《国务院办公厅关于加强三级公立医院绩效考核工作的意见》(国办发[2019]4 号)指出,要提高病案首页质量,“三级公立医院要加强以电子病历为核心的医院信息化建设,按照国家统一规定规范填写病案首页,加强临床数据标准化、规范化管理。各地要加强病案首页质量控制和上传病案首页数据质量管理,确保考核数据客观真实。”
目前,信息技术在医疗领域发展迅猛,医院信息化建设日趋完善,借助信息技术有利于加强医院信息化建设,妥善解决病案首页数据质量管理控制问题[6-7]。赵慧智等[8]以某省住院病案首页质量现状为例提出以信息化手段探索评价住院病案首页质量的方法;陈琼等[9]提出要加强医院信息化建设以提升病案首页质量;钟慧翔等[10]利用SQL 查询语句精准查询数据,对住院病案首页数据的逻辑正确性和规范完整性进行质控,提高病案首页质量控制精准性与高效性。以上研究借助信息技术探索了住院病案首页质控方法,但在数据校验过程中仍需要大量人力。
本文系统整理病案首页患者信息校验规则,基于SpringBoot、SpringMVC、MyBatis、Shiro 等技术,设计并实现住院病案首页患者基本信息质控系统。系统校验包括实时校验与数据库级别校验。实时校验以SpringMVC 表单校验为主要方式,同时辅以级联、逻辑校验等方法对用户实施录入与导入病案信息进行校验;数据库级别校验主要运用于数据储存至数据库阶段,将已制定的校验规则设置为数据属性取值范围与关联关系等,在数据存储过程中对数据进行校验。经过系统校验,可有效提高住院病案首页患者基本信息的数据质量,为医疗研究工作提供可靠、有效的数据,初步实现住院病案首页患者基本信息质量控制自动化。
1 关键技术
1.1 SpringBoot
SpringBoot 继承了Spring 框架原有的特性,将常用的Spring、SpringMVC、data-jpa 等常用框架封装到一起,隐藏了这些框架的整合细节,实现高效开发,并且通过集成大量的框架解决依赖包版本冲突、不稳定等问题[11-12]。
1.2 SpringMVC
SpringMVC 框架是典型的MVC 架构,它围绕Servlet 设计,将请求发给控制器,然后通过模型对象、分派器来展示请求结果视图[13]。其中核心类是DispatcherServlet[14],它是一个Servlet,顶层是Servlet 接口。
1.3 MyBatis
MyBatis 是一款开源的基于Java 的数据持久层框架[15],支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC 代码以及设置参数和获取结果集的工作[16]。MyBatis 能够通过简单的XML 或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式Java 对象)为数据库中的记录[17-18]。
1.4 Shiro
Shiro 是当下最常见且易用的Java 安全框架,主要用于执行身份验证、授权、密码和会话管理等操作[19]。Shiro 有3个核心组件:Subject、SecurityManager 和Realms[20]。
Subject 即当前与系统交互的任何事物,SecurityMan⁃ager 管理Shiro 的安全操作,Realm 用于认证和授权,封装了数据源的连接细节并在需要时提供给Shiro,配置Shiro 时至少需要指定一个Realm[21]。
2 系统设计
2.1 需求分析
住院病案首页患者基本信息质控系统旨在通过校验患者基本信息得到规范、完整的住院病案首页数据,以提升数据质量,便于医疗人员及科研人员分析使用。其中,制定患者基本信息校验规则是系统核心需求。此外,在开发过程中还应遵循简洁、易用、安全、稳定的原则,以保证系统用户体验、安全性等非功能性需求得到满足[22]。
以住院病案首页填写规范为准则,结合实际填写情况,制定患者基本信息校验规则。患者基本信息校验规则分为基本校验和逻辑校验两大类。
基本信息校验指对住院病案首页中常规项目填写规范校验,如姓名、出生日期、年龄、国籍、新生儿出生体重、新生儿入院体重、出生地、籍贯、民族、身份证号码、邮编等数据项。具体规则如表1 所示。
Table 1 Basic verification rules of patient information表1 患者信息基本校验规则
患者基本信息逻辑校验指通过各个不同的数据项之间存在的逻辑关系对数据项本身进行校验。具体校验规则如表2 所示。
Table 2 Logical verification rules of patient information表2 患者信息逻辑校验规则
2.2 系统架构设计
本文基于B/S 架构采用MVC 设计模式构建住院病案首页患者基本信息质控系统,系统架构如图1 所示。
Fig.1 Quality control system architecture of basic patient information on the first page of inpatient medical record图1 住院病案首页患者基本信息质控系统架构
其中,视图层负责用户与系统交互和界面展示,如系统的实时校验界面、数据库级别校验反馈界面、校验报告界面等。控制层负责用户请求与业务逻辑交互。模型层负责系统中业务逻辑部分,本系统中主要负责病案数据导入、患者基本信息校验、用户与权限管理等功能。
2.3 功能模块设计
住院病案首页患者基本信息质控系统主要包括患者基本信息校验模块、病案数据接口模块以及用户与权限管理模块,如图2 所示。
Fig.2 Overall functional design of the quality control system for basic patient information on the first page of inpatient medical records图2 住院病案首页患者基本信息质控系统整体功能设计
2.3.1 用户与权限管理模块
医疗信息的社会关注度较高,同时具有高度的隐私性,用户使用本系统时需要通过登录识别用户权限方能正常使用。用户与权限管理模块分为用户管理与权限管理两个模块。
用户管理主要是由系统管理员对新注册用户的资格审核和对已有用户的账号、密码、个人描述、权限等信息管理。
权限管理主要是分配相应的权限给不同用户[23],系统用户分为3 个角色,包括填报用户、科研用户和系统管理员。填报用户具有系统中录入病案数据以及使用数据库级别校验和生成校验报告等功能;科研人员具有查询病案数据信息权限;系统管理员负责用户管理权限。
2.3.2 病案数据接口模块
在中医住院病案首页患者基本信息质控系统中,病案首页数据经病案录入流程存入数据库。用户在使用住院病案首页患者基本信息质控系统时,能够直接将获取到的住院病案首页dbf 文件上传至系统进行解析,随后系统自动校验住院病案首页质量。
2.3.3 患者基本信息校验模块
患者基本信息校验模块分为实时校验、数据库级别校验和生成校验报告3 个部分。
实时校验即在登录住院病案首页患者基本信息质控系统填报病案信息时,系统根据已制定的校验规则校验实时填报的内容并在前端页面上及时给予反馈,以此提高病案填写质量。
数据库级别校验即抽取数据库中住院病案首页数据,根据已制定的校验规则对抽取出的内容进行校验。一方面预防用户绕过浏览器前端页面的实时校验;另一方面由于当下各个住院病案首页填报系统并不相同,所收集到的数据质控程度也不同。
生成校验报告即在住院病案首页患者基本信息质控系统数据库级别校验后自动生成详细的校验报告。报告内容包括系统对每条数据校验后得出的漏填、错填和不规范情况,系统根据已制定的校验规则生成正确、规范的填写内容,供病案上报人员查漏补缺。
3 系统实现
3.1 系统UI
住院病案首页患者基本信息质控系统的UI 基于Boot⁃Strap4 前端框架设计,该框架提供了各种CSS 样式、数十种Web 组件以及JavaScript 插件,用户可以自由灵活地调用BootStrap中的内置样式[24]。BootStrap4 采用12列布局方式,具有极高的兼容性,能够根据不同尺寸的屏幕调整布局进行适配[25]。本文在系统中配置BootStrap4 的相关文件并添加到相应的前端页面,达到对前端页面渲染的效果。
3.2 用户与权限管理
用户与权限管理主要由Shiro 技术实现。
使用Shiro 采用基于角色的访问控制理念,在数据库中创建用户、角色、权限3 张基础表,以及建立用户与角色多对多关系、角色与权限多对多关系的2 张中间表,以此作为分配、控制用户的权限信息。Shiro 向Realm 提供用户的账号和密码,由Realm寻找用户的权限信息并进行认证和授权。
3.3 病案数据接口
导入病案数据dbf 文件,首先需要通过MyBatis 持久层框架对数据进行抽取。在程序中构建病案首页数据的实体类,将实体类作为程序和数据库交互的接口,由MyBatis将用户传入的参数作为SQL 查询语句的筛选条件,查询出相应的病案首页数据,并将其导出为dbf 文件待使用;然后将获取到的病案首页dbf 文件上传至住院病案首页患者基本信息质控系统数据库中,再通过MyBatis 操作数据库获得相应的数据进行质量控制。
3.4 患者基本信息校验
患者基本信息校验主要分为实时校验、数据库级别校验、生成校验报告3 个部分。
(1)实时校验与数据库级别校验。实时校验在前端页面通过SpringMVC 的表单验证完成。使用SpringMVC 的注解方式对需要校验的数据项编写校验规则并配置验证器,在前端页面输入数据时调用注解方式编写的校验规则即可在前端页面进行实时校验。
数据库级别校验主要根据基本信息校验规则通过数据表设计级联关系、字段检查,增加数据约束,实现数据存储校验。
(2)生成校验报告。校验完成后,针对每条数据得出的整份文件存在的漏填、错填和不规范情况进行统计,在前端页面利用Echarts 的前端作图工具生成统计展示。另外,通过前端页面的高亮方式标记漏填、错填和不规范的数据项,并根据校验规则补全漏填的数据项、生成规范的数据项形成修改意见,以便病案首页数据后续的修正工作,提高病案首页数据质量。
3.5 系统测试
住院病案首页患者基本信息质控系统开发完成后,利用白盒测试和黑盒测试方法对系统进行测试,测试环境如下:
服务器配置:操作系统CentOS 7;处理器Inte(lR)Xeon(R)CPU E5-2620 0 @2.00GHz;内存32GB;软件环境JDK 8、Tomcat 7;数据库MySQL 5.7。
客户端配置:操作系统Windows 10;处理器Intel(R)Core(TM)i7-4790 CPU@ 3.60GHz;内存8GB;谷歌浏览器。
利用白盒测试方法首先根据源代码绘制程序流程图,然后根据流程图分析系统的代码结构。在确认系统结构无误之后,利用黑盒测试方法,设计测试用例对系统主要功能进行多次测试。测试项目如表3 所示。
Table 3 Test items and results表3 测试项目及结果
实际测试中,单用户登录系统响应时间小于3s;前端页面实时录入、校验以及校验反馈的提示内容无明显延迟;单用户退出系统响应时间小于1s。测试结果表明,住院病案首页患者基本信息质控系统初步实现对住院病案首页的自动化校验,能够有效提升住院病案首页质量。
4 结语
本文在深入研究住院病案首页数据情况后,整合了患者基本信息校验规则,设计并开发了住院病案首页患者基本信息质控系统。该系统能够辅助填报人员更规范地填写与整理病案,对采集的病案首页数据进行校验;生成校验报告,对后续病案首页数据规范填报提供帮助,有利于提高病案首页数据质量。但系统还存在不足,如仅根据已知的逻辑规则对住院病案首页数据进行校验,校验内容较为简单,对住院病案首页潜在的、复杂的校验规则无法进行有效校验。后续将利用数据挖掘方法设计住院病案首页质控规则发现算法,探索住院病案首页中蕴含的潜在质量控制规则,完善住院病案首页质量控制规则,改善质量控制效果。