基于知识图谱的医疗诊断系统论文

本作品禁止任何人/企业申请专利,禁止任何人使用本作品参加任何比赛或作为毕业设计,如使用本作品源码进行商业用途务必联系作者。

一.科学性

1.研究意义

信息科技经过 60 余年的发展,已经普及到社会生活的每一个角落。随着信息技术在国家治理、经济运行的方方面面的应用,大量的数据随之产生。而互联网技术的爆发式发展使得近年来产生的数据总量超过了人类以往产生的历史数据的总和,医疗行业的数据增长幅度尤为突出。

医疗大数据具有巨大的价值,尤其是在临床辅助诊疗和健康管理方面。医疗大数据已经上升到国家战略,同时也是全球学术界与产业界竞争的研究热点。如何利用这些医疗数据,挖掘数据的深层价值,是未来信息科技发展的趋势,也是医疗大数据技术产生的背景。

本项目利用知识图谱将各种琐碎、零散的医疗信息知识相互连接,以支持综合型知识检索问答、辅助决策和智能医疗诊断。精准医学知识与大数据相结合,能够利用庞大的全人类对疾病的理解和医生的经验形成知识库,让医生能够通过大数据的信息系统直接根据病人的个体实际情况来对他们进行针对性的诊断和治疗,辅助医生的诊疗过程,使得普通医生也能够像最好的资深医生一样为病人提供高质量的诊疗服务。

本项目结合知识图谱和医疗大数据技术,可以帮助患者自我评估病情,帮助医生找到最佳治疗方案,提高医生工作效率和诊疗质量,为慢病患者提供远程指导和干预。

2.医疗大数据的爬取与存储

(1) 利用互联网搜寻可靠、权威的医疗数据来源,按照疾病所属科室利用多线程技术分段爬取全部数据,保证涵盖全部疾病内容,并在数据爬取过程中,分析数据结构,包括科室、症状、病因、并发症、治疗、预防等。

(2) 针对爬取的数据进行分词,用于后续算法设计,最后将全部数据结构化存储至本地 MySQL 数据库。

(3) 利用 Elastic Search 数据库快速地储存、搜索和分析海量数据。将MySQL 中存储的数据抽取部分部分存入到 Elastic Search 数据库,然后开发相应接口,返回JSON 格式的数据。ES 数据库的主要功能:一是用户在输入框输入症状词时提供实时搜索结果;二是点击部位时搜索到全部相关症状。

(4) 使用 Neo4j 图形数据库存储一部分结构化的数据,便于进行算法设计,搭配分词、检索、排除、统计等算法提升诊断正确率。

3.系统运行流程

本系统需要用户输入个人信息(年龄、性别、职业、提供的症状词),系统根据用户年龄、性别、症状等个人信息进行算法分析、统计、排除、排序、得出相关性得分,最后将算法分析结果反馈给用户。关于算法的设计细节,本申报书的创新性部分会详细说明。项目的大致流程图如图一所示:

1136672-20190831133728550-144632659.png

​ 图一:系统运行流程图

二.创新性

1.研究并实现一种基于知识图谱的智能医疗诊断方法

本项目从互联网爬取了庞大的医疗知识库,总体可以分为疾病库与症状库,如何分析出疾病与疾病、疾病与症状、症状与症状的内在联系是本系统设计的难点与核心。基于此问题,我们研究出了一种基于知识图谱的智能医疗诊断方法。

1.1 医疗知识图谱的构建

知识图谱可以大致概括为节点与关系的组成图谱,非常有助于本项目对医疗数据的分析与研究。关于知识图谱的节点设计,我们抽取医疗知识库中的全部症状词与全部疾病词构成了知识图谱的全部节点,这部分数据也成为了本项目的医学词典。每个节点都有许多属性,包括科室、症状、病因、并发症、治疗、预防等,但这些属性都是以长文本的形式存储,医学命名实体并没有被单独标注区分。前面已经说明,研究的主要方向是针对疾病与症状的联系,我们利用医学词典对疾病的症状属性进行分词。由此症状节点与疾病节点有了直接的关联,此时的节点知识图谱如图二所示:

1136672-20190831133741021-1014071427.png

当每个疾病节点都与它所属的症状或一些并发症进行了关联之后,相互之间难免出现交叉。以图二所示举例,偏头痛会导致一系列症状与并发症,这种关系以箭头指向表示,偏头痛指向丛集性头痛,丛集性头痛又指向症状词头痛,偏头痛也指向了头痛,各种复杂的疾病、症状关系正是通过这种复杂的指向关系(也就是知识图谱),进行了清晰的展示。

