卢道兵, 卜平,姜雪峰
1. 南京医科大学附属淮安第一医院 a. 信息中心;b. 感管处,江苏 淮安 223300;2. 卫宁健康科技集团股份有限公司,上海 200072
传染病上报是为国家提供传染病发生、发展信息的重要渠道,是政府准确掌握疫情动态、及时正确地进行决策并采取预防控制措施的重要依据[1]。然而,传统的传染病二次转报国家平台的手工方式因存在漏报、误报、重报和延时长等问题,已经远远不能适应信息化快速发展的今天[2]。尽管叶俊等[3]及颜玉炳等[4]提出将内网报告卡内容导出生成可扩展标记语言(Extensible Markup Language,XML)格式文件后,再通过外网将XML文件内容映射到国家疾控平台(CDC)网页的控件上。虽然避免了二次手工上报所引起的错误。但是仍然存在上报延时和漏报或重报的现象。为彻底解决传染病上报国家平台的准确性和实时性问题,本文提出通过接口功能,将内网审核后的传染病报卡内容直报至省传染病信息平台(简称“省平台”),省平台与国家平台已经联网对接,进而转发至国家平台。
2017年江苏省疾病预防控制中心制定《江苏省法定传染病数据自动报告工作规范(2016年版)》(苏疾控〔2016〕14号)[5],要求推进全省区域健康信息平台和医疗机构HIS系统优化升级和改造工作,指导县(市、区)级区域健康信息平台和二、三级医院HIS对接省级传染病信息平台数据工作,实现法定传染病数据自动报告。
本文依据省厅相关文件规定及接口规范,新增临床信息系统(Clinical Information System,CIS)传染病内外网网络直报接口功能,使医院端的传染病报告卡内容直接上传省平台成为现实。
省内各级医疗机构或公卫部门将待上传的数据封装成XML格式并加密后上传至省平台,省平台对提交的信息验证其合法性,成功后进行解密并校验数据的逻辑性。如图1所示。
图1 接口流程图
在数据交换接口中,系统针对数据交换提供统一操作函数ReportCard。根据语言规范,此操作表达方式如下:byte[] ReportCard(String userName, String passWord, String certCode, byte[] data),主要有4个入参,1个出参,各参数说明如表1所示。
表1 RreportCard函数参数
通过适配器,客户端连接到前置机开放的Web Service,在同步传输技术中使用下面的服务调用。如图2所示。
图2 Web Service服务调用流程
SOAP[6‐7](Simple Object Access Protocol)简单对象访问协议,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在Web上交换结构化的信息,并提供了标准的RPC方法来调用Web Service。WSDL[8](Web Services Description Language) 是一种使用 XML 编写的文档,用于描述Web Service及其函数、参数和返回值,在客户端生成调用服务器接口的方法。UDDI[9](Universal Description Discovery and Integration)是一种用于描述、发现、集成Web Service协议栈的技术,包括:UDDI数据模型、UDDI API和UDDI注册服务三个方面。WebService[10‐14]是一个平台独立的、低耦合的、自包含的、基于可编程的Web的应用程序。
签名采用MD5[15‐16]的方式。生成待签名字符串,请求参数格式如下:
对XML串里的每一个值从a到z的顺序排序,若遇到相同首字母,则看第二个字母,以此类推。排序完成之后,再把所有数组值以“&”字符连接起来,并将KEY值加在最后面一起加签。排序完成之后,格式为:
FUN_CODE=1001&REQ_ENCRYPTED=ADqweJsq34A SODU912IJ312LJ123J1291281829FB12890102s90ad0180D1 231S&USER_ID=000000&KEY=XXX
上述的串就是待签名的字符串,加签完成后放到SIGN字段中。
对称加密,使用的算法为AES。接口请求包采用整体加密方式,即AES加密和解密。此外,采用PKCS5Padding作为补码,key为16位,并对加密的内容使用BASE64做转码功能,同时能起到2次加密的作用。具体格式如下:
将业务参数REQ节点的内容采用AES加密方式进行加密,和“带加密的字符串”REQ_ENCRYPTED相对应。
传染病报告信息登记分门诊和住院两部分,以住院为例。若临床医生对某个患者输入传染病相关诊断并提交后,根据CIS住院医生站中设定的传染病报卡规则,系统将自动弹出传染病上报信息登记界面,如图3所示。报卡界面上患者基本信息由系统自动填充,无需医生手动录入。其余选项尤其是必填的项目,需要报告医师逐一填写,正确登记完成后方可提交成功;其次,为防止重报,系统对患者上报过的传染病信息增加记忆功能,无论该患者在门诊或住院上报过某个病种的传染病报卡,在住院或门诊对同一患者已上报过的相同病种传染病,系统仅弹框提示“该患者已于*年*月*日*医师上报过”,不再强制弹卡要求上报。
图3 传染病报告卡填报界面
感管处对临床医师提交后的传染病报告卡内容进行审核,如图4所示。审核人员分别打开每份报告卡内容,逐一进行审核。若为艾滋病或梅毒等传染病不仅要审核主卡,还要审核副卡内容。根据审核结果,分为审核通过、审核未通过和作废三个按钮功能。对于审核未通过或作废的报告卡,审核人员通常会给出审核意见并电话告知报卡医生审核不通过或作废的原因,以便下次上报时增强报卡正确率。经审核通过的合格报告卡,审核人员只需点击审核界面上的“上报”按钮,即可将该报告卡内容通过接口,直接上报给省平台服务器,无需再到外网进行手工转报。
图4 传染病报告卡审核及上报界面
传染病上报差错是指粗心大意,不按规章制度操作或技术水平低而发生差错,对国家疾控平台的数据真实性产生直接或间接影响,但未造成严重不良后果者。传染病上报差错主要有报告卡误报、漏报和重报等。通过随机抽取实施传染病接口上报归档报告卡1000例。结果显示,传染病接口上报,无一例上报差错。
传染病上报时间主要体现在报告卡审核以及是否要进行二次转录上报等环节。传染病手工上报模式不仅要对内网的报告卡内容进行审核,还要通过VPN连接到CDC平台上再次对报告卡进行录入、审核和上报等过程。而传染病接口上报仅需在内网对报告卡进行审核和上报。两组比较,差异有统计学意义(P<0.05),比较结果如表2所示。
表2 传染病上报平均时间(s)
传染病接口系统显著提升了传染病上报的准确性。传统的手工上报为内网审核成功后,再打开外网CDC网站,对审核通过的报卡内容打印出来再到CDC网站上依次重新录入上报一遍。这过程增加了误报的可能,而且潜藏漏报和重报的风险存在。但是,传染病接口系统上线以来,感管处审核人员只需在内网中对报告卡内容进行仔细审核,审核通过后仅需点击审核界面上的上报按钮即可直报省平台,无需在外网上手工再次转录上报一次。这样杜绝了因二次转报而引起的误报、漏报和重报的问题。因此,传染病接口系统显著提升了传染病上报的准确性。
传染病接口系统大大提高了传染病上报的实时性。因传染病本身的特性要求病例监测的敏感性和疫情报告的及时性,做到“早发现、早报告、早隔离、早治疗”。而传统的手工上报方式由于存在二次上报,这样将无形中增加了每份报告上报的延时性,不符合传染病报告的要求。相反,传染病接口上报模式只需在内网程序的报告卡审核界面上即可完成上报,无需再到外网CDC上再次手动上报一次。这样将大大提高传染病上报的实时性。
传染病接口系统减轻了审核人员工作强度,并提升了工作效率。据统计,传统手工上报一份传染病报告需要额外增加打开互联网、VPN登录CDC网站、手动录入报告、审核及上报等环节,这过程大概需要5~6 min/例,而接口上报可以省略此步骤操作。按照2019年我院报告的法定传染病病例数量1130例计算,可节省约103.6 h(约13 d)的手工录入时间。所以,传染病接口上报在减轻了审核人员工作强度的同时,也提升了工作效率。
江苏省法定传染病自动上报系统接口模式上线以来,因报告卡在内网审核后,通过审核界面的“上报”按钮可以将此报告卡内容直报省平台,再由省自动转发至国家疾控中心。所有这些操作均通过接口自动转发传送,中间过程无需人为干预。这样不仅解决了传染病上报的准确性。同时,也大大提高了传染病上报的实时性,并显著提升审核人员的工作效率。因此,传染病报告接口系统的上线,能够准确、实时地上报传染病疫情,为国家及时制定防控措施和精准施策方案提供科学依据。
然而,江苏省法定传染病上报系统接口的应用因上线时间短,经验不足,在运行中也曾暴露出一些问题,如连接省平台的各地专线带宽受限,偶尔出现数据上传受阻。需要提高各地连接到省平台的专线带宽,同时要加大路由转发功能。