• HIS-门急诊模块之系统集成工作摘要


    本文由Markdown语法编辑器编辑完成。

    1.前言

      最近半个月的工作主要都是围绕“HIS2.0-门急诊模块”与医院门诊很多的第三方系统(如LIS, PACS/RIS, ICU等)进行系统集成。由于"HIS2.0-门急诊模块"是基于B/S架构(AngularJS / SpringMVC+Spring + Hibernate)开发,因此在与第三方系统进行系统集成时,集成方案和接口采用了当下非常流行的REST接口。(之前的HIS1.0是C/S(MFC)架构的,采用的是视图的形式来进行系统集成)

      关于REST的接口在之前的文章中已经有过大致的介绍,可以查看。

      以前当我听说“系统集成”这个名词时,往往不知所云,不知道到底什么算是“集成”。因此在刚接到这个工作安排的时候,心里面还是比较忐忑的。之后在网络上也查询了一些关于系统集成的文章,结合自己这半个多月的实战经验,来介绍一下HIS系统集成的一般工作流程。

      信息集成:亦即数据集成,通过解决数据分布性和异构性问题,使各系统中的信息一致,实现全系统信息共享,进而可保障相关应用软件间的交互和有序工作。
      系统集成:是指将不同的业务系统,根据应用需要,有机地组合成一体化、可互操作、功能更加强大的新系统的过程和方法。系统集成包括设备系统集成和应用系统集成。这里指的是应用软件系统集成。(来自链接1)

      技术工作往往是这样,在没有接触时,容易被那些名词给吓唬住。但是,当自己真正去实现和实践它,那么你才算是真正地认清楚它到底是什么东西,以及与你过去所学的知识的关联性。

      与HIS门急诊模块进行系统集成的系统主要可以分为两个大类:通过集成平台集成和点对点集成。根据这两个分类,需要系统集成的系统大致如下:

    ||||
    |:----|:----|
    |通过集成平台进行集成|点对点进行集成|
    |LIS(实验室信息管理系统);
    微生物实验室信息管理;
    病理系统;
    PACS/RIS(放射科信息管理系统);
    眼科PACS;
    核医学;
    检查预约系统;
    心电系统;
    超声系统;
    内窥镜系统;
    手术麻醉系统ICU;
    门诊移动输液系统;
    门诊血透综合管理系统;
    处方点评系统;
    合理用药系统;
    ......|门诊医保结算(与医保结算中心);
    银行POS机;
    身份证刷卡设备;
    自动摆药机;
    114预约挂号系统;
    门诊唱收唱付设备;
    自助挂号机;
    ......|

    2. 关于系统集成的一些问题解答

    问题1: 为什么系统集成要分为两类,这两类的区别是什么?
    回答:
      从以上的分类中可以看出,HIS在第三方系统进行系统集成时,主要分为两类,而这两类的区别,主要是HIS在与第三方系统进行集成时,是否需要经过中介(集成平台)的过度来完成。

      从左右两列中大致也可以看出,当HIS与第三方系统的业务交互比较频繁和复杂时,需要通过集成平台的参与;而如果与第三方系统的业务比较实时和简洁时,则不需要通过集成平台的参与。

      比如HIS与LIS(实验室信息管理系统)之间的业务比较复杂,HIS需要将医生给患者开的检验申请单附带采集的患者病理标本的条形码发送给LIS系统,LIS系统在收到标本后,要回复是否接收标本的消息;LIS接收标本后开始对标本进行检验,检验完成后,需要针对标本出具相应的检验报告,而且报告还必须经过审核,审核通过后再返回给HIS系统供医生查看,以帮助患者诊断病情。这个过程会涉及到HIS与LIS系统之间多次的信息交互。

      相比于HIS与LIS之间的信息交互,HIS与医保结算中心的交互则相对比较简单,HIS将挂号信息或医嘱处方信息传给结算中心,结算中心结算后再将费用信息回传给HIS,HIS根据提示向患者收取相应的费用即可,交易则算完成。

    问题2: 集成平台到底是什么平台,它的作用是什么?
      集成平台像是一个数据中转站,也像是一个中介。它连接起了HIS系统与众多的第三方系统,它负责将HIS系统的“人员字典”,“部门科室字典”,“手术排班字典”,“医嘱表”,“检查/检验申请单”等等信息通过平台转发给相应的第三方系统;然后它再将第三方系统反馈回来的,诸如“标本接受/拒绝状态”,“检查/检验状态”,“检查报告/检验报告URL”,“手术安排”等信息通过平台传给HIS系统。

      那么大家会有疑问,HIS完全可以直接去分别和这些第三方系统进行逐个集成,但是为什么非要再搭建一个平台,增加信息传输的层级呢?这个是不是多此一举呢?

      这里我采用类比的方式进行说明,希望通过这个类比,大家可以明白这个集成平台存在的必要性和重要性。

      比如我用电商平台来举例。电商需要有卖家和消费者的参与,而集成平台则需要HIS与第三方系统的参与。这里,每一位消费者相当于是HIS系统,不同的卖家相当于不同的第三方系统。由于这些卖家位于全国各地,消费者在购物时需要跟不同的卖家进行咨询,难道每一个卖家都需要开发一套聊天工具或者网站来展示他们店里的商品和价格,然后用自己开发的聊天工具回答消费者的咨询吗?

      显然,这个是不可能的。因此,电商作为一个平台就充当起了沟通消费者和卖家的角色。电商平台负责搭建一个平台,卖家将他们的店铺入驻平台,来展示自己的商品,平台负责开发一套聊天工具,来供消费者和卖家进行相关的沟通和咨询,极大地提高了效率,使消费者和卖家都有非常好的用户体验。

      但是,大家也可以看到,入驻平台后的商家一般都需要遵守平台的规则,因而也缺乏了一些个性,看起来都是千篇一律的感觉。

    问题3:集成平台主要提供一些什么接口?

    问题4:系统集成的工作流程如何开展?

    备注:第三方系统数据处理的一个规则
    2017.09.13,今天遇到一个HIS门急诊与LIS系统集成的接口问题。
      HIS在开完检验申请单,并且采集了患者的标本后,会调用接口把含有患者标本条码的检验申请单通过集成平台发送给LIS系统。但是,如果HIS发现这个已经发送出去的标本是无效的(比如抽血标本,结果发现病人是已经吃过早餐后的血液标本,那么血液标本就应该作废),这时HIS希望能够再增加一个接口,是实现可以删除原来的标本号,但是依然保留检验申请单的接口。

      经过与集成平台和LIS工程师的交流,他们说第三方系统对于数据处理的原则是:“宁可多存储一条无用的数据,也不能轻易删除原来的数据。” 因为,如果开通这个接口的话,万一以后出现误操作而调用删除接口把正确的数据给删除的话,就会产生不必要的麻烦。因此,防止误操作,他们建议可以再次调用一次发送检验申请单的接口,只是第二次调用的时候,把标本的条码置为空,那么LIS在接到已经存在的检验申请单后便会覆盖(更新)原来的记录,这样原来检验申请单的条码就为空,也相当于是删除了原来的标本记录。

    2017.09.14: 关于与PACS/RIS, 心电/超声/内窥镜等,和LIS/病理系统和微生物实验室管理系统的集成:
    当HIS与PACS等系统相集成时,PACS在接收到HIS的患者检查申请单后,开始给病人做CT/MRI等扫描,扫描完成后,会形成DICOM格式的医学影像存储在医院的PACS系统中,然后放射科医生根据患者的医学影像会出具一份针对性的报告。最后PACS系统会把影像的URL以及报告(用base64加密)后一起推送给HIS。HIS更新该患者的报告状态,如果报告状态显示为“浏览”,则门诊医生通过点击浏览按钮,则可以通过URL链接到医院内网的PACS系统,观看这个病人的影像资料。如果他想再详细地看放射科医生出具的报告,则可以调用相应的查询接口,HIS会将base64串解码后生成一个XML文件,供医生调阅和参考。
    这里写图片描述

    参考链接:

    1. HIS系统WebService接口设计与实现
      https://wenku.baidu.com/view/0c866b639b6648d7c1c74658.html
  • 相关阅读:
    Retrofit源码分析
    Android异步消息机制
    崩溃bug日志总结3
    单例模式
    总结(第一段)
    mysql日期类型比较
    mysql记录(一)
    JSONObject/JSONArray的区别
    java 正则表达式(Pattern ,Matcher)的使用
    javaweb开发中的权限管理的方法
  • 原文地址:https://www.cnblogs.com/stephen2014/p/7525942.html
Copyright © 2020-2023  润新知