专业咨询
致力推进中国医疗卫生信息化

【黄瑜专栏】将GraphQL技术引入医疗行业,将会碰撞出何种火花?

来源:HIT专家网 作者:黄瑜

近些年,各家医院均采用多种措施推进医疗数据的开发和利用,希望从数据服务的层面提升医院运营效能、改进医疗质量、提升患者服务。不过,由于医疗数据是在HIS、LIS、PACS、EMR等医院信息系统中产生的,这些异构系统越建越多,存在数据标准不统一的现象,这就导致了医院的数据共享能力差、数据利用成本高、数据使用效率低,甚至数据无法使用的问题。要解决这些问题,必须进行全面的数据治理。

刘慈欣在《三体》里描述人类地球的未来城市是树状的。在小说中,作者生动描绘了未来人类在树状城市里活动的高效率、快捷和方便,这让我们不禁思考,能不能将医疗异构系统中的数据看成“树状”,然后按看图说话的全视图方式进行方便快捷的访问查询呢?

IT领域确实就有这样的数据挖掘工具,而且正被FaceBook、淘宝、腾讯等拥有恐龙级用户群、每天生产海量数据的公司使用着。这就是GraphQL技术,只是目前在医疗领域还比较少见。它能帮助开发人员进行数据挖掘,节约大量的精力和成本,使得用户可以快速、敏捷地挖掘数据并进行赋能应用。

云南省红河州滇南中心医院信息中心软件开发组经过学习和探索,在微服务数据中台的基础上,创新地应用GraphQL技术进行医疗数据挖掘与治理。具体方式是以图状数据结构进行存储和查询,实现医疗数据的全联接集成,构建医疗数据全联接服务新模式。

本文旨在阐述通过结合医院医疗场景和信息化特征,探索如何应用GraphQL新技术在医疗数据开发中起到关键核心作用,从而高效率、低成本地推进医疗数据服务工作,希望总结一套可复制、可推广的经验,供医院信息部门、医疗信息化系统提供商及医院大数据部门参考。

医院数据服务存在的问题

1.数据接口开发问题

对于医院信息部门而言,提供信息系统数据接口服务是最常见的一项工作。有的医院必须由第三方提供此项服务,接口费非常昂贵,而这些接口提供的数据其实大同小异。对于有一定技术开发能力的医院而言,由信息科自主开发接口也是一件较为困难的事情。因为从技术角度来看,负责数据接口的开发人员往往处于被动一方,需要由接口调用方整理具体需要开发数据的接口文档,再根据需求文档进行定制化开发,往往难以复用。

实际上,这些接口存在很多共性数据。基于集成平台提供数据接口服务的医院,开始使用RESTful等微服务工具来构建统一的数据接口平台,一般是由开发方自行拟定医院业务常用的数据字段,不管对方是否需要,都进行统一提供。

这种方式的弊端是:业务需求增多后,应用通过接口返回的字段会越来越多;而具体到某个应用的前端页面或第三方调用者而言,可能需要的只是其中一小部分数据而已。这种臃肿的接口解决方案会增加额外的网络传输量,导致接口越来越慢,这也是很多医院信息系统“跑不快”的主要原因之一。

2.数据集成及利用问题

要实现医疗数据的利用,首先要解决数据集成的问题,医院需要对两方面数据进行集成:一是针对医疗服务对象(患者)进行诊疗信息收集,将分布在医院各异构系统中的诊疗数据进行统一集成,构建实时联通的临床数据中心,即CDR;二是围绕医疗质量和科研管理进行数据集成,构建对实时性要求不高的运营及科研数据中心,即ODR、RDR等。

其次要基于集成数据,快速、实时、智能、安全、清晰、定向地提供给数据服务对象,也即具体的应用程序或数据接口进行数据使用。目前医院的常规思维是建设集成平台进行数据集成后,完成患者360度视图和BI应用,分别配置给临床医生工作站和部分管理者使用。

