基于电子病历系统关系数据库构建患者诊疗图谱

2022-02-13 11:37张百平
医学信息学杂志 2022年12期
关键词:关系数据库图谱实体

张百平

(广州医科大学附属第三医院 广州 510000)

1 引言

从一个典型的医疗关系表结构中抽象出一个丰富的图结构,图数据库方法可广泛利用这种图形表示。图数据库能够直接处理各种查询,否则就需要在规范化关系表中执行深度连接操作。这些查询涉及医疗实体之间的关系,可以用于协同过滤以及为医疗保健提供个性化开发服务。图数据库可以处理这类查询,并提供直观的查询表示和对数据的访问。作为非规范化表的一种形式,图数据库可以避免生成和复制大量的表,为医疗系统提供一个低成本的数据管理框架。

2 在电子病历中使用图数据库的目的

2.1 图数据库和关系数据库对比

关系数据库(如Oracle和MySQL)在获取重复的表格数据方面表现出色。尽管名称中有“关系”一词,但关系数据库在存储或表达存储的数据元素之间关系方面却效率很低。与关系数据库不同,图数据库完全围绕数据关系构建。图数据库不将关系视为模式结构,而将其视为数据。

对关系数据库与图数据库(Neo4j)在数据结构、数据模型特征和查询功能等方面进行比较[1],见表1,发现当数据之间的关联度较高时,使用图数据库具有明显的优势。从数据模型、存储方式、特性和查询语言等方面分析多种NoSQL(不仅是SQL)数据库与关系数据库相比的优缺点[2],提出一个基于社交网络的微基准,通过测试5个不同的数据库(Dex、Neo4j、RDF-3X、Virtuoso和PostgreSQL)来比较不同数据管理模式[3]。

表1 图数据库与关系数据库对比

2.2 电子病历中使用图数据库的优势

在图数据库中查找相关节点比在关系数据库模型中查找相关数据行更加有效。图数据模型的灵活性允许添加新的节点和关系,而原始数据保持不变。以图格式存储数据允许用户从不同角度查看相同数据和连接。数据和关系网络有助于找到最佳路径、模式匹配或提供建议。将数据从关系数据库移至图数据库可以利用所有图数据库提供的优势。

通常,门诊电子病历(Electronic Medical Record,EMR)数据由患者、疾病、医生、检验检查和药品组成。这些数据之间存在着许多联系。如果使用图数据库,可以更好地利用这些连接从海量医疗数据中做出更好的推断。要处理不断增长的连接数据,可以选择Neo4j,这是一种针对关系管理而优化的非关系图数据库,以进行进一步的分析和决策。

3 基于Neo4j的电子病历系统关系数据建模

将数据从关系数据库映射到图数据库基本上是将关系表示从一个数据库转换到另一个数据库,从表结构转换到图结构。关系数据库表中的数据实体是行(包含列),图数据库中的数据实体是节点(包含属性)。更具体地说,可以使用关系数据库模型的外键来构建边,从而将松散耦合的数据记录转换为高度有界的节点组。

3.1 建模特点

Neo4j是一个属性图数据库,使用图的原生结构,即邻接表进行存储,便于快速处理关系[4]。Neo4j使用的是Cypher查询语言,Cypher可以提供丰富、高效的表达式来描述关系查询[5]。与其他图查询语言相比,Cypher语言具有良好的发展前景[6]。为了简化图分析的工作,笔者调查了几个图数据库。基于数据库对软件可追溯性的适用性审查[7],最终选择Neo4j作为研究对象。Cypher对具有不同特征的数据进行操作,这些操作是在图的节点和边上执行的,而不是在表、元组以及与主键或外键的关系上执行。

Neo4j图数据库建模是将任意域描述为节点和关系的连通图的过程。与传统关系型数据库不同,Neo4j是一个无模式数据库,这意味着在添加数据之前不需要定义表和关系。一个节点可以有任何属性,任何节点都可以与其他节点相关联。Neo4j数据库的数据模型在所包含的数据中是隐式的,Neo4j数据建模是描述性的。Neo4j的主要优点是对图数据库建模和查询的直观方式。使用Neo4j对门诊EMR关系型数据库进行图数据库建模,患者、疾病、药物及其之间关系将用Neo4j技术构建并存储在Neo4j中。

3.2 识别数据实体

第1步是识别数据实体类型,见图1,有4种类型的数据实体:患者信息、药品字典、国际疾病分类 (International Classification of Diseases, ICD)第10版、诊疗字典(LIS&RIS),每个表表示正在操作的不同类型的信息。

图1 EMR数据库关系数据模式的表结构逻辑关系

