江海戩 蘇哲 周長(zhǎng)勇 辛立強(qiáng)
摘要:??針對(duì)急性心肌梗死患者出院后的健康管理問(wèn)題,本文設(shè)計(jì)開(kāi)發(fā)了一套急性心肌梗死患者的信息化實(shí)施方案。整個(gè)系統(tǒng)采用B/S架構(gòu),使用Python語(yǔ)言編寫(xiě)和SQLite進(jìn)行數(shù)據(jù)存儲(chǔ),主要功能包括數(shù)據(jù)收集和信息交流兩大類(lèi),數(shù)據(jù)收集為收集保存患者數(shù)據(jù),供醫(yī)生在后臺(tái)進(jìn)行數(shù)據(jù)統(tǒng)計(jì)和分析,信息交流包含寫(xiě)文章、發(fā)郵件和進(jìn)行意見(jiàn)反饋。測(cè)試結(jié)果表明,該系統(tǒng)各種功能均表現(xiàn)正常,具有較好的兼容性和穩(wěn)定性。該研究對(duì)提高急性心肌梗死患者生存率,促進(jìn)醫(yī)生和患者出院后的溝通交流具有重要意義。
關(guān)鍵詞:??急性心肌梗死;?隨訪(fǎng)系統(tǒng);?B/S架構(gòu);?Python
中圖分類(lèi)號(hào):?TP315;?R319?文獻(xiàn)標(biāo)識(shí)碼:?A
收稿日期:?2019-06-11;?修回日期:?2019-10-27
基金項(xiàng)目:??青島市科技局基金項(xiàng)目(17-3-3-31-nsh)
作者簡(jiǎn)介:??江海戩,男,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)技術(shù)應(yīng)用。
通信作者:??辛立強(qiáng),男,碩士,副教授,碩士生導(dǎo)師,主要研究方向?yàn)橛?jì)算機(jī)技術(shù)應(yīng)用。Email:?xlqiang62@163.com
急性心肌梗死(acute?myocardial?infarction,AMI)是臨床常見(jiàn)的急性心血管疾病,病情重,變化快,死亡率高[1]。中國(guó)心血管病防治工作在取得初步成效的同時(shí),又面臨新的嚴(yán)峻挑戰(zhàn)[2]。近年來(lái),中國(guó)心血管病患病率及死亡率仍處于上升階段,今后10年心血管病患病人數(shù)仍將快速增長(zhǎng)[2]。根據(jù)在52個(gè)國(guó)家進(jìn)行的INTERHEART研究,與心肌梗死相關(guān)的潛在可糾正危險(xiǎn)因素包括吸煙、糖尿病、高血壓、腹型肥胖、蔬菜水果攝入量少、運(yùn)動(dòng)少、酒精攝入過(guò)多和載脂蛋白(Apo)B/Apo?A比例(5∶1),90%的冠心病歸因于上述危險(xiǎn)因素[3]。全球疾病負(fù)擔(dān)系列研究表明,改善上述危險(xiǎn)因素可減少冠心病發(fā)生率83%~89%,減少冠心病死亡率78%~85%[4]。與西方國(guó)家對(duì)于該疾病的診療模式相比,我國(guó)急性心肌梗死患者數(shù)量眾多,心臟康復(fù)及出院后隨訪(fǎng)工作開(kāi)展滯后。為了更好的解決該問(wèn)題,本文設(shè)計(jì)開(kāi)發(fā)了急性心?;颊唠S訪(fǎng)管理系統(tǒng),高效的進(jìn)行心肌梗死患者隨訪(fǎng)工作。該系統(tǒng)利用計(jì)算機(jī)大容量的存貯設(shè)備進(jìn)行數(shù)據(jù)收集存儲(chǔ)和不受空間限制的互聯(lián)網(wǎng)進(jìn)行醫(yī)患信息交流,有效提高了醫(yī)院服務(wù)水平[5]。同時(shí),結(jié)合目前醫(yī)院信息系統(tǒng)的發(fā)展水平現(xiàn)狀和用戶(hù)自身?xiàng)l件,采取B/S架構(gòu)模式構(gòu)造隨訪(fǎng)系統(tǒng),通過(guò)實(shí)時(shí)的對(duì)患者血壓、血糖、心率等信息進(jìn)行收集,不僅起到及時(shí)預(yù)防治療的作用,還推進(jìn)了大數(shù)據(jù)分析對(duì)醫(yī)學(xué)研究的進(jìn)程。
1?系統(tǒng)功能
系統(tǒng)主要功能分為數(shù)據(jù)收集、查寫(xiě)博客、收發(fā)郵件和進(jìn)行意見(jiàn)反饋,系統(tǒng)用例圖如圖1所示。該系統(tǒng)分為醫(yī)生、患者和管理員3種訪(fǎng)問(wèn)方式,分別對(duì)應(yīng)不同的系統(tǒng)界面和擁有不同的系統(tǒng)功能,功能結(jié)構(gòu)如圖2所示。
1.1?數(shù)據(jù)收集
患者數(shù)據(jù)收集包含記錄管理患者的基本信息、出院信息、復(fù)診信息、再次住院信息和每日身體各項(xiàng)指標(biāo)。患者初診時(shí),醫(yī)生登錄系統(tǒng),對(duì)患者的身份證號(hào)、姓名、性別和年齡等基本信息進(jìn)行注冊(cè)記錄,在患者治療出院后,醫(yī)生可以對(duì)患者的出院情況進(jìn)行記錄管理,例如出院號(hào)、出院時(shí)間及患者出院時(shí)的身體各項(xiàng)指標(biāo)。身體各項(xiàng)指標(biāo)包含了High?density?liptein?cholesterol、Low?density?lipoprotein?chesterol、Brain?natriuretic?peptide、射血分?jǐn)?shù)、Alanine?aminotransferase和Aspartate?aminotransferase等信息。為進(jìn)一步調(diào)查分析患者出院后身體健康狀況的變化,患者出院后醫(yī)生和患者可以在系統(tǒng)的每日情況功能模塊中記錄每天服藥、血壓、心率和血糖等信息。部分患者可能在出院后又突發(fā)某些疾病再次住院,詳細(xì)的再住院情況往往對(duì)醫(yī)生了解患者身體狀況也起到較大作用,由此系統(tǒng)提供再住院模塊功能,由醫(yī)生記錄管理,再住院包含了再次住院的原因和花費(fèi)等信息。面對(duì)部分慢性疾病,僅靠初診診斷不夠,還需要多次復(fù)診進(jìn)行確認(rèn)。醫(yī)生可以通過(guò)復(fù)診模塊記錄患者復(fù)診時(shí)各項(xiàng)身體指標(biāo)情況及醫(yī)生建議和用藥等信息。通過(guò)數(shù)據(jù)收集模塊,醫(yī)生可方便在后臺(tái)對(duì)患者信息進(jìn)行查看和統(tǒng)計(jì)分析,從而進(jìn)行相關(guān)醫(yī)學(xué)研究。
1.2?查寫(xiě)博客
查寫(xiě)博客包含寫(xiě)文章和查看文章。對(duì)文章進(jìn)行評(píng)論、收藏和點(diǎn)贊,更換頭像,填寫(xiě)簡(jiǎn)介,對(duì)作者進(jìn)行關(guān)注,優(yōu)秀文章推送及新消息提醒。
在查寫(xiě)博客功能中,醫(yī)生可以分享流行病預(yù)防、疾病介紹和手術(shù)心得等相關(guān)文章,供其他醫(yī)生和患者查看學(xué)習(xí);撰寫(xiě)文章由醫(yī)生完成,可以給文章設(shè)置分享權(quán)限,例如僅自己、僅醫(yī)生和全部。在博客首頁(yè)可以查看所有醫(yī)生的文章,在“我的博客”欄中查看和管理自己所寫(xiě)的文章,通過(guò)關(guān)注和收藏等操作,可以快速找到和查看自己感興趣的文章內(nèi)容。患者也可以查看文章,對(duì)文章進(jìn)行收藏、評(píng)論和對(duì)醫(yī)生進(jìn)行關(guān)注等。
1.3?收發(fā)郵件
收發(fā)郵件包含查看郵件、寫(xiě)郵件、群發(fā)郵件、星標(biāo)郵件、編輯通訊錄、已發(fā)送郵件、草稿箱、垃圾箱和回收站。在收發(fā)郵件中,醫(yī)生與醫(yī)生之間可以進(jìn)行醫(yī)學(xué)上的信息交流,醫(yī)生對(duì)患者可以實(shí)現(xiàn)病情解答,相關(guān)信息通知?;颊呖梢越o醫(yī)生發(fā)送郵件進(jìn)行相關(guān)病情詢(xún)問(wèn),患者與患者之間可以進(jìn)行病情交流。
1.4?意見(jiàn)反饋
在意見(jiàn)反饋中,醫(yī)生不僅可以查看回復(fù)患者對(duì)醫(yī)院服務(wù)方面的意見(jiàn)和建議,還可以根據(jù)對(duì)系統(tǒng)的使用,向管理員提出建議和提出對(duì)誤刪信息進(jìn)行恢復(fù)等操作的申請(qǐng)。管理員不僅可以查看和處理用戶(hù)提交的意見(jiàn)和建議,還可以查看系統(tǒng)IP訪(fǎng)問(wèn)記錄,對(duì)各個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行查看修改及系統(tǒng)維護(hù)。
2?系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)圖如圖3所示,系統(tǒng)使用B/S架構(gòu),客戶(hù)端和服務(wù)器通過(guò)HTTP協(xié)議進(jìn)行數(shù)據(jù)傳輸。在應(yīng)用層上,用戶(hù)通過(guò)Web頁(yè)面實(shí)現(xiàn)信息交互和數(shù)據(jù)處理;在處理層上,用戶(hù)實(shí)現(xiàn)登錄驗(yàn)證、權(quán)限驗(yàn)證和數(shù)據(jù)驗(yàn)證等;在數(shù)據(jù)層上,用戶(hù)可實(shí)現(xiàn)信息存儲(chǔ)、刪除、修改和查詢(xún)。
系統(tǒng)前端主要用HTML5、CSS和JS,使用Bootstrap開(kāi)源工具包對(duì)界面進(jìn)行美化。前端和后端的數(shù)據(jù)傳輸使用Ajax,傳輸數(shù)據(jù)格式為Json格式[6-8]。系統(tǒng)后端采用Django開(kāi)源Web框架,用Python進(jìn)行代碼編寫(xiě),并用SQLite3進(jìn)行數(shù)據(jù)存儲(chǔ)[9-11]。
在Django的app設(shè)計(jì)上,分為醫(yī)生和患者兩類(lèi),分別對(duì)應(yīng)以collection、email、blog和feedback命名的app。
3?功能實(shí)現(xiàn)
基于B/S架構(gòu)實(shí)現(xiàn)的急性心?;颊唠S訪(fǎng)管理系統(tǒng),將數(shù)據(jù)的分析處理集中到服務(wù)器上,使醫(yī)生僅僅通過(guò)瀏覽器就可以進(jìn)行數(shù)據(jù)處理,使用簡(jiǎn)單且實(shí)用性強(qiáng)[12-14]。通過(guò)調(diào)查分析醫(yī)生界面的設(shè)計(jì),選擇用電腦瀏覽器打開(kāi)的方式,醫(yī)生界面如圖4所示。
用電腦瀏覽器打開(kāi)該界面,不僅可以為醫(yī)生展示更多的信息和功能,而且由于醫(yī)院電腦設(shè)備齊全,更符合實(shí)際應(yīng)用[15-17]。對(duì)于患者界面,本研究專(zhuān)門(mén)設(shè)計(jì)開(kāi)發(fā)了適合手機(jī)瀏覽器打開(kāi)的網(wǎng)頁(yè),更加方便患者進(jìn)行訪(fǎng)問(wèn),患者界面如圖5所示。
在醫(yī)生界面左側(cè)菜單設(shè)計(jì)上,使用bootstrap提供的組件,首先通過(guò)css中的link引入下載好的bootstrap.css和bootstraptheme.css,然后在ul標(biāo)簽中添加class="nav?navpills?navstacked?ull",其次在ul下的li標(biāo)簽中添加role="presentation"。通過(guò)設(shè)置li中是否含有class="active",決定該菜單是否處于激活狀態(tài)。在li中通過(guò)添加a標(biāo)簽,跳轉(zhuǎn)不同的url來(lái)實(shí)現(xiàn)子版中頁(yè)面信息的不同。
由于患者人數(shù)多,每個(gè)患者對(duì)應(yīng)的信息較為復(fù)雜,為了更好的瀏覽查看每個(gè)患者的相關(guān)信息,在醫(yī)生界面中采用表格的方式展示,通過(guò)點(diǎn)擊表格中a標(biāo)簽,跳轉(zhuǎn)單獨(dú)的界面,展示選中患者的相關(guān)信息。當(dāng)點(diǎn)擊a標(biāo)簽時(shí),后臺(tái)在解析url的同時(shí),會(huì)取得點(diǎn)擊對(duì)象的id和點(diǎn)擊的內(nèi)容(例如點(diǎn)擊可為復(fù)診信息),并通過(guò)該id到數(shù)據(jù)庫(kù)中篩選出患者對(duì)象,然后根據(jù)點(diǎn)擊的內(nèi)容取出對(duì)應(yīng)信息,并與模板渲染,最后返回給用戶(hù)。
3.1?Form表單驗(yàn)證
系統(tǒng)采用Form表單來(lái)處理各種輸入框下的賬戶(hù)、密碼、填寫(xiě)信息的格式問(wèn)題以及下拉框和單選框的選擇問(wèn)題等,每個(gè)Form繼承自django_forms.Form并與相應(yīng)的models.py下的類(lèi)對(duì)應(yīng)。當(dāng)用戶(hù)將填寫(xiě)的信息發(fā)往后臺(tái)時(shí),F(xiàn)orm下的is_valid函數(shù)將會(huì)直接進(jìn)行信息驗(yàn)證,如果驗(yàn)證錯(cuò)誤,將通過(guò)Form下的errors函數(shù)取出自定義的錯(cuò)誤信息并返回給用戶(hù),如果驗(yàn)證正確,便可用Form下的cleaned_data函數(shù)中g(shù)et方法取出數(shù)據(jù),進(jìn)而進(jìn)行下一步處理。
3.2?URL訪(fǎng)問(wèn)驗(yàn)證
面對(duì)不同的用戶(hù)系統(tǒng)將提供不同的界面訪(fǎng)問(wèn),在用戶(hù)通過(guò)URL進(jìn)行訪(fǎng)問(wèn)時(shí),加入信息驗(yàn)證不僅可以為用戶(hù)提供所需要的數(shù)據(jù)信息,還可以使其他用戶(hù)的隱私信息得到保障。相對(duì)于django下的cookie模塊,用session模塊更加便捷安全,當(dāng)用戶(hù)登錄成功后,通過(guò)session記錄用戶(hù)的身份信息。每次當(dāng)用戶(hù)的URL請(qǐng)求發(fā)起后,系統(tǒng)進(jìn)行分析并在調(diào)用該URL對(duì)應(yīng)的視圖函數(shù)之前,通過(guò)視圖函數(shù)的裝飾器,用request中session完成信息驗(yàn)證。
3.3?模板渲染
前端界面布局采用django母版繼承方式,在母版上設(shè)計(jì)界面和統(tǒng)一布局后,在相應(yīng)位置留出空間供子版填充,母版上使用{%?block?xxx1?%}{%?endblock?%}進(jìn)行占位。而對(duì)于子版先繼承母版,則在子版頂部使用{%?extends?‘xxx.html?%},并在子版中添加{%?block?xxx1?%}{%?endblock?%},并在其中間加入相應(yīng)內(nèi)容。
前端界面在渲染過(guò)程中,需要對(duì)后臺(tái)傳遞的數(shù)據(jù)進(jìn)行進(jìn)一步的加工處理并展示,由此需要前端界面調(diào)用templatetags文件夾下定義的函數(shù)來(lái)完成處理。同樣,需要在界面頂端添加{%?load?函數(shù)名?%}以及在界面中添加過(guò)濾器,在自定義的函數(shù)進(jìn)行數(shù)據(jù)處理前,需要添加裝飾器register.simple_tag,并且注冊(cè)到tempate庫(kù)里面。
3.4?文章編寫(xiě)
為了使用戶(hù)寫(xiě)文章時(shí)得到更好的體驗(yàn),在查寫(xiě)博客功能模塊中,采用KindEditor開(kāi)源的HTML可視化編輯器,不僅方便用戶(hù)編寫(xiě)文章,而且在一定程度上減小了受到腳本攻擊的可能性。當(dāng)前端在展示從數(shù)據(jù)庫(kù)中取得的文章數(shù)據(jù)時(shí),由于html代碼在render之前會(huì)先進(jìn)行轉(zhuǎn)義,所以導(dǎo)致html代碼被當(dāng)成普通字符串處理。使用django.utils.safestring下的mark_safe函數(shù),可正常顯示html代碼。
面對(duì)跨站腳本攻擊,縮寫(xiě)為XSS,對(duì)于此問(wèn)題系統(tǒng)后端通過(guò)python中的re模塊編寫(xiě),建立白名單過(guò)濾策略,對(duì)文章內(nèi)容中的標(biāo)簽及屬性進(jìn)行過(guò)濾[18-20]。
4?結(jié)束語(yǔ)
本文主要對(duì)急性心梗患者隨訪(fǎng)管理系統(tǒng)進(jìn)行研究。急性心肌梗死患者隨訪(fǎng)系統(tǒng)能夠促進(jìn)醫(yī)生患者交流溝通,保存患者長(zhǎng)期隨訪(fǎng)資料,為患者的服藥提供指導(dǎo)。同時(shí),該系統(tǒng)由患者錄入自身健康數(shù)據(jù),增強(qiáng)了疾病診療過(guò)程中患者本人的參與感,有利于增加患者服藥依從性及生活方式的改變。這些都是降低急性心肌梗死死亡率的關(guān)鍵手段。根據(jù)患者出院后每天身體的各項(xiàng)指標(biāo),通過(guò)BP神經(jīng)網(wǎng)絡(luò)對(duì)身體健康狀況做出預(yù)測(cè),建立預(yù)測(cè)模型是下一步研究的重點(diǎn)。目前該系統(tǒng)運(yùn)行較成熟,具有可移植性和擴(kuò)展性,根據(jù)不同疾病要求,可應(yīng)用到其他慢性疾?。ㄈ缣悄虿?,腫瘤化療患者)的隨訪(fǎng),方便推廣,具有一定的社會(huì)效益和經(jīng)濟(jì)效益。該研究具有廣闊的市場(chǎng)空間。
參考文獻(xiàn):
[1]?程寶珍,?張小紅,?牛娟.?急診全程優(yōu)化護(hù)理在搶救急性心肌梗死患者中的應(yīng)用[J].?護(hù)理學(xué)雜志,?2012,?27(5):?9-11.
[2]?胡盛壽,?高潤(rùn)霖,?劉力生,?等.?《中國(guó)心血管病報(bào)告2018》概要[J].?中國(guó)循環(huán)雜志,?2019,?34(3):?209-220.
[3]?高潤(rùn)霖.?冠心病疾病負(fù)擔(dān)—中國(guó)出路[J].?中國(guó)循環(huán)雜志,?2017,?32(1):?1-4.
[4]?Ezzati?M,?Vander?Hoom?S,?Rodgers?A,?et?al.?Estimates?of?global?and?regional?potential?health?gains?from?reducing?multiple?major?risk?factors[J].?The?Lancet,?2003,?362(9380):?271-280.
[5]?程維國(guó).?泰安市中心醫(yī)院回訪(fǎng)信息管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[D].?成都:?電子科技大學(xué),?2014.
[6]?高靜,?段會(huì)川.?JSON數(shù)據(jù)傳輸效率研究[J].?計(jì)算機(jī)工程與設(shè)計(jì),?2011,?32(7):?2267-2270.
[7]?胡章兵,?左良利.?時(shí)態(tài)JSON數(shù)據(jù)模型及查詢(xún)語(yǔ)言處理[J].?計(jì)算機(jī)技術(shù)與發(fā)展,?2019,?29(10):?141-145.
[8]?金鳴,?袁嵩,?劉榮.?利用JSON實(shí)現(xiàn)客戶(hù)端與服務(wù)器端通信[J].?電腦編程技巧與維護(hù),?2018(4):?75-77.
[9]?范文星.?基于Django的網(wǎng)絡(luò)運(yùn)維管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].?計(jì)算機(jī)科學(xué),?2012,?39(z1):?175-177.
[10]?岳昆,?王曉玲,?周傲英.?Web服務(wù)核心支撐技術(shù):?研究綜述[J].?軟件學(xué)報(bào),?2004,?15(3):?428-442.
[11]?梁效寧,?黃旭,?朱星海.?SQLite數(shù)據(jù)庫(kù)文件恢復(fù)提取技術(shù)研究[J].?計(jì)算機(jī)科學(xué),?2016,?43(12A):?16-19,?25.
[12]?吳大剛,?肖榮榮.?C/S結(jié)構(gòu)與B/S結(jié)構(gòu)的信息系統(tǒng)比較分析[J].?情報(bào)科學(xué),?2003,?21(3):?313-315.
[13]?Han?xc.?Design?of?communication?system?based?on?B/S[C]∥2012?International?Symposium?on?Information?Technologies?in?Medicine?and?Education.?Hokkaido,?Japan:?IEEE,?2012:?1089-1093.
[14]?林偉婷.?C/S與B/S架構(gòu)技術(shù)比較分析[J].?科技資訊,?2018,?16(13):?15-16.
[15]?韋慶杰,?劉淑坤.?一種Web應(yīng)用跨瀏覽器兼容性測(cè)試方法[J].?計(jì)算機(jī)工程與應(yīng)用,?2019,?55(5):?55-59.
[16]?劉俊瀟,?張敏言.?電腦瀏覽器交互界面體驗(yàn)分析[J].?科技視界,?2015(22):?145-147.
[17]?張曉藝.?如何防范基于瀏覽器的網(wǎng)絡(luò)威脅[J].?計(jì)算機(jī)與網(wǎng)絡(luò),?2019,?45(9):?50-51.
[18]?趙躍華,?胡向濤.?網(wǎng)絡(luò)釣魚(yú)攻擊的防御技術(shù)及防御框架設(shè)計(jì)[J].?計(jì)算機(jī)應(yīng)用研究,?2013,?30(6):?1863-1866.
[19]?Upasana?S,?BhattacharyyaD?K,?Kalita?J?K.?A?survey?of?detection?methods?for?XSS?attacks[J].?Journal?of?Network?and?Computer?Applications,?2018,?118(15):?113-143.
[20]?Hiroya?T,?Kenji?Y,?Masahiro?M,?et?al.?Preventing?abuse?of?cookies?stolen?by?XSS[C]∥?2013?Eighth?Asia?Joint?Conference?on?Information?Security.?Seoul,?South?Korea:?IEEE,?2013:?85-89.
Design?and?Implementation?of?Followup?Management?System?for?Patients?with?Acute?Myocardial?Infarction
JIANG?Haijiana,?SU?Zheb,?ZHOU?Changyongb,?XIN?Liqianga
(a.?College?of?Computer?Science?&?Technology;?b.?Affiliated?Hospital,?Qingdao?Universitya,?Qingdao?266071,?China)
Abstract:??In?order?to?address?the?health?management?problems?of?patients?with?acute?myocardial?infarction?after?discharge,?this?paper?designs?and?develops?an?informationization?implementation?plan?for?patients?with?acute?myocardial?infarction.?The?entire?system?uses?the?B/S?architecture,?written?in?Python?and?SQLite?for?data?storage.?The?main?functions?of?the?system?are?divided?into?two?categories:?data?collection?and?information?exchange.?Data?collection?is?to?collect?and?save?patient?data?for?doctors?to?conduct?data?statistics?and?analysis?in?the?background.?Information?exchange?includes?writing?articles,?sending?emails?and?giving?feedback.?The?test?results?show?that?the?various?functions?of?the?system?are?normal,?and?have?excellent?compatibility?and?stability.?This?study?is?of?great?significance?to?improve?the?survival?rate?of?patients?with?acute?myocardial?infarction?and?to?promote?communication?between?doctors?and?patients?after?discharge.
Key?words:??acute?myocardial?infarction;?followup?system;?B/S?architecture;?python