醫(yī)院門(mén)診信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
醫(yī)院門(mén)診信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
醫(yī)院門(mén)診信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
醫(yī)院門(mén)診信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
醫(yī)院門(mén)診信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(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)介

i-題目:醫(yī)院門(mén)診信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要醫(yī)院門(mén)診管理系統(tǒng)是醫(yī)院信息管理系統(tǒng)中重要組成部分,能夠提高門(mén)診部門(mén)的工作效率,規(guī)范收費(fèi)流程,為患者提供更好的醫(yī)療服務(wù)。因此,本文詳細(xì)闡述了醫(yī)院門(mén)診信息管理系統(tǒng)的分析、設(shè)計(jì)與實(shí)現(xiàn)的全過(guò)程。系統(tǒng)基于面向?qū)ο蠓治龊驮O(shè)計(jì)思想,采用UML建模語(yǔ)言和B/S結(jié)構(gòu),利用MVC設(shè)計(jì)模式,應(yīng)用JSP、JavaBean、Servlet、SQL等多種技術(shù)進(jìn)行設(shè)計(jì)與開(kāi)發(fā)。系統(tǒng)實(shí)現(xiàn)了掛號(hào)管理、醫(yī)生看診、劃價(jià)收費(fèi)、藥房管理、權(quán)限管理、系統(tǒng)維護(hù)等功能,其內(nèi)容主要包括:(1)描述了項(xiàng)目的背景與意義,對(duì)項(xiàng)目開(kāi)發(fā)現(xiàn)狀進(jìn)行了分析,確定了項(xiàng)目的研究目標(biāo)和范圍。(2)引用中西方文獻(xiàn)對(duì)于系統(tǒng)開(kāi)發(fā)所采用的主要技術(shù):B/S模式、JSP、Servlet、JavaBean、SQL語(yǔ)言及SQLServer2000數(shù)據(jù)庫(kù)、UML標(biāo)準(zhǔn)建模等技術(shù)和原理進(jìn)行了簡(jiǎn)要介紹。(3)對(duì)項(xiàng)目進(jìn)行需求建模,分析了系統(tǒng)的功能性需求,劃分了系統(tǒng)模塊并給出系統(tǒng)用例圖,然后對(duì)核心用例的設(shè)計(jì)進(jìn)行了較為詳細(xì)的闡述。(4)給出了系統(tǒng)的架構(gòu)及原理,詳細(xì)敘述了核心業(yè)務(wù)的實(shí)現(xiàn),完成了數(shù)據(jù)庫(kù)設(shè)計(jì)。(5)對(duì)系統(tǒng)核心模塊的的實(shí)現(xiàn)進(jìn)行算法描述。(6)說(shuō)明系統(tǒng)運(yùn)行環(huán)境,描述項(xiàng)目部署方法并對(duì)部分系統(tǒng)界面進(jìn)行了演示。(7)對(duì)項(xiàng)目的整個(gè)完成過(guò)程進(jìn)行了總結(jié),提出優(yōu)缺點(diǎn),并對(duì)項(xiàng)目提出了改進(jìn)方案以及前景展望。關(guān)鍵詞: 門(mén)診信息;藥房;JSP;UML建模

