人口健康信息平台数据接口的设计与实现
2018-08-29户现标
户现标
摘 要 人口健康信息平台是充分依托“互联网+”的优势资源,把就诊者在各医疗机构的信息集成、汇总,设置成统一的健康信息互通共享的管理平台,有效避免了过度医疗、重复医疗,切实落实分级诊疗的有效措施,使居民健康管理水平跨上一个大台阶。该平台的核心是实现各医疗机构数据的互联互通,为了实现把医院内部数据及时、准确、高效地上传到人口健康信息互联互通平台,需要把医院内部各信息系统的数据汇集、整理、对照后统一上传至平台数据中心。文章根据省平台数据上传的整体要求,设计了接口中间库的数据结构,采用SQL Server和VS2010等开发工具,设计开发出数据抽取、处理、上传的应用程序,实现了及时、完整、高效的数据传输功能。经反复测试,接口程序已实现预期功能,并正式投入运行。
关键词 信息平台;数据接口;数据结构
中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2018)217-0151-02
1 人口健康信息平台介绍
人口健康信息系统涵盖公共卫生、计划生育、医疗服务、医疗保障、药品管理、综合管理等多个业务领域[ 1 ]。国家层面的人口健康信息化建设逐渐进入系统及数据的全面整合阶段,以区域为单位的人口健康信息共享平台成为各地人口健康信息化的建设重点,各地对卫生计生数据的存储、分析、利用技术等进行了一系列探索与实践,取得了一定成效[1-2],济宁市的区域信息平台正是在这种背景下开展和实施的。由软件企业进行区域平台的顶层设计与实现,各医疗机构根据区域平台的整体要求,实现就诊者信息自动上传,达到信息互联互通的目的[3]。濟宁市第一人民医院结合自身特点自主研发了信息平台接口程序,将院内医院信息管理系统(His)、电子病历系统(EMR)、临床检验系统(LIS)、医学影像系统(PACS)的数据,每天自动上传到区域平台。
2 信息平台接口设计
2.1 接口中间库的搭建
接口平台需要的数据涵盖HIS、EMR、LIS和PACS4大系统,各系统的所用的数据库类型不同,HIS系统采用CACHE数据库,EMR和LIS系统采用ORACLE数据库,PACS系统采用SQL Server数据库,并且各系统的数据结构与平台接口也千差万别,必须把各系统的数据集成后,统一处理,才能有效进行后续的数据上传工作。本文利用SQL Server2008 R2为数据管理平台,搭建了接口中间库,使各系统数据形成一个统一的对外平台。该中间库包括8张基本表,定时同步数据;8张数据表,定时抓取数据;1张工作记录表,记录接口工作情况。还设计了10个视图用来进行数据规范化处理。
2.2 基础数据的规范化处理
信息平台对上传数据有规范性要求,院内数据必须经过规范化处理后才能成为信息平台的有效数据,本文通过SQL Server搭建的中间库,利用视图把各系统的数据进行预处理,使院内数据与信息平台的规范化要求一致,同时还要保证各系统之间数据的关联性,即保证就诊者通过就诊者的基础信息关联病历信息、检验信息、检查信息等。
对于基础数据的对照,根据本院具体情况,将科室、检验项目、检查项目、诊断、手术等数据做成院内系统到平台系统的对照关系表格,上传时根据对照关系表把医院内部数据转换成平台规则数据,确保上传的数据符合信息平台的规范化要求。
对于内部系统的关联性处理,这一步对于信息平台非常重要,因为只有将医院内部不同系统间的数据关联起来,才能在平台形成每个就诊者的综合信息平台,才有进一步研究和应用的价值和意义。医院内部不同系统间由于软件架构不同,一些系统对接时考虑的不够全面,导致不同系统间储存的病人标识字段内容不同,信息平台根据该字段关联时,是无法获取完整的病人信息的[4]。
为此,以HIS系统为中心,在数据上传的中间库设计了就诊者基础信息表,存储院内系统就诊者综合信息,各系统都能通过该表格中的信息关联在一起,并在数据上传时提取统一的病人标识字段上传到信息平台,有效解决不同系统的数据关联问题。
3 信息平台接口实现
3.1 相关系统数据的抽取
信息平台对于数据结构和数据类型有固定要求,与医院内部数据有差别,上传数据必须把医院内部数据转换成信息平台要求的结构和类型[5]。不同系统有各自的数据结构,定义的数据字典各不相同,因而数据类型的转换是系统对接过程中最常见的问题,该系统对接过程中也存在大量的数据类型转换。
比如在PACS和LIS系统中日期时间类型的数据一般定义为日期类型的数据,信息平台规定所有的日期时间类型数据都定义为字符串类型,这样就必须将这些系统中所有的日期时间型数据转换成字符串型,再上传。还有其他多种涉及数据类型转换的,这里不再赘述。
数据类型转换的工作一般在数据库端完成,即创建视图时完成类型转换,这样便于整个接口程序的维护。
根据信息平台的要求,院内数据必须及时上传,由于要提取和上传的数据量比较大,为了不影响院内系统的正常业务,需要在各系统相对空闲的时间段完成。用VS2010设计了一个应用程序,每天凌晨3点开始数据提取和上传工作。
3.2 大量数据批量上传的实现
在数据上传过程中,如果用传统的语句逐条插入(INSERT INTO...),严重影响上传效率,仅LIS系统一天就要上传9万条记录,再加上PACS系统,EMR系统等,要上传的数据量巨大,必须采用批量上传方式。
为此,以VS2010为开发平台,结合MySql的数据库应用插件,设计并实现了信息平台的批量上传程序。
首先,下载正确版本的MySql插件,并在VS2010中添加MySql类库的引用,如下:
using MySql.Data;
using MySql.Data.MySqlClient;
本文下载了64位的MySql.Data.dll、MySql. Data.Entity.dll和MySql.Web.dll3个库文件,版本号均为6.4.4.0与市平台的版本号一致。
其次,编写批量上传的功能函数:
BulkInMySql(DataTable table,string sDesName,string[] sCols)
其中,第一个参数为源数据集,源数据集从中间库获取,具体是从中间库的视图中获取,这些视图中的数据已经处理成平台要求的格式,可以直接上传到平台前置机,数据的处理由中间库所在服务器完成,接口程序只负责提取上传,保证了接口设计层次清晰。
第二个参数为目标表名,即要批量插入信息平台的表名。
第三个参数为要插入的目标表的数据列名集合,由于平台表中有些字段是自动生成的,不能填寫任何数值,必须把源数据集字段和目标表字段做一一对应。
最后,实现批量上传功能。具体方法是先将源数据集按UTF-8字符格式写入本地临时CSV文件,然后创建MySqlConnection,MySqlTransaction,MySqlBulkLoader对象,并设置好各对象的参数,再调用MySqlBulkLoader的Load方法和MySqlTransaction的Commit方法,完成数据上传,最后删除产生的临时文件。
4 应用效果
通过实验发现,接口每天从院内系统提取10万余条记录,上传到市平台前置机,用传统的Insert Into方法,完成该操作要做1个小时以上,用本文描述的方法在5分钟内可将10万余条数据全部上传完成,极大地提高了数据传输效率,降低了对院内其他信息系统的影响,保证了对接工作的顺利进行。
5 结论
人口健康信息平台建设是一个不断改进的过程,各医疗机构要加强标准化意识,实施规范化管理,将就诊者信息及时、高效、准确地传递到信息平台,消除信息孤岛,实现数据共享、流程通畅、业务协作,为最终达到保障群众健康、降低群众医药费用等支出、提升群众家庭幸福感的目标提供了有效的技术支撑[6]。本接口的开发,为济宁市第一人民医院数据中心平台建设提供了技术支撑,也为其他医疗机构与信息平台的对接工作提供参考。
参考文献
[1]许培海.我国区域卫生信息平台建设现状及趋势研究[J].中国数字医学,2016,11(5):23-26.
[2]李伟,江其生,王爱娥,等.“互联网+”背景下的区域人口健康信息平台解决方案[J].医疗卫生装备,2017,38(3):55-60.
[3]张国明.区域人口健康信息平台数据质量控制[J].医学信息学杂志,2017,38(4):67-70.
[4]朱雪莲,赖晓军.基于动态库的社会医疗保险数据实时上传接口设计与探讨[J].计算机与现代化,2012(9):203-208.
[5]夏艳波,王权.信息孤岛解决之道——数据港口架构理论初探[J].中国管理信息化,2015,18(1):70-72.
[6]许丹,雷永贵,钟卫军,等.湖南省级人口健康信息平台建设与应用[J].中国卫生信息管理杂志,2016,13(5):510-514.