点击上方“中国数字医学”可以订阅哦!

导读:改变传统HIS的两层或三层架构设计模式,采用分布式服务架构设计方式降低系统模块之间的耦合,能够按业务模块实现集群化部署,同时保证产品的高可用性。采用阿里巴巴开源服务治理框架Dubbo,结合服务注册中心Zookeeper、负载均衡模块Nginx、院内集成平台软件Ensemble等实现院内一体化HIS&EMR的分布式服务架构搭建。采用分布式服务架构之后,系统模块之间的耦合度降低,业务扩展、系统升级或版本变更等更加方便快捷,集群化部署解决了单点故障和高并发问题。采用互联网架构实现HIS&EMR产品很好的弥补了传统HIS耦合度高,扩展困难等诸多问题。

1 引言目前大部分医院HIS系统的架构仍为传统的两层或三层架构模型。随着医疗行业应用的不断扩展,对HIS&EMR产品的稳定性、可靠性和可扩展性提出了更高的要求。如何实现HIS系统的模块化管理与集群化部署一直是一个亟待解决的问题。基于互联网架构的HIS&EMR产品采用分布式服务架构设计方式实现了系统模块的分布式管理,通过集群化部署方式解决了单点故障、负载均衡等问题。模块之间通过服务方式调用,减少了模块之间的耦合。2  HIS&EMR架构设计2.1技术选型 结合目前互联网产品的现状,采用主流的开源框架来搭建整套系统。一体化HIS&EMR产品的整体架构包括阿里巴巴开源的分布式服务治理框架Dubbo,服务注册中Zookeeper、负载均衡模块F5与Nginx、开源的消息中间件HornetQ、文件系统服务NFS、缓存服务器Redis,应用服务器Jboss,服务总线Ensemble等。架构模型见图1。

图1  系统整体的架构模型2.2  架构设计2.2.1  单点登录(SSO)单点登录是互联网产品的必备功能。针对单点登录功能[4],设计了医院单点登录接口规范和统一的登录Portal,所有接入的HIS&EMR模块及第三方系统都必须满足该集成规范。当用户访问Portal的时候,根据用户提供的凭证信息进行身份校验,如果通过校验,将为用户生成票据(Ticket),用户通过App Portal访问业务系统时,业务系统需检查Ticket的合法性,如果通过校验,用户就可以不用再次登录而直接访问业务系统。2.2.2  分布式集群服务设计一体化HIS&EMR产品采用集群部署方式。传统的两层架构或三层架构架构模式是前端直接连接到数据库进行操作,而基于互联网架构的HIS&EMR产品连接的是Dubbo RPC服务。一体化HIS&EMR目前分为BMS(收费管理)、ERS(检查预约)、PCA(患者账户管理)、PDS(供药管理)、ISMS(票据管理)、MIPS(医保)、UPT(对账管理)、BDS(基础字典)8个模块 ,各个模块之间通过Dubbo服务进行数据交互,最终 Dubbo服务再通过TCP方式连接到缓存服务器Redis、HornetQ消息中间件和Oracle数据库进行数据持久化操作。此种设计方式易于模块的扩展与集群化部署,如图2。

