本做品禁止任何人/企业申请专利,禁止任何人使用本做品参加任何比赛或做为毕业设计,如使用本做品源码进行商业用途务必联系做者。html
信息科技通过 60 余年的发展,已经普及到社会生活的每个角落。随着信息技术在国家治理、经济运行的方方面面的应用,大量的数据随之产生。而互联网技术的爆发式发展使得近年来产生的数据总量超过了人类以往产生的历史数据的总和,医疗行业的数据增加幅度尤其突出。git
医疗大数据具备巨大的价值,尤为是在临床辅助诊疗和健康管理方面。医疗大数据已经上升到国家战略,同时也是全球学术界与产业界竞争的研究热点。如何利用这些医疗数据,挖掘数据的深层价值,是将来信息科技发展的趋势,也是医疗大数据技术产生的背景。github
本项目利用知识图谱将各类琐碎、零散的医疗信息知识相互链接,以支持综合型知识检索问答、辅助决策和智能医疗诊断。精准医学知识与大数据相结合,可以利用庞大的全人类对疾病的理解和医生的经验造成知识库,让医生可以经过大数据的信息系统直接根据病人的个体实际状况来对他们进行针对性的诊断和治疗,辅助医生的诊疗过程,使得普通医生也可以像最好的资深医生同样为病人提供高质量的诊疗服务。算法
本项目结合知识图谱和医疗大数据技术,能够帮助患者自我评估病情,帮助医生找到最佳治疗方案,提升医生工做效率和诊疗质量,为慢病患者提供远程指导和干预。数据库
(1)利用互联网搜寻可靠、权威的医疗数据来源,按照疾病所属科室利用多线程技术分段爬取所有数据,保证涵盖所有疾病内容,并在数据爬取过程当中,分析数据结构,包括科室、症状、病因、并发症、治疗、预防等。后端
(2)针对爬取的数据进行分词,用于后续算法设计,最后将所有数据结构化存储至本地 MySQL 数据库。服务器
(3)利用 Elastic Search 数据库快速地储存、搜索和分析海量数据。将MySQL 中存储的数据抽取部分部分存入到 Elastic Search 数据库,而后开发相应接口,返回JSON 格式的数据。ES 数据库的主要功能:一是用户在输入框输入症状词时提供实时搜索结果;二是点击部位时搜索到所有相关症状。微信
(4)使用 Neo4j 图形数据库存储一部分结构化的数据,便于进行算法设计,搭配分词、检索、排除、统计等算法提高诊断正确率。数据结构
本系统须要用户输入我的信息(年龄、性别、职业、提供的症状词),系统根据用户年龄、性别、症状等我的信息进行算法分析、统计、排除、排序、得出相关性得分,最后将算法分析结果反馈给用户。关于算法的设计细节,本申报书的创新性部分会详细说明。项目的大体流程图如图一所示:多线程
图一:系统运行流程图
本项目从互联网爬取了庞大的医疗知识库,整体能够分为疾病库与症状库,如何分析出疾病与疾病、疾病与症状、症状与症状的内在联系是本系统设计的难点与核心。基于此问题,咱们研究出了一种基于知识图谱的智能医疗诊断方法。
知识图谱能够大体归纳为节点与关系的组成图谱,很是有助于本项目对医疗数据的分析与研究。关于知识图谱的节点设计,咱们抽取医疗知识库中的所有症状词与所有疾病词构成了知识图谱的所有节点,这部分数据也成为了本项目的医学词典。每一个节点都有许多属性,包括科室、症状、病因、并发症、治疗、预防等,但这些属性都是以长文本的形式存储,医学命名实体并无被单独标注区分。前面已经说明,研究的主要方向是针对疾病与症状的联系,咱们利用医学词典对疾病的症状属性进行分词。由此症状节点与疾病节点有了直接的关联,此时的节点知识图谱如图二所示:
当每一个疾病节点都与它所属的症状或一些并发症进行了关联以后,相互之间不免出现交叉。以图二所示举例,偏头痛会致使一系列症状与并发症,这种关系以箭头指向表示,偏头痛指向丛集性头痛,丛集性头痛又指向症状词头痛,偏头痛也指向了头痛,各类复杂的疾病、症状关系正是经过这种复杂的指向关系(也就是知识图谱),进行了清晰的展现。
如何基于这种复杂的知识图谱研究出一套科学的智能诊断算法是本系统的核心与关键。前面已经提到,系统在诊断以前须要用户提供症状、年龄、性别等信息,当获取用户提供的本系统医学词典范围内的症状词后,系统会立刻根据症状词获取此症状的知识图谱,假设用户提供了“头痛”与“恶心”两个症状词,此时的知识图谱如图3、图四所示:
由知识图谱能够看到指向它们自身的节点,也就是致使这两个症状的疾病是存在共同之处的。当咱们把这两张知识图谱合二为一后,此时的知识图谱如图五所示:
该方法到此正式分析出了引发用户症状的“病因”,但此刻获取的疾病结果仍是有些笼统,存在一些偏差,这些偏差来源于每一个人的性别、年龄、职业等具体的我的特征,所以须要进一步的提高诊断准确率。
针对疾病所属的部分科室对人群的严格划分,咱们详细列出了特殊科室人群分布表格,如表格1所示:
表 1 特殊科室人群分布表
科室 | 人群 |
---|---|
妇科 | 女 |
产科 | 女 |
妇产科 | 女 |
男科 | 男 |
小儿科 | 小儿 |
老年科 | 老年 |
乳腺外科 | 女 |
由此表格辅助,再搭配用户提供的年龄、性别信息,能够成功排除至关大的一部分不可能疾病,大大提高了诊断的正确率。
到此,系统已初步诊断出引起这些症状的一系列疾病。但这些的疾病哪些的正确率最大,哪些的正确率最小暂时还不知道。为了解决这个问题,特提出“相关性得分”的概念进行最终的排序。系统须要计算诊断得出的疾病的匹配症状的多少,好比,用户提供了3个症状词,系统诊断得出了10个疾病结果,其中有的疾病的全部症状中只匹配用户提供的3个症状的其中2个,有的疾病的全部症状中包含所有的3个症状,匹配症状越多的疾病得分越高,这是第一步的大致排序。但此时很容易就出现匹配度相同的疾病,相似出现两种疾病的全部症状都匹配了两个症状的状况。如何处理这种状况,仅使用匹配算法是不能知足的。所以,须要进一步对匹配度相同的疾病结果进行单独的排序。通过两次排序后的结果就是诊断系统的最终诊断结果。
本系统在开发过程当中,涉及到的技术与框架繁多,为了使各个业务系统分离,使用微服务架构,为了进一步提升系统并发量与高可用,使用分布式技术。系统架构如图六所示:
(1)针对支撑知识图谱的Neo4j数据库、支撑快速检索医学词典的Elastic Search数据库与提供医学知识库的MySQL数据库,为了进一步提高三个数据库的读写能力,使用分布式架构,将三者有关的功能模块进行分离。
(2)在系统的先后端分离上,使用Nginx服务器进行静态资源的读写,进一步提高系统的吞吐等待量与高可用。
(3)使用Spring Cloud框架用于分离各个系统功能模块,便于后续系统的升级与维护。
(1)是为我的提供快速自诊服务,轻松掌握自身病情的一种方法,病急再也不乱投医。
(2)是为研究人员或医生提供辅助诊断服务,帮助医生发现症状与疾病的各类关联,辅助诊断研究过程。
咱们将逐步完善以知识图谱的形式对医疗数据进行展现的功能,做为医生进行诊断的参考,也能够帮助用户了解更多的医疗知识。
本项目的开发已经基本完成,原型系统已经上线。整个项目从技术上来说,是彻底可行的。
本项目已内部进行屡次测试,辅助诊断的正确率可以达到80%以上,系统的可用性也是有保证的。
愈来愈多的民众愿意积极参与健康管理。这种意愿正在延伸到 AI 和机器人领域。此外,智能医疗市场前景广阔,且增速可观。到 2020 年市场规模将达 79.88 亿美圆,将来 5 年 CAGR 达 52.68%。同时, 资本和政策的双重支持将驱动智能医疗继续加速发展。 自 2012 年以来, 智能医疗的融资总额一直是最高的。目前, 不管是科技巨头仍是传统的医疗机构, 都在纷纷抢滩智能医疗领域。科技巨头主要是经过与医疗机构合做获取海量的医疗数据来训练本身的模型从而提供更好的产品和服务。而医疗机构更倾向与垂直行业的领先公司合做,从各个方面来智能化整个机构。
在中国新医改的大背景下,智能医疗正在走进寻常百姓的生活。随着人均寿命的延长、出生率的降低和人们对健康的关注,现代社会人们须要更好的医疗系统。这样,远程医疗、电子医疗(e-health)就显得很是急需。
本项目做为智能医疗的一个具体应用,具备良好的推广前景和市场价值。
基于知识图谱的智能诊疗系统的建设和推广,能够取得如下经济社会效益:
(1)能够为广大人民群众可提供便利的病情自我评估,利于人们尽早发现病情并积极诊治,“病急再也不乱投医”;
(2)能够为医生提供丰富的医学知识图谱,利于医生查找相关疾病知识,以准确分析患者病症;
(3)能够根据知识图谱和患者病症,全面分析推断可能的疾病并提供潜在的医疗方案,辅助医生的诊疗过程,减小医疗事故的发生。
本项目的研究和推广,可以产生巨大的社会效益,减小社会的医疗成本支出,提升医疗质量,改善人们生活。
Github:https://github.com/yueshutong/Doctor
交流QQ群:781927207