多业务场景信息收发平台构建
2020-12-14王耀炜王培法郭泉成
王耀炜,冯 彬,王培法,王 煜,郭泉成
(潍坊市人民医院信息网络管理办公室,潍坊 261041)
医院消息系统作为互联网业务与HIS(医院信息系统)的重要纽带,是各大医院提高数字化导医水平的重要一环[1-3]。但信息化助力医疗服务是循序渐进的过程,各医院的信息化建设都是随着业务的发展需要、资金的陆续投入、新技术的发展更迭在不断完善。多年来消息系统一般采用分期投入的办法建设应用,第一阶段的消息系统是在HIS中实现微信支付宝文本消息推送,第二阶段是信息在微信应用的管理微信模板实现消息推送,第三阶段是对多种接口的整合应用。当前探索发展的精准导医系统在原有基础上进一步增加在线地图引导功能,并提出对短信、微信、支付宝、APP推送进行整合功能的需求。由此引入基于多业务场景信息收发平台的构想,通过消息统一管理、消息队列支撑、多推送方案支持、离线消息推送、统计分析查询等技术手段实现推送范围可定制管理,基本包括医院对外消息推送的所有方面。作为医院开放平台的重要组成部分,解决医院推送业务复杂、业务场景消息需求多样、多套消息系统重复开发严重的问题。
1 消息平台现状
基于微信、支付宝、院内APP、互联网APP和短信平台等,多业务场景、多推送形式的数据接口数量在不断增长,这为数字化导医应用带来极大的便利[4-5]。但随着HIS(医院管理信息平台)推送个性化和多渠道需求不断增加及各类APP、应用系统业务升级需求不断变化,各种消息收发平台相关接口改造复杂度越来越高。尤其是在近年“互联网+医疗健康”大力发展的背景下,发展精准导医以解决门诊看病“三长一短”现象的呼声越来越高,HIS中集成的各类消息平台却各自为战、互为孤岛,导致新功能开发管理成本与实际运行效能不匹配的矛盾日渐突出,因此构建一个准确高效运行的信息平台,为导医系统顺利实施提供有力的基础支撑,成为医院信息工作者亟待解决的重要课题。
2 统一收发平台的建设目标
医院消息平台是从原有几个消息系统中剥离出核心模块,将HIS业务端与消息服务端应用接口进行标准化处理,实现对推送范围可扩展支持,具备基础参数管理、业务配置管理、模板维护管理、图文菜单管理、APP支持管理、消息统一管理等功能,针对医院对外消息推送的所有渠道,形成一个系统化的收发管理平台。
2.1 应用性目标信息收发平台的应用实现对两个端口的整合。第一个端口是HIS应用端,能够对医院预约、提醒、HIS、检验、超声等业务系统进行统一消息收发与路径计算管理,对应用的增减、具体参数的设定实现可配置。第二个端口是基于实际业务需求构建一套通用消息投递方案,能够做到对于不同消息业务应用屏蔽技术差异,确保各类业务能够快速对接相应消息服务的目标;对于消息通道实现统一的端到端、端到服务器、服务器到端管理,对消息到达可控等关键指标实现监控与统计。
2.2 技术性目标首先是构建统一消息平台,搭建整合多业务场景医院消息平台,对核心功能进行整合升级,把原有几期项目的消息模块从各个应用中摘除出来,实现统一推送的去工具化与可定制性。其次是确保升级安全,在新平台正式发布前,各HIS业务对应的消息系统仍然保持运行,新平台的开发、测试、部署,应该确保不对现有业务系统运行形成干扰。最后充分考虑系统兼容性,医院信息应用庞大而复杂,应用端第三方软硬件平台与信息平台端交互频繁,应引入标准化方法与技术(如Web Service技术)搭建低耦合、可编程的统一应用接口。
2.3 功能性目标平台实现的可衡量指标包括以下几个方面:首先是可集成推送。通过支持多种软件开发工具包,统一调用协议、推送渠道策略化配置、对用户屏蔽系统复杂性等技术手段实现快速集成,确保信息平台能够针对不同应用场景实现快速响应与灵活配置。其次是个性化定制。医院各类应用系统的推送数据灵活多变,例如为微信支付宝提供文本阅读、图文浏览、模板推送、链接推送等方式,为智能导航系统提供提示消息服务、原生页面跳转消息、HTML5页面消息推送等推送方式,针对不同推送需求能够实现灵活切换。最后是确保消息可达。消息的可达性包括两个方面,其一是由HIS、预约系统、各类医技系统产生的推送数据准确到达信息平台;其二是消息平台能够将推送数据成功送达相应的推送服务平台。为对推送数据可达性进行追踪处理,平台引入用户查询离线消息功能。
3 系统设计及功能实现
3.1 部署环境四核3.8GHz以上CPU,16G以上内存,1T以上硬盘,操作系统选用Windows Server 2008。
3.2 开发环境和工具消息平台采用MVC和Pub-Sub等设计模式,开发语言为PHP/nodejs,开发工具为PHPstorm/vscode,采用Symfony框架,应用xml/json/amqp/oauth2.0/https/restful/websocket等业界主流及开放的技术标准与安全认证框架,数据库采用Redis(nosql)/mySQL(SQL)。
3.3 功能模块设计与实现统一消息平台主要由策略中心、推送通道、移动端业务集成、消息控制四个关键模块构成。策略中心通过支持手动配置或者自动调整两种灵活的配置策略,确保不同业务场景下有相应的可选渠道;推送通道通过整合当前的主流推送方式建立统一的推送通道,根据通道的不同选择相应的参数值,实现消息到端的送达;移动端业务集成通过集成丰富的SDK(软件开发工具包),确保信息平台能够覆盖医院患者全业务场景;消息控制通过构建基于TCP协议的消息系统及消息处理服务器,确保离线患者能够接收到平台推送的消息,提高消息的可达性。平台完成后常用参数配置如图1所示。
图1 基本配置、业务配置功能
3.3.1 策略中心模块 策略中心主要包括开发策略配置、策略解析、通道选择与调度三个核心模块。策略配置模块实现人为配置消息推送的策略,便于根据业务优先级以及消息可达率的需要,指定相应的场景下消息推送策略;策略解析模块可根据用户所在业务场景选择消息推送渠道,便于根据不同的终端类型进行渠道选择,同时也支持推送端参数指定来选择推送渠道;通道选择与调度是通过定时器、缓存探测、消息反馈机制对消息推送队列实施调整。
3.3.2 推送通道模块 使用面向消息的中间件支撑推送服务,具有高可用、高扩展、高灵活性的特点,能够提升系统的稳定性,做到流量的削峰填谷,确保高并发状态下推送平台的吞吐能力。针对短信、APP、微信、支付宝等不同的推送渠道建立独立的消息队列,保证多渠道推送时各队列消息互不干扰,通过配置各队列的消费者数据控制各渠道的推送速率。因网络不稳定等复杂因素导致的发送失败的消息,建立专用的私信队列,此队列中的消息根据已配置策略进行二次发送,通过设置专有消费者数据进行控制,保证消息到达。针对不需要响应分析的消息可以采用非确认模式推送,从而实现消息队列快速向后作业,减小网络高峰期的服务压力。
3.3.3 移动端业务集成模块 通过实现模板、图文、APP通信参数自定义,进一步配置名称、代码、消息类型、所属类组、所属机构等基本参数,确保信息平台能够覆盖包括微信、支付宝、图像导航、APP提示消息、原生页面跳转消息、HTML5页面消息、手机短信等全部业务场景,进而结合策略中心配置和关联参数实现平台的横向扩展。
3.3.4 实施消息控制模块 对移动端 APP 和微信、支付宝等可扩展开发的应用实施统一消息控制,通过发送回调机制获取消息状态,对消息服务器队列设置已读、未读、未送达等状态,根据状态值确定下一步队列操作,从而形成消息的闭环控制。建立查询状态功能后,用户能够获取所有离线消息,管理已读消息。
4 应用效果
为配合医院精准导医系统的建设,搭建基于多业务场景信息收发平台。此次信息平台的整合真正实现一次投入、全面管理的效果,开发效率更快,系统质量更高。本信息平台作为本院精准导医系统的重要支撑,配合院内地图导航系统的实施,为提升信息化助力医疗服务水平,提高门诊就诊效率起到积极作用。该系统自2017年下半年起各个子系统陆续上线测试使用,从近三年的环比数据来看,各月份的门诊有效就诊量均成上升态势,如图2所示。可见本信息平台的实施能够为医院信息系统精细化应用提供有益的借鉴。
图2 医院近三年有效就诊环比数据
5 结 论
消息平台作为互联网业务与医院HIS的重要纽带,承载着海量的信息。基于多业务场景消息收发技术的统一消息平台建设技术上具有较强的可参考可复用性[6];快速集成能力及其稳定性便于平台的整体升级改造,能够为医院带来价值,丰富的可定制推送机制能够为患者带来良好的就医体验,提升满意度。但是通过平台升级也充分暴露出一期、二期消息平台建设存在着重复投入多,代码质量差,维护没有延续性等诸多问题,如果在二期平台建设时就充分考虑到未来多业务场景整合的需求,那么三期平台的建设将仅仅是一个适应性维护的过程,这也为后续医疗系统的开发提供宝贵的经验。