基于ATERDE和AHP数据引力分类算法下医生推荐导诊系统的设计

2024-01-09 13:47周思铭
黑龙江科学 2023年24期
关键词:挂号引力科室

周思铭,何 佳

(西安思源学院,西安 710038)

0 引言

提出ATERDE与AHP的数据引力混合科室分诊算法和基于向量模糊化与自适应长度裁剪的混合过滤医生推荐算法[1-2],根据患者输入主诉症状、医生擅长领域,为患者推荐与其病情相关的医生,实现高效就医,合理化利用医院资源,智能导诊模型如图1所示。

图1 智能导诊模型Fig.1 Intelligent referral model

1)数据引力分类算法。引力分类算法具有良好的准确度及稳定性,可用于多种领域,其分类原理如图2所示。

图2 数据引力分类算法原理Fig.2 Principle of data gravity classification algorithm

2)基于ATERDE与AHP的数据引力算法。这是引力分类算法在医疗导诊系统中的一种应用,根据医生个人信息及病人就诊记录通过ATERDE算法挖掘医生与病人之间的时序关系及规律,用AHP算法对医生推荐结果进行深入分析及决策[3],利用医生与患者之间的相互作用,得到精准高效的医生推荐结果,专家根据其丰富的知识经验利用AHP分析方法获取病症-专家经验权重,根据患者数据信息利用ATERDE算法获取客观权重信息,利用全局数据引力算法与局部引力算法预测出最大可能推荐科室,算法流程如图3所示。

图3 数据引力算法流程Fig.3 Data gravity algorithm flow

1 医生推荐导诊系统的设计

1.1 关键技术

采用B/S模式进行开发设计,选择Vue搭建系统前端,使用ElementUI制作网页,缓解前端开发的代码压力。后端采用Django 框架进行搭建。Django框架具有很多功能强大的第三方插件及代码复用的特点,服务方式便利,后台开发过程中,可以以插件形式出现并为系统提供服务。医生推荐导诊系统需具备存储时间长、数据库容量大的特点,故设计采用MySQL及Redis数据库实现。

1.2 需求分析与概念设计

该系统的需求主要包括功能性需求与非功能性需求,其中功能性需求主要满足医生推荐、预约挂号、患者就医历史数据查询等。非功能需求要求本系统具有可靠性、稳定性、兼容性等特征。整个系统的逻辑概念分为用户层、逻辑层及数据层三部分,架构如图4所示,其中用户层满足患者和医生的需要进行用户注册、信息查询、预约挂号、就医诊断等。逻辑层主要满足系统的逻辑结构,进行用户信息管理、医院科室管理、医生导诊服务等。服务层主要满足患者数据的存储、数据文件的调用及历史数据的保存。

图4 系统逻辑概念Fig.4 System logic concept

数据流如图5所示。就诊人在使用系统时需提前进行注册,完善相关信息,填写病状信息或就医记录,向系统发出挂号信息。该系统根据相关信息进行智能推荐,完成就医流程。

图5 数据流Fig.5 Data flow

1.3 数据库设计

基于ATERDE与AHP的数据引力算法智能导诊系统的E-R图如图6所示。通过后台管理就诊人和医生,就诊人需提交个人信息,包括姓名、身份证号、年龄、性别、联系方式,医生提交个人简介、职称、擅长领域、科室,系统根据就诊人的需求及症状信息智能推荐医生,完成就医流程。

图6 智能导诊系统的E-R图Fig.6 E-R diagram of intelligent guidance system

智能导诊系统主要由用户注册、预约挂号、智能导诊、医生推荐、医生诊断、药品管理、挂号缴费等部分组成,每个模块有相应的子模块。其中用户注册为就诊人根据系统指导完成信息填报及相关操作。预约挂号提供提前挂号服务,就诊人根据系统推荐选择合适的医生进行挂号。智能导诊根据就诊人的状况完成科室推荐及相关医生查询。医生推荐是在智能导诊完成后,系统根据ATERDE与AHP的数据引力算法实现医生推荐。医生诊断是医生对患者的症状信息进行诊断、医嘱等。药品管理是医生根据患者病情开药,后台管理员也可对药品库存进行管理及调配。挂号缴费是为患者自动生成挂号、药品缴费信息,方便缴费并生成电子病例,为下次就诊提供参照。其时序图如图7所示。

图7 时序图Fig.7 Sequence chart

2 医生推荐导诊系统的实现与测试

2.1 系统实现

基于ATERDE和AHP数据引力分类算法的医生推荐导诊系统科室推荐部分主要完成就诊人系统填写,系统根据用户信息显示就诊科室及医生信息。其核心代码如下:

classDepartmentRecommendation:

def__init__(self,department_data):

self.department_data=department_data

defrecommend_department(self,symptoms):

department_scores={}

fordepartment,attributesinself.department_data.items():

score=0

forattribute,weightinattributes.items():

ifattributeinsymptoms:

score+=weight

department_scores[department=score

recommended_department=max(department_scores,key=department_scores.get)

returnrecommended_department

根据就诊人填写的相关信息,医生进行医嘱及药品推荐,系统根据医生填写记录完成诊费计算,生成问诊记录。其核心代码如下:

classDoctorRecommendation:

def__init__(self,doctor_data):

self.doctor_data=doctor_data

defrecommend_doctor(self,department):

ifdepartmentinself.doctor_data:

returnself.doctor_data[department]

else:

return“Nodoctorsavailableforthisdepartment.”

用户管理模块主要完成对就诊人及医生的信息管理,可以看到科室管理、医生管理、药品管理、患者管理四个侧边栏。其核心代码如下:

classUserManagement:

defadd_user(self,user_id,name,age):

self.users[user_id] = {“name”:name,“age”:age}

defget_user_info(self,user_id):

ifuser_idinself.users:

returnself.users[user_id]

else:

return“Usernotfound.”

2.2 系统测试

为了进一步检验系统的可行性,采用黑盒测试系统的基本功能模块,采用白盒测试系统结构的完整性,对系统登录、信息监测、基本功能模块等内容进行测试,测试内容如表1所示。系统测试可验证用户身份信息,检验系统是否具有较强的信息检索功能及信息测试功能,以保证信息在各个模块传输中的完整性,使系统实现最优性能。

表1 主要测试说明Tab.1 Main test description

为了检验测试的完整性,对科室推荐模块进行用户性别、年龄、症状等信息测试,点击科室推荐按钮,得出5条测试数据,如表2所示,每条测试数据包含就诊人的年龄、性别等信息,经分析表明推荐结果合理,系统设计符合要求。

表2 系统测试结果Tab.2 System test result

该系统可提升临床诊断的准确性及效率,为医生提供有力的决策支持。

猜你喜欢
挂号引力科室
科室层级护理质量控制网的实施与探讨
分析探讨自助挂号系统在门诊管理中的应用效果
爱紧张的猫大夫
视歧——一位住错科室的患者
我会独自挂号
引力
“合作科室”为何被坏了名声
感受引力
A dew drop
挂号中介服务“赔本赚吆喝”