图数据模型及其在疫情追溯领域的应用研究

2021-03-12 07:00李洪磊
软件导刊 2021年2期
关键词:数据模型病患防控

沈 阳,李洪磊,陈 杰

(辽宁师范大学政府管理学院,辽宁大连 116029)

0 引言

2019 年年末新型冠状病毒肺炎蔓延的范围和扩散速度对全球经济发展和社会稳定产生了严重影响,成为自20世纪初“西班牙流感”大流行以来的重大疫情事件。在中共中央、国务院“科学防控,精准施控”要求指导下,我国政府积极综合运用网格管理、大数据技术、快速核酸检测等技术手段,有效遏制了疫情蔓延和零星小范围疫情反复,为全球提供了“中国方案”。

在疫情防控过程中,以大数据技术为支撑的疫情追溯发挥了重要作用,使防控部门能够在最短时间内锁定高风险人群和地区,将疫情有效控制在最小范围之内。伴随着移动通讯和大数据技术特征的现代信息技术升级,疫情防控部门对病例行踪轨迹挖掘更加细致,但是疫情传播过程的动态性和复杂性导致疫情传播数据的高维性、碎片化以及高关联性,传统的关系型数据模型并不适合表达此类数据类型,并且在追溯查询方面性能较差。基于以上原因,本文提出一种基于图数据模型(Graph Data Model)的疫情追溯数据模型,借助NEO4J 图数据库建立一个基于该数据模型的疫情追溯数据库,提出相应的数据操纵及疫情追溯算法。本研究可根据人员行踪数据构建病例的行程路线图,再添加时间、交通工具、地点等信息形成传播关系网,为疫情相关的流行病学追溯问题提供帮助,同时也为后续疫情的防控和预防工作提供决策支持。本文实验数据来自于权威部门公布的2020 年国内部分地区疫情防控数据。

1 相关研究

数据库的相关技术诞生于20 世纪60 年代,截至目前已经历了60 年的发展历程。数据库发展经历了3 个重要阶段:①以层次性数据库和网状数据库为主的第一代数据库系统;②以关系型数据库为主的第二代数据库系统;③正在发展的图数据库系统以及面向对象的数据库、基于文档的数据库系统等。关系型数据库模型是目前应用最广泛的数据库,在流行病调查及防控领域使用较多。韩金祥[1]建立与研究了罕见流行病临床数据库;李永利等[2]基于SQL Server 数据库建立新突发传染病信息数据库系统;李泽庚等[3]根据急、慢性流行病传染病临床经验所构建的流行病传染病数据库;青义春等[4]使用Oracle 大型数据库系统以及C 语言构建的传染病信息管理系统;姜华等[5]使用Oracle 大型数据库构建远程数字化诊断平台,对口岸进行实时诊断和监控;王秀华[6]基于SEER 数据库对甲状腺末分化癌的临床监测数据检测和病理学分析;宋敏等[7]以传染病临床数据库为基础建立的传染病信息管理系统等。

图数据模型及图数据库在处理复杂数据联系和表达非结构化数据方面具有优势,在医学领域发挥着积极作用。吴思竹等[8]构建以疾病为中心的中文疾病图数据库,能更好实现对疾病之间关系的探索;盛明等[9]基于已有临床医学知识建立电子病历的图数据库扩展系统,可作为寻诊系统的重要组成部分;赵凯等[10]提出一种基于《伤寒论》桂枝汤类方的小型图数据库,对桂枝汤类方诊断、配方、开药进行可视化分析和检索;林燕榕等[11]基于肾病专科电子病历构建肾病图医学数据库,为医生提供临床决策辅助以提升医疗服务的质量。

除此之外,图数据库作为一种以图为基础的数据库模型,在社交关系排查方面发挥着重要作用。如丁洪丽[12]提出基于人员信息、话单和出行信息形成图数据库,在排查人物重点关系上与传统关系型数据库相比,查询速度达后者5 倍;黄冰倩等[13]认为基于图数据库的话单数据分析有助于警方寻找嫌疑人和其行动轨迹;祁烁[14]根据人员社交关系构建图数据库用于对违法犯罪人员进行预测,对于公安办案人员合理分配警力、提高出警效率很有帮助。

综上所述,数据库模型用于传染病学调查和传染病临床信息数据库构建是可行的,对医务工作者更有效利用已有数据信息进行传染病学分析提供信息技术支持。图数据库上,一方面基于临床数据、电子病历等构建的图数据库,在为医护人员提供信息支持同时还提升了检索效率,增加了可视化查询路径等决策辅助,进一步提升了医疗服务质量;另一方面,图数据应用领域还拓展到社交关系网络的构建和查询上,这一点正是基于图数据库的非关系型数据表达和清晰可视化所达成的。但是在目前数据库研究和应用中,涉及到传染病学调查多以传染病数据分析、构建传染病学数据库为主,对流行病传染病的追溯和传播关系网等涉及较少。由此本文希望将图数据应用优势结合起来,可根据行踪数据构建病例的行程网图,再添加时间、交通工具、地点等信息形成传播关系图,为疫情相关流行病学追溯提供帮助,同时为后续疫情防控和预防工作提供指导意见。