1.2 智能诊断方法

如何基于这种复杂的知识图谱研究出一套科学的智能诊断算法是本系统的核心与关键。前面已经提到,系统在诊断之前需要用户提供症状、年龄、性别等信息,当获取用户提供的本系统医学词典范围内的症状词后,系统会马上根据症状词获取此症状的知识图谱,假设用户提供了“头痛”与“恶心”两个症状词,此时的知识图谱如图三、图四所示:

1136672-20190831133803170-362520587.png

1136672-20190831133810089-787226668.png

由知识图谱可以看到指向它们自身的节点,也就是导致这两个症状的疾病是存在共同之处的。当我们把这两张知识图谱合二为一后,此时的知识图谱如图五所示:

1136672-20190831134521288-1118754837.png

该方法到此正式分析出了引起用户症状的“病因”,但此刻获取的疾病结果还是有些笼统,存在一些误差,这些误差来源于每个人的性别、年龄、职业等具体的个人特征,因此需要进一步的提升诊断准确率。

针对疾病所属的部分科室对人群的严格划分,我们详细列出了特殊科室人群分布表格,如表格1所示:

表 1 特殊科室人群分布表

科室人群
妇科
产科
妇产科
男科
小儿科小儿
老年科老年
乳腺外科

由此表格辅助,再搭配用户提供的年龄、性别信息,可以成功排除相当大的一部分不可能疾病,大大提升了诊断的正确率。

到此,系统已初步诊断出引发这些症状的一系列疾病。但这些的疾病哪些的正确率最大,哪些的正确率最小暂时还不知道。为了解决这个问题,特提出“相关性得分”的概念进行最终的排序。系统需要计算诊断得出的疾病的匹配症状的多少,比如,用户提供了3个症状词,系统诊断得出了10个疾病结果,其中有的疾病的所有症状中只匹配用户提供的3个症状的其中2个,有的疾病的所有症状中包含全部的3个症状,匹配症状越多的疾病得分越高,这是第一步的大体排序。但此时很容易就出现匹配度相同的疾病,类似出现两种疾病的所有症状都匹配了两个症状的情况。如何处理这种情况,仅使用匹配算法是不能满足的。因此,需要进一步对匹配度相同的疾病结果进行单独的排序。经过两次排序后的结果就是诊断系统的最终诊断结果。

2.提出一种面向大规模知识图谱快速存储和数据读写的方法

本系统在开发过程中,涉及到的技术与框架繁多,为了使各个业务系统分离,使用微服务架构,为了进一步提高系统并发量与高可用,使用分布式技术。系统架构如图六所示:

1136672-20190831134535079-1296187942.png

(1) 针对支撑知识图谱的Neo4j数据库、支撑快速检索医学词典的Elastic Search数据库与提供医学知识库的MySQL数据库,为了进一步提升三个数据库的读写能力,使用分布式架构,将三者有关的功能模块进行分离。

(2) 在系统的前后端分离上,使用Nginx服务器进行静态资源的读写,进一步提升系统的吞吐等待量与高可用。

(3) 使用Spring Cloud框架用于分离各个系统功能模块,便于后续系统的升级与维护。

三.实用性

1.使用范围

(1)是为个人提供快速自诊服务,轻松掌握自身病情的一种方法,病急不再乱投医。

(2)是为研究人员或医生提供辅助诊断服务,帮助医生发现症状与疾病的各种关联,辅助诊断研究过程。

2.可行性

我们将逐步完善以知识图谱的形式对医疗数据进行展示的功能,作为医生进行诊断的参考,也可以帮助用户了解更多的医疗知识。

本项目的开发已经基本完成,原型系统已经上线。整个项目从技术上来讲,是完全可行的。

本项目已内部进行多次测试,辅助诊断的正确率能够达到80%以上,系统的可用性也是有保证的。

3.推广前景

越来越多的民众愿意积极参与健康管理。这种意愿正在延伸到 AI 和机器人领域。此外,智能医疗市场前景广阔,且增速可观。到 2020 年市场规模将达 79.88 亿美元,未来 5 年 CAGR 达 52.68%。同时, 资本和政策的双重支持将驱动智能医疗继续加速发展。 自 2012 年以来, 智能医疗的融资总额一直是最高的。目前, 无论是科技巨头还是传统的医疗机构, 都在纷纷抢滩智能医疗领域。科技巨头主要是通过与医疗机构合作获取海量的医疗数据来训练自己的模型从而提供更好的产品和服务。而医疗机构更倾向与垂直行业的领先公司合作,从各个方面来智能化整个机构。