Abstract已根據(jù)上述中文摘要進(jìn)行修改OutpatientServiceInformationManagementSystemisoneofthemostimportantcomponentsofHISS(HospitalInformationSystem).Itcanbeagreathelpforincreasingeconomicalbenefit,improvingworkefficiencyandprovidingbettermedicalservices.ThispapershowsallthedevelopmentprocessofasmallintegratedOutpatientServiceInformationManagementSystemwhichhasvariousfunctions.ObjectOrientedAnalyzeandDesign,B/Sstructure,MVCdesignpatternareappliedinthissystem.Andit’sdevelopedbysysthesistechnologiessuchasJSP,JavaBean,ServletandSQL.UMLisalsobeusedbythisproject.Thissystemimplementsmanyfunctionslikeregistrationmanagement,feesandpricingandmedicinemanagement.Themaincontentsofthispaperincludes:(1)Pointedoutthisproject’sbackground,meaningandthecurrentstudyingsituationbothathomeandabroad,indentifiedtheresearchobject.(2)IntroducedthemaintechnologiedthatincludesB/Smode,JSP,Servlet,JavaBean,SQLandUMLbyquotingreferences.(3)Didrequirementsmodelingfortheproject.Byanalyzingthefunctionalrequirements,finishedmoduleindentification.Elaboratedthecoreusercases.(4)Representedthearchitectureandprincipleofthissystem.Elaboratedtheimplementationofcorebusinesses.Finisheddatabasedesign.(5)Finishedthealgorithmdescriptionofthecoremodules.(6)Instructionsforrunningenvironmentofsystem.Explainedhowtodeploytheprojectandrepresentedsomesysteminterface.(7)Summarizedthewholedevelopmentprocess,analyzedthemeritandshortcoming,thenproposedsomeimprovementsolutionsandmadeaprospectforthisproject.Keywords: outpatientservice;information;JSP;Servlet;JavaBean;UMLPAGE8目錄TOC\o"1-3"原創(chuàng)性聲明 ii目錄 v第一章前言 11.1項(xiàng)目的背景和意義 11.2研究開(kāi)發(fā)現(xiàn)狀分析 11.3研究目標(biāo)和范圍 21.4論文結(jié)構(gòu)簡(jiǎn)介 3第二章技術(shù)與原理 42.1B/S模式 42.2JSP,Servlet以及JavaBean 42.3SQL語(yǔ)言及SQLSERVER2000數(shù)據(jù)庫(kù) 62.4UML建模技術(shù) 6第三章需求建模 83.1 系統(tǒng)需求概述 83.1.1 功能性需求分析 83.1.2 系統(tǒng)模塊劃分 83.1.3 系統(tǒng)用例圖 93.2核心用例設(shè)計(jì) 103.2.1 核心用例設(shè)計(jì)01:掛號(hào) 103.2.2 核心用例設(shè)計(jì)02:看診 113.2.3 核心用例設(shè)計(jì)03:藥房繳費(fèi)取藥 13第四章架構(gòu)設(shè)計(jì) 144.1系統(tǒng)架構(gòu)及原理 144.2業(yè)務(wù)用例的實(shí)現(xiàn) 144.2.1 掛號(hào)操作 144.2.2 看診操作 154.2.3 藥房收費(fèi)操作 164.3數(shù)據(jù)庫(kù)設(shè)計(jì) 174.3.1 E-R圖 174.3.2 數(shù)據(jù)表設(shè)計(jì) 18第五章模塊設(shè)計(jì) 215.1掛號(hào)模塊算法描述 215.2看診模塊算法描述 235.3藥房管理模塊算法描述 24第六章部署與應(yīng)用 256.1項(xiàng)目部署 256.2系統(tǒng)運(yùn)行環(huán)境 256.3部分界面演示 25第七章結(jié)論 28致謝 30參考文獻(xiàn) 31PAGE36-第一章前言(要居中)本章論文的第一部分,對(duì)項(xiàng)目的背景和意義進(jìn)行了闡述,并對(duì)該項(xiàng)目的研究開(kāi)發(fā)現(xiàn)狀進(jìn)行了分析,確立了研究目標(biāo)和范圍,最后對(duì)論文的整體結(jié)構(gòu)進(jìn)行了簡(jiǎn)介。1.1項(xiàng)目的背景和意義隨著信息技術(shù)發(fā)展,計(jì)算機(jī)以及互聯(lián)網(wǎng)的大范圍普及,醫(yī)院日常辦公正在朝著規(guī)范化、自動(dòng)化、系統(tǒng)化的方向發(fā)展,各種醫(yī)院信息系統(tǒng)相繼出現(xiàn)并被廣泛應(yīng)用于醫(yī)院辦公領(lǐng)域。醫(yī)院門(mén)診管理系統(tǒng)是為提高醫(yī)院門(mén)診部門(mén)的辦公效率和規(guī)范化程度而為醫(yī)院門(mén)診部定做的信息管理系統(tǒng)。我國(guó)的醫(yī)療事業(yè)發(fā)展迅速,手工管理、文本記錄的方式在醫(yī)院門(mén)診部這樣有大量事務(wù)需要處理的環(huán)境中逐漸難以滿(mǎn)足需求。而且隨著醫(yī)療改革的深入,醫(yī)療機(jī)構(gòu)將在一個(gè)日益公開(kāi),公平競(jìng)爭(zhēng)的環(huán)境中尋求發(fā)展。內(nèi)部管理講求效率,外部服務(wù)追求質(zhì)量,這不僅是醫(yī)院管理層的新理念,而成為一種必須。只有合理降低運(yùn)營(yíng)成本,合理控制費(fèi)用,提高醫(yī)護(hù)人員專(zhuān)業(yè)水平和管理者的管理水平,才能夠在激烈競(jìng)爭(zhēng)的市場(chǎng)中得以生存和發(fā)展。信息科學(xué)技術(shù)的進(jìn)步,可以為醫(yī)院的發(fā)展助一臂之力。作為信息科技的重要代表,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)日益顯示出其信息共享、運(yùn)轉(zhuǎn)高速、計(jì)算準(zhǔn)確、管理規(guī)范、數(shù)據(jù)統(tǒng)計(jì)客觀等方面的優(yōu)勢(shì),在醫(yī)院的應(yīng)用中發(fā)揮出其他工具所無(wú)法比擬的重大優(yōu)勢(shì)[1]。因此在此次系統(tǒng)的開(kāi)發(fā)中,我們將實(shí)現(xiàn)醫(yī)院門(mén)診信息管理的系統(tǒng)化、規(guī)范化、自動(dòng)化和智能化,從而達(dá)到減輕醫(yī)務(wù)人員負(fù)擔(dān)、提高醫(yī)院管理效率、更好地為患者服務(wù)的目的。研究開(kāi)發(fā)現(xiàn)狀分析醫(yī)院信息管理系統(tǒng)在不同歷史時(shí)期下有著不同的發(fā)展階段,按照國(guó)外的醫(yī)院信息化建設(shè)的經(jīng)歷,可以把我國(guó)醫(yī)院信息管理系統(tǒng)的發(fā)展階段分為三個(gè)階段:醫(yī)院信息管理系統(tǒng)階段:我國(guó)自20世紀(jì)70年代計(jì)算機(jī)在醫(yī)療行業(yè)中開(kāi)始應(yīng)用以來(lái),醫(yī)院的信息化建設(shè)一直是以提高管理工作效率、輔助財(cái)務(wù)核算為主要目的,“管理信息化”是這個(gè)階段信息化醫(yī)院建設(shè)的主要特色。到目前為止,我國(guó)90%以上的大型醫(yī)院已經(jīng)實(shí)現(xiàn)了科室的信息化管理,近40%的大中型醫(yī)院正在建設(shè)全院的信息化管理信息系統(tǒng)。臨床醫(yī)療信息管理系統(tǒng)(CIS)階段:隨著近幾年影像歸檔和通訊系統(tǒng)PACS(PictureArchivingandCommuniucationSystem)的發(fā)展,以及麻醉監(jiān)護(hù)系統(tǒng)、檢驗(yàn)信息系統(tǒng)、電子病歷系統(tǒng)等的興起,“醫(yī)療信息化”逐漸成為醫(yī)院信息化建設(shè)的核心。醫(yī)院信息化建設(shè)不僅僅局限于對(duì)管理工作的信息化,還包括對(duì)醫(yī)院所有醫(yī)療活動(dòng)中所涉及的全部信息進(jìn)行“以病人為中心”的信息數(shù)字化管理并綜合利用。在目前已經(jīng)應(yīng)用信息系統(tǒng)的醫(yī)院中,約有10%的醫(yī)院正在嘗試各類(lèi)臨床醫(yī)療信息管理系統(tǒng)的構(gòu)建。區(qū)域醫(yī)療信息化(AMIS)階段:隨著各類(lèi)區(qū)域性醫(yī)療網(wǎng)絡(luò)、遠(yuǎn)程醫(yī)療以及社區(qū)醫(yī)療的發(fā)展,信息化數(shù)字化醫(yī)院將超越實(shí)際的地域限制,通過(guò)各種醫(yī)療機(jī)構(gòu)的網(wǎng)絡(luò)互連以及信息交換,實(shí)現(xiàn)全社會(huì)范圍的醫(yī)療信息化和數(shù)字化。目前在我國(guó)經(jīng)濟(jì)較發(fā)達(dá)的深圳,江蘇部分地區(qū)開(kāi)始在探索區(qū)域醫(yī)療的信息化建設(shè)[4]。(此部分已修改)門(mén)診管理系統(tǒng)是醫(yī)院信息系統(tǒng)(HospitalInformationSystem,簡(jiǎn)稱(chēng)HIS)的重要組成部分。目前國(guó)內(nèi)大中型醫(yī)療機(jī)構(gòu)都加緊建立自己的門(mén)診信息管理系統(tǒng)。較發(fā)達(dá)的地區(qū)的部分醫(yī)院已經(jīng)有了較完善的門(mén)診信息管理系統(tǒng)。但是對(duì)于二三線(xiàn)城市的小型醫(yī)院或是鄉(xiāng)鎮(zhèn)醫(yī)院,還一定程度上存在信息建設(shè)落后的情況。再加之這些地區(qū)的醫(yī)務(wù)人員往往信息技術(shù)水平較低,對(duì)于大型的信息系統(tǒng)操作上存在一定的困難,因此開(kāi)發(fā)一個(gè)簡(jiǎn)單,易用但是功能完備的門(mén)診管理系統(tǒng)顯得尤為必要。醫(yī)院信息化的程度一定程度上反映了醫(yī)院的醫(yī)療水平,門(mén)診信息管理系統(tǒng)作為醫(yī)院信息管理系統(tǒng)不可缺少的一塊,更需要建設(shè)和完善。1.3研究目標(biāo)和范圍本系統(tǒng)是在現(xiàn)有的醫(yī)療信息管理系統(tǒng)的基礎(chǔ)上,針對(duì)二三線(xiàn)城市的小型醫(yī)院或是鄉(xiāng)鎮(zhèn)醫(yī)院,開(kāi)發(fā)符合其需求的門(mén)診信息管理系統(tǒng)。通過(guò)本系統(tǒng),醫(yī)院的工作人員可以輕松簡(jiǎn)單地對(duì)患者從掛號(hào)到看診到繳費(fèi)取藥的整個(gè)流程進(jìn)行信息化管理,提高工作效率。本系統(tǒng)采用B/S(Browser/Server,瀏覽器/服務(wù)器模式),在技術(shù)方面,采用JSP,JavaBean,Servlet各種技術(shù)綜合開(kāi)發(fā),使用SQLServer2000作為數(shù)據(jù)庫(kù),Tomcat作為服務(wù)器,和UML建模技術(shù),在短期敏捷開(kāi)發(fā)出預(yù)想中的簡(jiǎn)單、易用的門(mén)診信息管理系統(tǒng)。同時(shí)力求系統(tǒng)實(shí)現(xiàn)系統(tǒng)可靠性、可用性、有效性、可維護(hù)性等非功能性需求。1.4論文結(jié)構(gòu)簡(jiǎn)介本文旨在設(shè)計(jì)實(shí)現(xiàn)一個(gè)適用于二三線(xiàn)城市的小型或鄉(xiāng)鎮(zhèn)醫(yī)院的門(mén)診信息管理系統(tǒng)。論文共分為七章,從項(xiàng)目開(kāi)發(fā)背景、相關(guān)技術(shù)與原理、需求建模、架構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)及部署應(yīng)用和項(xiàng)目總結(jié)等方面進(jìn)行了詳盡的闡述。各章大體內(nèi)容如下::前言,包括項(xiàng)目背景和意義、研究與現(xiàn)狀分析、項(xiàng)目的目標(biāo)和范圍以及論文的結(jié)構(gòu)簡(jiǎn)介,闡明了項(xiàng)目來(lái)源、系統(tǒng)開(kāi)發(fā)的動(dòng)機(jī)、意義和可行性,界定了項(xiàng)目的目標(biāo)和范圍,簡(jiǎn)介了論文結(jié)構(gòu);:技術(shù)與原理,主要描述了系統(tǒng)所使用的相關(guān)技術(shù)和原理,簡(jiǎn)要介紹了JSP、JavaBean、Servlet、SQL語(yǔ)言及SQLServer2000、UML建模方法等技術(shù)原理;:需求建模,主要是提取項(xiàng)目的功能性需求概述,系統(tǒng)模塊的劃分,系統(tǒng)用例表和系統(tǒng)用例圖的簡(jiǎn)單描述,給出系統(tǒng)領(lǐng)域模型,并且對(duì)系統(tǒng)的核心用例掛號(hào)、看診、藥房收費(fèi)取藥操作進(jìn)行詳細(xì)用例分析并畫(huà)出活動(dòng)圖;:架構(gòu)設(shè)計(jì),主要是系統(tǒng)架構(gòu)設(shè)計(jì),描述系統(tǒng)各部分的組成以及各部分之間的通訊機(jī)制,還有核心用例實(shí)現(xiàn)的順序圖以及整個(gè)系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)等;:模塊設(shè)計(jì),對(duì)系統(tǒng)主要模塊進(jìn)行詳細(xì)設(shè)計(jì),描述核心用例相關(guān)類(lèi)設(shè)計(jì)和實(shí)現(xiàn),以及算法的實(shí)現(xiàn);:部署與應(yīng)用,利用系統(tǒng)部署圖對(duì)項(xiàng)目部署進(jìn)行說(shuō)明,描述了系統(tǒng)的運(yùn)行環(huán)境,并選擇若干典型界面說(shuō)明系統(tǒng)的重要輸入/輸出;:結(jié)論,總結(jié)在設(shè)計(jì)和開(kāi)發(fā)系統(tǒng)過(guò)程中工作的優(yōu)點(diǎn)和不足之處,并提出系統(tǒng)的改進(jìn)方案和前景展望。第二章技術(shù)與原理2.1B/S模式B/S模式即Brower/Server模式。隨著Internet越來(lái)越廣泛的應(yīng)用,原來(lái)基于局域網(wǎng)的企業(yè)網(wǎng)開(kāi)始采用Internet技術(shù)構(gòu)筑和改建自己的企業(yè)網(wǎng),即Intranet.于是,一種新興的體系結(jié)構(gòu)Browser/Server應(yīng)運(yùn)而生,并獲得飛速發(fā)展,成為眾多企業(yè)爭(zhēng)相采用的新型體系結(jié)構(gòu).本質(zhì)上,Browser/Server也是一種Client/Server結(jié)構(gòu),它是一種由傳統(tǒng)的二層Client/Server結(jié)構(gòu)發(fā)展而來(lái)的三層Client/Server結(jié)構(gòu)在Web上應(yīng)用的特例.在Browser/Server的系統(tǒng)中,用戶(hù)可以通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求.Browser/Server結(jié)構(gòu)極大地簡(jiǎn)化了客戶(hù)機(jī)的工作,客戶(hù)機(jī)上只需安裝、配置少量的客戶(hù)端軟件即可,服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成[5].鑒于B/S模式的這種優(yōu)點(diǎn),因此本系統(tǒng)選擇了采用B/S模式來(lái)進(jìn)行開(kāi)發(fā)。2.2JSP,Servlet以及JavaBeanJSP(JavaServerPages)技術(shù)是由Sun公司發(fā)布的用于開(kāi)發(fā)動(dòng)態(tài)Web應(yīng)用的一項(xiàng)技術(shù)[7]。Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁(yè)面。它擔(dān)當(dāng)客戶(hù)請(qǐng)求(Web瀏覽器或其他HTTP客戶(hù)程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序)的中間層[6]。JSP與Servlet之間的關(guān)系與運(yùn)行原理如下[7]:在一個(gè)JSP文件第一次被請(qǐng)求時(shí),JSP引擎把該JSP文件轉(zhuǎn)換成為一個(gè)Servlet。而這個(gè)引擎本身也是一個(gè)Servlet。JSP的運(yùn)行過(guò)程有以下7個(gè)步驟:(1)JSP引擎先把該JSP文件轉(zhuǎn)換成一個(gè)Java源文件(Servlet),在轉(zhuǎn)換時(shí)如果發(fā)現(xiàn)JSP文件有任何語(yǔ)法錯(cuò)誤,轉(zhuǎn)換過(guò)程將中斷,并向服務(wù)端和客戶(hù)端輸出出錯(cuò)信息。(2)如果轉(zhuǎn)換成功,JSP引擎用javac把該Java源文件編譯成相應(yīng)的class文件。(3)創(chuàng)建一個(gè)該Servlet(JSP頁(yè)面的轉(zhuǎn)換結(jié)果)的實(shí)例,該Servlet的jspInit()方法被執(zhí)行,jspInit()方法在Servlet的生命周期中只被執(zhí)行一次。(4)jspService()方法被調(diào)用來(lái)處理客戶(hù)端的請(qǐng)求。對(duì)每一個(gè)請(qǐng)求,JSP引擎創(chuàng)建一個(gè)新的線(xiàn)程來(lái)處理該請(qǐng)求。如果有多個(gè)客戶(hù)端同時(shí)請(qǐng)求該JSP文件,則JSP引擎會(huì)創(chuàng)建多個(gè)線(xiàn)程。每個(gè)客戶(hù)端請(qǐng)求對(duì)應(yīng)一個(gè)線(xiàn)程。以多線(xiàn)程方式執(zhí)行可以大大降低對(duì)系統(tǒng)的資源需求,提高系統(tǒng)的并發(fā)量及響應(yīng)時(shí)間。但不過(guò)也應(yīng)該注意多線(xiàn)程的編程限制,由于該Servlet始終駐于內(nèi)存,所以響應(yīng)是非??斓?。(5)如果.jsp文件被修改了,服務(wù)器將根據(jù)設(shè)置決定是否對(duì)該文件重新編譯,如果需要重新編譯,則將編譯結(jié)果取代內(nèi)存中的Servlet,并繼續(xù)上述處理過(guò)程。(6)雖然JSP效率很高,但在第一次調(diào)用時(shí)由于需要轉(zhuǎn)換和編譯而有一些輕微的延遲。此外,在任何時(shí)候如果由于系統(tǒng)資源不足的原因,JSP引擎將以某種不確定的方式將Servlet從內(nèi)存中移去。當(dāng)這種情況發(fā)生時(shí)jspDestroy()方法首先被調(diào)用。(7)然后Servlet實(shí)例便被標(biāo)記加入“垃圾收集”處理??稍趈spInit()中進(jìn)行一些初始化工作,如建立與數(shù)據(jù)庫(kù)的連接,或建立網(wǎng)絡(luò)連接,從配置文件中取一些參數(shù)等,在jspDestory()中釋放相應(yīng)的資源。JavaBean,由于“Bean”漢譯為“豆”,通常也被稱(chēng)為Java豆。JavaBean概念由Java語(yǔ)言的締造者SunMicrosystems公司提出,其官方定義為“JavaBean是一個(gè)可重復(fù)使用的軟件部件”。具體來(lái)說(shuō),JavaBean是一種特殊的Java類(lèi),是一種基于Java語(yǔ)言的可重用組件,是一種描述JavaWeb項(xiàng)目開(kāi)發(fā)的軟件組件結(jié)構(gòu)模型,是MVC(Model-View-Controller)體系架構(gòu)中“M”的體現(xiàn)。JavaBean在JavaWeb項(xiàng)目開(kāi)發(fā)中,主要用來(lái)封裝業(yè)務(wù)邏輯等,如同“豆”的包裹狀態(tài)一樣,JavaBean利用Java語(yǔ)言中“類(lèi)”的特性,將某個(gè)業(yè)務(wù)邏輯(復(fù)雜計(jì)算統(tǒng)計(jì)功能、數(shù)據(jù)庫(kù)連接查詢(xún)功能等)包裝起來(lái),形成一個(gè)一個(gè)相對(duì)獨(dú)立的模塊組件,方便模塊功能修改、擴(kuò)充及重復(fù)使用,體現(xiàn)了JavaBean的封裝性和重用性,實(shí)現(xiàn)了在JavaWeb項(xiàng)目開(kāi)發(fā)中典型業(yè)務(wù)邏輯(JavaBean組件)與界面框架表現(xiàn)形式(JSP頁(yè)面)的分離[8]。圖2-1JavaBean組件與JSP頁(yè)面交互2.3SQL語(yǔ)言及SQLSERVER2000數(shù)據(jù)庫(kù)SQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢(xún)語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢(xún)、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)[11]。SQL是高級(jí)的非過(guò)程化編程語(yǔ)言,是溝通數(shù)據(jù)庫(kù)服務(wù)器和客戶(hù)端的重要工具,允許用戶(hù)在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶(hù)指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶(hù)了解具體的數(shù)據(jù)存放方式,所以,具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng),可以使用相同的SQL語(yǔ)言作為數(shù)據(jù)輸入與管理的SQL接口。它以記錄集合作為操作對(duì)象,所有SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語(yǔ)句的輸出作為另一條SQL語(yǔ)句的輸入,所以SQL語(yǔ)句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能,在多數(shù)情況下,在其他語(yǔ)言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個(gè)SQL語(yǔ)句就可以達(dá)到目的,這也意味著用SQL語(yǔ)言可以寫(xiě)出非常復(fù)雜的語(yǔ)句[9]。SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)版本。該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便,可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindowsXP的大型多處理器的服務(wù)器等多種平臺(tái)使用。2.4UML建模技術(shù)UML(統(tǒng)一建模語(yǔ)言)是描述、構(gòu)造和文檔化系統(tǒng)制品的可視化語(yǔ)言[10]。標(biāo)準(zhǔn)建模語(yǔ)言UML的重要內(nèi)容可以由下列五種類(lèi)圖來(lái)定義[11]:(已修改)第一類(lèi)是用例圖,從用戶(hù)角度描述系統(tǒng)功能,并指出各功能的操作者。第二類(lèi)是靜態(tài)圖(Staticdiagram),包括類(lèi)圖、對(duì)象圖和包圖。其中類(lèi)圖描述系統(tǒng)中類(lèi)的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類(lèi),表示類(lèi)之間的聯(lián)系如關(guān)聯(lián)、依賴(lài)、聚合等,也包括類(lèi)的內(nèi)部結(jié)構(gòu)(類(lèi)的屬性和操作)。類(lèi)圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命周期都是有效的。對(duì)象圖是類(lèi)圖的實(shí)例,幾乎使用與類(lèi)圖完全相同的標(biāo)識(shí)。他們的不同點(diǎn)在于對(duì)象圖顯示類(lèi)的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類(lèi)。一個(gè)對(duì)象圖是類(lèi)圖的一個(gè)實(shí)例。由于對(duì)象存在生命周期,因此對(duì)象圖只能在系統(tǒng)某一時(shí)間段存在。包由包或類(lèi)組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。第三類(lèi)是行為圖(Behaviordiagram),描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系。包括狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖。其中狀態(tài)圖描述類(lèi)的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對(duì)類(lèi)圖的補(bǔ)充。在實(shí)用上并不需要為所有的類(lèi)畫(huà)狀態(tài)圖,僅為那些有多個(gè)狀態(tài)其行為受外界環(huán)境的影響并且發(fā)生改變的類(lèi)畫(huà)狀態(tài)圖。而活動(dòng)圖描述滿(mǎn)足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)?;顒?dòng)圖是一種特殊的狀態(tài)圖,它對(duì)于系統(tǒng)的功能建模特別重要,強(qiáng)調(diào)對(duì)象間的控制流程。順序圖展現(xiàn)了一組對(duì)象和由這組對(duì)象收發(fā)的消息,用于按時(shí)間順序?qū)刂屏鹘?。用順序圖說(shuō)明系統(tǒng)的動(dòng)態(tài)視圖。協(xié)作圖展現(xiàn)了一組對(duì)象,這組對(duì)象間的連接以及這組對(duì)象收發(fā)的消息。它強(qiáng)調(diào)收發(fā)消息的對(duì)象的結(jié)構(gòu)組織,按組織結(jié)構(gòu)對(duì)控制流建模。順序圖和協(xié)作圖都是交互圖,順序圖和協(xié)作圖可以相互轉(zhuǎn)換。第四類(lèi)是交互圖(Interactivediagram),描述對(duì)象間的交互關(guān)系,包括順序圖和和作圖。其中順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互;合作圖描述對(duì)象間的協(xié)作關(guān)系,合作圖跟順序圖相似,顯示對(duì)象間的動(dòng)態(tài)合作關(guān)系。除顯示信息交換外,合作圖還顯示對(duì)象以及它們之間的關(guān)系。如果強(qiáng)調(diào)時(shí)間和順序,則使用順序圖;如果強(qiáng)調(diào)上下級(jí)關(guān)系,則選擇合作圖。這兩種圖合稱(chēng)為交互圖。第五類(lèi)是實(shí)現(xiàn)圖(Implementationdiagram)。其中構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴(lài)關(guān)系。