3.3 识别数据关系

接下来需要找到这些实体之间的语义关系。这一步不太明显,因为关系数据库并不是将关系作为一级公民来处理。患者单次就诊所产生的所有记录,包括检查处方、西药处方、中药处方、诊疗处方等都通过CASEHISID_CHR这个就诊流水号直接或者间接串联起来。当正确标识数据实体和关系时,可以为每个数据实体创建节点,为每个关系创建边。在图中找到并构建正确的边是一项关键活动。这些步骤影响数据结构有效响应最终用户问题的能力。包括将逻辑关系(外键)和隐式关系(公共属性)转换为物理存储在图数据结构中的显式边。使用Neo4j (带标签的)属性图模型,其基本结构包括实体(节点)、属性(属性)、标签(类型),具有方向、开始节点和结束节点的关系(边)。最终识别到的关系类型,见表2。

表2 EMR关系数据转换为图数据边(关系)

3.4 构建Neo4j诊疗图谱

在Intel(R)Xeon(R)6240 CPU@2.60 GHz(16处理器)、RAM 32 GB、Windows Server 2012 R2虚拟机服务器上,使用neo4j-community-4.3.6构建诊疗图谱。图数据库除了可以执行强大的连接操作之外,Neo4j还允许用户创建索引。索引可以在节点或边的属性上创建,一个索引单元可以指向多个图模式单元,从而提高搜索效率。还可以在图上创建新的关系,见表3。

表3 新建关系、数量、代码及耗时

通过绘制表示数据中常见模式的图形片段,可以将模型可视化,见图2。

图2 Neo4j诊疗图谱节点及关系数据模式总览

经过以上环节的构建,获得患者诊疗图谱节点和关系基本情况,见表4、表5。患者诊疗图谱包含270 871个节点(4类标签)和6 091 656个关系(10种关系类型)。

表4 诊疗图谱节点总览(个)

表5 诊疗图谱关系类型及数量(个)

关系MedicalRecord记录着患者就诊时的详细信息,包括既往史、现病史、体温、发病时间、身份等基本情况。关系TCMP及WMP详细记录药物处方的用法用量。NumofDiagnosis、NumberofTCM、NumberofWM、NumberofDT分别表示患者在一段时间内所患某疾病次数、服用某中药次数、服用某西药次数及所做某检验检查项目次数。

4 知识图谱可视化分析应用

Neo4j检索结果的速度比关系数据库快,比MySQL灵活。Neo4j在结构类型查询方面的表现优于MySQL,在使用整数数据时比MySQL慢。Neo4j图数据库主要有5个构建块:节点、属性、关系、标签和数据浏览器。图数据库擅长遍历类型的查询,从而促进对关联概念链的探索。这种“连接发现”可以识别新的关系。Neo4j不需要连接或索引就可以很容易地检索它的相邻节点或关系细节。下面以单个患者为例,在Neo4j图数据库中以图的形式展示患者ID为“0000001816”在某段时间的诊疗记录,可视化其在某段时间所患疾病,见图3。所做检查及所用药物情况类似。

图3 患者“0000001816”某段时间所患疾病情况

查询某些适应症药物的结果分析并可视化EMR中的规律与模式,见图4。

图4 某段时期内用于治疗“双相情感障碍”的药物

归纳出对应于某一疾病或者某些疾病组合,医生们通常习惯于开哪些药。

基于医学数据的特点,使用属性图数据库Neo4j对EMR进行建模,实践表明,该模型比关系数据库模型具有更好的语义表达能力,能够更清晰地表达数据内部的语义关系,满足实际查询需求,并具有关系数据库模型无法实现的路径发现功能。

5 结语

大型医疗数据存储库是知识发现的来源。对这类存储库的有效分析通常需要对数据中的依赖关系有全面理解。知识图谱与任务无关,创建相同的知识图谱,可以用于许多不同的任务,甚至是机器学习之外的任务。知识图谱作为异构知识学习的默认数据模型,使用图数据库表示和查询疾病网络。

本文使用Neo4j对医疗数据进行建模,简洁直观地表达数据之间关系。使用图数据库有利于医疗数据分析和可视化,未来将添加机器学习机制,创建基于图数据库的医学推荐引擎。

猜你喜欢
关系数据库图谱实体
关系数据库在高炉数据采集系统中的应用
绘一张成长图谱
关系数据库技术在计算机网络设计中的应用
前海自贸区:金融服务实体
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
补肾强身片UPLC指纹图谱
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
主动对接你思维的知识图谱
一种基于数据图划分的关系数据库关键词检索方法