图2  分布式集群服务设计目前医院生产环境中,在用的RPC服务3000余个,Jboss应用服务器40余个。用户登录信息、主数据字典及HIS内部的部分业务数据都存放在缓存服务器Redis中。缓存服务器能提供高性能的读写服务,合理使用可以有效降低数据库和其他网络资源请求,从而提高系统性能和吞吐量。生产环境我们进行了主从配置,通过Redis+Keepalived来实现Redis的高可用功能,防止单点故障而造成业务不可用的情况。2.2.3第三方系统集成除了一体化HIS&EMR系统内部的架构设计,在与第三方系统进行数据交互的时候,采用服务总线模式。考虑到集成平台软件的稳定性及可维护性,最终决定采用intersystems 的数据平台软件Ensemble。目前医院已完成了将近30余个第三方厂商,40多个模块的接入,包括检查检验、护理、手术麻醉、重症、静配等,日消息量达到50余万条。同时在IHE、DICOM、HL7等国际标准的基础上制定了覆盖医疗所有业务流程的系统集成规范,为开发基于规范的系统集成平台,为遗留的、当前的以及将来的系统提供了一个统一标准的数据交换和工作流协同的平台。我院目前有如下几种集成方式。(1)消息集成  业务系统之间实时或异步交换信息和相互调用,厂商需根据集成规范实现对HL7(V2.6)、WebService标准消息的对接技术支持。(2)服务集成  服务集成是在消息集成的基础上,采用SOA架构,为用户提供标准、健壮的企业服务总线,提供异构系统的接口协议转换、消息格式转换、服务封装、服务组装等功能,适合于以服务方式(如Web服务)组合不同的应用系统资源。(3)报告中心  我院各种检查、检验报告都进行了集中管理,各医技厂商的报告按照统一格式上传后形成报告中心,业务系统如果要进行报告中心的数据集成,数据格式必须遵循我院的标准,支持国家基本数据集标准。通过服务总线设计模式,结合相关的医疗卫生行业标准、国家标准等,已逐步建立起了规范的医院信息平台。该平台实现了第三方系统接入的解耦,便于今后功能模块的扩展与维护。2.2.4  SRMC——站点可靠性管理中心快速实现基础服务运维自动化是互联网产品的一大特色。为了最大化的提高运营效率,开发了 Site Reliability Manager Center (SRMC)系统。该系统包括应用部署、脚本归档、应用升级管理、跨版本升级、数据分析等诸多功能。实现了从配置管理,到作业执行、任务调度和监控自愈,再通过运维大数据分析辅助运营决策,全方位覆盖业务运营的全周期保障管理。3  小结采用布式服务架构设计方式使得模块功能的更新迭代更加容易,且影响面小;针对部分高并发业务能够通过横向扩展的方式处理。ESB服务总线实现了EMR与第三方业务模块数据交互的解耦,业务系统之间的交互服务更加清晰。SRMC系统提升了运维效率,保障了产品的稳定性。

文章来源:《中国数字医学》杂志2019年第4期,作者及单位:李中鹏 瞿怀荣 赵巍 张顼,连云港市第一人民医院。

传播数字医学领域发展最新动态,关注医疗卫生信息化相关资讯。

长按扫码关注我们

webservice 实现与his系统对接_基于互联网架构的一体化HISamp;EMR设计与实现相关推荐

  1. webservice 实现与his系统对接_[Share] EDI 及其他常见系统对接技术

    近期,有客户提及:你们有没有对接技术相关的介绍,不同系统之间的对接技术,现在企业内部系统比较多,有自主开发的,有外部采购的,所以我们想了解一下对接技术相关的信息. 小知马不停蹄的做了下功课, 整理了相 ...

  2. webservice 实现与his系统对接_一键放牧,一架管 1000 头牛!以色列牧民用大疆无人机实现自主放牛;中国重汽对接北斗卫星导航系统,车辆定位精度达到厘米级别!...

    一键放牧,一架管 1000 头牛!以色列牧民用大疆无人机实现自主放牛 导读:在以色列的一座牧场,没有牧羊犬的嚎吠,也没有牛仔的皮鞭,上千头牛却非常有秩序地朝回家的方向走去.在它们的头顶上,无人机的螺旋 ...

  3. webservice 实现与his系统对接_多平台订单管理系统:传统企业实现无缝对接多渠道资源...

    数商云多平台订单管理系统可帮助企业无缝对接各销售渠道,数据全链路贯通,高效支撑企业百万级订单处理业务,线上线下一盘货,满足大中型企业多组织管理.个性化定制需求. 渠道打通,快速对接100+主流电商平台 ...

  4. 离散数学 逻辑判断系统 代码_基于线性时态逻辑的物联网操作系统安全性设计...

    随着物联网技术的发展,物联网设备安全性问题将是急需解决的核心问题之一.同时,在保障物联网设备安全的所有措施中操作系统层面的安全是重中之重,从本质上讲,可以说物联网操作系统的安全性直接决定了整个物联网设 ...

  5. 基于 RICS-V 架构的单周期处理器设计(含所有格式指令)—— 逻辑部件概述

    文章目录 一.概述 二.原理图 2.1 ALU 2.1.1 ALU 操作控制信号生成部件 2.1.2 ALU 逻辑计算部件 2.1.3 ALU 整体逻辑 2.2 寄存器 2.2.1 Reg 整体逻辑 ...

  6. java城市公交查询系统案例_基于JAVA的城市公共交通查询系统的设计与实现

    科技与信息 2018.12 计算机产品与流通 159 基于 JAVA 的城市公共交通查询系统的设计与实现 □ 苏楠 摘要:公共交通查询系统是城市交通的组成部分之一,也是一个城市实现现代化发展的必然产物 ...

  7. 模糊综合评价法用什么软件实现_基于建管养一体化模式的钢桥面铺装方案综合评价分析...

    文章来源:微信公众号"沥表路面" 钢桥面铺装技术复杂,原材料技术指标要求高,施工控制要求严,交通荷载大.环境温度高.钢桥面支撑体受力复杂.同时,由于受桥梁恒载限制,铺装层厚度有限. ...

  8. java创建医生的对象_基于安卓Android的作物医生App设计开发(MySQL)(含录像)

    基于安卓Android的作物医生App设计开发(MySQL)(含录像)(毕业论文14000字,PHP程序代码,MySQL数据库) 本系统使用软件工程方法进行一系列的分析.设计.实现与测试.使用面向对象 ...

  9. java bs架构书_基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品)

    基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品) 来源:2BYSJ.cn 资料编号:2SJ295500 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5% ...

  10. 多核处理器_基于NXP i.MX8MM多核应用处理器设计的智能加油机

    随着近几年信息技术的不断发展,智能化的概念逐渐渗透到各行各业以及我们的生活里,智能化.自助设备随处可见.在人来人往.车来车往的城市建设中,节省时间.免去排队百脸茫然.一脸懵圈的痛苦过程成为智能设备发展 ...