第三章需求建模(另起頁(yè))本章在系統(tǒng)的需求方面,顯示對(duì)功能性需求進(jìn)行了分析,給出系統(tǒng)模塊的劃分,并畫(huà)出系統(tǒng)用例圖。然后對(duì)于系統(tǒng)的核心用例進(jìn)行了分析。最后再對(duì)本系統(tǒng)的領(lǐng)域模型進(jìn)行了分析。系統(tǒng)需求概述功能性需求分析通過(guò)與醫(yī)院門(mén)診各類(lèi)工作人員進(jìn)行的溝通交流以及對(duì)現(xiàn)有的門(mén)診信息管理系統(tǒng)的分析與研究,得出了該系統(tǒng)主要面對(duì)以下四種對(duì)象:門(mén)診掛號(hào)人員,門(mén)診看診醫(yī)生,藥房收費(fèi)人員以及系統(tǒng)管理員。按照提取需求的基本思路,根據(jù)本項(xiàng)目的特點(diǎn),結(jié)合已有的研究成果,得出以下系統(tǒng)需求:門(mén)診掛號(hào)人員角度:希望能夠?qū)η皝?lái)的患者進(jìn)行掛號(hào),建立起基本的信息檔案。門(mén)診看診醫(yī)生角度:希望能夠調(diào)取患者的掛號(hào)信息,并在診治之后給患者開(kāi)具處方。藥房收費(fèi)人員角度:希望能夠獲得并處理藥房的藥物信息。希望獲得病人的處方信息,并對(duì)所開(kāi)藥物進(jìn)行收費(fèi)及出庫(kù)操作。系統(tǒng)管理員角度:希望能夠?qū)ο到y(tǒng)進(jìn)行維護(hù),有效地管理科室,藥房等信息,管理不同類(lèi)型的系統(tǒng)使用人員(醫(yī)生,掛號(hào)護(hù)士,藥房會(huì)計(jì)等)。對(duì)冗余數(shù)據(jù)進(jìn)行處理。系統(tǒng)模塊劃分門(mén)診信息管理系統(tǒng)根據(jù)使用者和功能可以分為以下幾大模塊:門(mén)診掛號(hào)模塊:處理初診及復(fù)診病人不同類(lèi)型的的掛號(hào)請(qǐng)求。醫(yī)生處方模塊:對(duì)掛號(hào)病人進(jìn)行看診,給出病歷以及開(kāi)具處方。藥房收費(fèi)模塊:對(duì)病人處方進(jìn)行收費(fèi)和藥物出庫(kù),對(duì)藥物進(jìn)行出入庫(kù)管理。對(duì)藥物銷(xiāo)售數(shù)據(jù)進(jìn)行記錄和處理。后臺(tái)管理模塊:各類(lèi)型系統(tǒng)使用人員的管理,病人病歷管理,藥房信息管理等。本系統(tǒng)的功能模塊劃分如圖3-1:醫(yī)院門(mén)診信息管理系統(tǒng)醫(yī)院門(mén)診信息管理系統(tǒng)后抬管理后抬管理系統(tǒng)藥房管理系統(tǒng)看診管理系統(tǒng)掛號(hào)管理系統(tǒng)圖3-1系統(tǒng)模塊劃分圖系統(tǒng)用例圖結(jié)合前文分析,該門(mén)診信息管理系統(tǒng)主要是面向門(mén)診掛號(hào)人員、門(mén)診看診醫(yī)生、藥房收費(fèi)人員以及系統(tǒng)管理員四種對(duì)象。每一類(lèi)人員都必須登錄之后才能進(jìn)行操作。在登錄之后,每一類(lèi)人員都只能在自己權(quán)限范圍之內(nèi)的模塊進(jìn)行操作。而系統(tǒng)管理員則可以對(duì)各類(lèi)人員及信息進(jìn)行管理。圖3-2為門(mén)診信息管理系統(tǒng)的用例圖。圖3-2系統(tǒng)用例圖3.2核心用例設(shè)計(jì)在本節(jié)中主要選擇了門(mén)診掛號(hào)、看診以及藥房繳費(fèi)取藥三個(gè)用例進(jìn)行詳細(xì)闡述。核心用例設(shè)計(jì)01:掛號(hào)用例:掛號(hào)范圍:門(mén)診信息管理級(jí)別:用戶(hù)目標(biāo)主要參與者:門(mén)診掛號(hào)人員涉眾及其關(guān)注點(diǎn):門(mén)診掛號(hào)人員:希望能夠?yàn)閬?lái)訪(fǎng)患者提供掛號(hào)服務(wù),區(qū)分初診病人及復(fù)診患者,操作簡(jiǎn)單快捷,提高工作效率。前置條件:掛號(hào)人員具備權(quán)限,成功登入掛號(hào)頁(yè)面。后置條件:病人掛號(hào)成功,轉(zhuǎn)入為下一個(gè)病人掛號(hào)。主成功場(chǎng)景:掛號(hào)人員登入掛號(hào)頁(yè)面,進(jìn)行掛號(hào)掛號(hào)人員填入患者信息,確認(rèn)信息后保存并提交。系統(tǒng)提示掛號(hào)成功并轉(zhuǎn)入新的掛號(hào)頁(yè)面。擴(kuò)展:1a.掛號(hào)人員不具備權(quán)限系統(tǒng)提示用戶(hù)權(quán)限錯(cuò)誤,提示重新登錄。2a.患者為復(fù)診患者掛號(hào)人員輸入患者以往病志號(hào)碼。系統(tǒng)返回患者信息,掛號(hào)人員填寫(xiě)掛號(hào)要求并保存。2b.患者信息填寫(xiě)非法系統(tǒng)提示某項(xiàng)信息錯(cuò)誤。掛號(hào)人員進(jìn)行補(bǔ)充或修改。3a.系統(tǒng)保存信息失敗掛號(hào)人員退回掛號(hào)頁(yè)面。1a.頁(yè)面緩存丟失掛號(hào)人員刷新頁(yè)面重新填寫(xiě)掛號(hào)信息掛號(hào)人員重新進(jìn)行保存特殊要求:系統(tǒng)的設(shè)計(jì)保障系統(tǒng)的健壯性發(fā)生頻率:可能會(huì)不斷地發(fā)生未解決問(wèn)題:可否將采用刷卡來(lái)存儲(chǔ)電子病歷?可否采用儲(chǔ)值卡進(jìn)行掛號(hào)費(fèi)用的繳納?核心用例設(shè)計(jì)02:看診用例:看診范圍:門(mén)診信息管理級(jí)別:用戶(hù)目標(biāo)主要參與人員:門(mén)診看診醫(yī)生涉眾及其關(guān)注點(diǎn):門(mén)診看診醫(yī)生:希望可以通過(guò)掛號(hào)號(hào)碼獲得其病志,在對(duì)患者進(jìn)行診治之后,完成病歷的填寫(xiě),并為患者開(kāi)具處方。前置條件:看診醫(yī)生具備權(quán)限,成功登陸看診頁(yè)面。后置條件:成功提交病人病志及處方。主成功場(chǎng)景:看診醫(yī)生登入看診界面,進(jìn)行看診。從病人處獲得病志號(hào)碼并輸入完成診治并進(jìn)行病志書(shū)寫(xiě),開(kāi)具處方,并提交。系統(tǒng)提示看診成功并轉(zhuǎn)入等待為下一位患者看診狀態(tài)。擴(kuò)展場(chǎng)景:1a.看診醫(yī)生不具備權(quán)限系統(tǒng)提示用戶(hù)權(quán)限錯(cuò)誤,提示重新登錄。2a.病志號(hào)碼不存在醫(yī)生重新輸入病志號(hào)碼3a.病志填寫(xiě)內(nèi)容非法系統(tǒng)提示某項(xiàng)病志書(shū)寫(xiě)內(nèi)容非法醫(yī)生對(duì)內(nèi)容進(jìn)行修改醫(yī)生重新提交病志內(nèi)容3b醫(yī)生所開(kāi)藥物庫(kù)存不足系統(tǒng)提示藥物庫(kù)存不足醫(yī)生對(duì)處方進(jìn)行修改醫(yī)生重新提交處方內(nèi)容4a.系統(tǒng)保存信息失敗看診醫(yī)生退回病志書(shū)寫(xiě)頁(yè)面。1a.頁(yè)面緩存丟失看診醫(yī)生刷新頁(yè)面重新填寫(xiě)掛號(hào)信息看診醫(yī)生重新進(jìn)行保存特殊要求:系統(tǒng)的設(shè)計(jì)保障系統(tǒng)的健壯性發(fā)生頻率:可能會(huì)不斷地發(fā)生未解決問(wèn)題:病歷保存時(shí)間多久?核心用例設(shè)計(jì)03:藥房繳費(fèi)取藥用例:藥房繳費(fèi)取藥范圍:門(mén)診信息管理級(jí)別:用戶(hù)目標(biāo)主要參與者:藥房收費(fèi)人員涉眾及其關(guān)注點(diǎn):藥房收費(fèi)人員:希望根據(jù)系統(tǒng)中患者的病志記錄獲得處方信息,得到應(yīng)收費(fèi)用,請(qǐng)患者繳費(fèi)后,從藥庫(kù)出貨交給患者。前置條件:藥房收費(fèi)人員具備權(quán)限,成功登陸藥房管理頁(yè)面。后置條件:患者繳清費(fèi)用,且所需藥物成功出庫(kù)。主成功場(chǎng)景:藥房收費(fèi)人員成功登陸,選擇收費(fèi)操作。輸入患者病志號(hào),得到患者處方信息?;颊呃U費(fèi),核實(shí)信息無(wú)誤之后,提交藥費(fèi)單。系統(tǒng)提示藥物成功出庫(kù)。擴(kuò)展場(chǎng)景:1a.藥房收費(fèi)人員不具備權(quán)限系統(tǒng)提示用戶(hù)權(quán)限錯(cuò)誤,提示重新登錄。2a.病志號(hào)碼不存在藥房收費(fèi)人員重新輸入病志號(hào)碼。4a.藥房提示藥物數(shù)目不足藥房人員調(diào)貨,并將藥物入庫(kù)。藥房收費(fèi)人員重新進(jìn)行收費(fèi)操作。特殊要求:系統(tǒng)的設(shè)計(jì)保障系統(tǒng)的健壯性發(fā)生頻率:可能會(huì)不斷地發(fā)生未解決問(wèn)題:若藥房無(wú)足夠的藥,如何對(duì)處方進(jìn)行處理?第四章架構(gòu)設(shè)計(jì)(要另起頁(yè),劇中)4.1系統(tǒng)架構(gòu)及原理本系統(tǒng)采用的是以JSP+JavaBean+Servlet實(shí)現(xiàn)的MVC架構(gòu)模式進(jìn)行的開(kāi)發(fā)。所謂的MVC架構(gòu),通俗來(lái)講,即是模型(Model)、試圖(View)、控制器(Controller)的軟件架構(gòu)模式。MVC模式使應(yīng)用程序的輸入、處理和輸出強(qiáng)制性分開(kāi),使得軟件可維護(hù)性、可擴(kuò)展性、靈活性以及封裝性得到提高,兼顧了程序的“高內(nèi)聚、低耦合”原則。本系統(tǒng)的總體架構(gòu)圖如圖4-1:圖4-1門(mén)診信息管理系統(tǒng)架構(gòu)在基于B/S(客戶(hù)端/服務(wù)器)模式的MVC架構(gòu)中,用戶(hù)通過(guò)視圖層(View)向系統(tǒng)發(fā)送頁(yè)面請(qǐng)求,視圖層將數(shù)據(jù)封裝后傳遞給控制層,控制層通過(guò)與邏輯層(模型)的交互最終將數(shù)據(jù)處理結(jié)果反饋給視圖層。4.2業(yè)務(wù)用例的實(shí)現(xiàn)本節(jié)以門(mén)診信息管理系統(tǒng)中三個(gè)典型的用例為例,用順序圖來(lái)說(shuō)明系統(tǒng)業(yè)務(wù)用例的實(shí)現(xiàn)過(guò)程。掛號(hào)操作圖4-2描述了實(shí)現(xiàn)業(yè)務(wù)掛號(hào)操作的順序圖,其含義說(shuō)明如下:掛號(hào)人員登錄系統(tǒng)后,向頁(yè)面register.jsp發(fā)出新建一個(gè)“掛號(hào)”對(duì)象的請(qǐng)求,register.jsp顯示要求用戶(hù)輸入患者掛號(hào)所需要的信息,填寫(xiě)完畢以后,向RegisterServlet.java發(fā)出添加一個(gè)掛號(hào)對(duì)象的信息,RegisterServlet.java通過(guò)調(diào)用InsertUpdateDelBean.java請(qǐng)求向數(shù)據(jù)庫(kù)添加一條掛號(hào)表?xiàng)l目,InsertUpdateDelBean.java通過(guò)調(diào)用DBConn.java連接數(shù)據(jù)庫(kù),并成功存入數(shù)據(jù),然后返回成功信息,register.jsp向用戶(hù)顯示輸入成功信息。圖4-2掛號(hào)業(yè)務(wù)順序圖看診操作圖4-3描述了實(shí)現(xiàn)看診操作的順序圖,其含義說(shuō)明如下:醫(yī)務(wù)人員登錄系統(tǒng)之后,點(diǎn)擊病情診斷,頁(yè)面轉(zhuǎn)向cases.jsp,頁(yè)面顯示要求輸入病人病志號(hào),醫(yī)生輸入后,cases.jsp通過(guò)AllBean.java檢查數(shù)據(jù)庫(kù)中是否存在該病志號(hào),若不存在則返回cases.jsp頁(yè)面重新輸入病志號(hào),若存在cases.jsp頁(yè)面則顯示病歷填寫(xiě)頁(yè)面以及prescription.jsp處方填寫(xiě)頁(yè)面,醫(yī)生填寫(xiě)完成后,點(diǎn)擊提交,向CasesServlet.java發(fā)出添加一個(gè)病歷對(duì)象的信息,并向PrescriptionServlet.java發(fā)出添加一個(gè)處方對(duì)象的信息,CasesServlet.java以及PrescriptionServlet.java通過(guò)調(diào)用InsertUpdateDelBean.java向數(shù)據(jù)庫(kù)請(qǐng)求添加相應(yīng)條目,InsertUpdateDelBean.java通過(guò)調(diào)用DBConn.java連接數(shù)據(jù)庫(kù),并成功存入數(shù)據(jù),然后返回成功信息,cases.jsp向醫(yī)生顯示提交成功的信息。圖4-3業(yè)務(wù)看診的順序圖藥房收費(fèi)操作圖4-4描述了實(shí)現(xiàn)了藥房收費(fèi)操作的順序圖,其含義說(shuō)明如下:藥房收費(fèi)人員登錄系統(tǒng)后,點(diǎn)擊藥費(fèi)單項(xiàng)目,頁(yè)面轉(zhuǎn)向charge.jsp,頁(yè)面顯示要求藥房收費(fèi)人員輸入患者病歷號(hào),輸入后charge.jsp通過(guò)AllBean.java檢查數(shù)據(jù)庫(kù)中是否存在該病志號(hào),若不存在則返回charge.jsp頁(yè)面重新輸入病志號(hào),若存在charge.jsp則顯示與該病志號(hào)相對(duì)應(yīng)的藥物處方信息,藥房人員還可自由選擇是否查看藥物詳細(xì)信息,如選擇頁(yè)面則轉(zhuǎn)向medicine_show.jsp,頁(yè)面顯示藥品的詳細(xì)信息。收費(fèi)人員確認(rèn)信息無(wú)誤并收到患者所繳納的費(fèi)用之后,就可以選擇提交,charge.jsp則通過(guò)調(diào)用ChargeServlet.java來(lái)對(duì)藥房的庫(kù)存進(jìn)行更新操作,ChargeServlet.java通過(guò)調(diào)用InsertUpdateDelBean.java向數(shù)據(jù)庫(kù)請(qǐng)求更新相應(yīng)條目,InsertUpdateDelBean.java通過(guò)調(diào)用DBConn.java連接數(shù)據(jù)庫(kù),并成功更新數(shù)據(jù),然后返回成功信息,charge.jsp向醫(yī)生顯示提交成功的信息。圖4-4業(yè)務(wù)藥房收費(fèi)的順序圖4.3數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)使用SQLServer2000對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)實(shí)現(xiàn),然后采用JDBC技術(shù)與頁(yè)面進(jìn)行連接。E-R圖針對(duì)本系統(tǒng)的需求分析以及用例設(shè)計(jì),設(shè)計(jì)了相關(guān)的數(shù)據(jù)表格以及關(guān)系模式。本系統(tǒng)數(shù)據(jù)庫(kù)的的E-R圖4-5所示:圖4-5門(mén)診管理系統(tǒng)數(shù)據(jù)庫(kù)E-R圖數(shù)據(jù)表設(shè)計(jì)數(shù)據(jù)庫(kù)表匯總?cè)缦卤?-1所示:表4-1數(shù)據(jù)庫(kù)表匯總表名功能說(shuō)明admin管理員信息users用戶(hù)信息medicine藥品信息office科室信息prescription處方信息register_price掛號(hào)種類(lèi)及價(jià)格信息entry藥品出入庫(kù)信息invalid掛號(hào)信息cases病歷信息掛號(hào)信息表[invalid]主要用來(lái)保存患者的掛號(hào)信息,表的設(shè)計(jì)如表4-2所示:表4-2掛號(hào)信息表invalid的描述表名invalid列名數(shù)據(jù)類(lèi)型描述idint掛號(hào)編號(hào)PathographyIDvarchar病志號(hào),唯一標(biāo)示病人身份namevarchar病人姓名sexvarchar病人性別agevarchar病人年齡addressvarchar病人住址officevarchar病人所需求診科室typevarchar掛號(hào)類(lèi)型pricevarchar掛號(hào)價(jià)格UserIDint掛號(hào)工作人員編號(hào)timedaytime掛號(hào)時(shí)間flagint就診狀態(tài)標(biāo)記病歷表[cases]主要用來(lái)保存患者的病歷信息,表的設(shè)計(jì)如表4-3所示:表4-3病歷表cases的描述表名cases列名數(shù)據(jù)類(lèi)型描述idint病歷編號(hào)PathographyIDvarchar病志號(hào),唯一標(biāo)示病人身份historytext病人病史allergytext病人過(guò)敏史symptomtext病人癥狀analyzetext醫(yī)生診斷UserIDint看診醫(yī)生編號(hào)<4>處方表[prescription]主要用來(lái)保存病人的處方信息,表的設(shè)計(jì)如表4-4所示:表4-4處方表prescription的描述表名prescription列名數(shù)據(jù)類(lèi)型描述idint處方編號(hào)PathographyIDvarchar病志號(hào),唯一標(biāo)示病人身份medicineIDint藥品編號(hào)sumsint藥品數(shù)量timesdaytime繳費(fèi)時(shí)間UserIDint藥房收費(fèi)人員編號(hào)藥品表[medicine]主要用來(lái)保存藥品信息,表的設(shè)計(jì)如表4-5所示:表4-5藥品表medicine的描述表名medicine列名數(shù)據(jù)類(lèi)型描述idint藥品編號(hào)namevarchar藥品名稱(chēng)specvarchar藥品種類(lèi)factoryvarchar生產(chǎn)廠(chǎng)家pricevarchar藥品價(jià)格stockint存貨數(shù)量sumsint出入庫(kù)數(shù)目captiontext說(shuō)明用戶(hù)表[users]主要用來(lái)保存用戶(hù)的信息,表的設(shè)計(jì)如表4-6所示:表4-6用戶(hù)表users的描述表名users列名數(shù)據(jù)類(lèi)型描述UserIdint用戶(hù)編號(hào)namevarchar登入系統(tǒng)的用戶(hù)名pwdvarchar登入系統(tǒng)密碼realnamevarchar用戶(hù)姓名officevarchar用戶(hù)所在科室statusvarchar用戶(hù)權(quán)限

