医院智能导诊系统设计与实现
王嘉宁;苏翀;任瞳
【摘 要】利用稀疏矩阵和杰卡德相似系数,结合医疗领域知识构建医院智能导诊系统,阐述系统需求、总体设计、关键技术和功能模块,包括智能导诊、综合信息查询、知识库管理及数据库设计,指出该系统能够在一定程度上克服医院现有分诊流程存在的弊端,缓解导诊服务压力.
【期刊名称】《医学信息学杂志》
【年(卷),期】2018(039)008
【总页数】全程都在做的动漫4页(P29-32)
【关键词】智能导诊系统;稀疏矩阵;杰卡德相似系数
【作 者】王嘉宁;苏翀;任瞳
【作者单位】江苏科技大学电气与信息工程学院 张家港215600;江苏科技大学电气与信息工程学院 张家港215600;南京江北人民医院 南京210000
【正文语种】中 文
表示风景优美的成语
【中图分类】R-056
1 引言
随着生活水平的不断提高,人们对医疗服务的要求也越来越高。传统的医疗服务已经不能满足人们快节奏的生活需求,因此医院的信息化建设[1]至关重要。现代化医院应该采取管理观念[2],结合计算机技术,以提高患者的就诊体验和减轻医务人员的工作量,使医院能够更加专注于医疗服务质量的提升,从而更好地服务于社会。为简化大型医院就诊流程、优化资源配置、提升服务质量,本研究充分利用现有医院信息平台[3]研究并设计实现医院智能导诊系统。患者通过输入自身症状可以快速、准确地定位到应挂号的科室以及可能患有的疾病,在一定程度上减少挂错号等现象,提升患者就诊效率和就医感受,缓解医患矛盾。
2 需求分析
2.1 背景
对于大型综合性医院而言,以专科为诊疗单元进行日常的诊疗工作。广大民众的医疗基本知识相对匮乏,很多患者在就诊时往往不知道对应的挂号科室,继而导致医院挂号排队现象严重。虽然部分医院设置专门的导诊服务,但数量有限且工作负荷较大,催生出二次排队现象。这些在一定程度上导致医患关系不和谐,甚至发生冲突,为此有必要设计并实现智能导诊系统,以减少患者的窗口等待时间,缓解医院的“三长一短”现象。
2.2 知识库构建
系统需要知识库来存储所有发病部位、症状、对应的疾病名称以及门诊诊疗科室等信息。本研究中知识库的构建通过某医院信息系统进行整理,经过医学专家人工确认,范围仅涉及门诊常见疾病。为保证系统导诊功能的科学性和准确性,管理员可以对数据库中疾病部位表、症状表、疾病表以及科室表进行增删改操作,不断完善知识库。
2.3 智能导诊
系统需要友好的操作界面完成智能导诊流程。用户选择性别、年龄及患病部位和相关症状,系统就会显示用户可能患有的疾病和相关诊疗科室[4]。为方便实际使用,系统会按照
相似度降序排列,给出前几个疾病列表,本系统默认值为3。导诊流程,见图1。用户获得导诊结果后还可进一步查询疾病和相关科室的基本信息。
图1 导诊流程
3 总体设计
系统主要由智能导诊和知识库管理两部分组成。智能导诊是面向用户,用户通过选择性别和年龄确定大致类别;随后根据用户选择的疾病部位和症状生成症状向量;再根据症状向量与知识库中疾病症状矩阵分别计算杰卡德相似度;最后按相似度降序排列,选取排名前3位的疾病作为最终推荐结果。此外支持用户查询相关疾病和诊疗科室信息。知识库管理部分面向系统管理员,管理员结合医学领域知识对疾病部位、疾病症状及对应的名称和诊疗科室进行维护。系统总体框架,见图2。
图2 系统总体框架
4 关键技术
4.1 稀疏矩阵压缩存储
为将疾病症状存储到数据库中,系统设置数值1代表该疾病存在此症状,0表示不存在该症状。所有疾病将以矩阵形式存储其表现的症状。考虑到绝大多数的疾病所表现出的症状往往只占少数,因此该疾病所对应的矩阵会存在大量的0元素,既浪费存储空间,又降低存取效率。为解决该问题本研究采用稀疏矩阵的数据结构来存储疾病与特征的对照信息[5]。通过利用稀疏矩阵压缩存储技术将稀疏矩阵写成3元组表,将非0元素及其对应矩阵的行、列下标存入3元表中。
例1:疾病症状空间有6个特征,分别为发烧、咳嗽、腹泻、皮肤、眼睛充血和失眠;对应的5种疾病分别为普通感冒、红眼病、皮炎、鼻炎和哮喘。红眼病一般仅存在眼睛充血症状,普通感冒往往具有发烧、咳嗽等症状。其存储的矩阵表示如下:
其中矩阵中列分别对应疾病的症状,行对应各种疾病。观测可知矩阵存在大量的0元素,占用5×6=30个存储空间,而利用3元表存储后如下:
张沫凡疑似结婚
每行代表矩阵中的非0元素,第1列代表该非0元素的值,第2、3列分别代表该元素所在矩阵中的行、列坐标。3元表仅用3×6=18个单位空间,比原矩阵节省12个单位空间。因此采用稀疏矩阵压缩技术可以很好地节省存储空间,提高存取效率。
4.2 杰卡德相似系数
考虑到疾病与症状矩阵的稀疏特性,对于相比较的两对症状向量均未出现的症状(即值为0的症状)个数显然很多,而这些症状对度量整体相似度贡献很小。因此采用更加适合稀疏数据的杰卡德相似系数度量症状向量之间的相似度。杰卡德相似系数(Jaccard)是衡量两个集合之间相似度的一种指标,常应用于网页去重、论文查重等[6]。在本研究中假设p表示疾病A和用户输入的症状向量B中对应症状都为1的症状个数,q表示疾病A对应的症状是1,而用户输入的症状向量B对应的症状是0的症状个数,r表示疾病A对应的症状是0,而用户输入的症状向量B对应的症状是1的症状个数。那么A和B的杰卡德相似系数计算公式如下:
可以看出分子是A和B出现相同症状的个数,分母是A和B中所出现症状的总个数。杰卡德相似系数很好地描述A和B具有的相同症状占A和B中所出现症状的比例。因此其能准确地描述A和B之间的相似程度。
例2:假设所有症状包括如下:{发烧、咳嗽、头痛、眼干、胸痛、呼吸困难}。肺炎所表现的症状为发烧、咳嗽、胸痛、呼吸困难;而普通感冒所表现的症状为发烧和咳嗽。若用户提交的症状包括发烧、咳嗽和胸痛,则其对应的症状向量U={1,1,0,0,1,0},对肺炎A和普通
高档红茶品牌有哪些田蕊妮个人资料感冒B分别计算杰卡德相似系数:
A={1,1,0,0,1,1}
B={1,1,0,0,0,0}
宋美娜
可知U与A的相似度更大,该用户患有肺炎的可能性更大,因此系统会将肺炎及对应的科室反馈给用户。具体的智能导诊算法流程,见表1。
表1 具体的智能导诊算法流程步骤具体操作输入用户通过选项输入相应部位及出现症状0-1向量U、推荐的疾病及科室数目kStep1获取用户输入的相应部位及出现症状向量U的特征空间集合PStep2获取对照关系表中的疾病症状空间集合QStep3新的疾病症状空间集合R=P∪QStep4按照新的疾病症状空间集合R重构0-1向量UStep5将对照关系表转化为一个矩阵M,行代表疾病条目s,列数等于疾病症状空间集合R的基数tStep6初始化一个具有s个元素的一维实型数组a,初值为0Step7For i=1 to sStep8向量C=向量U + 矩阵M中第i行行向量LStep9two=值为2的个数;one=值为1的个数Step10a[i]=two/(two + one);//计算杰卡德相似系数Step11End forStep12对数组a按降序排序,返回前k个疾病及其对应诊疗科室
5 功能模块
5.1 智能导诊
在用户导诊界面中用户首先选择性别和年龄,然后选择患病部位,此时界面会提供属于该部位的相关症状,用户可以选择多个症状。当用户选择完毕并确认时,模块会将用户选择的患病部位及相关症状转化为症状向量,然后计算症状向量与知识库中疾病症状矩阵之间的杰卡德相似系数,进而给出用户可能患有的疾病列表,提供相关疾病和诊疗科室的信息[7]。智能导诊数据流,见图3。
图3 导诊模块数据流
5.2 综合信息查询
用户在获得导诊结果后可查询可能患有的疾病和相关诊疗科室的信息;也可针对某种疾病和诊疗科室进行单独查询。查询结果主要包括疾病简要介绍、注意事项以及相关诊疗科室基本信息[8]。
5.3 知识库管理
主要包括基本数据字典的管理以及科室、疾病、症状之间对照表的管理。基本数据字典的管理主要用于对部位、症状、疾病以及科室等进行单独维护。对照表的管理则相对比较复杂,除需要相应的医学领域知识外,还需要借助数据库的触发器技术保障数据之间的完整性和一致性[9]。