基于BS結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于BS結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于BS結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于BS結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于BS結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

word文檔可自由復(fù)制編輯畢業(yè)設(shè)計(jì)(2015屆)題目基于B/S結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)word文檔可自由復(fù)制編輯基于B/S結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:在傳統(tǒng)的醫(yī)院掛號(hào)過(guò)程中,信息處理停留在手工方式,勞動(dòng)強(qiáng)度大且工作效率低,有的病人排很長(zhǎng)時(shí)間的隊(duì)也不一定能掛上自己滿(mǎn)意的號(hào),而用網(wǎng)上預(yù)約的方式,使病人不用出門(mén)就可以掛到自己想要的號(hào).本系統(tǒng)采用的是基于廣域網(wǎng)的B/S結(jié)構(gòu)平臺(tái),網(wǎng)頁(yè)采用的是JSP技術(shù),它擁有卓越的系統(tǒng)可移植性,加上MySql數(shù)據(jù)庫(kù)強(qiáng)大的后臺(tái)數(shù)據(jù)支持,可以很好的實(shí)現(xiàn)系統(tǒng)的功能.本文主要介紹了醫(yī)院網(wǎng)上掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),對(duì)所用到的技術(shù)也做了一定的介紹.關(guān)鍵字:醫(yī)院;網(wǎng)上掛號(hào);JSP;MySql中圖分類(lèi)號(hào):TP311.1Thedesignandtheimplementationofthebookingsystemof theonlinehospitalregistrationbasedontheB/SstructureAbstract:Inthetraditionalhospitalprocess,themanualinformationprocessingremainlabor-intersiveandlowefficiency,somepatientsstoodinlineforalongtimealsotocannothangthemselves.Byusingthemethodofonlinebooking,Thepatientneednottogooutwhileuse.ThesystemisdesignedasB/Sstructurebasedonthewideareanetwork,JSPtechnicsforithasexcellentportability,coupledwithastrongbackgroundMySqldatabasedatasupport,itcanrealizethefunctionofthesystemverywell.Thisarticlemainlyintroducesthedesignandimplementationofhospitalonlineregistrationsystem,andontheuseoftechnologyaswell.Keywords:Hospital;onlineregistration;JSP;MySql目錄TOC\o"1-3"\h\u282541緒論 1278721.1課題背景及研究意義 121401.2國(guó)內(nèi)外研究現(xiàn)狀 2316301.3系統(tǒng)簡(jiǎn)介 2289151.3.1系統(tǒng)解決的主要問(wèn)題 210311.3.2系統(tǒng)的特點(diǎn) 342152開(kāi)發(fā)環(huán)境及開(kāi)發(fā)技術(shù) 5316972.1B/S架構(gòu) 588832.2mvc設(shè)計(jì)模式 5251912.2.1mvc設(shè)計(jì)模式簡(jiǎn)介 5308952.2.2mvc設(shè)計(jì)模式的優(yōu)缺點(diǎn) 677742.3javaEE架構(gòu) 7311442.3.1javaEE簡(jiǎn)介 7125372.3.2javaEE的優(yōu)勢(shì) 7258342.4ajax技術(shù) 8233222.4.1ajax的優(yōu)點(diǎn) 890732.5數(shù)據(jù)庫(kù)MySql 9263473系統(tǒng)設(shè)計(jì) 11121423.1需求模型的建立 1191523.1.1用例分析 1123483.2基本模型的建立 13199553.2.1系統(tǒng)中的類(lèi)的設(shè)計(jì) 13109653.2.2類(lèi)圖分析 13190973.3輔助模型 1584203.3.1活動(dòng)圖 1570923.3.2順序圖 1658553.4ER圖 17298193.5數(shù)據(jù)庫(kù)設(shè)計(jì) 19308474系統(tǒng)實(shí)現(xiàn) 22141684.1系統(tǒng)首頁(yè)的實(shí)現(xiàn) 22301624.2登錄功能實(shí)現(xiàn) 22302744.2用戶(hù)功能的實(shí)現(xiàn) 23313714.2.1用戶(hù)注冊(cè)功能的實(shí)現(xiàn) 23290104.2.2用戶(hù)查詢(xún)醫(yī)生功能的實(shí)現(xiàn) 2512274.2.3預(yù)約模塊的實(shí)現(xiàn) 25325524.3管理員模塊的實(shí)現(xiàn) 26220354.3.1醫(yī)生管理分頁(yè)的實(shí)現(xiàn) 2681924.3.2增加醫(yī)生模塊的實(shí)現(xiàn) 2823294.3.3掛號(hào)信息管理模塊的實(shí)現(xiàn) 2982885總結(jié) 3011595參考文獻(xiàn) 3228407致謝 33word文檔可自由復(fù)制編輯基于B/S結(jié)構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1緒論1.1課題背景及研究意義隨著經(jīng)濟(jì)與科學(xué)技術(shù)的高速發(fā)展,信息化的進(jìn)程不斷加快.隨著計(jì)算機(jī)性能不斷提高,價(jià)格不斷下降,計(jì)算機(jī)已在醫(yī)院醫(yī)療,教學(xué),科研,管理的各個(gè)方面得到越來(lái)越廣泛的應(yīng)用[1].然而,我國(guó)還有部分醫(yī)院的信息處理停留在手工方式,勞動(dòng)強(qiáng)度大且工作效率低,醫(yī)師護(hù)士和管理人員的大量時(shí)間都消耗在事務(wù)性工作上,病人排隊(duì)等候時(shí)間長(zhǎng),輾轉(zhuǎn)過(guò)程多,影響了醫(yī)療的秩序.計(jì)算機(jī)化的醫(yī)院信息系統(tǒng)已成為現(xiàn)代化醫(yī)院運(yùn)營(yíng)必不可少的基礎(chǔ)設(shè)施與技術(shù)支撐環(huán)境.門(mén)診掛號(hào)系統(tǒng)是整個(gè)醫(yī)院管理信息系統(tǒng)的第一個(gè)窗口,是病人到醫(yī)院就診要做的第一項(xiàng)工作.它用于收集病人的信息,協(xié)調(diào)科室醫(yī)生管理,控制各科室的流量等等.醫(yī)院網(wǎng)上預(yù)約掛號(hào)系統(tǒng)是一種基于互聯(lián)網(wǎng)的新型掛號(hào)系統(tǒng),是衛(wèi)生信息化建設(shè)的基礎(chǔ)的項(xiàng)目之一[2].利用該預(yù)約掛號(hào)系統(tǒng),用戶(hù)就可以在網(wǎng)上預(yù)約醫(yī)院的專(zhuān)家、專(zhuān)科號(hào),而無(wú)須再受排隊(duì)之苦.它能更好的改善就醫(yī)環(huán)境,簡(jiǎn)化就醫(yī)環(huán)節(jié),節(jié)約就醫(yī)時(shí)間,真正體現(xiàn)了以病人為中心,一切從方便患者出發(fā),符合當(dāng)今醫(yī)院人性化溫馨服務(wù)的理念.目前,門(mén)診一直是困擾醫(yī)院提高服務(wù)質(zhì)量的一個(gè)復(fù)雜環(huán)節(jié),特別是醫(yī)療水平高、門(mén)診量大的醫(yī)院,而造成門(mén)診質(zhì)量難以提高的因素主要有兩方面:一方面集中式掛號(hào)(現(xiàn)在流行的分層掛號(hào)只是相對(duì)而言一個(gè)范圍較小的集中式掛號(hào)),就診人員流量不均、具有不確定性,有明顯的就診高峰和低谷(表現(xiàn)在整個(gè)醫(yī)院不同門(mén)診時(shí)間段及同科室的不同時(shí)間段).高峰期病人掛號(hào)排隊(duì)長(zhǎng),就診時(shí)間長(zhǎng),醫(yī)生熟人插號(hào)現(xiàn)象,環(huán)境擁擠混亂,醫(yī)生問(wèn)診時(shí)間短、不仔細(xì)、態(tài)度差.而低谷期,醫(yī)生無(wú)病人看、溜號(hào),醫(yī)院資源浪費(fèi).另一方面專(zhuān)家號(hào)(特別是名專(zhuān)家號(hào))難掛,出現(xiàn)倒號(hào)、炒號(hào)現(xiàn)象,嚴(yán)重?fù)p害病人利益,影響到醫(yī)院的聲譽(yù).而采用網(wǎng)上預(yù)約掛號(hào),可有效的解決這一現(xiàn)象,還通過(guò)有效的身份驗(yàn)證,杜絕倒、炒專(zhuān)家號(hào)的現(xiàn)象,提高醫(yī)院門(mén)診服務(wù)質(zhì)量,取得良好的社會(huì)效益和經(jīng)濟(jì)效益.此外,病人到醫(yī)院就診前對(duì)醫(yī)院的相關(guān)信息了解不多,對(duì)所要掛的專(zhuān)科醫(yī)生的情況又不太了解,只能憑經(jīng)驗(yàn)和印象進(jìn)行選擇,具有較大的盲目性.而當(dāng)醫(yī)院開(kāi)通網(wǎng)上掛號(hào)預(yù)約服務(wù)以后,求醫(yī)者只需坐在家中,輕點(diǎn)兒下鼠標(biāo),就可以掛上醫(yī)院專(zhuān)家門(mén)診號(hào),可以做到“足不出戶(hù)選醫(yī)生”.網(wǎng)上預(yù)約正悄然改變著都市求醫(yī)者的看病觀念.擁有相對(duì)固定的個(gè)人醫(yī)生和習(xí)慣,預(yù)約看病,將不再遙遠(yuǎn),所以應(yīng)用必將越來(lái)越廣泛[3].1.2國(guó)內(nèi)外研究現(xiàn)狀隨著互聯(lián)網(wǎng)絡(luò)的迅猛發(fā)展,Internet用戶(hù)已呈幾何級(jí)數(shù)增長(zhǎng),目前已經(jīng)有很多醫(yī)院投入使用網(wǎng)上掛號(hào)系統(tǒng).據(jù)了解,預(yù)約掛號(hào)在國(guó)外頗為普及.在西方國(guó)家,病人看病都需要事先進(jìn)行預(yù)約.隨著預(yù)約掛號(hào)的深入推廣,國(guó)內(nèi)越來(lái)越多的醫(yī)院也意識(shí)到預(yù)約服務(wù)在節(jié)約看病時(shí)間、分流患者、減輕醫(yī)院壓力上的作用[4].據(jù)了解,盡管存在很多困難,但全國(guó)各地的醫(yī)院在嘗試預(yù)約掛號(hào)的實(shí)踐中還是提供了很多有益的做法.在中國(guó)傳統(tǒng)的醫(yī)院門(mén)診掛號(hào)是即時(shí)掛號(hào)、即時(shí)就診門(mén)診模式的.但是這種就診的模式給患者帶來(lái)許多不便[1].掛號(hào)時(shí)間長(zhǎng)、候診時(shí)間長(zhǎng)、交費(fèi)時(shí)間長(zhǎng)、看病時(shí)問(wèn)短.據(jù)統(tǒng)計(jì),患者在門(mén)診有60%以上的時(shí)間都是用來(lái)等候的,真正就診的時(shí)間卻很短.這樣就給病人及家屬帶來(lái)了眾多的不便.而在歐美國(guó)家,患者看病一般都需要預(yù)約掛號(hào).除非急診,很少有人直接到醫(yī)院找醫(yī)生的.沒(méi)有提前24小時(shí)的電話預(yù)約,醫(yī)院一般也不會(huì)接診.一些醫(yī)院設(shè)立的預(yù)約掛號(hào)部門(mén),一般都由經(jīng)驗(yàn)豐富的醫(yī)生、護(hù)士擔(dān)任接線員,以便根據(jù)患者自訴癥狀建議應(yīng)掛科室,推薦專(zhuān)家.也有部分的醫(yī)院可以同時(shí)通過(guò)網(wǎng)站預(yù)約的[5].隨著網(wǎng)絡(luò)功能及宣傳手段不斷優(yōu)化和人民群眾觀念的不斷更新,網(wǎng)上預(yù)約掛號(hào)前景無(wú)疑是可觀的.按現(xiàn)在的中國(guó)門(mén)診預(yù)約就診患者的年齡及受教育程度和使用網(wǎng)絡(luò)資源程度的情況分析來(lái)看,各種預(yù)約方式和諧并存著才能滿(mǎn)足不用類(lèi)型的患者的需求.網(wǎng)上預(yù)約掛號(hào)的實(shí)施剛起步不久,預(yù)約掛號(hào)系統(tǒng)的不斷改善優(yōu)化還是一個(gè)循序漸進(jìn)的過(guò)程,要先向更好地為習(xí)慣使用這一資源的患者服務(wù)的目標(biāo)進(jìn)發(fā).1.3系統(tǒng)簡(jiǎn)介1.3.1系統(tǒng)解決的主要問(wèn)題病人去醫(yī)院就醫(yī)首先要到掛號(hào)窗口進(jìn)行掛號(hào),病人獲得有效醫(yī)療服務(wù)最重要的保證就是能夠掛到一個(gè)滿(mǎn)意的號(hào).目前病人掛號(hào)難已成為全國(guó)各個(gè)醫(yī)院的首要問(wèn)題,但是一直沒(méi)有能夠徹底解決.醫(yī)院門(mén)診掛號(hào)一直是大中型醫(yī)院提高服務(wù)質(zhì)量的關(guān)鍵環(huán)節(jié),特別是門(mén)診量較大、人口密度高、醫(yī)療設(shè)備先進(jìn)、技術(shù)先進(jìn)的綜合型大醫(yī)院,門(mén)診掛號(hào)秩序混亂一直是普遍存在的現(xiàn)象.就上述問(wèn)題著重分析了已下三個(gè)方面的問(wèn)題[6].(1)針對(duì)病人掛號(hào)集中的問(wèn)題針對(duì)病人掛號(hào)集中、就診人員流量變化大、不確定性明顯等問(wèn)題進(jìn)行分析.很多醫(yī)院高峰期病人必須排長(zhǎng)隊(duì)掛號(hào),就診需要等待的時(shí)間較長(zhǎng),更是有個(gè)別醫(yī)生熟人肆意插號(hào)的現(xiàn)象,使得掛號(hào)秩序更加混亂;還有掛號(hào)醫(yī)生多的時(shí)候,醫(yī)生由于時(shí)間有限,導(dǎo)致醫(yī)生詢(xún)問(wèn)病情不仔細(xì),病人就診時(shí)間短,有時(shí)發(fā)生接待病人態(tài)度差等現(xiàn)象.采用網(wǎng)上掛號(hào)能很好的解決這些問(wèn)題,病人在網(wǎng)上預(yù)約好時(shí)間,到時(shí)間過(guò)去就行,不用等待很長(zhǎng)時(shí)間排隊(duì);每個(gè)病人就診時(shí)間經(jīng)過(guò)合理分配,使醫(yī)生可以詳細(xì)了解病人病情并進(jìn)行診斷.(2)針對(duì)專(zhuān)家號(hào)一號(hào)難求的問(wèn)題一般專(zhuān)家一天最多能看20-30個(gè)患者,而一些患者為了獲得寶貴的就診號(hào)需要排上幾個(gè)小時(shí)的隊(duì),也導(dǎo)致了“炒號(hào)”、“倒號(hào)”等不良現(xiàn)象的產(chǎn)生,損害了患者的經(jīng)濟(jì)利益,耽誤了患者的就診時(shí)間,甚至影響了醫(yī)院的就診質(zhì)量和聲譽(yù).網(wǎng)上掛號(hào)因?yàn)椴捎玫氖菍?shí)名認(rèn)證的方式進(jìn)行的注冊(cè),每個(gè)身份證號(hào)只能注冊(cè)一次,而且本人掛號(hào)只能本人就診,杜絕了“炒號(hào)”、“倒號(hào)”等現(xiàn)象的發(fā)生,做到了相對(duì)的公平.(3)醫(yī)院網(wǎng)上預(yù)約掛號(hào)的設(shè)計(jì)本文研究的基于WEB服務(wù)的預(yù)約掛號(hào)系統(tǒng)可以有效的解決掛號(hào)難的問(wèn)題.患者不必去醫(yī)院,只需坐在電腦前,通過(guò)瀏覽掛號(hào)系統(tǒng)網(wǎng)頁(yè),就能選擇適合自己病情的醫(yī)生進(jìn)行掛號(hào).不僅能大大減少患者的排隊(duì)時(shí)間,還能緩解醫(yī)院就診掛號(hào)高峰期的擁擠,利用網(wǎng)絡(luò)巨大的資源和空間,盡量為病人提供更優(yōu)質(zhì)的服務(wù).1.3.2系統(tǒng)的特點(diǎn)(1)系統(tǒng)功能的方便性使用醫(yī)院網(wǎng)上掛號(hào)系統(tǒng)可以在任意地方登錄網(wǎng)站進(jìn)行掛號(hào),也可以根據(jù)自己的狀況選擇合適自己病情的科室、專(zhuān)家及合適的就診時(shí)間等,最后醫(yī)院完成確認(rèn),以完成患者的預(yù)約掛號(hào).該系統(tǒng)操作十分方便、省事.(2)系統(tǒng)功能的實(shí)效性病人患病后都希望早日到醫(yī)院就診治療,以解除病痛的困擾.正常情況去門(mén)診掛號(hào)是帶醫(yī)院完成的第一件事,掛上號(hào)之后再去門(mén)診進(jìn)行就醫(yī).對(duì)于醫(yī)療技術(shù)較高的大中型醫(yī)院來(lái)說(shuō),患者掛號(hào)總是需要排長(zhǎng)隊(duì),有時(shí)排長(zhǎng)時(shí)間的對(duì)也不一定能掛上號(hào).網(wǎng)上預(yù)約掛號(hào)系統(tǒng)為用戶(hù)提供了省時(shí)省力且實(shí)效的服務(wù),為患者解決了掛號(hào)難的問(wèn)題.(3)系統(tǒng)資源信息的共享性計(jì)算機(jī)網(wǎng)絡(luò)的應(yīng)用及信息共享之后,醫(yī)院相關(guān)負(fù)責(zé)人員就可以把計(jì)劃好的醫(yī)生出診信息及時(shí)發(fā)布到相關(guān)網(wǎng)站,患者及家屬只需在家里的電腦上網(wǎng)就可以了解醫(yī)院的掛號(hào)信息,因此,可以說(shuō)計(jì)算機(jī)系統(tǒng)資源的共享性為醫(yī)院掛號(hào)工作奠定了基礎(chǔ),為醫(yī)院信息管理系統(tǒng)提供了方便使用的技術(shù).通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)可以再最短的時(shí)間內(nèi)把醫(yī)生出診信息及臨時(shí)變化情況公布出來(lái),在網(wǎng)上供患者和社會(huì)用戶(hù)參考,避免了他們到醫(yī)院就診的盲目性.(4)系統(tǒng)功能的適用性大醫(yī)院的門(mén)診大廳一般都是擁擠這等候掛號(hào)的人們,有的排隊(duì)一夜甚至幾天.這是真實(shí)的掛號(hào)情況,也是我國(guó)眾多患病人群與現(xiàn)今有限的衛(wèi)生醫(yī)療服務(wù)機(jī)構(gòu)之間的矛盾的具體體現(xiàn).醫(yī)療衛(wèi)生部門(mén)管理者必須首要考慮這些問(wèn)題.網(wǎng)絡(luò)預(yù)約掛號(hào)不僅減輕了患者和家人的麻煩,也在一定程度上緩解并改善了掛號(hào)窗口的緊張局面.2開(kāi)發(fā)環(huán)境及開(kāi)發(fā)技術(shù)醫(yī)院網(wǎng)上掛號(hào)系統(tǒng)是以Servlet框架為主要的技術(shù)框架,以JSP技術(shù)為客戶(hù)端的主要顯示技術(shù),以MySql數(shù)據(jù)庫(kù)作為系統(tǒng)的數(shù)據(jù)存儲(chǔ)單元.下面我們來(lái)介紹下本系統(tǒng)的開(kāi)發(fā)環(huán)境以及開(kāi)發(fā)中所用到的相關(guān)技術(shù).2.1B/S架構(gòu)本系統(tǒng)采用的是B/S架構(gòu),及瀏覽器和服務(wù)器結(jié)構(gòu),示意圖如圖2-1所示.瀏覽器顯示出用戶(hù)操作界面,接收用戶(hù)在頁(yè)面上輸入的各種操作信息,在接到提交命令后向服務(wù)器發(fā)出請(qǐng)求,并接收由服務(wù)器返回的數(shù)據(jù)結(jié)果,然后向用戶(hù)展示相應(yīng)的信息.服務(wù)器端在這里的角色就如同橋梁,用來(lái)連接用戶(hù)瀏覽器與數(shù)據(jù)庫(kù),將所需要的數(shù)據(jù)信息進(jìn)行分析傳輸[7].對(duì)于醫(yī)院網(wǎng)上掛號(hào)系統(tǒng)來(lái)說(shuō),采用B/S架構(gòu)的系統(tǒng)所有的客戶(hù)端都是瀏覽器,不需要對(duì)它做任何維護(hù).絕大部分事務(wù)邏輯都是由服務(wù)器端來(lái)進(jìn)行處理,然后在通過(guò)用戶(hù)的瀏覽器實(shí)現(xiàn),在客戶(hù)端也就是前端界面只是有少量的邏輯需要處理.系統(tǒng)管理人員只需要做硬件維護(hù),降低了系統(tǒng)管理人員工作量,提高了其工作效率.系統(tǒng)架構(gòu)如圖2.1所示:發(fā)出操作請(qǐng)求JDBC瀏覽器Tomcat數(shù)據(jù)庫(kù)發(fā)出操作請(qǐng)求JDBC瀏覽器Tomcat數(shù)據(jù)庫(kù)返回查詢(xún)結(jié)果返回結(jié)果集返回查詢(xún)結(jié)果返回結(jié)果集圖2.1系統(tǒng)架構(gòu)2.2mvc設(shè)計(jì)模式2.2.1mvc設(shè)計(jì)模式簡(jiǎn)介MVC由TrygveReenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中,使許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ),Microsoft的MFC基礎(chǔ)類(lèi)也遵循了MVC的思想[8].對(duì)于界面設(shè)計(jì)可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視圖、控制三種部件.模型部件是軟件所處理問(wèn)題邏輯在獨(dú)立于外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,封裝了問(wèn)題的核心數(shù)據(jù)、邏輯和功能的計(jì)算關(guān)系,他獨(dú)立于具體的界面表達(dá)和I/O操作.視圖部件把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示給用戶(hù).它從模型獲得顯示信息,對(duì)于相同的信息可以有多個(gè)不同的顯示形式或視圖.控制部件是處理用戶(hù)與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶(hù)界面于模型間的對(duì)應(yīng)聯(lián)系;它接受用戶(hù)的輸入,將輸入反饋給模型,進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,是使模型和視圖協(xié)調(diào)工作的部件.通常一個(gè)視圖具有一個(gè)控制器.模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖.如果用戶(hù)通過(guò)某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴(lài)于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化.因此,無(wú)論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新.這實(shí)際上是一種模型的變化-傳播機(jī)制.2.2.2mvc設(shè)計(jì)模式的優(yōu)缺點(diǎn)MVC的優(yōu)點(diǎn)表現(xiàn)在以下幾個(gè)方面[9]:(1)可以為一個(gè)模型在運(yùn)行時(shí)同時(shí)建立和使用多個(gè)視圖.變化-傳播機(jī)制可以確保所有相關(guān)的視圖及時(shí)得到模型數(shù)據(jù)變化,從而使所有關(guān)聯(lián)的視圖和控制器做到行為同步.(2)視圖與控制器的可接插性,允許更換視圖和控制器對(duì)象,而且可以根據(jù)需求動(dòng)態(tài)的打開(kāi)或關(guān)閉、甚至在運(yùn)行期間進(jìn)行對(duì)象替換.(3)模型的可移植性.因?yàn)槟P褪仟?dú)立于視圖的,所以可以把一個(gè)模型獨(dú)立地移植到新的平臺(tái)工作.需要做的只是在新平臺(tái)上對(duì)視圖和控制器進(jìn)行新的修改.(4)潛在的框架結(jié)構(gòu).可以基于此模型建立應(yīng)用程序框架,不僅僅是用在設(shè)計(jì)界面的設(shè)計(jì)中.MVC的缺點(diǎn)表現(xiàn)在以下幾個(gè)方面:(1)增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性.對(duì)于簡(jiǎn)單的界面,嚴(yán)格遵循MVC,使模型、視圖與控制器分離,會(huì)增加結(jié)構(gòu)的復(fù)雜性,并可能產(chǎn)生過(guò)多的更新操作,降低運(yùn)行效率.(2)視圖與控制器間的過(guò)于緊密的連接.視圖與控制器是相互分離,但確實(shí)聯(lián)系緊密的部件,視圖沒(méi)有控制器的存在,其應(yīng)用是很有限的,反之亦然,這樣就妨礙了他們的獨(dú)立重用.(3)視圖對(duì)模型數(shù)據(jù)的低效率訪問(wèn).依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù).對(duì)未變化數(shù)據(jù)的不必要的頻繁訪問(wèn),也將損害操作性能.(4)目前,一般高級(jí)的界面工具或構(gòu)造器不支持MVC模式.改造這些工具以適應(yīng)MVC需要和建立分離的部件的代價(jià)是很高的,從而造成使用MVC的困難.2.3javaEE架構(gòu)2.3.1javaEE簡(jiǎn)介J2EE的基礎(chǔ)部分是由JSP(JavaServerPage)和JavaServlet這兩種技術(shù)共同構(gòu)成.其定義了一套有用的API、一個(gè)運(yùn)行時(shí)平臺(tái)、應(yīng)用程序接口和一個(gè)內(nèi)置模型,并能夠?qū)⑵渌泄δ芙M合成一個(gè)可擴(kuò)展的、可移植的和設(shè)計(jì)得更好的應(yīng)用程序[10].J2EE平臺(tái)支持簡(jiǎn)化的、基于組件開(kāi)發(fā)模型.我們將組件技術(shù)加以利用,就可以把程序分割成許多小模塊以適應(yīng)不同程序員擅長(zhǎng)的技術(shù),使開(kāi)發(fā)進(jìn)行分工操作,并行開(kāi)發(fā)讓開(kāi)發(fā)人員的技能得到最大限度的應(yīng)用,最大限度的提高開(kāi)發(fā)的效率.由于EJB模型遵循了高內(nèi)聚低耦合的編程理念,使其代碼的可移植性與重用性增強(qiáng).基于組件的設(shè)計(jì)簡(jiǎn)化了應(yīng)用程序的維護(hù).由于組件耦合度低,所以能被獨(dú)立地更新和替代,通過(guò)應(yīng)用程序中特定的組件被更新,使其很容易將新的功能增加進(jìn)來(lái),更易于維護(hù).以下是J2EE典型的四層結(jié)構(gòu)如圖2.2[11]所示:圖2.2J2EE的四層結(jié)構(gòu)圖2.3.2javaEE的優(yōu)勢(shì)javaEE平臺(tái)平臺(tái)對(duì)分步式企業(yè)應(yīng)用開(kāi)發(fā)而言,在保存企業(yè)現(xiàn)有IT資產(chǎn)減少重復(fù)性投入的同時(shí)也滿(mǎn)足了未來(lái)商業(yè)應(yīng)用的需要,具有以下優(yōu)點(diǎn):(1)javaEE建立了企業(yè)應(yīng)用開(kāi)發(fā)所需要的一些技術(shù)標(biāo)準(zhǔn),如企業(yè)業(yè)務(wù)組件(EJB)等;(2)javaEE自身具備完善的目錄服務(wù)支持、高度的安全機(jī)制、高效的性能展現(xiàn)等眾多技術(shù)優(yōu)勢(shì),并且基于開(kāi)放的標(biāo)準(zhǔn),可以促進(jìn)技術(shù)的更好發(fā)展;(3)javaEE為企業(yè)系統(tǒng)提供了完美的機(jī)制和統(tǒng)一的平臺(tái),不僅簡(jiǎn)化開(kāi)發(fā)過(guò)程,也使得Web應(yīng)用程序資源利用率更高.讓系統(tǒng)具有高可用性、高可擴(kuò)展性、易維護(hù)性;(4)javaEE縮短了產(chǎn)品研發(fā)時(shí)間,絕大多數(shù)的供應(yīng)商的產(chǎn)品是根據(jù)JavaEE標(biāo)準(zhǔn)而開(kāi)發(fā)的,因此開(kāi)發(fā)者可以擺脫中間件的困擾而專(zhuān)注于各自業(yè)務(wù)邏輯的應(yīng)用開(kāi)發(fā);(5)javaEE使用負(fù)載平衡策略,使系統(tǒng)軟硬件資源利用率及性能表現(xiàn)最大化,能夠消除系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成部署,實(shí)現(xiàn)可高度伸縮的系統(tǒng).2.4ajax技術(shù)Ajax的工作原理相當(dāng)于在用戶(hù)和服務(wù)器之間加了一個(gè)中間層,使用戶(hù)操作與服務(wù)器響應(yīng)異步化.在目前的Web2.0熱潮中,Ajax正吸引著全世界的眼球,成為人們談?wù)撟疃嗟募夹g(shù)術(shù)語(yǔ).組成Ajax的各種技術(shù)使Web應(yīng)用的交互如Flickr,Backpack和Google在這方面已經(jīng)有質(zhì)的飛躍.這個(gè)術(shù)語(yǔ)源自描述從基于網(wǎng)頁(yè)的Web應(yīng)用到基于數(shù)據(jù)的應(yīng)用的轉(zhuǎn)換.它使瀏覽器可以為用戶(hù)提供更為自然的瀏覽體驗(yàn).每當(dāng)需要更新時(shí),客戶(hù)端Web頁(yè)面的修改是異步的和逐步增加的[12].這樣,匆Ajax在提交Web頁(yè)面內(nèi)容時(shí)大大提高了用戶(hù)界面的速度.在使用Ajax的應(yīng)用程序中沒(méi)必要長(zhǎng)時(shí)間等待整個(gè)頁(yè)面的刷新.頁(yè)面中需要更新的那部分才進(jìn)行修改,如果可能的話,更新是在本地完成的,并且是異步的.2.4.1ajax的優(yōu)點(diǎn)相對(duì)于傳統(tǒng)的WEB應(yīng)用程序來(lái)說(shuō),采用Ajax技術(shù)的WEB應(yīng)用程序具有如下的三個(gè)優(yōu)點(diǎn):(1)瀏覽器分擔(dān)一部分的業(yè)務(wù)邏輯,而不再是僅僅顯示內(nèi)容.在傳統(tǒng)的WEB應(yīng)用程序中,瀏覽器只顯示內(nèi)容.它的作用僅僅是顯示服務(wù)器傳送回來(lái)的頁(yè)面,無(wú)法做出自己的判斷,即不參與到整個(gè)業(yè)務(wù)邏輯的處理中,也不了解用戶(hù)在整個(gè)業(yè)務(wù)流程中的狀態(tài).所有的信息和邏輯都是在服務(wù)器進(jìn)行處理,服務(wù)器決定了一切.而使用Ajax,一部分的業(yè)務(wù)邏輯就可以在客戶(hù)端實(shí)現(xiàn).通過(guò)JavaScript代碼,客戶(hù)端可以一直跟蹤用戶(hù)在整個(gè)業(yè)務(wù)流程中的狀態(tài).當(dāng)用戶(hù)進(jìn)行操作時(shí)它可以相應(yīng)的改變頁(yè)面顯示.在處理用戶(hù)的輸入時(shí)可以由它來(lái)決定是提交給服務(wù)器處理還是在本地單獨(dú)進(jìn)行處理,或者兩種兼而有之.這樣Ajax分擔(dān)了一部分的業(yè)務(wù)邏輯,與傳統(tǒng)的WEB應(yīng)用程序的瘦客戶(hù)端相比,它實(shí)現(xiàn)了一種胖客戶(hù)端[m},緩解了服務(wù)器端所承擔(dān)的壓力,有效的利用了客戶(hù)端的資源.(2)服務(wù)器僅僅傳送數(shù)據(jù),而不是內(nèi)容.在傳統(tǒng)的WEB應(yīng)用程序中,服務(wù)器向客戶(hù)端傳送的東西混合了數(shù)據(jù)、內(nèi)容和模板文件.有時(shí)用戶(hù)僅僅是進(jìn)行了很少一部分的改動(dòng),只需要引起頁(yè)面的部分改動(dòng),但是如果想和服務(wù)器交互的話,服務(wù)器仍然會(huì)將改動(dòng)的數(shù)據(jù)連同整個(gè)頁(yè)面全部傳回客戶(hù)端.而使用Ajax,客戶(hù)端只需要向服務(wù)器發(fā)送一個(gè)異步請(qǐng)求,服務(wù)器經(jīng)過(guò)處理后僅將改變的數(shù)據(jù)返回給客戶(hù)端,而并不是將頁(yè)面混合數(shù)據(jù)傳回來(lái).然后客戶(hù)端再根據(jù)傳回的數(shù)據(jù)對(duì)頁(yè)面實(shí)行部分更新或者部分加載.它消除了整個(gè)頁(yè)面的加載,有利于增量修改,而不是完全的更新ys}.由于服務(wù)器僅僅傳送數(shù)據(jù),這樣使用Ajax可以有效的實(shí)現(xiàn)內(nèi)容與數(shù)據(jù)的分離.同時(shí)服務(wù)器與客戶(hù)端之間的通信量大大降低,減少了網(wǎng)絡(luò)流量,有效的利用了網(wǎng)絡(luò)帶寬,緩解了網(wǎng)絡(luò)壓力.(3)與用戶(hù)的交互更具有流暢性和連貫性.傳統(tǒng)的WEB應(yīng)用程序提供了兩種方式來(lái)實(shí)現(xiàn)客戶(hù)端與服務(wù)器的交互:超級(jí)鏈接和Form表單.無(wú)論使用哪種方式,與服務(wù)器的交互都需要重新刷新整個(gè)頁(yè)面,用戶(hù)在服務(wù)器的返回結(jié)果之前只能等待,整個(gè)操作失去了流暢性和連貫性.而使用Ajax,由于Ajax與服務(wù)器的交互是異步的,瀏覽器使用不同的線程來(lái)偵聽(tīng)服務(wù)器的響應(yīng)和用戶(hù)的其他操作.這樣,用戶(hù)在向服務(wù)器提交完數(shù)據(jù)后,可以繼續(xù)進(jìn)行其他的操作,完全沒(méi)有停頓的感覺(jué),使整個(gè)WEB程序就像使用桌面應(yīng)用程序一樣流暢自如.2.5數(shù)據(jù)庫(kù)MySqlMySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB公司開(kāi)發(fā),目前屬于Oracle公司[13].MySQL是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一,MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性,MySQL所使用的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言,MySQL由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù).MySQL數(shù)據(jù)庫(kù)的主要特點(diǎn)包括以下幾點(diǎn):(1)性能出色:MySQL的核心程序采用完全的多線程編程,并且支持多處理器,極大地提高了程序的運(yùn)行效率.因在開(kāi)發(fā)MySQL這款數(shù)據(jù)庫(kù)的時(shí)候運(yùn)用了C語(yǔ)言作為編程語(yǔ)言,并且運(yùn)用了多線程,所以它對(duì)CPU的充分利用變得更加容易.(2)開(kāi)源數(shù)據(jù)庫(kù):操作方便,使用成本較低,版本更新較快,提供的接口支持多種語(yǔ)言連接操作.MySQL有一個(gè)非常靈活而且安全的權(quán)限和口令系統(tǒng).當(dāng)客戶(hù)操作客戶(hù)端向服務(wù)器發(fā)出請(qǐng)求與MySQL服務(wù)器建立連接時(shí),MySQL與客戶(hù)之間所有口令信息的傳送都會(huì)得到加密處理,這突出了MySQL的安全性.(3)多樣性:MySQL能夠根據(jù)不同用戶(hù)的需求差異,提供相應(yīng)的用戶(hù)界面供其選擇,支持多種程序語(yǔ)言界面還為這些編程語(yǔ)言提供了API.可以使用封裝好的客戶(hù)端也可以寫(xiě)一個(gè)合適的應(yīng)用程序.MySQL可用于多種操作系統(tǒng)平臺(tái),如:Unix、Windows,也可以使用在PC機(jī)和服務(wù)器上.3系統(tǒng)設(shè)計(jì)3.1需求模型的建立3.1.1用例分析用例是對(duì)參與者使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過(guò)程的描述,其中包含由雙方交替執(zhí)行的一系列動(dòng)作.一個(gè)用例是通過(guò)使用系統(tǒng)功能的某些部分而使用的一種具體方式,每個(gè)用例包括一個(gè)由參與者發(fā)動(dòng)的完整的事件過(guò)程[14].發(fā)現(xiàn)用例的方法是:(1)全面地了解和收集用戶(hù)所要求的各項(xiàng)系統(tǒng)功能,確定系統(tǒng)邊界,找出所有的參與者,向用戶(hù)和領(lǐng)域?qū)<伊私馀c各項(xiàng)功能有關(guān)業(yè)務(wù)流程.(2)把用戶(hù)所提出的功能組織成適當(dāng)?shù)膯挝?,即:一?xiàng)功能完成一項(xiàng)完整而獨(dú)立的工作,并且是通過(guò)參與者與系統(tǒng)的一次交互能夠完成的.(3)以窮舉得方式考慮每一類(lèi)參與者與系統(tǒng)的交互情況,看看每個(gè)參與者要求系統(tǒng)提供什么功能,以及參與者的每一項(xiàng)輸入信息將要求系統(tǒng)做出什么反應(yīng),進(jìn)行什么處理,定義相應(yīng)的用檢查用戶(hù)對(duì)系統(tǒng)的各項(xiàng)功能需求是否都通過(guò)相應(yīng)的用例做了描述.用戶(hù)用例圖如圖3.1所示: 圖3.1用戶(hù)用例圖用戶(hù)(患者)可以查詢(xún)系統(tǒng)內(nèi)已有的科室信息和醫(yī)師信息,根據(jù)自己情況預(yù)約和取消預(yù)約.所以本模塊中用例如下:登錄系統(tǒng)、查詢(xún)醫(yī)院信息、查詢(xún)科室、查詢(xún)醫(yī)生、預(yù)約掛號(hào)、查看掛號(hào)、取消掛號(hào).用例分析:用戶(hù)通過(guò)登錄來(lái)進(jìn)入系統(tǒng),登錄以后可以查看醫(yī)院信息,也可以根據(jù)自己的病情查詢(xún)需要的科室以便進(jìn)入科室選擇醫(yī)生掛號(hào).用戶(hù)也可以直接選擇自己想要掛號(hào)的醫(yī)生進(jìn)行掛號(hào),選擇完醫(yī)生后如果掛號(hào)人數(shù)沒(méi)有滿(mǎn)用戶(hù)可以在該醫(yī)生處進(jìn)行掛號(hào).用戶(hù)還可以查看自己的掛號(hào),如果因?yàn)橐恍┣闆r不能就醫(yī),可以取消自己的掛號(hào).管理員用例圖如圖3.2所示:圖3.2管理員用例圖管理員可以發(fā)布,刪除,修改通知,管理用戶(hù)信息,如刪除賬號(hào),還可以對(duì)醫(yī)生進(jìn)行添加、刪除的操作,審核掛號(hào),刪除過(guò)期掛號(hào).所以本模塊中用例如下:登錄系統(tǒng)、發(fā)布通知、修改通知、刪除通知、審核注冊(cè)信息、審核掛號(hào)、刪除過(guò)期掛號(hào)、添加醫(yī)生、刪除醫(yī)生.用例分析:管理員通過(guò)登錄來(lái)進(jìn)入系統(tǒng),登錄后可以發(fā)布通知,也可以對(duì)已經(jīng)發(fā)布的通知進(jìn)行修改,還可以刪除已經(jīng)發(fā)布的通知.管理員可以添加能夠掛號(hào)的醫(yī)生,還可以刪除不能掛號(hào)的醫(yī)生.管理員能夠?qū)τ脩?hù)的掛號(hào)進(jìn)行審核,刪除過(guò)期掛號(hào).3.2基本模型的建立3.2.1系統(tǒng)中的類(lèi)的設(shè)計(jì)類(lèi)圖最集中、最完整地體現(xiàn)了面向?qū)ο蟮母拍?,同時(shí)也為面向?qū)ο蟮木幊烫峁┝俗钪苯印⒆羁煽康囊罁?jù).構(gòu)成類(lèi)圖中的主要成分是類(lèi)、屬性、操作、一般-特殊結(jié)構(gòu)、整體-部分結(jié)構(gòu)、關(guān)聯(lián)和消息.系統(tǒng)中類(lèi)圖如圖3.3所示.圖3.3類(lèi)圖3.2.2類(lèi)圖分析(1)用戶(hù)類(lèi)在本系統(tǒng)中最主要的類(lèi)為管理員與病人,因?yàn)楣芾韱T、病人類(lèi)都具有登錄、修改密碼功能,因此特意抽象出一個(gè)類(lèi)用戶(hù),管理員、病人用戶(hù)繼承類(lèi)用戶(hù),為一般-特殊關(guān)系.(2)管理員類(lèi)在管理員里,用戶(hù)管理是修改密碼和刪除普通用戶(hù)等操作;醫(yī)生信息管理較為復(fù)雜,需要由管理員對(duì)醫(yī)生及醫(yī)生信息進(jìn)行增、刪、改、查等操作,醫(yī)生這一類(lèi)完全由管理員操作,它自己沒(méi)有任何操作功能.(3)病人類(lèi)屬性:真實(shí)姓名(realname)、性別(sex)、年齡(age)、密碼(password)、身份證號(hào)(identificationcardnumbers)、病狀(symptom)操作:用戶(hù)登錄(login)、用戶(hù)注冊(cè)(usersregister)、修改密碼(changepassword)、醫(yī)生資料查詢(xún)(checkdoctorinformation)、個(gè)人信息查詢(xún)(checkpersonalinformation).這個(gè)類(lèi)中,之所以要求病人用戶(hù)填寫(xiě)真實(shí)姓名和身份證號(hào),是為了讓管理員能夠?qū)徍藪焯?hào)的人是否是真實(shí)存在的,可以提高系統(tǒng)性能和可靠性.(4)類(lèi)名:醫(yī)生(doctors)屬性:姓名(doctorname)、年齡(age)、編號(hào)(id)、畢業(yè)學(xué)校(SchoolofGraduation)、從醫(yī)年齡(howlongtobeadoctor)、科室(Departments)、職稱(chēng)(jobtitle)、專(zhuān)長(zhǎng)(specialskill).此類(lèi)與病人類(lèi)和管理員類(lèi)不同,因?yàn)樗皇怯脕?lái)讓管理員添加和讓病人用戶(hù)來(lái)預(yù)約而已,他自己既不能查看自己的信息,也沒(méi)有登錄和注冊(cè)功能,故它不是用戶(hù)的子類(lèi).(5)類(lèi)名:預(yù)約信息(ordersinformation)屬性:預(yù)約編號(hào)(orderid)、預(yù)約時(shí)間(ordertimes)、預(yù)約人(orderpeople)、預(yù)約醫(yī)生(ordereddoctors)、科室(Departments)、專(zhuān)長(zhǎng)(specialskill).此類(lèi)可供病人查看自己的預(yù)約信息和管理員查看所用病人的預(yù)約信息和刪除不合格的預(yù)約信息.(6)類(lèi)名:掛號(hào)(order)屬性:用戶(hù)名(username)、密碼(password).操作:登錄(Login)、取消預(yù)約(cancelorder),處理預(yù)約(dealwithorders).這里的掛號(hào)是用戶(hù)的一個(gè)操作功能,之所以把它封裝成一個(gè)類(lèi),是為了讓此功類(lèi)圖分析更加清晰,方便系統(tǒng)的分析,方便今后的工作.3.3輔助模型3.3.1活動(dòng)圖對(duì)管理員和用戶(hù)兩個(gè)模塊進(jìn)行分析,判斷各模塊主要有哪些活動(dòng),然后對(duì)這些活動(dòng)進(jìn)行分析,判斷出活動(dòng)圖中的各個(gè)元素和活動(dòng)圖的流程.在用戶(hù)模塊中可以看出主要是進(jìn)行查找醫(yī)生然后掛號(hào)的活動(dòng),所以用戶(hù)模塊中只需要用戶(hù)掛號(hào)活動(dòng)圖;在管理員模塊中除了發(fā)布通知活動(dòng)復(fù)雜外,其他活動(dòng)一目了然.(1)用戶(hù)掛號(hào)活動(dòng)圖如圖3.4所示圖3.4用戶(hù)活動(dòng)圖用戶(hù)第一個(gè)動(dòng)作為登錄,登錄在判斷后分為登陸成功和登錄失敗.登錄失敗可以選擇繼續(xù)登錄還是活動(dòng)結(jié)束.登陸成功后可以查詢(xún)科室,查詢(xún)科室以后可以查詢(xún)?cè)摽剖业尼t(yī)生,在查詢(xún)醫(yī)生以后可以進(jìn)行預(yù)約掛號(hào),如果掛號(hào)人數(shù)已滿(mǎn)則該掛號(hào)取消,如果為等待驗(yàn)證則掛號(hào)通過(guò),然后活動(dòng)結(jié)束.(2)管理員發(fā)布通知活動(dòng)圖如圖3.5所示圖3.5管理員活動(dòng)圖 管理員第一個(gè)動(dòng)作為登錄,如果為登錄失敗則可以選擇繼續(xù)登錄還是結(jié)束活動(dòng).登錄成功后可以撰寫(xiě)通知,通知撰寫(xiě)后如果直接發(fā)布則后續(xù)可能有兩種情況,一種是刪除通知,另一種是結(jié)束活動(dòng).如果撰寫(xiě)后等待發(fā)布則后續(xù)可能有三種情況,一種是刪除通知,另一種是發(fā)布通知,和上述直接發(fā)布一致.還有一種是修改通知,修改通知如果后續(xù)動(dòng)作為等待發(fā)布,則和前面等待發(fā)布一致,如果后續(xù)動(dòng)作為發(fā)布,則和前面發(fā)布一致.3.3.2順序圖順序圖主要體現(xiàn)完成某一操作的順序關(guān)系.從用戶(hù)登錄到網(wǎng)站首頁(yè),和自己要選擇的登錄模塊(患者,醫(yī)生,管理員)患者圖:患者登錄、注冊(cè)后進(jìn)行預(yù)約掛號(hào),查詢(xún)修改信息.用戶(hù)順序圖如圖3.6所示.管理員:登錄后對(duì)醫(yī)生信息和醫(yī)生的管理,管理員順序圖如圖3.7所示.圖3.6用戶(hù)順序圖圖3.7管理員順序圖3.4ER圖ER模型直接從現(xiàn)實(shí)世界抽象出實(shí)體類(lèi)型及實(shí)體間聯(lián)系,然后用ER圖來(lái)表示數(shù)據(jù)模型.它有兩個(gè)明顯的優(yōu)點(diǎn):接近于人的思維,容易理解;與計(jì)算機(jī)無(wú)關(guān),用戶(hù)容易接受[15].E-R圖為實(shí)體-聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型.構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為[16]:·實(shí)體型:用矩形表示,矩形框內(nèi)寫(xiě)明實(shí)體名;·屬性:用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái);·聯(lián)系:用菱形表示,菱形框內(nèi)寫(xiě)明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類(lèi)型(1:1,1:n或m:n).科室信息屬性圖如圖3.8所示,在該圖中實(shí)體為科室信息,科室信息有兩個(gè)屬性:科室名稱(chēng)和科室概況.科室信息科室信息科室名稱(chēng)科室概況圖3.8科室信息屬性圖管理員信息屬性圖如圖3.9所示,在該圖中實(shí)體為管理員,管理員有兩個(gè)屬性:賬戶(hù)名和密碼.管理員管理員賬號(hào)名密碼圖3.9管理員信息屬性圖患者信息屬性圖如圖3.10所示,在該圖中實(shí)體為患者,患者的屬性分別為真實(shí)姓名、登錄名、登錄密碼、性別等.患者患者姓名登錄名登錄密碼類(lèi)別性別聯(lián)系電話地址身份證號(hào)編號(hào)圖3.10患者信息屬性圖 醫(yī)生信息屬性圖如圖3.11所示,在該圖中實(shí)體為醫(yī)生,醫(yī)生的屬性分別為醫(yī)生名稱(chēng)、醫(yī)生職稱(chēng)和醫(yī)生簡(jiǎn)介.圖3.11醫(yī)生信息屬性圖圖3.11醫(yī)生信息屬性圖醫(yī)生信息醫(yī)生職稱(chēng)醫(yī)生名稱(chēng)醫(yī)生簡(jiǎn)介本系統(tǒng)的E-R圖如圖3.6所示,圖中顯示了4個(gè)用矩形表示的實(shí)體類(lèi)型:用戶(hù),科室信息,醫(yī)師信息和時(shí)間表,各個(gè)實(shí)體類(lèi)型又有其對(duì)應(yīng)的類(lèi)型,在上述圖中可以找到,實(shí)體與實(shí)體間存在四個(gè)聯(lián)系,根據(jù)不同的實(shí)際情況給輸了聯(lián)系類(lèi)型.從圖中可以清晰的看出各個(gè)實(shí)體的特點(diǎn)以及它們之間的關(guān)聯(lián)性.圖3.6系統(tǒng)E-R圖圖3.12系統(tǒng)圖3.5數(shù)據(jù)庫(kù)設(shè)計(jì)在完成系統(tǒng)的ER圖之后,需要將ER模型轉(zhuǎn)化為關(guān)系模型,也就是說(shuō),要設(shè)計(jì)出所需要的表格.在這里,選用的是關(guān)系數(shù)據(jù)庫(kù).因?yàn)殛P(guān)系數(shù)據(jù)庫(kù)中的二維表格可以很清楚地描述數(shù)據(jù)之間的聯(lián)系.管理員表如表3.1所示用來(lái)存儲(chǔ)管理員的基本信息,包括管理員的登錄名和密碼,在管理員登錄的時(shí)候使用.表3.1管理員表結(jié)構(gòu)字段名稱(chēng)字段類(lèi)型說(shuō)明aid(k)int(4)ID序列號(hào)unameVarchar(20)登錄賬號(hào)UpwdVarchar(6)登錄密碼醫(yī)生信息表如表3.2所示主要用來(lái)存儲(chǔ)醫(yī)生的個(gè)人信息,包括醫(yī)生姓名,性別,年齡,職稱(chēng)等,在用戶(hù)查詢(xún)醫(yī)生時(shí)會(huì)顯示查出的該表中醫(yī)生個(gè)人信息.表3.2醫(yī)生信息表結(jié)構(gòu)字段名稱(chēng)字段類(lèi)型說(shuō)明did(k)int(4)ID序列號(hào)NameVarchar(30)醫(yī)生名字SexVarchar(2)性別AgeInt(3)年齡LevelVarchar(20)職稱(chēng)SpecialVarchar(20)擅長(zhǎng)SectionVarchar(20)科室imgVarchar(100)醫(yī)生照片` 患者信息表如表3.3所示用來(lái)存儲(chǔ)患者的基本信息,包括患者的登錄名,密碼,真實(shí)姓名,身份證號(hào)等.其中登錄名和密碼是患者在登錄系統(tǒng)是使用的.表3.3患者信息表結(jié)構(gòu)字段名稱(chēng)字段類(lèi)型說(shuō)明pid(k)int(4)ID序列號(hào)NameVarchar(32)用戶(hù)姓名UnameVarchar(32)登錄名稱(chēng)UpwdVarchar(32)登錄密碼SexVarchar(2)性別AgeVarchar(3)年齡AddressVarchar(32)地址PhoneVarchar(32)聯(lián)系電話IdVarchar(18)醫(yī)生預(yù)約時(shí)間信息表如表3.4所示用來(lái)存儲(chǔ)醫(yī)生的預(yù)約信息,包括預(yù)約日期,上午/下午,醫(yī)生現(xiàn)在能夠掛號(hào)的數(shù)量,醫(yī)生id,其中醫(yī)生編號(hào)是醫(yī)生表中的主鍵作為醫(yī)生預(yù)約時(shí)間信息表的外鍵,為了將預(yù)約時(shí)間表和醫(yī)生聯(lián)系在一起.表3.4醫(yī)生預(yù)約時(shí)間信息表結(jié)構(gòu)字段名稱(chēng)字段類(lèi)型說(shuō)明cid(k)int(12)ID序列號(hào)dateVarchar(32)日期apVarchar(32)上午/下午numberint(12)掛號(hào)數(shù)量didint(12)醫(yī)生編號(hào)病人掛號(hào)表如表3.5所示用來(lái)表示病人在某個(gè)醫(yī)生處掛號(hào)的基本信息,包括醫(yī)生編號(hào),病人編號(hào),預(yù)約日期,上午/下午,醫(yī)生姓名,其中病人編號(hào)是病人表中的主鍵作為病人掛號(hào)表的外鍵,醫(yī)生編號(hào)是醫(yī)生表中的主鍵作為掛號(hào)表的外鍵,為了將掛號(hào)表與醫(yī)生表和病人表聯(lián)系在一起.表3.5病人掛號(hào)表結(jié)構(gòu)字段名稱(chēng)字段類(lèi)型說(shuō)明oidInt(12)ID序列號(hào)didInt(12)醫(yī)生編號(hào)pidInt(12)病人編號(hào)dateVerchar(12)日期apVerchar(12)上午/下午docNameVerchar(32)醫(yī)生姓名4系統(tǒng)實(shí)現(xiàn)4.1系統(tǒng)首頁(yè)的實(shí)現(xiàn)基于WEB服務(wù)的醫(yī)院網(wǎng)上掛號(hào)系統(tǒng)首頁(yè)如圖4.1所示完成醫(yī)院概述,新聞公告,科室導(dǎo)航等,如果用戶(hù)已經(jīng)登錄可以查看自己的掛號(hào)信息,沒(méi)有登錄則不能查看.瀏覽者可以輸入自己想要掛號(hào)的醫(yī)生姓名或科室名稱(chēng)查找自己想要掛號(hào)的醫(yī)生,查找后會(huì)顯示該科室的醫(yī)生姓名或該醫(yī)生的姓名,支持模糊查詢(xún).瀏覽者點(diǎn)擊醫(yī)生姓名后會(huì)顯示該醫(yī)生的信息和掛號(hào)信息,如果已經(jīng)登錄點(diǎn)擊確認(rèn)預(yù)約后會(huì)判斷是否已經(jīng)在該醫(yī)生處掛過(guò)號(hào),如果沒(méi)有則掛號(hào)成功,如果有則掛號(hào)失敗,如果用戶(hù)沒(méi)有登錄則點(diǎn)擊預(yù)約掛號(hào)后會(huì)跳轉(zhuǎn)到登錄界面.查找自己系統(tǒng)主界面不需要登錄密碼等信息,為瀏覽者任意開(kāi)放,供瀏覽者了解醫(yī)院情況和查找醫(yī)生,瀏覽者不需要登錄就可以使用這些功能.圖4.1首頁(yè)4.2登錄功能實(shí)現(xiàn)在登錄窗口,用戶(hù)可以選擇管理員還是用戶(hù)登錄,選擇完以后輸入用戶(hù)名和密碼,用戶(hù)名和密碼輸入完成后點(diǎn)擊登錄按鈕提交到servlet.servlet取得用戶(hù)輸入的用戶(hù)名和密碼,然后判斷用戶(hù)選擇的是管理員登陸還是用戶(hù)登錄,根據(jù)用戶(hù)的選擇調(diào)用相應(yīng)的dao查詢(xún)數(shù)據(jù)庫(kù)中是否存在該用戶(hù)或者管理員.servlet取得返回值后判斷是否登陸成功,如果登錄成功則跳轉(zhuǎn)到管理員界面或用戶(hù)界面,如果用戶(hù)登錄失敗,會(huì)跳轉(zhuǎn)回登陸界面并且提示“用戶(hù)名或密碼錯(cuò)誤”,用戶(hù)重新輸入用戶(hù)名和密碼繼續(xù)上面的步驟.用戶(hù)登錄頁(yè)面如圖4.2所示.圖4.2用戶(hù)登錄頁(yè)面4.2用戶(hù)功能的實(shí)現(xiàn)4.2.1用戶(hù)注冊(cè)功能的實(shí)現(xiàn)如果需要注冊(cè)新用戶(hù),可以使用用戶(hù)注冊(cè)功能,添加的信息包括用戶(hù)的真實(shí)姓名、性別、登陸名、登陸密碼、地址等其他信息.當(dāng)用戶(hù)輸入完一條信息后鼠標(biāo)移開(kāi),會(huì)在javaScript進(jìn)行驗(yàn)證,如果輸入錯(cuò)誤會(huì)提示輸入錯(cuò)誤信息,用戶(hù)看到錯(cuò)誤信息后應(yīng)該根據(jù)提示的信息對(duì)輸入的信息進(jìn)行修改.只有當(dāng)用戶(hù)的所有需要填寫(xiě)的信息都正確時(shí),用戶(hù)才可以進(jìn)行注冊(cè).用戶(hù)點(diǎn)擊注冊(cè)按鈕后會(huì)把所有信息傳遞到servlet,servlet調(diào)用該模塊Dao里的方法,把所有信息插入數(shù)據(jù)庫(kù).Servlet根據(jù)返回的信息判斷是否插入(注冊(cè))成功,如果注冊(cè)成功則跳轉(zhuǎn)到登錄頁(yè)面,注冊(cè)失敗跳轉(zhuǎn)回注冊(cè)頁(yè)面.在判斷用戶(hù)名和身份證的時(shí)候使用了ajax方法,用戶(hù)輸入完用戶(hù)名后鼠標(biāo)移開(kāi),進(jìn)入判斷用戶(hù)名是否存在的ajax方法中.在ajax方法中寫(xiě)好需要跳轉(zhuǎn)的servlet名和用戶(hù)輸入的值,跳轉(zhuǎn)到servlet以后根據(jù)用戶(hù)輸入的值調(diào)用該模塊dao里面的方法,通過(guò)查詢(xún)數(shù)據(jù)庫(kù)判斷用戶(hù)名是否已存在,servlet得到返回值后先轉(zhuǎn)化成json格式的數(shù)據(jù),然后傳回ajax方法中.根據(jù)返回值判斷用戶(hù)名是否已經(jīng)存在,如果存在提示用戶(hù)“用戶(hù)名已經(jīng)存在”,如果不存在提示用戶(hù)“用戶(hù)名可以使用”.使用ajax的優(yōu)點(diǎn)是不用刷新整個(gè)頁(yè)面,使用一步的方式與服務(wù)器通信,不需要打斷用戶(hù)的操作.所以在判斷用戶(hù)名的時(shí)候使用ajax進(jìn)行判斷,不會(huì)清除用戶(hù)輸入的其他信息.在使用ajax的時(shí)候剛開(kāi)始得不到ajax方法得不到servlet返回的值,所以ajax方法不能使用.最后解決方法是通過(guò)“JSONArrayjson=JSONArray.fromObject(check);”把得到的數(shù)據(jù)轉(zhuǎn)化成json格式,然后通過(guò)“out.write(json.toString());”返回到ajax中,通過(guò)這樣的方式可以得到servlet的返回值.判斷用戶(hù)名ajax代碼如下:$.getJSON( //url "http://localhost:8080/Hos/CheckUname", //data {"name":$("#Loginname").val()}, function(data){ //判斷,如果為true提示成功,否則失敗 if(data[0].value==1){ //清除表單 $("#login_msg") .empty() .html("用戶(hù)名已存在"); }else{ $("#login_msg") .empty() .html("用戶(hù)名可以使用")}先定義ajax的跳轉(zhuǎn)路徑和傳遞參數(shù),用戶(hù)名是判斷用戶(hù)名是否存在的servlet名,參數(shù)是用戶(hù)輸入的用戶(hù)名.然后取得servlet返回的數(shù)據(jù),判斷用戶(hù)名是否已存在,如果存在則提示用戶(hù)“用戶(hù)名已存在”,用戶(hù)需要重新填寫(xiě)用戶(hù)名,如果不存在則提示用戶(hù)“用戶(hù)名可以使用”,用戶(hù)可以繼續(xù)填寫(xiě)下面的信息. 4.2.2用戶(hù)查詢(xún)醫(yī)生功能的實(shí)現(xiàn)患者可以根據(jù)自己的病情查詢(xún)自己想要掛號(hào)的醫(yī)生,可以通過(guò)下拉框選擇輸入醫(yī)生姓名或醫(yī)生科室查找醫(yī)生,本模塊采用的是模糊搜索,也就是說(shuō)用戶(hù)不輸入醫(yī)生的完整姓名或者科室的完整名稱(chēng)也可以進(jìn)行查詢(xún).用戶(hù)輸入完成后點(diǎn)擊搜索按鈕跳轉(zhuǎn)到servlet,servlet取得用戶(hù)輸入的參數(shù)和用戶(hù)選擇的是按醫(yī)生姓名查詢(xún)還是按醫(yī)生科室進(jìn)行查詢(xún),判斷患者的選擇后調(diào)用本模塊dao中相應(yīng)的方法,查詢(xún)數(shù)據(jù)庫(kù)中的醫(yī)生姓名.查詢(xún)完后servlet跳轉(zhuǎn)到用戶(hù)查找醫(yī)生頁(yè)面進(jìn)行顯示,顯示的是查詢(xún)出的醫(yī)生姓名.用戶(hù)選擇自己想要掛號(hào)的醫(yī)生姓名點(diǎn)擊進(jìn)入預(yù)約掛號(hào)模塊.Stringselect=request.getParameter("quicksearch1$select"); Stringname=request.getParameter("txt");//醫(yī)生姓名or科室名稱(chēng) List<Doctor>list=newArrayList<Doctor>(); if("1".equals(select)){//按姓名查詢(xún)醫(yī)生信息 PatientDaopdao=newPatientImpl(); list=pdao.CheckDoctor1(name); }else{//按科室查詢(xún)醫(yī)生信息 PatientDaopdao=newPatientImpl(); list=pdao.Checkdept(name);} request.setAttribute("list",list); request.getRequestDispatcher("Patient/PatientCheckDoctor.jsp").forward(request,response);通過(guò)if-else判斷用戶(hù)選擇的是按醫(yī)生姓名查詢(xún)還是按醫(yī)生科室查詢(xún),然后調(diào)用dao中對(duì)應(yīng)的方法,返回值保存到list中,然后通過(guò)request.setAttribute(“l(fā)ist”,list);設(shè)置值使jsp頁(yè)面中可以取到.4.2.3預(yù)約模塊的實(shí)現(xiàn)用戶(hù)查詢(xún)到自己想要預(yù)約的醫(yī)生后會(huì)顯示醫(yī)生的基本信息和掛號(hào)信息,包括掛號(hào)日期和人數(shù)等,用戶(hù)在確定自己要在該醫(yī)生處掛號(hào)時(shí)點(diǎn)擊確認(rèn)預(yù)約按鈕,點(diǎn)擊以后會(huì)彈出提示框“確定要掛號(hào)該醫(yī)生嗎”.點(diǎn)擊確定后傳送數(shù)據(jù)到servlet,servlet會(huì)進(jìn)行判斷用戶(hù)是否已經(jīng)登錄,如果沒(méi)有登錄則會(huì)跳轉(zhuǎn)到登錄頁(yè)面,如果已經(jīng)登錄servlet得到頁(yè)面?zhèn)鬟f的數(shù)據(jù).首先進(jìn)行用戶(hù)是否已經(jīng)在該醫(yī)生處掛號(hào)判斷,從數(shù)據(jù)庫(kù)查找數(shù)據(jù),如果已經(jīng)掛過(guò)號(hào),則系統(tǒng)提示“您已經(jīng)掛過(guò)號(hào)”,跳轉(zhuǎn)到我的掛號(hào)頁(yè)面,如果沒(méi)有掛號(hào),則在數(shù)據(jù)庫(kù)中掛號(hào)表插入掛號(hào)信息,并且在掛號(hào)信息表中將掛號(hào)數(shù)量減一.然后跳轉(zhuǎn)到我的掛號(hào)頁(yè)面.在我的掛號(hào)頁(yè)面中會(huì)顯示出用戶(hù)的掛號(hào)信息.在預(yù)約模塊中先對(duì)病人是否在該醫(yī)生處進(jìn)行判斷,很好的防止了病人亂掛號(hào)的發(fā)生.病人也可以點(diǎn)擊我的掛號(hào)查看自己的掛號(hào)信息,如果想要取消掛號(hào)的話可以點(diǎn)擊取消預(yù)約取消自己的掛號(hào).用戶(hù)點(diǎn)擊取消掛號(hào)后,跳轉(zhuǎn)到servlet后調(diào)dao刪除該掛號(hào),然后修改預(yù)約表里的掛號(hào)人數(shù),人數(shù)加一. if(session.getAttribute("patient")==null){ response.sendRedirect("Patient/PatientLogin.jsp"); }else{ PatientDaopd=newPatientImpl(); booleanres=pd.checkTheDocForOrd(did,pid,date); Stringyes="no"; AppointmentDaoadao=newAppointmentImpl(); if(res){ yes="yes"; request.setAttribute("yes",yes); request.getRequestDispatcher("CheckAppointmentInfo").forward(request, response); }else{ if(adao.insertorder(did,pid,date,ap,name)==1){ if(adao.updateAppointment(did,date,number)==1){ request.setAttribute("yes",yes); System.out.println("success"); request.getRequestDispatcher("index.jsp").forward(request, response);先通過(guò)if判斷用戶(hù)是否登錄,因?yàn)槿绻脩?hù)已經(jīng)登錄過(guò)會(huì)在session存儲(chǔ)“patient”,所以如果if判斷為空則用戶(hù)沒(méi)有登錄,跳轉(zhuǎn)到用戶(hù)登錄頁(yè)面.如果不為空則調(diào)用dao中的方法查詢(xún)用戶(hù)是否在該醫(yī)生處有沒(méi)有就診的過(guò)號(hào).如果有則跳轉(zhuǎn)到我的掛號(hào)頁(yè)面.如果沒(méi)有則在數(shù)據(jù)庫(kù)中插入該用戶(hù)的掛號(hào),并且醫(yī)生能掛號(hào)的人數(shù)減一.4.3管理員模塊的實(shí)現(xiàn)4.3.1醫(yī)生管理分頁(yè)的實(shí)現(xiàn)由于數(shù)據(jù)庫(kù)采用的是MySql數(shù)據(jù)庫(kù),所以分頁(yè)的實(shí)現(xiàn)是根據(jù)MySql數(shù)據(jù)庫(kù)的limit關(guān)鍵字實(shí)現(xiàn)的.以“select*fromdoctorlimit0,4”為例,0代表從第幾條數(shù)據(jù)開(kāi)始顯示,4代表一共顯示多少條數(shù)據(jù).根據(jù)這種方法,把0的位置的數(shù)據(jù)設(shè)置成變量p,根據(jù)用戶(hù)點(diǎn)擊第幾頁(yè)后傳遞到servlet取得的數(shù)據(jù)進(jìn)行處理,如果所得到的數(shù)據(jù)pp為1或null則servlet取得的數(shù)據(jù)賦值為0,也就是第一頁(yè)顯示數(shù)據(jù)從第一條數(shù)據(jù)開(kāi)始,如果不為0則pp=(pp-1)*4,也就是第一頁(yè)顯示的最后一條數(shù)據(jù)是第pp+1條數(shù)據(jù).然后傳到模塊對(duì)應(yīng)的dao里面的方法查詢(xún)出這幾條數(shù)據(jù).而且在dao中還要查詢(xún)出總的數(shù)據(jù)量count,然后根據(jù)pageCount=(count+4-1)/4計(jì)算出一共可以分出多少頁(yè).Servlet得到返回的寫(xiě)好的分頁(yè)類(lèi)類(lèi)型的數(shù)據(jù),然后傳回jsp頁(yè)面中進(jìn)行顯示.使用limit進(jìn)行分頁(yè)的好處之一是代碼簡(jiǎn)單,易于理解,不用寫(xiě)很復(fù)雜的程序就可以做到分頁(yè).在進(jìn)系統(tǒng)后點(diǎn)擊醫(yī)生管理連接的時(shí)候會(huì)報(bào)數(shù)據(jù)轉(zhuǎn)換異常的錯(cuò)誤,經(jīng)過(guò)調(diào)試發(fā)現(xiàn)是剛開(kāi)始pp1變量從jsp得到的是null值,而null轉(zhuǎn)換成int類(lèi)型pp時(shí)會(huì)拋出異常.最后解決的方法是先把pp賦初值,然后進(jìn)行if判斷如果為null則pp=0,如果不為null則進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換.醫(yī)生管理頁(yè)面如圖4.3所示.Servlet中的代碼:intpp=0; response.setContentType("text/html"); Stringpp1=request.getParameter("pp"); if(pp1==null||pp1=="1"){ pp=0; }else{ pp=Integer.parseInt(pp1); pp=(pp-1)*4; }圖4.3醫(yī)生管理頁(yè)面4.3.2增加醫(yī)生模塊的實(shí)現(xiàn)管理員需要增加可以預(yù)約掛號(hào)的醫(yī)生是,先在主頁(yè)輸入管理員用戶(hù)名和密碼,然后點(diǎn)擊登錄按鈕,登陸成功后跳轉(zhuǎn)到管理員界面.管理員點(diǎn)擊增加醫(yī)生跳轉(zhuǎn)到增加醫(yī)生界面,管理員根據(jù)提示輸入該醫(yī)生對(duì)應(yīng)的信息,醫(yī)生圖片是點(diǎn)擊瀏覽后用戶(hù)在電腦上選擇醫(yī)生的圖片.其他信息提攜真實(shí)信息就可以了.管理員點(diǎn)擊提交后跳轉(zhuǎn)到servlet,servlet先進(jìn)行圖片的保存,圖片的保存是用smartUpload組件保存的,在保存圖片名稱(chēng)時(shí)為防止圖片重復(fù)而使用時(shí)間從年到毫秒的當(dāng)前時(shí)間作為圖片名進(jìn)行保存的.在smartUpload中通過(guò)傳統(tǒng)的“request.getParamter()”是取不到該屬性值得,要想取值只能通過(guò)“SmartUploadsu=newSmartUpload();”,“su.getRequest().getParameter("date")”這種方式進(jìn)行取值.取值以后調(diào)用該模塊dao里對(duì)應(yīng)的方法把該醫(yī)生信息插入數(shù)據(jù)庫(kù),而醫(yī)生圖片插入的是該醫(yī)生的圖片名稱(chēng).插入(增加)以后會(huì)跳轉(zhuǎn)到增加醫(yī)生頁(yè)面,管理員可以繼續(xù)插入其他醫(yī)生.在做圖片上傳是遇到的問(wèn)題是圖片傳不到該項(xiàng)目里指定的文件夾,最后的解決方法是傳到電腦的D盤(pán)里的一個(gè)文件夾里,運(yùn)行以后可以在該文件夾里找到上傳的圖片.如果想要顯示上傳圖片和項(xiàng)目里其他圖片的顯示路徑一致,可以在tomcat的server.xml配置文件中添加“<Contextdebug=“0”docBase=“D:/jpg”path=“/Hos/Images”reloadable=“true”>”虛擬路徑,這樣在D盤(pán)jpg文件夾中的圖片可以按照Hos項(xiàng)目中Images文件夾的路徑來(lái)顯示.增加醫(yī)生頁(yè)面如圖4.4所示.圖4.4增加醫(yī)生頁(yè)面4.3.3掛號(hào)信息管理模塊的實(shí)現(xiàn)管理員點(diǎn)擊掛號(hào)信息以后,跳轉(zhuǎn)到本模塊的servlet,servlet調(diào)用本模塊的dao中的方法,查詢(xún)數(shù)據(jù)庫(kù)掛號(hào)表中所有的掛號(hào)信息,查詢(xún)成功后跳轉(zhuǎn)到掛號(hào)信息頁(yè)面顯示出所有的掛號(hào)信息.管理員可以選擇是否點(diǎn)擊刪除掛號(hào)按鈕刪除該掛號(hào).點(diǎn)擊刪除按鈕后進(jìn)入servlet,servlet根據(jù)傳入的醫(yī)生編號(hào)和掛號(hào)編號(hào)調(diào)用dao中的方法在數(shù)據(jù)庫(kù)中刪除掛號(hào)表中相應(yīng)的信息,并且該醫(yī)生的醫(yī)生掛號(hào)人數(shù)加一.掛號(hào)信息頁(yè)面如圖4.5所示.圖4.5掛號(hào)信息頁(yè)面5總結(jié)本系統(tǒng)是一個(gè)面向廣大患者,具有一定實(shí)用性的醫(yī)院預(yù)約管理系統(tǒng).它主要解決患者在需要就醫(yī)時(shí)的掛號(hào)難的問(wèn)題.本系統(tǒng)采用動(dòng)態(tài)web內(nèi)容的框架—Servlet框架(JSP+javabean+Servlet)來(lái)完成整個(gè)系統(tǒng)的設(shè)計(jì),在數(shù)據(jù)庫(kù)的設(shè)計(jì)上利用了MySql高性能、可靠性和可擴(kuò)充性.本文研究了基于B/S架構(gòu)的醫(yī)院預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),系統(tǒng)可實(shí)現(xiàn)如下功能:(1)通過(guò)主頁(yè)可以選擇登錄模塊,患者模塊,醫(yī)生模塊,管理員模塊,來(lái)進(jìn)行登錄.(2)管理員可以通過(guò)相應(yīng)的操作來(lái)添加、修改和刪除系統(tǒng)中的醫(yī)生信息.(3)用戶(hù)可以在瀏覽了所需要的醫(yī)生信息以后,可以根據(jù)自己的實(shí)際情況,靈活的選擇就醫(yī)時(shí)間,減少了等待時(shí)間.本系統(tǒng)不但能方便地查找醫(yī)師信息進(jìn)行預(yù)約服務(wù),而且系統(tǒng)占用空間小,運(yùn)行條件簡(jiǎn)單,界面友好,能在很大程度上緩解患者掛號(hào)難的問(wèn)題.

但是在系統(tǒng)的設(shè)計(jì)時(shí)因?yàn)榭紤]完成時(shí)間的原因,系統(tǒng)對(duì)其中的一些功能進(jìn)行了簡(jiǎn)化,但是不影響系統(tǒng)的整體功能的實(shí)現(xiàn).系統(tǒng)的設(shè)計(jì)上可能存在不是很合理的地方,在后期可以進(jìn)一步改變方案是系統(tǒng)更為合理.

本文基于WEB服務(wù)完成了預(yù)約掛號(hào)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)工作,但要使網(wǎng)上預(yù)約掛號(hào)系統(tǒng)更安全、更便捷,還需要從以下兩方面進(jìn)一步完善:(1)對(duì)于現(xiàn)今網(wǎng)絡(luò)黑客猖撅的時(shí)代,本系統(tǒng)在用戶(hù)登錄模塊和注冊(cè)模塊設(shè)計(jì)方面凡乎沒(méi)有考慮網(wǎng)絡(luò)安全,如有時(shí)間本人下一步將系統(tǒng)嵌入幾項(xiàng)安全防護(hù)軟件,以保證系統(tǒng)的安全可靠性,讓用戶(hù)和管理員使用本軟件更加放心.(2)隨著手機(jī)的普及,使用手機(jī)的用戶(hù)越來(lái)也多,特別對(duì)于一些年老病人只會(huì)用手機(jī),不會(huì)上網(wǎng),因此,下一步研究工作是如何將網(wǎng)絡(luò)預(yù)約掛號(hào)和手機(jī)預(yù)約掛號(hào)融合為一個(gè)系統(tǒng),從而滿(mǎn)足不同用戶(hù)的需求,擴(kuò)大門(mén)診掛號(hào)系統(tǒng)的使用范圍.對(duì)于本次畢業(yè)設(shè)計(jì)有以下幾點(diǎn)收獲:(1)對(duì)于以前所學(xué)的知識(shí)有了進(jìn)一步的認(rèn)識(shí)和提高,比如在jsp和servlet方面應(yīng)用的更熟練,在javaScript方面對(duì)ajax加深了理解.對(duì)于mvc設(shè)計(jì)模式能夠更好的運(yùn)用.通過(guò)這次畢業(yè)設(shè)計(jì)是自己的能力得到很大的提高.(2)明白了需求分析的重要性

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論