嚴(yán) 潭 胡立勇 林芬萍 林亞忠
醫(yī)療設(shè)備動(dòng)態(tài)管理系統(tǒng)是基于Browser/Server架構(gòu),運(yùn)用Java服務(wù)器頁(yè)面(java server pages,JSP)技術(shù)開(kāi)發(fā)的基于醫(yī)院信息系統(tǒng)(hospital information system,HIS)平臺(tái)的醫(yī)療設(shè)備動(dòng)態(tài)管理系統(tǒng)。系統(tǒng)各功能模塊聯(lián)系緊密,并且使用流程引擎,實(shí)現(xiàn)業(yè)務(wù)流程自定義。因此,系統(tǒng)采用何種方法開(kāi)發(fā)才能使系統(tǒng)架構(gòu)清晰,并且兼顧開(kāi)發(fā)效率和運(yùn)行效率,就顯得尤為重要[1-2]。
設(shè)計(jì)模式是面向程序設(shè)計(jì)人員用來(lái)解決編程問(wèn)題的一種形式化表示。目前,在大多數(shù)Browser/Server結(jié)構(gòu)的Web應(yīng)用中,瀏覽器直接通過(guò)超文本標(biāo)記語(yǔ)言(hypertext markup language,HTML)或者JSP的形式與用戶交互,響應(yīng)用戶的請(qǐng)求[3]。這種單獨(dú)的JSP模塊的開(kāi)發(fā)雖然很直觀,但隨著業(yè)務(wù)邏輯及代碼的增多會(huì)使程序的耦合性加大,JSP頁(yè)面臃腫不堪,將使系統(tǒng)不易維護(hù)。為解決這種弊端,隨之出現(xiàn)了下述2種設(shè)計(jì)模式。
如圖1所示,瀏覽器直接調(diào)用JSP頁(yè)面,JSP頁(yè)面能夠調(diào)用JavaBean組件來(lái)進(jìn)行數(shù)據(jù)的處理,實(shí)現(xiàn)數(shù)據(jù)表示和數(shù)據(jù)處理的分離。但這種模式中的JavaBean組件不僅需要提供修改和返回?cái)?shù)據(jù)的方法,而且需要經(jīng)常參與數(shù)據(jù)的處理[4]。
圖1 JSP+JavaBean模式
MVC模式(JSP+Servelet+JavaBean)體現(xiàn)了MVC的思想,亦稱MVC模式。MVC設(shè)計(jì)模式將輸入、輸出和處理分為獨(dú)立的處理模塊,并在系統(tǒng)運(yùn)行時(shí)將其結(jié)合,這樣使得程序開(kāi)發(fā)的耦合度非常低。視圖一般由JSP頁(yè)面組成,負(fù)責(zé)與用戶交互,接收用戶輸入,并將結(jié)果返回給用戶。模型一般由JavaBean,EJB組成,用來(lái)處理軟件要涉及的業(yè)務(wù)范圍,包括業(yè)務(wù)數(shù)據(jù)模型和業(yè)務(wù)邏輯模型,并通常負(fù)責(zé)與后臺(tái)數(shù)據(jù)庫(kù)交互??刂破魇钦麄€(gè)MVC模型的核心,起總體協(xié)調(diào)和控制作用,如調(diào)用某個(gè)模型組件、完成某些業(yè)務(wù)功能并最終向用戶返回某個(gè)視圖(如圖2所示)[5]。
圖2 MVC模式
運(yùn)用JSP+JavaBean模式,會(huì)導(dǎo)致JSP頁(yè)內(nèi)被嵌入大量的腳本片段或Java代碼,商業(yè)邏輯摻雜在流程中,并與界面混在一起,不利于網(wǎng)頁(yè)設(shè)計(jì)人員對(duì)JSP頁(yè)面的維護(hù)。JSP+JavaBean模式體系十分適合簡(jiǎn)單應(yīng)用的需要,它卻不能滿足復(fù)雜的大型應(yīng)用程序的實(shí)現(xiàn)[6-7]。而使用MVC模式清晰地分離了表達(dá)和商業(yè)邏輯,讓開(kāi)發(fā)人員可以在系統(tǒng)中定義更復(fù)雜的邏輯,明確了角色的定義以及開(kāi)發(fā)者與網(wǎng)頁(yè)設(shè)計(jì)者的分工,可重用性高,適合大型應(yīng)用程序開(kāi)發(fā),后期維護(hù)量小,項(xiàng)目越復(fù)雜則使用MVC模式的優(yōu)勢(shì)就越大[8-9]。
MVC模式在系統(tǒng)中可應(yīng)用于醫(yī)療設(shè)備運(yùn)行、維護(hù)管理系統(tǒng),通過(guò)其全程和動(dòng)態(tài)收集設(shè)備使用、管理及維護(hù)各環(huán)節(jié)的第一手?jǐn)?shù)據(jù),進(jìn)一步規(guī)范設(shè)備的日常保養(yǎng)和維護(hù)流程;實(shí)現(xiàn)設(shè)備動(dòng)態(tài)信息的即時(shí)輸送、保養(yǎng)信息的預(yù)警提示、重要設(shè)備器材的使用管理、重要配件和工具出入庫(kù)登記和全程動(dòng)態(tài)管控、大型醫(yī)療設(shè)備運(yùn)行狀態(tài)的動(dòng)態(tài)監(jiān)控以及提供豐富查詢統(tǒng)計(jì)等功能,并可為工程師的績(jī)效考核提供量化數(shù)據(jù)[10-11]。
根據(jù)MVC設(shè)計(jì)模式的思想,醫(yī)療設(shè)備運(yùn)維管理系統(tǒng)將分為3個(gè)層次:①M(fèi)odel(模型)層,封裝了系統(tǒng)的業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯;②View(視圖)層,既可向用戶顯示相關(guān)數(shù)據(jù),又可用來(lái)接收用戶的輸入數(shù)據(jù);③Controller(控制)層,創(chuàng)建并調(diào)用模型的相關(guān)數(shù)據(jù)業(yè)務(wù)處理方法,選擇相應(yīng)的視圖返回于客戶端[8]。以典型的查詢功能為例,介紹在醫(yī)療設(shè)備運(yùn)維管理系統(tǒng)中如何使用MVC模式進(jìn)行設(shè)計(jì)開(kāi)發(fā)。
典型的Model層是封裝對(duì)數(shù)據(jù)庫(kù)的操作,對(duì)數(shù)據(jù)庫(kù)的鏈接及相關(guān)操作封裝為類(lèi)文件,不僅實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)操作的統(tǒng)一,也使系統(tǒng)運(yùn)行效率大幅提升[9]。熟悉系統(tǒng)業(yè)務(wù)的開(kāi)發(fā)人員只需要知道View層需要何種數(shù)據(jù),專(zhuān)注于數(shù)據(jù)的處理,而不需關(guān)心如何顯示。部分代碼如下:
圖3 系統(tǒng)與用戶交互界面圖
View層由許多JSP頁(yè)面組成,主要是系統(tǒng)與用戶交互的界面,網(wǎng)頁(yè)設(shè)計(jì)師負(fù)責(zé)將要顯示的頁(yè)面進(jìn)行設(shè)計(jì)和美化[10],不用關(guān)心數(shù)據(jù)處理部分的內(nèi)容,如圖3所示。
部分代碼如下:
Contorller的server.class實(shí)際上就是Servlet,用于處理用戶的請(qǐng)求,調(diào)用相應(yīng)的方法。部分代碼如下:
MVC設(shè)計(jì)模式是開(kāi)發(fā)Web應(yīng)用的一種非常優(yōu)秀的設(shè)計(jì)模式,使用MVC模式設(shè)計(jì)的醫(yī)療設(shè)備運(yùn)行維護(hù)管理系統(tǒng)實(shí)現(xiàn)了表示層和邏輯層的分離[12-13]。實(shí)踐證明,使用MVC模式極大提高了系統(tǒng)開(kāi)發(fā)的速度和效率,并使系統(tǒng)具有很好的擴(kuò)展性,易于維護(hù)[14-15]。
[1]羅俊.醫(yī)療設(shè)備信息管理中的MVC模式架構(gòu)[J].醫(yī)療衛(wèi)生裝備,2010,31(03):102-103.
[2]嚴(yán)潭,林亞忠,田君鵬,等.基于HIS平臺(tái)下醫(yī)療設(shè)備動(dòng)態(tài)管理系統(tǒng)設(shè)計(jì)[J].臨床醫(yī)學(xué)工程,2011,18(3):442-445.
[3]耿秀紅,閆宏印.Web內(nèi)容管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦開(kāi)發(fā)與運(yùn)用,2011,24(1):32-34.
[4]郝曉玲.基于MVC模式的飛行數(shù)據(jù)顯示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī):下半月版,2011(9):110-112.
[5]耿祥義,張躍平.JSP實(shí)用教程[M].北京:清華大學(xué)出版社,2007:206.
[6]王敏.基于MVC模式的校友錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2011,39(2):104-107.
[7]姜華,趙長(zhǎng)青.基于MVC模式的醫(yī)療器械監(jiān)管系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2007(10):122-127.
[8]戴一平.MVC設(shè)計(jì)模式在PHP開(kāi)發(fā)中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2011(3):33-37.
[9]覃開(kāi)賢,盧澔.基于MVC模式的在線作業(yè)系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2011(2):160-163.
[10]溫濟(jì)川.MVC設(shè)計(jì)模式及其在JSP系統(tǒng)中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2008,6(4):43-44.
[11]鄒官輝,龍軍.基于設(shè)計(jì)模式的通用數(shù)據(jù)庫(kù)訪問(wèn)研究及應(yīng)用[J].電腦知識(shí)與技術(shù),2011,7(7):1503-1506.
[12]劉亞鵬,張征,愈婷.基于MVC多層架構(gòu)的Web應(yīng)用框架設(shè)計(jì)[J].微計(jì)算機(jī)信息,2011,27(7):169-171.
[13]閆帥領(lǐng).一種面向MVC框架的軟件設(shè)計(jì)研究[J].福建電腦,2011,27(6):25,31.
[14]李三清,林春燕,張宏,等.基于MVC模式的醫(yī)療設(shè)備信息管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[J].電腦開(kāi)發(fā)與應(yīng)用,2009,22(3):29-31.
[15]班珂,黃丹.兩種Java Web通用開(kāi)發(fā)框架的比較研究[J].電腦知識(shí)與技術(shù),2010,6(19):5249-5251.