醫(yī)院門診信息管理系統設計與實現_第1頁
醫(yī)院門診信息管理系統設計與實現_第2頁
醫(yī)院門診信息管理系統設計與實現_第3頁
醫(yī)院門診信息管理系統設計與實現_第4頁
醫(yī)院門診信息管理系統設計與實現_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

第五章模塊設計(另起頁,劇中)在此次門診信息管理系統的設計中,主要由患者掛號模塊,醫(yī)生看診模塊,藥房管理及收費模塊以及系統后臺管理模塊構成。本章節(jié)將選擇患者掛號模塊,醫(yī)生看診模塊,藥房管理及收費模塊,以文字描述及代碼展示的形式對其主要的類和接口進行說明,闡述主要類關鍵方法的算法。5.1掛號模塊算法描述患者掛號的模塊包含了對初診病人、復診病人的掛號操作,以及掛號工作人員賬戶密碼修改等功能,這里選取掛號步驟作為詳細描述。初診患者掛號的程序實現思路是:掛號人員在前端頁面請求為初診患者掛號,系統自動生成信息表格供掛號人員填寫,系統將接收到的信息打包到request對象中發(fā)送給服務器;用以響應該請求的用servlet編寫的RegisterServlet接收request對象,并通過與門診管理系統對應的JavaBean:InsertUpdateDelBean向數據庫中存儲信息。接收request對象的代碼如下: 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向數據庫中存儲代碼如下: 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); 而復診病人則需先檢驗其病歷是否已經存在: 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ī)生為病人填寫病歷,為病人開具藥物處方,看診醫(yī)生賬戶密碼修改等功能。這里選取醫(yī)生為病人填寫病歷及開具處方這里流程作詳細闡述。病人看診首先通過輸入pathographyid,系統首先驗證該病歷是否存在,若不存在,則直接返回輸入病志頁面。若存在,則系統將收到的信息打包為request對象發(fā)送給服務器,用以響應該請求的用servlet編寫的CasesServlet接收request對象,并通過與門診管理系統對應的JavaBean:InsertUpdateDelBean向數據庫中存儲信息。接受包含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");開具藥物處方時,需將信息打包為request對象發(fā)送給服務器,用以響應該請求的是用Servlet編寫的PrescriptionServlet接受request對象,并通過與門診管理系統對應的JavaBean:InsertUpdateDelBean向數據庫中存儲信息。接受包含prescription信息的request的代碼如下:Stringmedicine=request.getParameter("medicine"); Stringsums=request.getParameter("sums"); Stringpathographyid=request.getParameter("pathographyid");若藥品的庫存量不足,系統則會提示信息并返回開具處方頁面:if(Integer.parseInt(sums)>Integer.parseInt(al.get(5).toString())){ str="/users/prescription.jsp"; request.setAttribute("message","庫存量不足(庫存為"+al.get(5)+")!");5.3藥房管理模塊算法描述藥房管理模塊包含了處方繳費并取藥,藥品的出入庫管理,藥品的銷售記錄,藥品管理人員登錄密碼修改等功能。這里選取處方繳費功能進行詳細闡述。系統通過患者的pathographyid取得了其處方信息之后,charge.jsp頁面將收到的信息打包為request發(fā)送給由Servlet編寫的服務器ChargeServlet上,然后再由其通過與系統進行對應可進行調用的JavaBean向數據庫中存儲信息。接受包含處方信息的request的代碼如下:Stringpathographyid=request.getParameter("pathographyid"); HttpSessionsession=request.getSession(); ArrayListuserlogin=(ArrayList)session.getAttribute("userlogin"); Validatev=newValidate();然后標記處方已繳費并記錄繳費時間,并在藥品倉庫中儲存中減去已出貨的藥品,實現代碼如下: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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論