在国家卫生健康委互联互通标准化成熟度测评电子病历系统应用水平分级评价等工作的推动下,借助集成平台实现医疗数据的集成和开发服务已成趋势。但这也导致医院医疗数据开发工作普遍存在技术单一、效率不高、建设周期漫长、数据利用率不高、数据解耦度不足、完全依赖厂家等特点,而且还需要投入昂贵的建设费用。

基于GraphQL的医院全联接数据集成服务解决方案

为解决上述问题,可通过应用创新的GraphQL技术,构建医院全联接数据集成服务。

1. GraphQL定义

GraphQL是Facebook开发的数据查询语言,2015年开源,旨在提供微服务RESTful体系的更强大的代替方案,从而能在大数据领域进一步推进微服务数据中台的技术应用,助力大数据的快速开发。

GraphQL是一种API查询语言,类似于数据库中的SQL,或集成平台提供的数据接口服务。相对而言,RESTful API依赖于后端隐式的、被动的数据约定,GraphQL则在获取数据和更新数据时更加主动,所见即所得。

2. GraphQL的特点

一是所见即所得。查询的返回结果就是输入的查询结构的精确映射。

二是减少网络请求次数。如果设计的数据结构是从属的,直接就能在查询语句中指定;即使数据结构是独立的,也可以在查询语句中指定上下文。只需要一次网络请求,就能获得资源和子资源的数据。

三是请求方在请求数据时不仅可以描述需要请求的数据,还可以对各个字段起别名,以适配预设的字段名称。

根据自己所需要的字段返回
根据自己自定义的字段名返回

3. GraphQL的应用方法

GraphQL的自身特点决定了其适用于医院的业务场景和信息化场景。

一是将GraphQL技术应用到医院数据接口服务中,发挥其优势。

发送一条GraphQL查询,可以精准捕获第三方或前端期望得到的数据。GraphQL查询不仅访问一个资源的属性,还可以平滑地跟踪它们之前的引用。GraphQL API可以在一条单一请求中获取到应用所需的所有数据,而典型的RESTful需要从多个URL进行加载。使用GraphQL的应用,即便在速度较慢的网络下也依然能够很快获取数据。由于GraphQL API是基于类型和字段组织的,而非终结点,具有通过单一节点获取数据的完整能力,这就能解决医院因接口服务运行慢从而拖累HIS等业务系统的痛点问题。

二是将GraphQL技术和RESTful API融合。

通过使用传统RESTful API请求方式,将GraphQL查询语句当作请求参数传递,利用服务器端又是客户端的方式,避免了GraphQL客户端因依赖node.js造成部分第三方无法调用的问题;同时,前端不用重复输入大量不同的URL请求数据,通过单一公共URL路径请求即可,能让前端更专注于描述需要的数据。

针对扩展性,单个RESTful接口的返回数据越来越臃肿;针对某个前端展现,实际需要调用多个独立的RESTful API,才能获取足够数据。对于Web前端而言,由于Ajax技术的存在,这种请求数据的方式并不会造成太大的问题;但对于应用来说,由于渲染的方式不同,必须拉取全部数据之后才能绘制界面,这就导致这个界面必须要拿到所有RESTful接口返回的数据才能进行渲染绘制。

三是将数据结构抽象为图,构建全新的医疗数据中台。

在将HIS、LIS、PACS、EMR等异构系统实现数据全联接的同时,将整个数据结构抽象为图,可以将患者、科室、医生等任意节点作为起始节点,获取全关联数据,使得医疗数据具有连续性,大大丰富了数据维度和广度。此外,前端开发人员可以根据自己的需求,自行确定需要获取数据的维度和深度。

已有实践及取得效果

红河州滇南中心医院已基于GraphQL构建了医院数据中台。2020年,红河州滇南中心医院基于微服务架构,自主开发应用的多学科联合会诊MDT系统获得2020数字中国创新大赛智慧医疗赛道暨第四届智慧医疗创新大赛“最具发展潜力奖”、云南省智慧医疗创新大赛一等奖。该系统的构建基础之一,正是GraphQL技术。

在实践中,我们进行了以下探索与尝试。

首先,为了避免调用方不可用或修改调用方式成本较高等问题,我们对GraphQL和RESTful进行整合,通过RESTful的调用方法实现GraphQL所见即所得、由调用方选择所需数据的特性。