在中国新医改的大背景下,智能医疗正在走进寻常百姓的生活。随着人均寿命的延长、出生率的下降和人们对健康的关注,现代社会人们需要更好的医疗系统。这样,远程医疗、电子医疗(e-health)就显得非常急需。

本项目作为智能医疗的一个具体应用,具有良好的推广前景和市场价值。

4.经济社会效益预测

基于知识图谱的智能诊疗系统的建设和推广,可以取得以下经济社会效益:

(1)可以为广大人民群众可提供便利的病情自我评估,利于人们尽早发现病情并积极诊治,“病急不再乱投医”;

(2)可以为医生提供丰富的医学知识图谱,利于医生查找相关疾病知识,以准确分析患者病症;

(3)可以根据知识图谱和患者病症,全面分析推断可能的疾病并提供潜在的医疗方案,辅助医生的诊疗过程,减少医疗事故的发生。

本项目的研究和推广,能够产生巨大的社会效益,减少社会的医疗成本支出,提高医疗质量,改善人们生活。

获奖荣誉

山东省大学生软件设计大赛一等奖

山东省大学生移动互联创新创业大赛二等奖

山东省新动能软件创新创业大赛三等奖

项目地址

邮箱:yster@foxmail.com

博客:https://yueshutong.cnblogs.com/

Github:https://github.com/yueshutong/Doctor

交流QQ群:781927207

1136672-20190831134559867-753954611.png

转载于:https://www.cnblogs.com/yueshutong/p/11438746.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云(ECS)-linux服务器中-Ubuntu图形界面安装-解决root登录受限-VNCviwer/Teamviwer远程访问教程...

安装ubuntu-desktop 1.更新软件库 apt-get update2.升级软件 apt-get upgrade3.安装桌面 apt-get install ubuntu-desktop 解决root登录受限 华为云登录进去是guest用户,不能选择登录用户且不需要密码就即可登录。 登录进去会如下警告信息: 首先下载…

Java EE并发API教程

这是一个示例章节,摘自Francesco Marchioni编辑的WildFly上的实用Java EE 7开发 。 本章讨论了新的Java EE并发API(JSR 236) ,它概述了使用一组托管资源在Java EE容器上并行执行任务的标准方法。 为了描述如何在您的应用程序中使…

经桥科技与湖南文化艺术产业集团合力打造“网乐潇湘”

签约仪式现场 签约仪式现场 签约仪式现场 经网1月7日讯(记者 陈飞 曹亮) 湖南经桥网络科技有限公司与湖南文化艺术产业集团“网乐潇湘”项目签约仪式隆重举行。经桥科技董事长姜志强、湖南文化艺术产业集团总经理陈介辉等领导出席此次签约仪式。 经桥科技与湖南文化艺术产业集…

带有Angular JS的Java EE 7 –第1部分

今天的帖子将向您展示如何使用Java EE 7和Angular JS构建非常简单的应用程序。 在去那里之前,让我告诉您一个简短的故事: 我不得不承认,我从来都不是Java语言的忠实拥护者,但是我仍然记得我第一次使用它。 我不记得确切的年份&am…

深入理解CSS定位中的堆叠z-index

前面的话 对于所有定位,最后都不免遇到两个元素试图放在同一位置上的情况。显然,其中一个必须盖住另一个。但,如何控制哪个元素放在上层,这就引入了属性z-index 定义 利用z-index,可以改变元素相互覆盖的顺序。这个属性…

初识服务发现及Consul框架的简单使用

初识服务发现及Consul框架的简单使用 1.什么是服务发现? 服务发现组件记录了(大规模)分布式系统中所有服务的信息,人们或者其它服务可以据此找到这些服务。 DNS 就是一个简单的例子。 当然,复杂系统的服务发现组件要提…

进程间的通信方式

5,进程间通信方式____ ,____ ,____ ,____ ,____ ,_____。 管道 消息队列 共享内存 信号 信号量 套接字 管道通信:实质是管道文件操作,分为有名管道和 无名管道两种。 无名管…

Spring MVC中的验证组

