李民璽 馬凱 楊曉東
摘? 要: 本項目旨在提高帕金森病的醫(yī)療診斷效率和服務(wù)水平、降低誤診漏診率、減輕醫(yī)務(wù)工作者的工作負(fù)擔(dān)。該項目采用Python的自然語言處理技術(shù)、分層的javaWeb設(shè)計模塊,量表評估算法,設(shè)計一款基于Web平臺的帕金森病智能輔助診斷系統(tǒng),采用數(shù)據(jù)庫、電子病歷、Java編程、網(wǎng)頁編輯技術(shù)等技術(shù),構(gòu)建集帕金森自主評估量表、個人健康檔案、案例庫、醫(yī)患對接功能為一體的智能輔助診斷系統(tǒng)。從而達(dá)到了提高醫(yī)療診斷的效率和服務(wù)水平,降低誤診漏診率的目的。
關(guān)鍵詞: 帕金森;智能輔助診斷;web平臺;Python
中圖分類號: R443? ? 文獻(xiàn)標(biāo)識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.10.009
本文著錄格式:李民璽,馬凱,楊曉東. 基于web平臺的帕金森智能輔助診斷系統(tǒng)[J]. 軟件,2020,41(10):3437
【Abstract】: This project adopts Python natural language processing technology, layered java web design module and scale evaluation algorithm to design an intelligent auxiliary diagnosis system for Parkinsons disease based on Web platform, and adopts database, electronic medical record, Java programming, web page editing technology and other technologies to build a Parkinson's independent evaluation scale, personal health archives, case library, and doctor-patient docking function Intelligent assistant diagnosis system. So as to improve the efficiency and service level of medical diagnosis and reduce the rate of misdiagnosis and missed diagnosis.
【Key words】: Parkinson; Intelligent auxiliary diagnosis; Web platform; Python
0? 引言
隨著社會老齡化,帕金森病的發(fā)病率、患病率及致殘率均呈增高的趨勢,現(xiàn)已成為繼腫瘤、心腦血管病之后中老年的“第三殺手”。帕金森病臨床上以體格檢查、化驗檢查與影像檢查為主要的診斷手段,但診斷結(jié)果不同程度受到醫(yī)生臨床經(jīng)驗、知識水平和工作狀態(tài)等主觀因素的影響,讀片及診斷水平參差不齊,導(dǎo)致漏診誤診,延誤最佳治療時間。
1? 項目研究背景及意義
帕金森綜合癥(PD)是神經(jīng)內(nèi)科較為常見的疾病,由腦黑質(zhì)多巴胺能神經(jīng)元的變性壞死引起紋狀體多巴胺含量積聚降低,從而導(dǎo)致運(yùn)動功能障礙。患者臨床表現(xiàn)為步態(tài)不穩(wěn)、靜止性震顫、動作變緩、肌張力增加等[1]。
中國目前帕金森病患者人數(shù)已達(dá)到約200多萬人,約占全球50%。同時,目前帕金森發(fā)病呈現(xiàn)年輕化趨勢,臨床治療中不乏低于40歲發(fā)病的青年帕金森患者[2]。全球?qū)τ谂两鹕闹委煹闹饕侄螢樗幬镏委?,此外,心理輔助治療、良好的康復(fù)治療也能起到一定的緩解作用,誠然,早期的藥物治療及相應(yīng)的輔助治療并不能徹底地干預(yù)PD地發(fā)作,但推遲藥物治療會對患者的生活質(zhì)量造成嚴(yán)重影響。因此,及早地確診并對之進(jìn)行干預(yù)是針對PD的主要治療方向。
對比我國與西方發(fā)達(dá)國家的PD患病率不難看出,人均壽命長短與PD患病率有著必然的聯(lián)系。研究表明,作為一種典型的老年慢性疾病,帕金森病在老年人群中患病率成倍增加,65歲以上老年人群患病率為1%~2%、85歲以上為3%~5%[3]。隨著我國人口老齡化日趨嚴(yán)重,PD患病率必將不斷提升。因此,帕金森智能輔助診斷系統(tǒng)便體現(xiàn)了其重要性,減輕了醫(yī)務(wù)工作者的工作負(fù)擔(dān),提高了PD醫(yī)療診斷的效率和服務(wù)水平,降低誤診漏診率。
2? 項目研究目標(biāo)及主要內(nèi)容
2.1? 項目目標(biāo)
針對帕金森患者入院診斷流程設(shè)計一套智能輔助診斷系統(tǒng),通過對病歷匯總、帕金森量表智能算法的解析與重構(gòu),實現(xiàn)數(shù)據(jù)的可視化、量表在線評測。醫(yī)生通過查詢患者所填量表并進(jìn)行反饋,達(dá)到提前預(yù)防、提前決策的目的,提高了診斷的效率和服務(wù)水平,降低誤診漏診率。
2.2? 項目內(nèi)容
本項目采用Python的自然語言處理技術(shù)、分層的javaWeb設(shè)計模塊、量表評估算法,對帕金森病的相關(guān)量表進(jìn)行智能分析,設(shè)計一款基于Web平臺并結(jié)合Mysql數(shù)據(jù)庫的帕金森病智能輔助診斷系統(tǒng),患者通過患者窗口填寫量表并查看評估結(jié)果,及醫(yī)生反饋,從而對自己的病情有更明確的認(rèn)識;醫(yī)生通過進(jìn)入醫(yī)生窗口,及時查看病情,更新病歷數(shù)據(jù)庫并對患者進(jìn)行反饋。從而達(dá)到了提高醫(yī)療診斷的效率和服務(wù)水平,降低誤診漏診率的目的。
2.2.1? 基于Python的自然語言處理技術(shù)
本系統(tǒng)基于機(jī)器學(xué)習(xí),針對數(shù)量龐大的電子病歷,通過大數(shù)據(jù)分析,并結(jié)合自然語言處理技術(shù),對相應(yīng)的有效病歷數(shù)據(jù)進(jìn)行提取、分析、推斷,獲取PD治療信息,評估PD等級。在醫(yī)院病歷文本數(shù)據(jù)庫的基礎(chǔ)上,進(jìn)行詞典庫的構(gòu)建。首先,將病歷文本進(jìn)行中文分詞,將連續(xù)的字序列按照相應(yīng)算法規(guī)則重新組合成詞序列。其次,將新的詞序列進(jìn)行詞性標(biāo)注與命名實體識別、標(biāo)注相關(guān)語義、語法分析,達(dá)到消除詞性兼類歧義及語義分析的目的。最后通過臨床診斷規(guī)則對關(guān)鍵信息進(jìn)行提取,實現(xiàn)預(yù)測診斷。如圖1為電子病歷自然語言處理技術(shù)流程圖。
2.2.2? 分層的javaWeb模式運(yùn)行流程
用戶首先打開一個login.JSP頁面,這個JSP頁面用于收集用戶輸入的數(shù)據(jù)[4](使用Form表單實現(xiàn)),如需注冊則跳轉(zhuǎn)如register.JSP;當(dāng)用戶單擊提交按鈕時,此JSP頁面被提交到對應(yīng)的customer.Servlet,此時工作轉(zhuǎn)向Servlet。
Servlet將提交到的數(shù)據(jù)進(jìn)行處理,處理過程如下:首先對數(shù)據(jù)進(jìn)行合法性驗證、亂碼處理等,接著實例化customer.DAO,調(diào)用DAO的方法進(jìn)行數(shù)據(jù)庫數(shù)據(jù)的更新查詢操作,將DAO返回的數(shù)據(jù)進(jìn)行保存,保存的位置可選(request,session等),最后進(jìn)行頁面的跳轉(zhuǎn)(結(jié)果反饋在list.JSP上)。
在Servlet調(diào)用DAO的方法過程中,DAO的處理過程如下:首先連接數(shù)據(jù)庫(這些操作可以放在DAO的構(gòu)造函數(shù)當(dāng)中,也可以寫成單獨(dú)的方法。本系統(tǒng)則把相關(guān)語句封裝在一個xml中),接著處理查詢方法,這里給出基本步驟。先按查詢語句及傳過來的參數(shù)進(jìn)行數(shù)據(jù)庫的查詢得到一個ResultSet結(jié)果集,為了方便將結(jié)果返回給Servlet及方便后面的顯示,現(xiàn)將結(jié)果進(jìn)行封裝并以ArraryList或者JSON串,xml串等等的形式返回給servlet。為了進(jìn)行數(shù)據(jù)的封裝,這里就需要實例化一個JavaBean,這個JavaBean的字段與數(shù)據(jù)庫表當(dāng)中的字段一一對應(yīng),并為各個字段添加get(),set()方法。
Serlvet在得到數(shù)據(jù)后,再將頁面進(jìn)行跳轉(zhuǎn),此時數(shù)據(jù)已保存下來。我們可以在另外一個JSP頁面當(dāng)中將數(shù)據(jù)提取出來,并按一定的格式進(jìn)行排列。至此,一個完整的查詢操作就完成了。如圖2為本系統(tǒng)部分分層模式圖。
2.2.3? 量表評估算法
以H-Y分級量表為例。H-Y分級量表共5分級,0級無體征;1級單側(cè)肢體癥狀;1.5級單側(cè)肢體和軀干癥狀;2級雙側(cè)肢體癥狀,無平衡障礙;2.5級輕度雙側(cè)肢休癥狀,輕度平衡障礙;3級中度雙側(cè)肢體癥狀,平衡障礙,許多功能受限;4級癥狀嚴(yán)重,功能嚴(yán)重受限;5級患者限制在輪椅或床上,需要他人照顧[5]。圖3所示為量表在線測評。
其部分實現(xiàn)代碼如下:
if(score==0)
obj.value="診斷:階段0,無體征,";
else if(score>0&&score<=16.7)
obj.value="診斷:階段1,單側(cè)患病,";
else if(score>16.7&&score<=33.4)
obj.value="診斷:階段1.5,單側(cè)患病,并影響到中軸的肌肉,";
else if(score>=51&&score<=100)
obj.value="診斷:階段3,雙側(cè)患病,有姿勢平衡障礙,后拉試驗陽性,";
else
obj.value="診斷:階段5,不能起床,或生活在輪椅上,";
var x=score/147;
if(x==1)
obj.value=obj.value+"自主神經(jīng)功能障礙,如吞咽困難,大小便失禁。臥床不起。";
else if(x>=0.9&&x<1)
obj.value=obj.value+"完全依賴他人,不能自理,完全殘疾。";
else if(x>=0.1&&x<0.2)
obj.value=obj.value+"完全獨(dú)立。能夠做所有的家務(wù),有一定程度的緩慢、困難或損害??赡苄枰獌杀稌r間。開始意識到有困難。";
else
obj.value=obj.value+"完全獨(dú)立。能夠做所有的家務(wù),沒有緩慢、困難或損害。基本上正常,沒有意識到有什么困難。";
window.location.href="MyJsp.jsp";}
2.2.4? 基于Python接口的JavaWeb平臺設(shè)計
使用python進(jìn)程運(yùn)行深度學(xué)習(xí)中訓(xùn)練的模型,在java應(yīng)用程序中調(diào)用python進(jìn)程提供的服務(wù)。[6]由于醫(yī)生患者登陸權(quán)限不同,所以設(shè)計了不同的登錄界面,頁面簡潔明了,為患者和醫(yī)生提供不同的服務(wù)。本系統(tǒng)登錄后,為患者和醫(yī)生提供了兩個不同登陸界面?;颊呓缑鎯H開放了量表填寫及查看已填量表的功能,在有效記錄診療信息的同時也能防止隱私泄露。醫(yī)生界面不僅開放了患者上述功能,還開放了所有患者已填量表的查詢功能,并給患者及時做出反饋,實現(xiàn)數(shù)據(jù)的有效性和共享性[7],提高了診斷的效率。
3? 系統(tǒng)實現(xiàn)情況
3.1? 網(wǎng)頁的功能結(jié)構(gòu)建模
患者登陸后,用戶登錄時可以自行輸入相關(guān)的健康數(shù)據(jù)[8],并填寫量表,通過網(wǎng)頁將數(shù)據(jù)傳輸給案例庫并將數(shù)據(jù)與醫(yī)患平臺連接。醫(yī)生登錄后,調(diào)取案例庫的數(shù)據(jù),連接醫(yī)患平臺。醫(yī)生和患者通過醫(yī)患平臺實現(xiàn)數(shù)據(jù)交互。患者查看評估結(jié)果及醫(yī)生反饋,對自己的病情有更明確的認(rèn)識;醫(yī)生及時查看患者病情,更新病歷數(shù)據(jù)庫并對患者進(jìn)行反饋。從而達(dá)到了提高醫(yī)療診斷的效率和服務(wù)水平,降低誤診漏診率的目的。帕金森智能輔助診斷系統(tǒng)的技術(shù)路線如圖4所示。
3.2? 患者信息管理
醫(yī)生通過患者健康檔案管理界面,可查詢所有所屬患者信息,包括編號、姓名、性別、年齡、床號、入院日期、主訴、診斷結(jié)果、治療方案等[9],并可對患者信息進(jìn)行編輯與刪除。
目前帕金森病應(yīng)用的治療手段主要是改善癥狀,但尚不能阻止病情的進(jìn)展,故患者可以通過本系統(tǒng)建立、儲存終身的電子病歷,為醫(yī)生直觀有效地調(diào)取、查閱、檢索診療信息提供了便利。不僅極大地提高了工作效率,為醫(yī)生提供了利用患者信息的最有效途徑,也可將病情的前后發(fā)展進(jìn)行對比,制定更加合理的診療方案。患者信息管理查詢?nèi)鐖D5所示。