其次,我们通过GraphQL API和RESTful API融合构建数据中台,对医院数据进行全联接与统一管理,向个人、医院、政府机构等不同服务对象提供不同维度的全联接数据查询服务。在这种数据服务新模式中,实现了所见即所得,且尽可能地减少了数据接口的请求次数。

第三,我们对数据结构进行图化抽象,由任意节点遍历整个图结构,实现数据的闭环全联接。诊疗数据全联接的范围包括:门诊就诊信息,如诊断、处方、用药、检查、病历等;住院诊疗信息,如诊断、医嘱、住院信息、患者档案、病案、病程、护理记录等;所有医技科室的服务信息,如检查项目、结果、危急值等;以及门诊住院的历次就诊信息,内容涵盖了诊疗数据的全部内容。

例如:可通过调用某患者的基本信息,遍历到该患者的历次就诊信息,遍历到每次就诊的科室,遍历到该科室信息以及在该科室就诊过的所有患者,同时遍历到这些患者的基本信息。或者通过调用医生信息,遍历到该医生所属科室信息或该医生所诊治过的所有患者信息。总之,可以将任何节点作为起始节点,仅需通过一次调用,就可遍历整个图。

在诊疗数据中台的基础上,我们完成了CDR的构建,实现了医生电子交班、护理智慧交班、临床大数据多学科联合会诊MDT系统、医生移动查房医企微系统等多个临床应用的自主开发构建。

我们的切身感受是:给我一个支点(GraphQL),我能翘起地球(大数据)。有了全联接的诊疗数据,就能源源不断地为临床提供更多的数据服务。

总结和思考

一个“全联接医疗”的时代正在到来。个人就医将变得更加主动,医疗信息系统将转变为“以患者为中心”,患者、医护、医院之间将发生越来越紧密的联接,新医疗也将颠覆传统就医模式。

为了跟上时代步伐,有效缓解看病难、医疗资源不均衡等突出问题,我们必须对医疗体系进行数字化重构,应对移动医疗、远程医疗等带来的新挑战。通过对RESTful API、XML WebService等技术进行更替,无论是在接口复用,还是在数据传输效率、数据集成全联接等方面,GraphQL API方式都具有极大的技术优势,数据结构图化更使得医疗数据具有连续性和复用性,能为个人、医院、政府机构等不同服务对象提供不同维度的全联接数据查询服务。

从应用层面分析,目前国内医疗机构还鲜见基于GraphQL技术的数据开发。但在互联网创新企业,因GraphQL敏捷、快速、低成本的大数据开发服务能力,已经得到了大批量的开发部署应用。

从开发技术角度分析,由于GraphQL将数据关系视为图,所以在抽象数据时有一定难度,而且医院信息系统采用的数据库管理系统版本也各不相同,实现数据全联接的复杂程度相对较高。如果想要实现根据任意字段条件查询的接口,难度较高、工作量不小。不过,从红河州滇南中心医院的开发应用情况来看,该技术在医疗机构具有极佳的应用前景,不但能解决医疗数据的集成问题,还能解决临床实际工作缺乏数据服务的痛点问题。和其他市面大数据产品相比较,基于GraphQL技术提供的医疗数据展示功能在全面性、实时性和流畅度等方面也具有较大优势。

【作者简介】

黄瑜,高级工程师、云南省红河州滇南中心医院/个旧市人民医院信息中心主任、云南省计算机学会数字医疗专委会常委、红河州医学会信息专业委员会主任委员、云南省医院协会信息管理专业委员会委员,主持并完成云南省教育厅科研项目一项,获市级科技进步奖两项,获“2019全国医院信息化杰出创新力人物”。

关注HIT专家网微信订阅号
精彩不容错过!

【责任编辑:秦勉】

赞(23)

评论 抢沙发

评论前必须登录!

 


未经允许不得转载:HIT专家网 » 【黄瑜专栏】将GraphQL技术引入医疗行业,将会碰撞出何种火花?
分享到: 更多 (0)