最新文章

  1. vue-cli脚手架(框架)
  2. 转:什么是即时编译(JIT)!?OpenJDK HotSpot VM剖析
  3. java 圆桌_约瑟夫问题求解释(圆桌问题)Java
  4. Android 数据显示控件(ListView实战演练)
  5. [逆向][Writeup]ISG2015 flagfinder - .NET程序逆向
  6. Tomcat-Server.xml配置图片路径
  7. 卷积神经网络CNN的由来,为什么要用卷积?
  8. java 压缩js css_Java使用YUI Compressor压缩JS/CSS文件
  9. 如何让WebStorm正常显示出中文提示,使得中文能够正常输入,请看这里
  10. 卡方检验python程序_卡方检验及其python实现
  11. 生僻字用计算机的歌词,生僻字歌词翻译成常用汉字 陈柯宇生僻字歌曲翻译谐音版...
  12. ftp上传软件,推荐六款优秀的ftp上传软件
  13. 社交规则:饭后抢着买单到底是客气还是客套?大多并不是真心的
  14. 控制台Tomcat Locahost log输出No Spring WebApplicationIn
  15. es if语法 script_ESLint规则中的JavaScript知识
  16. 【STM32】实战2—用STM32产生PWM信号驱动舵机MG996R(一)
  17. Android 版灵动岛插件上线;iPhone 15或将改名,并改用USB-C接口;​Swift 5.7 发布|极客头条
  18. 更加简便的使用VSS
  19. 无法找到模块“vue-awesome-swiper/dist/ssr”的声明文件
  20. 百度快照被劫持 标题描述被篡改的处理过程

热门文章

  1. 中国数据库告别卡脖子:阿里再刷新全球纪录,代码100%自研
  2. 依云工资查询系统升级至6.4
  3. 学生考勤报表管理小程序
  4. idea登录页面ajax验证,IDEA如何实现登录注册页面 IDEA实现登录注册页面代码示例...
  5. django注册登录
  6. python写出租车计费系统_关于使用Python——写出租车计费系统
  7. web前端入坑第二篇:web前端到底怎么学?干货资料!
  8. Elasticsearch5.2.1集群搭建,动态加入节点,并添加监控诊断插件
  9. linux sendto函数,sendto - Linux C 函数 使用手册
  10. 国内比较有名的maven镜像