第五章模塊設(shè)計(jì)(另起頁(yè),劇中)在此次門(mén)診信息管理系統(tǒng)的設(shè)計(jì)中,主要由患者掛號(hào)模塊,醫(yī)生看診模塊,藥房管理及收費(fèi)模塊以及系統(tǒng)后臺(tái)管理模塊構(gòu)成。本章節(jié)將選擇患者掛號(hào)模塊,醫(yī)生看診模塊,藥房管理及收費(fèi)模塊,以文字描述及代碼展示的形式對(duì)其主要的類(lèi)和接口進(jìn)行說(shuō)明,闡述主要類(lèi)關(guān)鍵方法的算法。5.1掛號(hào)模塊算法描述患者掛號(hào)的模塊包含了對(duì)初診病人、復(fù)診病人的掛號(hào)操作,以及掛號(hào)工作人員賬戶(hù)密碼修改等功能,這里選取掛號(hào)步驟作為詳細(xì)描述。初診患者掛號(hào)的程序?qū)崿F(xiàn)思路是:掛號(hào)人員在前端頁(yè)面請(qǐng)求為初診患者掛號(hào),系統(tǒng)自動(dòng)生成信息表格供掛號(hào)人員填寫(xiě),系統(tǒng)將接收到的信息打包到request對(duì)象中發(fā)送給服務(wù)器;用以響應(yīng)該請(qǐng)求的用servlet編寫(xiě)的RegisterServlet接收request對(duì)象,并通過(guò)與門(mén)診管理系統(tǒng)對(duì)應(yīng)的JavaBean:InsertUpdateDelBean向數(shù)據(jù)庫(kù)中存儲(chǔ)信息。接收request對(duì)象的代碼如下: Stringname=request.getParameter("name"); Stringsex=request.getParameter("sex"); Stringage=request.getParameter("age"); Stringaddress=request.getParameter("address"); Stringoffice=request.getParameter("office"); Stringtype=request.getParameter("type"); Stringprice=request.getParameter("price"); HttpSessionsession=request.getSession(); ArrayListuserlogin=(ArrayList)session.getAttribute("userlogin");利用InsertUpdateDelBean向數(shù)據(jù)庫(kù)中存儲(chǔ)代碼如下: InsertUpdateDelBeanib=newInsertUpdateDelBean(); SelectBeansb=newSelectBean(); Stringsql="selectcount(*)asrowsfrominvalid"; Stringargs[]={"rows"}; ArrayListal=sb.select(args,sql); if(al.get(0).equals("0")){ sql="insertintoinvalid(pathographyid,name,sex,age,address,"+ "office,type,price,userid)values('1000','"+name+"','"+sex+"','"+age+"','"+ address+"','"+office+"','"+type+"','"+price+"','"+userlogin.get(0)+"')"; }else{ sql="selectmax(pathographyid)asmaxsfrominvalid"; Stringargs1[]={"maxs"}; ArrayListmaxs=sb.select(args1,sql); sql="insertintoinvalid(pathographyid,name,sex,age,address,"+ "office,type,price,userid)values('"+ (Integer.parseInt(maxs.get(0).toString())+1)+ "','"+name+"','"+sex+"','"+age+"','"+address+"','"+office+"','"+type+"','"+price+"','"+userlogin.get(0)+"')"; } ib.insertANDupdateANDdel(sql);返回成功信息: request.setAttribute("message","操作成功!"); request.getRequestDispatcher("/users/register.jsp").forward(request,response); 而復(fù)診病人則需先檢驗(yàn)其病歷是否已經(jīng)存在: publicArrayListgetInvalid(Stringpathographyid){Stringsql="select*frominvalidwherepathographyid='"+pathographyid+"'"; Stringargs[]={"id","pathographyid","name","sex","age", "address","office","type","price","userid","times","flag"}; al=sb.select(sql,args); returnal;}5.2看診模塊算法描述醫(yī)生看診模塊包含了醫(yī)生為病人填寫(xiě)病歷,為病人開(kāi)具藥物處方,看診醫(yī)生賬戶(hù)密碼修改等功能。這里選取醫(yī)生為病人填寫(xiě)病歷及開(kāi)具處方這里流程作詳細(xì)闡述。病人看診首先通過(guò)輸入pathographyid,系統(tǒng)首先驗(yàn)證該病歷是否存在,若不存在,則直接返回輸入病志頁(yè)面。若存在,則系統(tǒng)將收到的信息打包為request對(duì)象發(fā)送給服務(wù)器,用以響應(yīng)該請(qǐng)求的用servlet編寫(xiě)的CasesServlet接收request對(duì)象,并通過(guò)與門(mén)診管理系統(tǒng)對(duì)應(yīng)的JavaBean:InsertUpdateDelBean向數(shù)據(jù)庫(kù)中存儲(chǔ)信息。接受包含case信息的request的代碼如下:Stringpathographyid=request.getParameter("pathographyid");Stringhistory=request.getParameter("history"); Stringallergy=request.getParameter("allergy"); Stringsymptom=request.getParameter("symptom"); Stringanalyze=request.getParameter("analyze"); HttpSessionsession=request.getSession(); ArrayListuserlogin=(ArrayList)session.getAttribute("userlogin");開(kāi)具藥物處方時(shí),需將信息打包為request對(duì)象發(fā)送給服務(wù)器,用以響應(yīng)該請(qǐng)求的是用Servlet編寫(xiě)的PrescriptionServlet接受request對(duì)象,并通過(guò)與門(mén)診管理系統(tǒng)對(duì)應(yīng)的JavaBean:InsertUpdateDelBean向數(shù)據(jù)庫(kù)中存儲(chǔ)信息。接受包含prescription信息的request的代碼如下:Stringmedicine=request.getParameter("medicine"); Stringsums=request.getParameter("sums"); Stringpathographyid=request.getParameter("pathographyid");若藥品的庫(kù)存量不足,系統(tǒng)則會(huì)提示信息并返回開(kāi)具處方頁(yè)面:if(Integer.parseInt(sums)>Integer.parseInt(al.get(5).toString())){ str="/users/prescription.jsp"; request.setAttribute("message","庫(kù)存量不足(庫(kù)存為"+al.get(5)+")!");5.3藥房管理模塊算法描述藥房管理模塊包含了處方繳費(fèi)并取藥,藥品的出入庫(kù)管理,藥品的銷(xiāo)售記錄,藥品管理人員登錄密碼修改等功能。這里選取處方繳費(fèi)功能進(jìn)行詳細(xì)闡述。系統(tǒng)通過(guò)患者的pathographyid取得了其處方信息之后,charge.jsp頁(yè)面將收到的信息打包為request發(fā)送給由Servlet編寫(xiě)的服務(wù)器ChargeServlet上,然后再由其通過(guò)與系統(tǒng)進(jìn)行對(duì)應(yīng)可進(jìn)行調(diào)用的JavaBean向數(shù)據(jù)庫(kù)中存儲(chǔ)信息。接受包含處方信息的request的代碼如下:Stringpathographyid=request.getParameter("pathographyid"); HttpSessionsession=request.getSession(); ArrayListuserlogin=(ArrayList)session.getAttribute("userlogin"); Validatev=newValidate();然后標(biāo)記處方已繳費(fèi)并記錄繳費(fèi)時(shí)間,并在藥品倉(cāng)庫(kù)中儲(chǔ)存中減去已出貨的藥品,實(shí)現(xiàn)代碼如下:InsertUpdateDelBeanib=newInsertUpdateDelBean();Stringsql="updateprescriptionsettimes1='"+v.getSystemDate().substring(0,16)+"',userid="+userlogin.get(0)+"wherepathographyid='"+pathographyid+"'andtimes='"+v.getSystemDate().substring(0,10)+"'";ib.insertANDupdateANDdel(sql);AllBeanab=newAllBean();ArrayListal=ab.getPrescription(pathographyid,v.getSystemDate().substring(0,10));for(inti=0;i<al.size();i++){ ArrayListalRow=(ArrayList)al.get(i); sql="updatemedicineset

溫馨提示

  • 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)論