可以通过groups属性将Bean验证中的验证约束添加到一个或多个组。 这使您可以限制在验证期间应用的约束集。 在某些小组应先于其他小组进行验证(例如在向导中)的情况下,这可能很方便。 从Spring MVC 3.1开始,可以通过org.springfra…

简而言之,JUnit:Hello World

对于Java世界中的开发人员而言, JUnit似乎是最受欢迎的测试工具 。 因此,难怪就此主题已经写了一些好书 。 但是,通过以顾问为生,我仍然经常遇到程序员,他们至多对工具及其正确用法都不了解。 因此,我想到…

命令设计模式的应用

嗨,您好! 今天,我将与您分享一种非常出色的编程设计模式。 它有很多用法,是我的最爱之一。 编程设计模式命令具有多种用例。 在这篇文章中,我们将看到如何实现现实世界中的某些东西。 我们将使用电子汽车钥匙来打开&…

adodb.stream对象的方法/属性

cancel 方法 使用方法如下 object.cancel 说明:取消执行挂起的异步 execute 或 open 方法的调用。 close 方法 使用方法如下 object.close :关闭对像 copyto 方法 使用方法如下 object.copyto(deststream,[charnumber]) 说明:将对像的数据复制…

MongoDB非关系型数据库开发手册

一:NoSql数据库 什么是NoSQL? NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收…

解决DataGridView绑定List后不能排序的问题

阅读全文并下载例子 :http://www.sufeinet.com/forum.php?modviewthread&tid190 以前不都是用table直接绑定DataGridView的,没有出现过不能排序的问题,初试List结果发现不管怎么样都不能实现排序的功能,有朋友说 DataGridVie…

maven编译的时候排除junit测试类

maven编译的时候排除junit测试类 maven项目中使用junit进行单元测试&#xff0c;在进行编译的时候&#xff0c;可以通过2种方式排除test测试类的编译。 有2种方式 &#xff1a; 使用命令的时候带上参数 mvn install -Dmaven.test.skiptrue 在pom.xml里面配置<plugins><…

生成器设计模式的应用

嗨&#xff0c;您好&#xff01; 今天&#xff0c;我将分享我制作的全新设计模式系列的第一个。 构建器设计模式是开发严肃的应用程序时非常有用且通用的模式。 在这篇文章中&#xff0c;我将提供一个很小的构建器模式框架&#xff0c;因此您随时可以回到这里并使用它。 助记…

知识整理2019清北学堂提高储备D5

今天主讲图论。 前言&#xff1a;图的定义&#xff1a;图G是一个有序二元组(V,E)&#xff0c;其中V称为顶集(Vertices Set)&#xff0c;E称为边集(Edges set)&#xff0c;E与V不相交。它们亦可写成V(G)和E(G)。 一、图的存储&#xff1a; 1、邻接矩阵&#xff1a; 2、邻接表&am…

CSS之文字溢出处理

1.单行文本之三剑客<p>刘诗诗&#xff0c;原名刘诗施&#xff0c;1987年3月10日出生于北京市&#xff0c;中国内地影视女演员、影视出品人。</p>p{border: 1px solid red;width: 400px;height: 40px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis…

GA,RC,Alpha,Beta,Final等软件版本名词释义

对应上图的表格如下&#xff1a; 名词&#xff01;说明Alphaα是希腊字母的第一个&#xff0c;表示最早的版本&#xff0c;内部测试版&#xff0c;一般不向外部发布&#xff0c;bug会比较多&#xff0c;功能也不全&#xff0c;一般只有测试人员使用。Betaβ是希腊字母的第二个&…

HawtIO在JBoss EAP上(第二部分)

我刚刚发布了一篇关于在JBoss Wildfly 8.1上运行HawtIO的条目 。 从那篇文章中&#xff0c;您将了解HawtIO多么出色 &#xff0c;以及它必须具备的所有 出色 插件&#xff0c;才能从单个仪表板管理基于JVM的技术……好吧…… hawt ……。 但是&#xff0c;出于上一篇文章中概述…

Mule ESB,ActiveMQ和DLQ

在本文中&#xff0c;我将展示一个简单的Mule ESB流程&#xff0c;以了解实际中使用的Active MQ 的DLQ功能 。 我假设您有一个正在运行的Apache ActiveMQ实例&#xff08;如果没有&#xff0c;则可以在此处下载一个版本&#xff09;。 在此示例中&#xff0c;我使用了Mule ESB…