2 图数据模型

图数据模型(Graph Data Model)是一种以图结构进行存储和表达的数据模型,知识图谱和图数据是图数据模型的主要表现形式。图数据模型基本结构由实体结点还有连接节点之间的边(或称之为关系)组成,通过边将各个点连接起来形成网状图,由此进行快速的图检索操作。图数据模型相关产品最早由美国谷歌公司在2012 年提出并首次使用在其网站关联搜索上,其目的是希望通过数据之间的联系提升网站在搜索引擎上的表现。图数据库设计解决难以在关系系统中建模的复杂层次结构问题。图数据模型与20 世纪70 年代的网状模型相似,都表示一般的图,但是网络模型数据库在较低的抽象层次上运行,不能轻松遍历一系列数据联系。目前,图数据库是发展速度最快的数据库技术,能够克服层次型、网状型、关系型数据库在处理复杂数据联系方面的诸多困难。

基于NEO4J 的图数据库是目前图数据库技术中最为常用的一种,功能最完善、发展最快。以NEO4J 图数据库为例,NEO4J 图数据库具有以下特点:①图数据库更易于信息可视化,节点和边所表示的信息更接近现实世界的实体联系;②图数据库中的点和边更新灵活,动态数据库模式易于数据库拓展和更新,便于适应数据的动态变化;③图数据库检索响应时间迅速,这一特点在数据量大信息挖掘层数深时表现更为明显;④可以完全兼容ACID图数据库,便于处理复杂关系。

基于NEO4J 图数据库高兼容性、灵活性、高性能特点,在处理非结构化占比较高、数据量不断增长的疫情数据时,选择使用NEO4J 图数据库技术构建本文的疫情数据图数据模型能取得较好效果。

3 疫情追溯图数据模型构建

图数据模型擅于查找和发现数据之间的关系,本研究希望借助NEO4J 图数据库建立一个基于该数据模型的、能够用于快速确定疫情确诊病例和区域范围的疫情追溯数据库,为疫情相关的流行病学追溯提供帮助,为后续疫情的防控和预防工作提供决策支持。根据最新信息实时更新数据库、快速精准查询病患及其出行事件,同时在一个指定中心和“步长”的区域内进行疫情回溯。

3.1 原始数据与清洗

本文数据全部来自大连市卫生健康委员会2020 年7月22 日至8 月13 日(此后连续14 日无新增确诊病例)所公布的信息,包含在大连“7.22”疫情复发事件中核酸检测结果为阳性的病例共计92 人。数据内容包括病患的姓名、年龄、性别、职业、家庭住址、确诊日期、确诊前3~7 日内的行动轨迹信息。由于获取的数据以半结构化信息和文本内容居多,本研究采用分词的方式将所需信息提取出来形成结构化数据,为后续抽取实体形成图数据做前期准备。

3.2 实体含义

将所获得的原始数据进行初步分词和清洗之后,对数据进行实体抽取,并在获得实体记录之后建立关系记录。实体记录和关系记录如表1、表2 所示。

Table 1 The entity record表1 实体记录

Table 2 The relationship record表2 关系记录

根据抽取出的实体进行分类,得到两种主要实体:病患和地点。病患表示所有在本次大连疫情复发事件中感染新冠肺炎的病人,设置唯一标识ID,在病患信息中包括姓名、年龄、性别、职业、家庭住址。地点指感染了新冠肺炎的病例确诊前3~7 日内去过的地点,设置唯一标识Place_ID。根据国家卫生健康委发布的规定,新冠肺炎平均潜伏期为7 天。

根据本文抽取出的关系得到两种主要关系:①Rel;②trace。关系Rel 表示病患节点和地点节点之间的联系,代表这个病患曾经去到过的地方,填充内容为relation;关系trace 表示地点节点之间的联系,代表一个出行事件,每个出行事件包括出行人、出行时间、使用的交通方式。

3.3 模型构建

图数据库作为一种基于图形成的数据库模型,其基本组成元素为抽取出的实体所表示的节点和连接节点与节点之间的边,根据原始数据中抽取出的实体记录和关系记录构建出如图1 所示的模型。

这一数据模型可简洁表示为“某人在何时何地用什么样的交通方式去了哪里,以及所用时长”这一出行事件,本文的图数据库就是基于这一简单结构构成的。

4 模型在疫情追溯中的应用

将全部实体记录和关系记录录入模型系统得到一个实体总量超过200 个、关系数量超过600 条的图数据结构。基于NEO4J 的图数据库环境建立该数据库。NEO4J 作为一款典型NoSQL数据库产品,有独特的查询和编码语言Cypher,本文使用该语言完成病患行踪数据库的建立,并完成相关数据库操作,使该图数据库能够基于病患行踪信息进行查询、分析研究。根据已有信息构建的图数据如图2所示。

Fig.1 Patient travel map data model图1 图数据模型病患信息模型

