【正文】
基本理論隨著計(jì)算機(jī)應(yīng)用軟件的發(fā)展,應(yīng)用程序逐漸由單層體系結(jié)構(gòu)發(fā)展為多層體系結(jié)構(gòu)。本章主要對(duì)系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì),對(duì)系統(tǒng)進(jìn)行建模,分析了系統(tǒng)的操作流程和功能模塊,最終得到系統(tǒng)的模型結(jié)構(gòu)和功能模塊。Costs:對(duì)制劑生產(chǎn)成本的統(tǒng)計(jì)。在系統(tǒng)的每個(gè)數(shù)據(jù)庫(kù)中都定義了許多不同的固定角色,每個(gè)用戶可以屬于多個(gè)不同的角色,從而擁有不同的權(quán)限[28]。然后下次再讀取時(shí)候就是更新后的數(shù)據(jù)了[23]。通過(guò)規(guī)定數(shù)據(jù)類型,使用CHECK約束和規(guī)則、使用缺省值、非空定義以及外鍵約束,限定有效值的范圍。要求表中的所有行都有唯一的標(biāo)識(shí)符,稱為主關(guān)鍵字。因此,設(shè)計(jì)一個(gè)好的數(shù)據(jù)庫(kù)結(jié)構(gòu),對(duì)系統(tǒng)的長(zhǎng)期穩(wěn)定運(yùn)行,起到了關(guān)鍵的作用。:數(shù)量管理主要是針對(duì)各種制劑的生產(chǎn)與使用數(shù)量的處理,已達(dá)到生產(chǎn)與需求平衡的目的。主要實(shí)現(xiàn)與系統(tǒng)設(shè)置有關(guān)的模塊管理。首先對(duì)制劑數(shù)量數(shù)據(jù)進(jìn)行初始化操作(處理以往數(shù)據(jù))。制劑信息錄入制劑查詢制劑報(bào)表制劑接收制劑補(bǔ)充制劑信息制劑生產(chǎn)信息制劑使用情況制劑庫(kù)存情況制劑管理模塊圖44 制劑管理流程圖制劑管理模塊可分為制劑信息錄入、修改、查詢、報(bào)表四個(gè)部分。 根據(jù)系統(tǒng)功能需求以及在制劑管理過(guò)程中的工作流程,并對(duì)系統(tǒng)的操作流程進(jìn)行分析,對(duì)系統(tǒng)的整體模塊結(jié)構(gòu)分析如下:系統(tǒng)管理模塊系統(tǒng)管理醫(yī)院?jiǎn)挝豢? 室制劑名稱制劑代碼負(fù) 責(zé) 人制劑生產(chǎn)記錄制劑使用記錄制劑生產(chǎn)成本制劑生產(chǎn)設(shè)備管理圖41 系統(tǒng)管理模塊系統(tǒng)管理模塊主要對(duì)基礎(chǔ)信息的維護(hù)。系統(tǒng)功能架構(gòu)設(shè)計(jì)即確定系統(tǒng)應(yīng)包含哪些子系統(tǒng)以及系統(tǒng)的主要業(yè)務(wù)邏輯關(guān)系,從而構(gòu)造出系統(tǒng)整體用例模型和業(yè)務(wù)邏輯類圖,為下一步對(duì)系統(tǒng)進(jìn)行求精設(shè)計(jì)打下基礎(chǔ)[21]。盡量避免使用數(shù)據(jù)庫(kù)默使用嚴(yán)格進(jìn)行用戶身份認(rèn)證,沒(méi)有進(jìn)行有效身份認(rèn)證則任何功能將無(wú)法使用,嚴(yán)格禁止非法用戶訪問(wèn)。雖然“訪問(wèn)控制”和“存取控制”可以將用戶的應(yīng)用系統(tǒng)訪問(wèn)范圍最小化,數(shù)據(jù)對(duì)象操作權(quán)限最低化,但是就數(shù)據(jù)庫(kù)本身而言,利用這種視圖、觸發(fā)器、存儲(chǔ)過(guò)程等方法來(lái)保護(hù)數(shù)據(jù)和對(duì)一些敏感數(shù)據(jù)的“加密存儲(chǔ)”也是數(shù)據(jù)庫(kù)管理系統(tǒng)提供的安全策略[19]。操作系統(tǒng)一級(jí)也會(huì)有自己的保護(hù)措施。本系統(tǒng)設(shè)計(jì)了基于角色的權(quán)限管理方法,對(duì)于不同的用戶,設(shè)置不同的安全級(jí)別[28]。程序設(shè)計(jì)者必須保證程序結(jié)構(gòu)是安全的,保證代碼不會(huì)引入脆弱性。由于操作系統(tǒng)非常復(fù)雜,不可避免的存在各種安全漏洞,尤其是默認(rèn)安裝配置的操作系統(tǒng),安全威脅更大。數(shù)據(jù)訪問(wèn)機(jī)制可以通過(guò)輕量級(jí)的O/R Mapping,該層能提供透明的持久化,該持久層實(shí)現(xiàn)了對(duì)數(shù)據(jù)訪問(wèn)方式JDBC的輕量級(jí)封裝。用不著JNDI尋址、定制服務(wù)器之類的額外輔助;輕量級(jí)容器為應(yīng)用對(duì)象提供注冊(cè)服務(wù)。為了解決經(jīng)典架構(gòu)中有EJB引起的一系列問(wèn)題以及滿足不斷發(fā)展的企業(yè)應(yīng)用,提出了非EJB架構(gòu)的“輕量級(jí)容器”。此“經(jīng)典”架構(gòu)中,所有的數(shù)據(jù)訪問(wèn)都要通過(guò)entity bean,業(yè)務(wù)對(duì)象都是帶遠(yuǎn)程接口的無(wú)狀態(tài)session bean,運(yùn)行在EJB容器中。J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略。 支持異構(gòu)環(huán)境:J2EE能夠開(kāi)發(fā)部署在異構(gòu)環(huán)境中的可移植程序。數(shù)據(jù)層:數(shù)據(jù)邏輯層,存儲(chǔ)在高性能數(shù)據(jù)庫(kù)中的關(guān)鍵業(yè)務(wù)數(shù)據(jù)。6.總體規(guī)劃、分層實(shí)施原則:在開(kāi)始設(shè)計(jì)之前對(duì)Web系統(tǒng)進(jìn)行總體設(shè)計(jì),然后在總體設(shè)計(jì)指導(dǎo)下分步開(kāi)發(fā)。1.實(shí)用性原則:在滿足功能、性能、維護(hù)方面的要求的同時(shí),減少對(duì)操作人員培訓(xùn)的難度,以及系統(tǒng)維護(hù)和管理的壓力;系統(tǒng)提供簡(jiǎn)單方便的用戶界面,使用戶通過(guò)簡(jiǎn)單培訓(xùn)就可熟練操作,日常操作所需的功能必需完備簡(jiǎn)明,注重實(shí)用性和多樣性相結(jié)合。用例圖顯示系統(tǒng)中的使用案例與角色及其相互關(guān)系。(4) 提供運(yùn)行日志管理及審計(jì)功能[10]5.可支持性(Supportability)要求系統(tǒng)的升級(jí)只需要在服務(wù)器端由系統(tǒng)管理員完成,不需要用戶的參與。確保能對(duì)各種計(jì)費(fèi)情況實(shí)時(shí)做出響應(yīng)。4查詢用戶可以查詢制劑的任何相關(guān)信息,但不能修改藥劑信息。根據(jù)需求分析,本系統(tǒng)的主要功能設(shè)計(jì)及描述如下表所示:表21 系統(tǒng)功能表序號(hào)功能需求功能描述1系統(tǒng)管理實(shí)現(xiàn)整個(gè)系統(tǒng)及其它用戶使用前的初始化工作。界面原型法所謂“界面原型法”,是指開(kāi)發(fā)人員根據(jù)自己所了解的用戶需求,描畫(huà)出應(yīng)用系統(tǒng)的功能界面后與用戶進(jìn)行交流和溝通,通過(guò)“界面原型”這一載體,達(dá)到雙方逐步明確項(xiàng)目需求的一種需求獲取的方法。需求獲取階段主要是對(duì)用戶的需求進(jìn)行收集、分析、細(xì)化、核實(shí)的過(guò)程,最后將它編寫成文檔。在實(shí)踐中應(yīng)充分運(yùn)用現(xiàn)代藥劑學(xué)新理論、新技術(shù)、新科技,開(kāi)發(fā)新制劑、新劑型以滿足臨床科研需要[4]。第4章主要介紹系統(tǒng)詳細(xì)設(shè)計(jì)。并對(duì)系統(tǒng)操作用戶權(quán)限管理部分模型進(jìn)行了詳細(xì)描述,對(duì)本系統(tǒng)如何實(shí)現(xiàn)做出了詳細(xì)的解析。而目前,國(guó)內(nèi)外對(duì)于醫(yī)院內(nèi)各藥房的應(yīng)用程序較多,但專門針對(duì)醫(yī)院制劑室的應(yīng)用程序卻未見(jiàn)相關(guān)文獻(xiàn)報(bào)道,為填補(bǔ)這一空白,根據(jù)多年的制劑室管理經(jīng)驗(yàn),結(jié)合計(jì)算機(jī)軟件相關(guān)知識(shí),根據(jù)當(dāng)前我院制劑管理的需求,開(kāi)發(fā)了本套制劑管理系統(tǒng)。醫(yī)院制劑發(fā)展達(dá)到高峰[1]。從系統(tǒng)實(shí)際應(yīng)用入手,采用軟件工程的相關(guān)建模技術(shù),根據(jù)醫(yī)院制劑規(guī)范對(duì)系統(tǒng)進(jìn)行模塊化設(shè)計(jì)。s SQL SERVER2000 to manage the use of its support for highperformance transaction processing and security, integrity control, and portability, patibility, connectivity, etc., sought to establish a reliable and secure database system .Finally, the paper gives a concrete realization of the main modules, mainly discusses the use of Java implementations. Operation of the system user access methods are detailed. And gives the system interface and the main part of the design code. In this paper, preparation for hospital management and modernization of the information forward to provide a feasible model.The system has been successfully applied to the management of Qilu Hospital, preparation room, the system is running stable, has greatly enhanced the efficiency of its management, the user alike.However, due to the urgent design time, in the actual design of the module, customized adaptive function has not been realized, and the redundancy of database design and security also demand further improvement.Key words:Preparation Management。數(shù)據(jù)庫(kù)系統(tǒng)采用微軟的SQL SERVER2000進(jìn)行管理,利用其支持高性能的事務(wù)處理和安全性、完整性控制,以及具有可移植性、可兼容性、可連接性等優(yōu)點(diǎn),力求建立一個(gè)可靠安全的數(shù)據(jù)庫(kù)系統(tǒng)。但由于醫(yī)院制劑管理的特殊性,其配置標(biāo)準(zhǔn)、制劑品種等各方面每個(gè)醫(yī)院都有自己獨(dú)特的方法。除文中已經(jīng)注明引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過(guò)的科研成果。本論文以齊魯醫(yī)院制劑室管理系統(tǒng)的開(kāi)發(fā)需求為背景,詳細(xì)闡述了基于J2EE結(jié)構(gòu)的醫(yī)院制劑管理系統(tǒng)開(kāi)發(fā)的全過(guò)程。并給出了系統(tǒng)的界面及主要部分的設(shè)計(jì)代碼。 UML61第1章 緒 論隨著信息技術(shù)的迅猛發(fā)展,計(jì)算機(jī)技術(shù)在醫(yī)院藥學(xué)領(lǐng)域的應(yīng)用越來(lái)越廣泛,成為醫(yī)院藥學(xué)管理的重要手段。在我國(guó),醫(yī)院制劑在長(zhǎng)期的醫(yī)療實(shí)踐中發(fā)揮了重要的作用,擔(dān)負(fù)著醫(yī)院臨床用藥和科研教育雙重任務(wù),是國(guó)家醫(yī)藥專業(yè)的重要組成和必要補(bǔ)充。, 保證質(zhì)量管理和質(zhì)量控制環(huán)節(jié)的順利實(shí)施。3.利用Hibernate和Struts的J2EE技術(shù)對(duì)系統(tǒng)進(jìn)行整體實(shí)現(xiàn),Hibernate是一個(gè)功能強(qiáng)大、高性能、非常流行的ORM工具,它推動(dòng)了基于普通Java對(duì)象模型、用于映射底層數(shù)據(jù)結(jié)構(gòu)的持久對(duì)象的開(kāi)發(fā),能夠提供高級(jí)數(shù)據(jù)查詢和檢索服務(wù)。論述了系統(tǒng)的主要設(shè)計(jì)目標(biāo)、設(shè)計(jì)原則以及系統(tǒng)的基本功能。第2章 系統(tǒng)需求分析在軟件工程中,需求分析指的是在建立一個(gè)新的或改變一個(gè)現(xiàn)存的電腦系統(tǒng)時(shí)描寫新系統(tǒng)的目的、范圍、定義和功能時(shí)所要做的所有的工作。通過(guò)制劑管理系統(tǒng),將傳統(tǒng)的手工管理方式逐步轉(zhuǎn)為規(guī)范的計(jì)算機(jī)管理方式,其主要工作包括物料的入庫(kù)與投料、制劑生產(chǎn)制備、檢驗(yàn)管理、成品的入出庫(kù)、制劑成本核算等功能[5]。需求獲取作為項(xiàng)目伊始的活動(dòng),是非常重要的,在建設(shè)本系統(tǒng)的過(guò)程中,我們吸取以往信息系統(tǒng)建設(shè)過(guò)程中對(duì)需求分析重視不夠而導(dǎo)致系統(tǒng)開(kāi)發(fā)過(guò)程中的種種問(wèn)題的教訓(xùn),高度重視需求分析的過(guò)程,并確定了以下需求獲取的模式: 問(wèn)卷調(diào)查法:所謂“問(wèn)卷調(diào)查法”,是指開(kāi)發(fā)方就用戶需求中的一些個(gè)性化的、需要進(jìn)一步明確的需求(或問(wèn)題),通過(guò)采用向用戶發(fā)問(wèn)卷調(diào)查表的方式,達(dá)到徹底弄清項(xiàng)目需求的一種需求獲取方法。功能性需求是系統(tǒng)必須滿足的功能的規(guī)格說(shuō)明。可根據(jù)使用信息生產(chǎn)相關(guān)報(bào)表,以方便查詢和打印。具體的,主要的要求包括:易安裝性;易學(xué)習(xí)性和理解性;軟件具有可配置能力,如顯示界面、顯示格式、報(bào)表格式等可以調(diào)整;用戶界面友好、界面風(fēng)格保持一致;提供聯(lián)機(jī)幫助,軟件操作方便;各種提示信息準(zhǔn)確,術(shù)語(yǔ)規(guī)范;友好的圖形用戶界面和多語(yǔ)種支持。(3)系統(tǒng)中80%的事務(wù)處理響應(yīng)時(shí)間、應(yīng)該在20秒鐘內(nèi)完成。用例是系統(tǒng)中的一個(gè)功能單元,可以被描述為執(zhí)行者與系統(tǒng)之間的一次交互作用。通過(guò)使用用例,客戶可以看到系統(tǒng)提供的功能,先確定系統(tǒng)范圍再深入開(kāi)展項(xiàng)目工作[12]。3.可靠性原則:系統(tǒng)運(yùn)行可靠,在出現(xiàn)異常的時(shí)候有人性化的異常信息方便用戶理解原因,并采取適當(dāng)?shù)膽?yīng)對(duì)方案,在設(shè)計(jì)業(yè)務(wù)量比較大的時(shí)候采用先進(jìn)的嵌入式技術(shù)來(lái)保證業(yè)務(wù)的流暢運(yùn)行?;贘2EE的多層架構(gòu)具有良好的、可擴(kuò)展的性能、便于系統(tǒng)互聯(lián)、具有很高的安全性,同時(shí)也易于維護(hù),因此我們采用J2EE的多層架構(gòu)作為系統(tǒng)的主技術(shù)架構(gòu)[14]。高效的開(kāi)發(fā): J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分關(guān)鍵的。 J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。此外為了分布化,犧牲了OO原則,并且難以測(cè)試,因?yàn)闃I(yè)務(wù)邏輯通常編寫在EJB的實(shí)現(xiàn)類中,而這些類完全依賴于EJB容器的。輕量級(jí)容器并沒(méi)有和J2EE綁定,所以它既可以運(yùn)行在WEB容器里,也可以在一個(gè)標(biāo)準(zhǔn)應(yīng)用程序中運(yùn)行,如必要也可以運(yùn)行在EJB容器中。WEB層是由MVC框架提供的(Struts或WebWork,或Spring架構(gòu)的MVC結(jié)構(gòu))業(yè)務(wù)對(duì)象是POJO,運(yùn)行在輕量級(jí)容器里??蛻舳藢討?yīng)用程序?qū)訑?shù)據(jù)庫(kù)層Web Server層操作系統(tǒng)層網(wǎng)絡(luò)層自下而上進(jìn)行攻擊圖31 Web信息系統(tǒng)體系結(jié)構(gòu)圖其中各層次面臨的主要安全隱患如下:網(wǎng)絡(luò)層:來(lái)自網(wǎng)絡(luò)層的攻擊主要利用網(wǎng)絡(luò)體系結(jié)構(gòu)的不完善性,以及TCP/IP協(xié)議及其它應(yīng)用層協(xié)議(如SMTP,Telnet,F(xiàn)TP等)存在的漏洞。惡意用戶往往利用其互動(dòng)操作獲得非法權(quán)限,進(jìn)而以此攻擊其它服務(wù)器系統(tǒng)。用戶在進(jìn)入系統(tǒng)時(shí),首先判斷用戶是否有權(quán)使用系統(tǒng),即判定用戶的合法性,也稱之為身份認(rèn)證。在計(jì)算機(jī)系統(tǒng)的應(yīng)用中,數(shù)據(jù)的安全問(wèn)題、敏感數(shù)據(jù)的防竊取和防篡改問(wèn)題越來(lái)越引起重視。(1) 使用安全的系統(tǒng)認(rèn)證當(dāng)用戶訪問(wèn)數(shù)據(jù)庫(kù)時(shí)首先通過(guò)數(shù)據(jù)庫(kù)應(yīng)用程序進(jìn)入到數(shù)據(jù)庫(kù)系統(tǒng),這時(shí)數(shù)據(jù)庫(kù)應(yīng)用程序?qū)⒂脩籼峤坏挠脩裘c口令(口令密文)交給數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行認(rèn)證,在確定其身份合法后,才能進(jìn)入下一步的操作?;謴?fù)方法通常是可以利用利用備份技術(shù)、事務(wù)日志技術(shù)、鏡像技術(shù)完成。在本系統(tǒng)中,我們遵循了數(shù)據(jù)安全設(shè)計(jì)的一些基本原則。其他用戶根據(jù)自己所在的權(quán)限組及用戶組,可使用并操作本組功能模塊和數(shù)據(jù)。制劑信息錄入確認(rèn)數(shù)量分配設(shè)備確定生產(chǎn)原材料計(jì)算成本生產(chǎn)制劑生產(chǎn)管理模塊確定生產(chǎn)設(shè)備分配部門圖42 生產(chǎn)管理流程圖生產(chǎn)管理模塊中,首先要處理制劑信息,錄入將要生產(chǎn)的制劑信息,然后對(duì)制劑進(jìn)行分配、確定制劑的生產(chǎn)數(shù)量、由哪個(gè)部門掌管的設(shè)備生產(chǎn)、生產(chǎn)材料的采集、成本的計(jì)算,相關(guān)信息處理完畢后生產(chǎn)制劑。對(duì)于有庫(kù)存短缺的制劑,可輸出制劑補(bǔ)充通知表格。制劑信息輸入制劑基本信息制劑生產(chǎn)信息報(bào)表輸出生成數(shù)據(jù)表制劑信息處理制劑生產(chǎn)成本表生產(chǎn)設(shè)備表負(fù)責(zé)人分配表制劑使用狀況表制劑分類表制劑庫(kù)存表備份制劑生產(chǎn)信息備份制劑信息信息統(tǒng)計(jì)模塊圖47 信息統(tǒng)計(jì)管理流程圖信息統(tǒng)計(jì)模塊中,首先制劑的基本信息和生產(chǎn)信息進(jìn)行核對(duì)確認(rèn),再將相關(guān)信息錄入到制劑信息庫(kù)中,然后對(duì)制劑的信息進(jìn)行處理,如制劑相關(guān)信息的修改,制劑的添加和刪除等。:主要完成制劑的生產(chǎn)管理工作,如對(duì)生產(chǎn)成本的計(jì)算、生產(chǎn)設(shè)備的管理和使用、制劑生產(chǎn)數(shù)量和批量等工作。人們?cè)诳偨Y(jié)信息資源開(kāi)發(fā)、管理和服務(wù)的各種手段時(shí),認(rèn)為最有效的是數(shù)據(jù)庫(kù)技術(shù)。為了保證數(shù)據(jù)庫(kù)的一致性和完整性,設(shè)計(jì)人員往往會(huì)設(shè)計(jì)很多的表間關(guān)聯(lián)(Relation