周思銘,何 佳
(西安思源學(xué)院,西安 710038)
提出ATERDE與AHP的數(shù)據(jù)引力混合科室分診算法和基于向量模糊化與自適應(yīng)長度裁剪的混合過濾醫(yī)生推薦算法[1-2],根據(jù)患者輸入主訴癥狀、醫(yī)生擅長領(lǐng)域,為患者推薦與其病情相關(guān)的醫(yī)生,實(shí)現(xiàn)高效就醫(yī),合理化利用醫(yī)院資源,智能導(dǎo)診模型如圖1所示。
圖1 智能導(dǎo)診模型Fig.1 Intelligent referral model
1)數(shù)據(jù)引力分類算法。引力分類算法具有良好的準(zhǔn)確度及穩(wěn)定性,可用于多種領(lǐng)域,其分類原理如圖2所示。
圖2 數(shù)據(jù)引力分類算法原理Fig.2 Principle of data gravity classification algorithm
2)基于ATERDE與AHP的數(shù)據(jù)引力算法。這是引力分類算法在醫(yī)療導(dǎo)診系統(tǒng)中的一種應(yīng)用,根據(jù)醫(yī)生個(gè)人信息及病人就診記錄通過ATERDE算法挖掘醫(yī)生與病人之間的時(shí)序關(guān)系及規(guī)律,用AHP算法對醫(yī)生推薦結(jié)果進(jìn)行深入分析及決策[3],利用醫(yī)生與患者之間的相互作用,得到精準(zhǔn)高效的醫(yī)生推薦結(jié)果,專家根據(jù)其豐富的知識經(jīng)驗(yàn)利用AHP分析方法獲取病癥-專家經(jīng)驗(yàn)權(quán)重,根據(jù)患者數(shù)據(jù)信息利用ATERDE算法獲取客觀權(quán)重信息,利用全局?jǐn)?shù)據(jù)引力算法與局部引力算法預(yù)測出最大可能推薦科室,算法流程如圖3所示。
圖3 數(shù)據(jù)引力算法流程Fig.3 Data gravity algorithm flow
采用B/S模式進(jìn)行開發(fā)設(shè)計(jì),選擇Vue搭建系統(tǒng)前端,使用ElementUI制作網(wǎng)頁,緩解前端開發(fā)的代碼壓力。后端采用Django 框架進(jìn)行搭建。Django框架具有很多功能強(qiáng)大的第三方插件及代碼復(fù)用的特點(diǎn),服務(wù)方式便利,后臺(tái)開發(fā)過程中,可以以插件形式出現(xiàn)并為系統(tǒng)提供服務(wù)。醫(yī)生推薦導(dǎo)診系統(tǒng)需具備存儲(chǔ)時(shí)間長、數(shù)據(jù)庫容量大的特點(diǎn),故設(shè)計(jì)采用MySQL及Redis數(shù)據(jù)庫實(shí)現(xiàn)。
該系統(tǒng)的需求主要包括功能性需求與非功能性需求,其中功能性需求主要滿足醫(yī)生推薦、預(yù)約掛號、患者就醫(yī)歷史數(shù)據(jù)查詢等。非功能需求要求本系統(tǒng)具有可靠性、穩(wěn)定性、兼容性等特征。整個(gè)系統(tǒng)的邏輯概念分為用戶層、邏輯層及數(shù)據(jù)層三部分,架構(gòu)如圖4所示,其中用戶層滿足患者和醫(yī)生的需要進(jìn)行用戶注冊、信息查詢、預(yù)約掛號、就醫(yī)診斷等。邏輯層主要滿足系統(tǒng)的邏輯結(jié)構(gòu),進(jìn)行用戶信息管理、醫(yī)院科室管理、醫(yī)生導(dǎo)診服務(wù)等。服務(wù)層主要滿足患者數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)文件的調(diào)用及歷史數(shù)據(jù)的保存。
圖4 系統(tǒng)邏輯概念Fig.4 System logic concept
數(shù)據(jù)流如圖5所示。就診人在使用系統(tǒng)時(shí)需提前進(jìn)行注冊,完善相關(guān)信息,填寫病狀信息或就醫(yī)記錄,向系統(tǒng)發(fā)出掛號信息。該系統(tǒng)根據(jù)相關(guān)信息進(jìn)行智能推薦,完成就醫(yī)流程。
圖5 數(shù)據(jù)流Fig.5 Data flow
基于ATERDE與AHP的數(shù)據(jù)引力算法智能導(dǎo)診系統(tǒng)的E-R圖如圖6所示。通過后臺(tái)管理就診人和醫(yī)生,就診人需提交個(gè)人信息,包括姓名、身份證號、年齡、性別、聯(lián)系方式,醫(yī)生提交個(gè)人簡介、職稱、擅長領(lǐng)域、科室,系統(tǒng)根據(jù)就診人的需求及癥狀信息智能推薦醫(yī)生,完成就醫(yī)流程。
圖6 智能導(dǎo)診系統(tǒng)的E-R圖Fig.6 E-R diagram of intelligent guidance system
智能導(dǎo)診系統(tǒng)主要由用戶注冊、預(yù)約掛號、智能導(dǎo)診、醫(yī)生推薦、醫(yī)生診斷、藥品管理、掛號繳費(fèi)等部分組成,每個(gè)模塊有相應(yīng)的子模塊。其中用戶注冊為就診人根據(jù)系統(tǒng)指導(dǎo)完成信息填報(bào)及相關(guān)操作。預(yù)約掛號提供提前掛號服務(wù),就診人根據(jù)系統(tǒng)推薦選擇合適的醫(yī)生進(jìn)行掛號。智能導(dǎo)診根據(jù)就診人的狀況完成科室推薦及相關(guān)醫(yī)生查詢。醫(yī)生推薦是在智能導(dǎo)診完成后,系統(tǒng)根據(jù)ATERDE與AHP的數(shù)據(jù)引力算法實(shí)現(xiàn)醫(yī)生推薦。醫(yī)生診斷是醫(yī)生對患者的癥狀信息進(jìn)行診斷、醫(yī)囑等。藥品管理是醫(yī)生根據(jù)患者病情開藥,后臺(tái)管理員也可對藥品庫存進(jìn)行管理及調(diào)配。掛號繳費(fèi)是為患者自動(dòng)生成掛號、藥品繳費(fèi)信息,方便繳費(fèi)并生成電子病例,為下次就診提供參照。其時(shí)序圖如圖7所示。
圖7 時(shí)序圖Fig.7 Sequence chart
基于ATERDE和AHP數(shù)據(jù)引力分類算法的醫(yī)生推薦導(dǎo)診系統(tǒng)科室推薦部分主要完成就診人系統(tǒng)填寫,系統(tǒng)根據(jù)用戶信息顯示就診科室及醫(yī)生信息。其核心代碼如下:
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
根據(jù)就診人填寫的相關(guān)信息,醫(yī)生進(jìn)行醫(yī)囑及藥品推薦,系統(tǒng)根據(jù)醫(yī)生填寫記錄完成診費(fèi)計(jì)算,生成問診記錄。其核心代碼如下:
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.”
用戶管理模塊主要完成對就診人及醫(yī)生的信息管理,可以看到科室管理、醫(yī)生管理、藥品管理、患者管理四個(gè)側(cè)邊欄。其核心代碼如下:
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.”
為了進(jìn)一步檢驗(yàn)系統(tǒng)的可行性,采用黑盒測試系統(tǒng)的基本功能模塊,采用白盒測試系統(tǒng)結(jié)構(gòu)的完整性,對系統(tǒng)登錄、信息監(jiān)測、基本功能模塊等內(nèi)容進(jìn)行測試,測試內(nèi)容如表1所示。系統(tǒng)測試可驗(yàn)證用戶身份信息,檢驗(yàn)系統(tǒng)是否具有較強(qiáng)的信息檢索功能及信息測試功能,以保證信息在各個(gè)模塊傳輸中的完整性,使系統(tǒng)實(shí)現(xiàn)最優(yōu)性能。
表1 主要測試說明Tab.1 Main test description
為了檢驗(yàn)測試的完整性,對科室推薦模塊進(jìn)行用戶性別、年齡、癥狀等信息測試,點(diǎn)擊科室推薦按鈕,得出5條測試數(shù)據(jù),如表2所示,每條測試數(shù)據(jù)包含就診人的年齡、性別等信息,經(jīng)分析表明推薦結(jié)果合理,系統(tǒng)設(shè)計(jì)符合要求。
表2 系統(tǒng)測試結(jié)果Tab.2 System test result
該系統(tǒng)可提升臨床診斷的準(zhǔn)確性及效率,為醫(yī)生提供有力的決策支持。