参照流行病学和传染病调查流程和疫情防控期间大连市卫健委提出的相关措施,将传染病调查与社交网络关系追溯相结合进行回溯查询,本文在该图数据库系统上成功实现以下3 个核心功能:数据更新功能、数据查询功能以及回溯功能。

Fig.2 Patient travel map data图2 病患出行图数据库

4.1 数据更新

为使该模型能充分映射现实世界中的真实情况,对原有数据记录进行增减修改,修改的内容包括节点记录和关系记录。例如随着调查的深入,发现某病患去过的地点数量不相符,就涉及到地点节点数量的增减;如果大连地区的疫情蔓延情况未有效控制,那么病患节点的数量也会随之变化。

功能1:节点增加

create(a:patient{name:“丙”,id=“03”}),(a:patient{name:“丁”,id=“04”})return a;

create(a:place{name:“地点3”,place_ID=“003”})re⁃turn b;

增加3 个节点,用时1ms

功能2:病患和地点节点删除

MATCH(a:patient)where a.name=“丁”delete a

MATCH(b:place)where b.name=“地点3”delete a

删除两个节点,用时2ms

功能3:关系增加

MATCH(a:patient),(b:place)

WHERE a.name=“丙”AND b.name=“地点2”

CREATE(a)-[r:Rel]->(b)RETURN r

增加1 条关系,用时2ms

4.2 模型查询

在疫情防控及流行病学调查相关工作中,对某一重点地区和重点人物的精准查询是一个必要功能,并且在“疫情就是命令”要求下,需要系统给出准确快速的反馈,这对相关人员及时做出防控决策和判断有很大帮助。图数据查询主要根据节点属性和关系属性进行查找。模型查询功能包括以下内容:

功能1:节点查询

MATCH(a:patient)WHERE a.name=“石某”RETURN a

查询1 个节点,用时1ms

功能2:关系查询

研究发现,仅单纯找出病患或者地点的节点信息是不够的,还需要进一步查找发生出行事件的地点合集,才能对这名病患的整体出行事件有一个整体了解,帮助划定防控范围。如图3 所示:当需要搜寻与病患id=2 的患者及与其相关的全部出行事件时,找到18 个地点共计47 条关系,查询用时2ms。医护人员重点查询某一条出行事件如大连湾车站至庄河汽车站,可以看到具体时间、交通工具等行程内容,这对进一步掌握病患的出行信息、划定重点人群范围有重大作用。

Fig.3 Querying patient trail node relationship图3 病患信息图数据库节点关系查询

Fig.4 Querying patient trail case图4 病患信息图数据库出行事件查询

4.3 追溯功能

在传统关系型数据库技术背景下,寻找朋友的朋友、课程的前导课等类似问题不是那么容易,同理这些困难也在处理如疫情的传播链梳理、上层传染者或是传染地点甚至再上一层传染者查找时出现,要解决这一难题必然涉及到遍历数据库、跨表查询和引用键值等操作,但对单一关系的查询往往不足以满足社交关系排查要求,且操作所花费时间成本和运行成本较高。对于需要及时反馈信息的疫情显然需要更高效的方法。

挖掘数据之间关系是图数据库相较其他数据库模型的优秀之处,基于图形成的图数据库可以通过自身的图结构清晰显示两节点之间的关系。

如图5 所示,在所有病患去过的地点中,以大连湾地铁站为圆点,以一次出行事件为一个步长,两个步长范围包括全部地点。根据出行时间判断该病患者在该区域是否留下感染病菌,以便医务人员对某个时间段内曾经去过该地区的人员进一步排查,同时对重点区域进行防控和消毒处理。

若当前的步长无法得到满意结果,可以进一步增加步长范围。

Fig.5 Backtracking range with“Dalian Bay Station" step size of 2图5 以”大连湾站“为中心步长为2 的回溯区域

5 结语

本文通过构建基于病患行踪信息形成的NEO4J 图数据模型,以大连地区2020 年7 月22 日至8 月13 日期间疫情复发数据为例,建立一个节点总数超过200 个、关系数量超过600 条的图数据库,使用NEO4J 数据库技术和Cypher数据库语言建立该数据库模型。本文构建一个与现实情况相符合的病患行踪数据库,重点对病患查询、高风险地点排查、传播范围划定等问题进行分析研究。但本文对于疫情预防、不予发布的密切接触人员信息等情况未进行全面考虑,将在后续系统更新中进一步改进。基于图数据库进行疫情防控和管理能够为医务人员和防疫机构提供决策支持。

猜你喜欢
数据模型病患防控
配合防控 人人有责
老年冠心病无痛性心肌缺血患者的临床护理效果观察
猪常见腹泻病症状及防控
氨磺必利与喹硫平对老年精神分裂症的诊疗效果比较
守牢防控一线 静待春暖花开
夏季羊中暑的防控
分析严重创伤患者并发精神障碍的心理疏导及护理体会
面板数据模型截面相关检验方法综述
加热炉炉内跟踪数据模型优化
制度变迁与明代官员病患叙事的演变