




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
藥房藥物管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)【摘要】當(dāng)前隨著計(jì)算機(jī)技術(shù)發(fā)展和普及,各行各業(yè)管理機(jī)構(gòu)開始使用計(jì)算機(jī)解決大量信息。在國(guó)內(nèi)藥物品種繁多,規(guī)模甚大,以往手工記載、查詢操作容易出錯(cuò)且工作效率低,已經(jīng)不能適應(yīng)時(shí)代發(fā)展規(guī)定,從管理角度來(lái)看,對(duì)管理者會(huì)導(dǎo)致諸多不便,尚有也許疏忽某些細(xì)節(jié)。因此,市場(chǎng)迫切需要一款簡(jiǎn)樸實(shí)用藥物管理系統(tǒng)。為理解決當(dāng)前藥房藥物管理中普遍存在效率偏低,管理欠科學(xué)等問(wèn)題,通過(guò)需求分析、可行性分析,運(yùn)用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、通信技術(shù)設(shè)計(jì)了一套基于WEB藥房藥物管理系統(tǒng),該系統(tǒng)涉及顧客管理、采購(gòu)管理、庫(kù)存管理、系統(tǒng)維護(hù)等功能。該套系統(tǒng)投入使用可以提高藥房藥物管理工作效率,實(shí)現(xiàn)了藥物信息化、科學(xué)化管理,并且操作簡(jiǎn)樸、易于人機(jī)交互,應(yīng)用前景廣泛?!竞诵脑~】藥物管理;信息化;WEBDesignandImplementationofPharmacyMedicinesManagementSystem[Abstract]Nowwiththedevelopmentofcomputertechnologyandpopularization,peoplefromallwalksoflifemanagementagenciesbegantouseacomputertoprocessalargenumberofinformation.Inourcountry'sdrugvariety,thescaleisverygreat,inthepast,themanualrecords,inquirestheeasyoperationerrorandworkefficiencyislow,cannotbeadapttotherequirementofTheTimesdevelopmentalready,frommanagementpointofview,themanagerscancausemanyinconvenience,andmayneglectsomedetails.Inordertosolvethepresentpharmacymedicinesmanagementintheprevalenceoflowefficiency,managementowescienceproblem,throughthedemandanalysis,feasibilityanalysis,theuseofcomputertechnology,networktechnology,communicationtechnologybasedonWEBdesignasetofpharmacymedicinesmanagementsystem,thissystemincludesusermanagement,procurementmanagement,inventorymanagement,systemmaintenancefunction.Thissetofsystemputintousecanimprovepharmacymedicinesmanagementworkefficiencyandachieveamedicinesinformation,scientificmanagement,andtheoperationissimple,easytohuman-computerinteraction,theapplicationprospectofwidely.[Keywords]MedicinesManagement;Informatization;WEB目錄1 前言 12 系統(tǒng)需求分析 22.1 藥房藥物管理現(xiàn)狀分析 22.2 藥房藥物管理系統(tǒng)建立目和意義 2HYPERLINK2.4 經(jīng)濟(jì)可行性研究 32.5 技術(shù)可行性研究 42.5.1 數(shù)據(jù)庫(kù)—MySQLServer5.5 42.5.2 設(shè)計(jì)前臺(tái)語(yǔ)言——html和struts2標(biāo)簽 52.5.3 開發(fā)平臺(tái)——JSP 62.5.4 系統(tǒng)架構(gòu)——B/S模式和三層系統(tǒng)架構(gòu) 72.5 操作可行性研究 93 系統(tǒng)概要設(shè)計(jì) 103.1 設(shè)計(jì)思想 103.2 設(shè)計(jì)原則 103.3 系統(tǒng)功能 113.3.1 系統(tǒng)顧客前端模塊重要功能 123.3.2 系統(tǒng)后臺(tái)模塊重要功能 13HYPERLINK4 系統(tǒng)詳細(xì)設(shè)計(jì) 244.1 設(shè)計(jì)思想及流程圖 244.1.1 添加新顧客流程圖 244.1.2 系統(tǒng)登陸流程圖 254.1.3 添加新藥流程圖 254.1.4 藥物入庫(kù)流程圖 264.1.5 處方錄入流程圖 274.1.6 藥師配藥流程圖 274.1.7 審核員發(fā)藥流程圖 275 系統(tǒng)實(shí)現(xiàn) 285.1 藥房藥物管理系統(tǒng)前端實(shí)現(xiàn) 285.1.1 采購(gòu)員模塊 285.1.2 藥庫(kù)管理員模塊 295.1.3 醫(yī)生模塊 305.1.4 藥師模塊 315.1.5 審核員模塊 325.1.6 找回密碼模塊 345.2 系統(tǒng)管理員后臺(tái)實(shí)現(xiàn) 365.2.1 顧客管理模塊 365.2.2 藥物管理模塊 375.2.3 公示管理模塊 385.2.4 查看日記模塊 395.2.5 系統(tǒng)管理模塊 406 系統(tǒng)測(cè)試 456.1 系統(tǒng)前端模塊測(cè)試 456.2 系統(tǒng)后臺(tái)模塊測(cè)試 467 總結(jié)與展望 47參照文獻(xiàn) 48致謝 49前言藥物是醫(yī)院流動(dòng)資產(chǎn)重要構(gòu)成某些,約占醫(yī)院流動(dòng)資金40%~60%,是一種特殊商品,流動(dòng)性強(qiáng),儲(chǔ)備成本較高,藥物在醫(yī)院發(fā)展中占有重要位置。因而,提高對(duì)藥物結(jié)識(shí),加強(qiáng)對(duì)藥物管理非常核心。隨著科學(xué)技術(shù)突飛猛進(jìn),計(jì)算機(jī)管理已經(jīng)涉及到各行各業(yè)。作為聯(lián)系著千家萬(wàn)戶醫(yī)療行業(yè)要提高管理水平和工作效率,就必要實(shí)行計(jì)算機(jī)管理。事實(shí)上,有許多大醫(yī)院(或藥店)從門診收費(fèi)、醫(yī)生開藥到藥物收費(fèi)已經(jīng)在使用計(jì)算機(jī)局域網(wǎng)管理,實(shí)現(xiàn)了網(wǎng)絡(luò)傳遞信息,資源共享。本系統(tǒng)是醫(yī)院信息系統(tǒng)重要構(gòu)成某些。通過(guò)本系統(tǒng)可以很容易地查詢到各種藥物庫(kù)存數(shù)量,以便管理者做藥物采購(gòu)籌劃,并且醫(yī)生在開處方時(shí)如果所開藥物庫(kù)存數(shù)量局限性也會(huì)予以提示。本系統(tǒng)以網(wǎng)頁(yè)方式來(lái)體現(xiàn)程序功能,以實(shí)現(xiàn)對(duì)后臺(tái)數(shù)據(jù)庫(kù)操作,其中最重要是依托JSP頁(yè)面、MySQL數(shù)據(jù)庫(kù)和Tomcat服務(wù)器。采用MVC(Model-View-Controller)設(shè)計(jì)模式,使用JSP+struts2技術(shù),即客戶端不產(chǎn)生數(shù)據(jù)庫(kù)查詢命令,客戶端上瀏覽器通過(guò)URL和中間層Web服務(wù)器建立連接,后臺(tái)服務(wù)器再執(zhí)行代碼和數(shù)據(jù)庫(kù)進(jìn)行連接。這樣,不但將客戶端與數(shù)據(jù)庫(kù)服務(wù)器端分開,同步提高了數(shù)據(jù)庫(kù)訪問(wèn)效率。通過(guò)藥房藥物管理系統(tǒng),可以對(duì)藥物實(shí)現(xiàn)數(shù)字化管理(DigitalManagement,DM),也就是指運(yùn)用計(jì)算機(jī)、通信、網(wǎng)絡(luò),實(shí)現(xiàn)籌劃、組織、協(xié)調(diào)、服務(wù)等職能。管理層可以根據(jù)事實(shí)說(shuō)話,根據(jù)資料決策。這樣不但提高了工作效率,協(xié)助中、高層領(lǐng)導(dǎo)提供決策所需要數(shù)據(jù)、信息、資料,還協(xié)助決策者明確決策目的和對(duì)問(wèn)題結(jié)識(shí),提高決策者決策質(zhì)量、決策水平和決策效益,以達(dá)到最大社會(huì)效益。這是建設(shè)藥房藥物管理系統(tǒng)意義所在。系統(tǒng)需求分析藥房藥物管理現(xiàn)狀分析隨著國(guó)內(nèi)市場(chǎng)經(jīng)濟(jì)蓬勃發(fā)展和人們對(duì)醫(yī)藥產(chǎn)品需求迅速增長(zhǎng)以及國(guó)內(nèi)衛(wèi)生事業(yè)發(fā)展,醫(yī)藥行業(yè)正處在一種高速發(fā)展時(shí)期,各類新藥層出不窮,行業(yè)迅速發(fā)展必然導(dǎo)致競(jìng)爭(zhēng)加劇,要想在激烈市場(chǎng)競(jìng)爭(zhēng)中謀求發(fā)展,客觀上規(guī)定公司必要加強(qiáng)內(nèi)部管理,提高運(yùn)營(yíng)效率。但比較之下國(guó)內(nèi)醫(yī)藥管理系統(tǒng)卻還不夠完善。而隨著信息技術(shù)和計(jì)算機(jī)技術(shù)迅速發(fā)展,變化了整個(gè)信息管理面貌,從主線上加強(qiáng)并增進(jìn)了群體工作成員之間信息交流、資源共享、科學(xué)計(jì)算、技術(shù)合伙及有效管理等,進(jìn)而推動(dòng)了生產(chǎn)、管理發(fā)展。特別是醫(yī)院信息系統(tǒng)應(yīng)用,大大變化了醫(yī)院管理模式和工作流程,對(duì)提高醫(yī)院管理水平、質(zhì)量效益、經(jīng)濟(jì)效益和社會(huì)效益起到了巨大增進(jìn)作用。當(dāng)前國(guó)內(nèi)外已有許多醫(yī)院建立了較為完善藥物管理系統(tǒng)。此外,由于醫(yī)藥產(chǎn)品種類繁多、銷售模式特殊、業(yè)務(wù)最大,單憑手工記帳已很難適應(yīng)工作需要。醫(yī)藥作為一種關(guān)系到人們健康特殊行業(yè),國(guó)家對(duì)此又有某些不同于其她行業(yè)管理政策,這些都加大了管理難度。藥房藥物管理系統(tǒng)建立目和意義如何盡快建立和完善當(dāng)代公司信息化管理機(jī)制問(wèn)題,已成為醫(yī)藥公司發(fā)展核心所在。開發(fā)一種適當(dāng)藥房管理系統(tǒng),將計(jì)算機(jī)信息網(wǎng)絡(luò)技術(shù)應(yīng)用到藥物管理中,也是醫(yī)院實(shí)現(xiàn)系統(tǒng)化、規(guī)范化、科學(xué)化管理必然趨勢(shì)。而以便、安全、快捷醫(yī)藥管理軟件系統(tǒng)正是在這樣背景下發(fā)展起來(lái)。這種管理軟件對(duì)硬件規(guī)定很低,普通有一種比較簡(jiǎn)樸服務(wù)器與PC機(jī)構(gòu)成網(wǎng)絡(luò)即可,再加上使用比較便宜、性能不錯(cuò)軟件,這樣就可以以較低成本來(lái)實(shí)現(xiàn)一種足夠使用功能,而這種模式也正滿足了那種中小型醫(yī)院規(guī)定。所覺得這種有需要中小型醫(yī)院開發(fā)一種基于網(wǎng)絡(luò)藥物管理系統(tǒng)是非常有實(shí)用價(jià)值。因而本系統(tǒng)以網(wǎng)絡(luò)為平臺(tái),依照實(shí)際需求設(shè)計(jì)實(shí)現(xiàn)了基于WEB藥物管理系統(tǒng),實(shí)現(xiàn)了藥物管理數(shù)據(jù)共享以及對(duì)藥物信息科學(xué)化管理,提高藥房工作人員工作效率同步也節(jié)約了醫(yī)患雙方時(shí)間。系統(tǒng)需求研究藥物管理是醫(yī)院尋常管理事務(wù)中重要內(nèi)容,藥物管理過(guò)程精確性和高效性至關(guān)重要。運(yùn)用計(jì)算機(jī)高效,精確特點(diǎn)可以較好滿足醫(yī)院藥物管理過(guò)程需求,在保證管理過(guò)程精確性基本上,最大限度地提高管理效率,實(shí)現(xiàn)對(duì)藥物科學(xué)化管理,節(jié)約醫(yī)患雙方時(shí)間。該系統(tǒng)重要任務(wù)是為藥房院藥物管理人員提供藥物信息記錄,查詢和管理功能,以便藥房管理人員進(jìn)行管理藥物。系統(tǒng)重要功能涉及:系統(tǒng)管理:系統(tǒng)管理員可以管理顧客、對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù);可以管理公示、查看日記、錄入新藥以及修改藥物字典;。藥物采購(gòu):采購(gòu)員模塊具備自動(dòng)庫(kù)存預(yù)警功能,當(dāng)庫(kù)存藥物中存在庫(kù)存總量低于庫(kù)存下限藥物時(shí)可以自動(dòng)提示采購(gòu)員進(jìn)行查看并采購(gòu),生成采購(gòu)單會(huì)交給藥庫(kù)管理員進(jìn)行審核,只有通過(guò)審核藥物才干入庫(kù)。庫(kù)存藥物管理:藥庫(kù)管理員可以對(duì)庫(kù)存藥物進(jìn)行查看和管理,涉及清理過(guò)期或者損壞藥物以及查看藥物出入庫(kù)狀況。發(fā)藥操作:醫(yī)生開所有處方單都會(huì)記錄到數(shù)據(jù)庫(kù),藥師依照醫(yī)生開處方單進(jìn)行配藥操作,審核員也依照醫(yī)生所開處方單進(jìn)行發(fā)藥出庫(kù)。這樣既可以避免紙張記帳繁瑣及誤差,還可以保證藥物入庫(kù)和出庫(kù)精確性。藥物回庫(kù):審核員可以對(duì)昨天已經(jīng)配了藥,但由于病人沒(méi)有來(lái)取藥或者其他因素而還沒(méi)有發(fā)藥藥物進(jìn)行藥物回庫(kù)操作。其他功能:系統(tǒng)所有顧客都可以查看藥物字典、查看公示、查看個(gè)人信息以及修改登陸密碼。經(jīng)濟(jì)可行性研究由于這個(gè)是個(gè)人畢業(yè)設(shè)計(jì),是對(duì)藥房藥物管理初步實(shí)現(xiàn),因此所使用到硬件和軟件規(guī)定并不高,重要用到開發(fā)工具是MyEclipse、Tomcat服務(wù)器和MySQLServer5.5數(shù)據(jù)庫(kù),因此在開發(fā)工具方面投資并不需要太多,并且實(shí)用性較強(qiáng),系統(tǒng)投入運(yùn)營(yíng)后可覺得工作人員提供便捷藥物管理平臺(tái),其所帶來(lái)效益遠(yuǎn)遠(yuǎn)不不大于系統(tǒng)軟件開發(fā)成本,在經(jīng)濟(jì)上完全可行。本設(shè)計(jì)中使用藥物字典資料所有來(lái)自網(wǎng)絡(luò)資源,而要真正地建立起藥房藥物管理系統(tǒng),在藥物流通環(huán)節(jié)上還是跟實(shí)際狀況有所出入。技術(shù)可行性研究數(shù)據(jù)庫(kù)—MySQLServer5.5MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB公司開發(fā),當(dāng)前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同表中,而不是將所有數(shù)據(jù)放在一種大倉(cāng)庫(kù)內(nèi),這樣就增長(zhǎng)了速度并提高了靈活性。MySQLSQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)最慣用原則化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,特別是開放源碼這一特點(diǎn),普通中小型網(wǎng)站開發(fā)都選取MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。由于其社區(qū)版性能卓越,搭配PHP和Apache可構(gòu)成良好開發(fā)環(huán)境。當(dāng)前Internet上流行網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache++MySQL+php/perl/Python)和LNMP(Linux+Nginx+MySQL+perl+Python),雖然用Linux作為操作系統(tǒng),Apache和Nginx作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開放源碼軟件(FLOSS),因而使用這種方式不用花一分錢(除開人工成本)就可以建立起一種穩(wěn)定、免費(fèi)網(wǎng)站系統(tǒng)。如下是MySQLserver功能特點(diǎn):1.使用C和C++編寫,并使用了各種編譯器進(jìn)行測(cè)試,保證源代碼可移植性。2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等各種操作系統(tǒng)。3.為各種編程語(yǔ)言提供了API。這些編程語(yǔ)言涉及C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4.支持多線程,充分運(yùn)用CPU資源5.優(yōu)化SQL查詢算法,有效地提高查詢速度6.既可以作為一種單獨(dú)應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也可以作為一種庫(kù)而嵌入到其她軟件中。7.提供多語(yǔ)言支持,常用編碼如中文GB2312、BIG5,日文Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。8.提供TCP/IP、ODBC和JDBC等各種數(shù)據(jù)庫(kù)連接途徑。9.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作管理工具。10.支持大型數(shù)據(jù)庫(kù)??梢越鉀Q擁有上千萬(wàn)條記錄大型數(shù)據(jù)庫(kù)。11.支持各種存儲(chǔ)引擎。MySQLserver5.5可伸縮性、可用性和可管理性等方面相比其他數(shù)據(jù)庫(kù)管理系統(tǒng)有了很大改進(jìn)和提高,可以滿足各種類型公司客戶和獨(dú)立軟件供應(yīng)商構(gòu)建商業(yè)應(yīng)用程序需要。這為此后軟件版本升級(jí)、維護(hù)等方面提供了可靠保證。設(shè)計(jì)前臺(tái)語(yǔ)言——html和struts2標(biāo)簽雖然本系統(tǒng)頁(yè)面全是JSP文獻(xiàn),但是由于采用是MVC設(shè)計(jì)模式,因此在客戶端頁(yè)面上幾乎找不到用JSP語(yǔ)法寫代碼,而是采用html和struts2標(biāo)簽相結(jié)合方式祈求和顯示數(shù)據(jù)庫(kù)數(shù)據(jù)。固然,其中還涉及某些javascript語(yǔ)言。超文本標(biāo)記語(yǔ)言,即HTML(HypertextMarkupLanguage),是用于描述網(wǎng)頁(yè)文檔一種標(biāo)記語(yǔ)言。超級(jí)文本標(biāo)記語(yǔ)言文檔制作不是很復(fù)雜,但功能強(qiáng)大,支持不同數(shù)據(jù)格式文獻(xiàn)鑲?cè)?,這也是萬(wàn)維網(wǎng)(WWW)盛行因素之一,其重要特點(diǎn)如下:1、簡(jiǎn)易性:超級(jí)文本標(biāo)記語(yǔ)言版本升級(jí)采用超集方式,從而更加靈活以便。2、可擴(kuò)展性:超級(jí)文本標(biāo)記語(yǔ)言廣泛應(yīng)用帶來(lái)了加強(qiáng)功能,增長(zhǎng)標(biāo)記符等規(guī)定,超級(jí)文本標(biāo)記語(yǔ)言采用子類元素方式,為系統(tǒng)擴(kuò)展帶來(lái)保證。3、平臺(tái)無(wú)關(guān)性:雖然個(gè)人計(jì)算機(jī)大行其道,但使用MAC等其她機(jī)器大有人在,超級(jí)文本標(biāo)記語(yǔ)言可以使用在廣泛平臺(tái)上,這也是萬(wàn)維網(wǎng)(WWW)盛行另一種因素。struts2標(biāo)簽簡(jiǎn)介:要使用Struts2標(biāo)簽,只需要在JSP頁(yè)面添加如下一行定義即可:<%@taglibprefix="s"uri="/struts-tags"%>本系統(tǒng)重要使用了struts2標(biāo)簽邏輯控制標(biāo)簽:用于進(jìn)行邏輯控制輸出涉及:1)條件標(biāo)簽:用于執(zhí)行基本條件流轉(zhuǎn)<s:if>:擁有一種test屬性,其表達(dá)式值用來(lái)決定標(biāo)簽里內(nèi)容與否顯示。<s:iftest="#request.username=='hzd'">歡迎h(huán)zd</s:if><s:elseif>:同上。<s:else>2)迭代標(biāo)簽:用于遍歷集合(java.util.Collection)或者枚舉值(java.util.Iterator)類型對(duì)象,value屬性表達(dá)集合或枚舉對(duì)象,status屬性表達(dá)當(dāng)前循環(huán)對(duì)象,在循環(huán)體內(nèi)部可以引用該對(duì)象屬性<s:iteratorvalue="userList"status="user">姓名:<s:propertyvalue="user.userName"/>年齡:<s:propertyvalue="user.age"/></s:iterator>開發(fā)平臺(tái)——JSPJSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參加一起建立一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)原則。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在老式網(wǎng)頁(yè)HTML文獻(xiàn)(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文獻(xiàn)(*.jsp)。用JSP開發(fā)Web應(yīng)用是跨平臺(tái),既能在Linux下運(yùn)營(yíng),也能在其她操作系統(tǒng)上運(yùn)營(yíng)。JSP具備如下長(zhǎng)處:(1)一次編寫,處處運(yùn)營(yíng)。除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)布置,在任意環(huán)境中擴(kuò)展。相比ASP.NET局限性JSP優(yōu)勢(shì)是顯而易見。(3)強(qiáng)大可伸縮性。從只有一種小Jar文獻(xiàn)就可以運(yùn)營(yíng)Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)解決,消息解決,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一種巨大生命力。(4)多樣化和功能強(qiáng)大開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已有了許多非常先進(jìn)開發(fā)工具,并且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利運(yùn)營(yíng)于各種平臺(tái)之下。(5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大服務(wù)器端組件來(lái)支持,開發(fā)人員需要運(yùn)用其她工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能組件供web頁(yè)面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟JAVABEANS組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。系統(tǒng)架構(gòu)——B/S模式和三層系統(tǒng)架構(gòu)以Web技術(shù)為基本B/S模式正日益顯示其先進(jìn)性,當(dāng)前諸多基于大型數(shù)據(jù)庫(kù)信息系統(tǒng)正在采用這種技術(shù)模式。老式C/S體系構(gòu)造雖然采用是開放模式,但在特定應(yīng)用中無(wú)論是Client端還是Server端都還需要特定軟件支持,并且代價(jià)高,效率低。因此與C/S不同B/S模式系統(tǒng)具備效率高,和維護(hù)費(fèi)用低特點(diǎn)。圖2.1Web系統(tǒng)三層體系構(gòu)造B/S模式由瀏覽器、WEB服務(wù)器、數(shù)據(jù)庫(kù)三個(gè)層次構(gòu)成。在這種模式下,客戶端使用一種通用瀏覽器,代替了各種形形色色應(yīng)用軟件,顧客所有操作都是通過(guò)瀏覽器進(jìn)行。這也是藥房藥物管理系統(tǒng)要達(dá)到隨時(shí)隨處讓顧客瀏覽所必要。三層模式重要長(zhǎng)處為:良好靈活性和可擴(kuò)展性。對(duì)于環(huán)境和應(yīng)用條件經(jīng)常變動(dòng)狀況,只要相應(yīng)用層實(shí)行相應(yīng)變化,就可以達(dá)到目??晒蚕硇?。單個(gè)應(yīng)用服務(wù)器可覺得處在不同平臺(tái)客戶應(yīng)用程序提供服務(wù),在很大限度上節(jié)約了開發(fā)時(shí)間和資金投入。較好安全性。在這種構(gòu)造中,客戶應(yīng)用程序不能直接訪問(wèn)數(shù)據(jù),應(yīng)用服務(wù)器不但可控制哪些數(shù)據(jù)被變化和被訪問(wèn),還可控制數(shù)據(jù)變化和訪問(wèn)方式。增強(qiáng)了公司對(duì)象重復(fù)可用性。“公司對(duì)象”是指封裝了公司邏輯程序代碼,可以執(zhí)行特定功能對(duì)象。隨著組件技術(shù)發(fā)展,這種可重用組件模式越來(lái)越為軟件開發(fā)所接受。三層模式成為真正意義上“瘦客戶端”,從而具備了很高穩(wěn)定性、延展性和執(zhí)行效率。操作可行性研究本藥房藥物管理系統(tǒng)是基于web開發(fā)系統(tǒng),對(duì)于管理者,只需要一臺(tái)裝有瀏覽器電腦就可以通過(guò)網(wǎng)絡(luò)訪問(wèn)該系統(tǒng)。整個(gè)系統(tǒng)采用和諧交互界面,簡(jiǎn)樸明了,無(wú)論是顧客還是系統(tǒng)管理員都可以輕松使用該系統(tǒng)。系統(tǒng)概要設(shè)計(jì)如何運(yùn)用當(dāng)代信息技術(shù)使公司擁有迅速、高效市場(chǎng)反映能力和高度效率,已是醫(yī)藥經(jīng)營(yíng)公司,特別是醫(yī)藥連鎖經(jīng)營(yíng)公司特別關(guān)懷問(wèn)題。盡快建立一種功能齊備藥物進(jìn)、出庫(kù)管理系統(tǒng),完善當(dāng)代公司信息化管理機(jī)制,已成為醫(yī)藥公司生存發(fā)展當(dāng)務(wù)之急。通過(guò)開發(fā)這個(gè)藥物管理系統(tǒng),使藥物進(jìn)銷存管理工作系統(tǒng)化,規(guī)范化,自動(dòng)化,從而達(dá)到提高管理效率目。本系統(tǒng)開發(fā)設(shè)計(jì)目是實(shí)現(xiàn)藥物管理數(shù)字化、科學(xué)化。設(shè)計(jì)思想藥房藥物管理系統(tǒng)提成顧客端和管理端兩大某些,每個(gè)端有幾種相對(duì)獨(dú)立模塊,但這些模塊都進(jìn)行集中式管理。藥房藥物管理系統(tǒng)前端是普通顧客,即采購(gòu)員、醫(yī)生、藥師等,重要負(fù)責(zé)藥物從入庫(kù)到銷售流程。前端界面采用是左右構(gòu)造,左邊是系統(tǒng)導(dǎo)航欄,右邊是操作和顯示區(qū)。后端是系統(tǒng)管理者端,重要負(fù)責(zé)系統(tǒng)和顧客管理以及新藥錄入等。頁(yè)面也是采用左右構(gòu)造,左邊是系統(tǒng)導(dǎo)航欄,右邊是操作和顯示區(qū)。分層模塊化程序設(shè)計(jì)思想,整個(gè)系統(tǒng)采用模塊化構(gòu)造設(shè)計(jì)。作為應(yīng)用程序有較強(qiáng)可操作性和擴(kuò)展性。設(shè)計(jì)原則為了使藥房藥物管理系統(tǒng)功能齊全完備,操作簡(jiǎn)便,最大限度提高軟件質(zhì)量,從而滿足顧客實(shí)際需要,在設(shè)計(jì)開發(fā)過(guò)程中遵循了如下原則:(1)合法性原則:根據(jù)藥物屬性、分類等原則進(jìn)行系統(tǒng)設(shè)計(jì)與規(guī)劃。(2)實(shí)用性原則:依照不同使用者實(shí)際需求進(jìn)行設(shè)(如針對(duì)實(shí)際狀況設(shè)計(jì)出合用于不同顧客功能)。(3)精確性原則:對(duì)顧客輸入建立檢錯(cuò)機(jī)制,及時(shí)提示顧客對(duì)的地輸入,使所有顧客和管理員都可以及時(shí)精確輸入合法資料(如:某些必填文本框或某些只能輸入數(shù)字文本框等)。(3)易操作原則:設(shè)計(jì)系統(tǒng)功能齊全,界面和諧,操作以便,必要地方進(jìn)行提示。(4)安全性原則:可覺得該系統(tǒng)顧客設(shè)立顧客權(quán)限并且可覺得系統(tǒng)進(jìn)行備份、還原以及初始化。系統(tǒng)功能藥房藥物管理系統(tǒng)分為前端顧客模塊和后臺(tái)系統(tǒng)管理員模塊兩大某些。其中藥房藥物管理系統(tǒng)前端系統(tǒng)由采購(gòu)員模塊、藥庫(kù)管理員模塊、醫(yī)生模塊、藥師模塊和審核員模塊構(gòu)成。系統(tǒng)管理員后臺(tái)由顧客管理模塊、藥物管理模塊、公示管理模塊、查看日記模塊、協(xié)助中心模塊以及系統(tǒng)管理模塊。圖3-1藥房藥物管理系統(tǒng)系統(tǒng)管理員模塊功能示意圖系統(tǒng)顧客前端模塊重要功能采購(gòu)員模塊功能:重要是負(fù)責(zé)藥物采購(gòu)以及供應(yīng)商管理。該模塊還設(shè)立了自動(dòng)庫(kù)存預(yù)警,即當(dāng)藥庫(kù)中存在有庫(kù)存總量已經(jīng)低于庫(kù)存下限藥物時(shí)會(huì)自動(dòng)彈出一種提示框提示采購(gòu)員及時(shí)進(jìn)行采購(gòu)。藥庫(kù)管理員模塊功能:重要是負(fù)責(zé)庫(kù)存藥物管理(查看庫(kù)存狀況、清理過(guò)期或者損壞藥物)和采購(gòu)單審核,采購(gòu)單通過(guò)審核后藥物才干入庫(kù)。醫(yī)生模塊功能:重要是負(fù)責(zé)處方錄入,處方信息包括了病人基本信息、所開藥物信息等。當(dāng)醫(yī)生錄入處方所需要藥物數(shù)量超過(guò)庫(kù)存數(shù)量時(shí)還會(huì)有提示醫(yī)生重新錄入處方功能。藥師模塊功能:重要是負(fù)責(zé)處方審核和處方藥物調(diào)配。藥師所查看處處方只能是當(dāng)天錄入處方,過(guò)期無(wú)效。如果當(dāng)天存在沒(méi)有通過(guò)審核處方,醫(yī)生模塊也可以查看到。審核員模塊功能:重要是負(fù)責(zé)審核處方單(核對(duì)藥師所配藥物與否和醫(yī)生所錄入處方單相符合)和發(fā)藥操作。此外:所有前端顧客都可以查看系統(tǒng)管理員錄入藥物字典、修改個(gè)人基本信息、修改登陸密碼以及通過(guò)郵箱重置登陸密碼。系統(tǒng)后臺(tái)模塊重要功能顧客管理:重要是對(duì)顧客管理(增、刪、改、查等)、查看所有顧客、查看在線顧客等操作。藥物管理:重要是錄入新藥和對(duì)藥物字典維護(hù)等。公示管理:涉及發(fā)布新公示、查看當(dāng)前公示和查看歷史公示等。查看日記:重要是查看當(dāng)天日記或者查看過(guò)去歷史日記。系統(tǒng)管理:涉及系統(tǒng)備份、系統(tǒng)還原、系統(tǒng)初始化。協(xié)助中心:在這里系統(tǒng)管理員可以查看個(gè)人信息、修改個(gè)人信息以及修改登陸密碼。數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)概要設(shè)計(jì)依照需求分析,藥房藥物管理系統(tǒng)建立涉及如下實(shí)體:管理員信息:ID,管理員地址,email,管理員姓名,登陸密碼,聯(lián)系電話,郵編,性別,帳號(hào)公示信息:ID,發(fā)布公示管理員姓名,發(fā)布時(shí)間,公示標(biāo)題已清理藥物信息:ID,數(shù)量,藥物商用名,進(jìn)貨價(jià),藥物編碼,清理日期,有效期,生產(chǎn)日期,生產(chǎn)廠家,清理因素,銷售價(jià),清理時(shí)間,藥物供應(yīng)商ID藥物字典信息:ID ,藥物商用名,藥物編碼,劑型,通用名,適應(yīng)癥,藥物互相作用,與否醫(yī)保藥,大分類,位置,最小單位,與否OTC,性狀,小分類,規(guī)格,禁忌,單位處方單信息:ID,診斷,醫(yī)囑,醫(yī)師姓名,沒(méi)有通過(guò)審核因素,病人年齡,病人姓名,病人聯(lián)系電話,病人性別,發(fā)藥日期,發(fā)藥時(shí)間,狀態(tài),開處方日期時(shí)間處方單相應(yīng)藥物信息:ID,藥物總量,用法用量,藥物編碼,藥物商用名,單位劑量,相應(yīng)處方單ID供應(yīng)商信息:ID,供應(yīng)商地址,email,名稱,聯(lián)系電話,郵編采購(gòu)單信息:ID,采購(gòu)數(shù)量,藥物商用名,進(jìn)貨價(jià),有效期,藥物編碼,沒(méi)有通過(guò)審核因素,通過(guò)審核日期,通過(guò)審核時(shí)間,生產(chǎn)日期,生產(chǎn)廠家名稱,銷售價(jià) ,狀態(tài),供應(yīng)商ID庫(kù)存藥物信息:ID,數(shù)量,藥物商用名,進(jìn)貨價(jià),有效期,藥物編碼,生產(chǎn)日期,生產(chǎn)廠家名稱,庫(kù)存總量,庫(kù)存上限,庫(kù)存下限,銷售價(jià),小類別,供應(yīng)商ID出庫(kù)(銷售)藥物信息:ID,藥物商用名,藥物編碼,數(shù)量,銷售日期藥物拆整分零信息:ID,藥物編碼,剩余數(shù)量,參照數(shù)量顧客信息:ID,地址,email,姓名,登陸密碼 ,聯(lián)系電話,職位(權(quán)限),郵編,隨機(jī)驗(yàn)證碼(找回密碼時(shí)用到),性別,狀態(tài),帳號(hào)貨架空缺位置信息:ID,空缺位置藥房藥物管理系統(tǒng)總體E-R圖圖4-7藥房藥物管理系統(tǒng)總體E-R圖數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)本系統(tǒng)數(shù)據(jù)庫(kù)命名為:medicines_management,重要用來(lái)存儲(chǔ)顧客、藥物字典、庫(kù)存藥物、采購(gòu)單、處方等數(shù)據(jù)信息。數(shù)據(jù)庫(kù)重要表如下所示:表4-1:_Admin_ADMIN(_admin)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增ADDRESSVARCHAR(255)管理員地址EMAILVARCHAR(255)emailNAMEVARCHAR(255)管理員姓名PASSWORDVARCHAR(255)登陸密碼PHONEVARCHAR(255)聯(lián)系電話POSTCODEVARCHAR(255)郵編SEXVARCHAR(255)性別USERNAMEVARCHAR(255)帳號(hào)
表4-2:_Announcement_ANNOUNCEMENT(_announcement)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增ADMINNAMEVARCHAR(255)發(fā)布公示管理員姓名TIMEVARCHAR(255)發(fā)布時(shí)間TITLEVARCHAR(255)公示標(biāo)題表4-3:_Clearedmed_CLEAREDMED(_clearedmed)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增AMOUNTINT(11)數(shù)量BRANDNAMEVARCHAR(255)藥物商用名BUYPRICEINT(11)進(jìn)貨價(jià)CODEVARCHAR(255)藥物編碼DATEVARCHAR(255)清理日期EXPDATEVARCHAR(255)有效期PRODATEVARCHAR(255)生產(chǎn)日期PROFACTORYVARCHAR(255)生產(chǎn)廠家REASONVARCHAR(255)清理因素SELLPRICEINT(11)銷售價(jià)TIMEVARCHAR(255)清理時(shí)間PROVIDER_IDINT(11)藥物供應(yīng)商ID表4-4:_Medicine_MEDICINE(_medicine)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增BRANDNAMEVARCHAR(255)藥物商用名CODEVARCHAR(255)藥物編碼DOSAGEFORMVARCHAR(255)劑型GENERICNAMEVARCHAR(255)通用名INDICATIONSVARCHAR(255)適應(yīng)癥INTERACTIONSVARCHAR(255)藥物互相作用ISMEDICAREVARCHAR(255)與否醫(yī)保藥LARGECATEGORYVARCHAR(255)大分類LOCATIONVARCHAR(255)位置MINUNITVARCHAR(255)最小單位OTCVARCHAR(255)與否OTCPROPERTIESVARCHAR(255)性狀SMALLCATEGORYVARCHAR(255)小分類SPECIFICATIONVARCHAR(255)規(guī)格TABOOSVARCHAR(255)禁忌UNITVARCHAR(255)單位表4-5:_Prescription_PRESCRIPTION(_prescription)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增DIAGNOSISVARCHAR(255)診斷DOCTORADVICEVARCHAR(255)醫(yī)囑DOCTORNAMEVARCHAR(255)醫(yī)師姓名NOTPASSEDREASONVARCHAR(255)沒(méi)有通過(guò)審核因素PATIENTAGEINT(11)病人年齡PATIENTNAMEVARCHAR(255)病人姓名PATIENTPHONEVARCHAR(255)病人聯(lián)系電話PATIENTSEXVARCHAR(255)病人性別SENDDATEVARCHAR(255)發(fā)藥日期SENDTIMEVARCHAR(255)發(fā)藥時(shí)間STATEINT(11)狀態(tài)TIMEVARCHAR(255)開處方日期時(shí)間表4-6:_Prescriptionmeds_PRESCRIPTIONMEDS(_prescriptionmeds)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增AMOUNTINT(11)藥物總量DOSAGEVARCHAR(255)用法用量MEDCODEVARCHAR(255)藥物編碼MEDNAMEVARCHAR(255)藥物商用名NUMINT(11)單位劑量PRESCRIPTION_IDINT(11)相應(yīng)處方單ID表4-7:_Provider_PROVIDER(_provider)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增ADDRESSVARCHAR(255)供應(yīng)商地址EMAILVARCHAR(255)emailNAMEVARCHAR(255)名稱PHONEVARCHAR(255)聯(lián)系電話POSTCODEVARCHAR(255)郵編表4-8:_Purchaseorder_PURCHASEORDER(_purchaseorder)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增AMOUNTINT(11)采購(gòu)數(shù)量BRANDNAMEVARCHAR(255)藥物商用名BUYPRICEINT(11)進(jìn)貨價(jià)EXPDATEVARCHAR(255)有效期MEDCODEVARCHAR(255)藥物編碼NOTPASSEDREASONVARCHAR(255)沒(méi)有通過(guò)審核因素PASSEDDATEVARCHAR(255)通過(guò)審核日期PASSEDTIMEVARCHAR(255)通過(guò)審核時(shí)間PRODATEVARCHAR(255)生產(chǎn)日期PROFACTORYNAMEVARCHAR(255)生產(chǎn)廠家名稱SELLPRICEINT(11)銷售價(jià)STATEINT(11)狀態(tài)PROVIDER_IDINT(11)供應(yīng)商ID
表4-9:_Storage_STORAGE(_storage)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增AMOUNTINT(11)數(shù)量BRANDNAMEVARCHAR(255)藥物商用名BUYPRICEINT(11)進(jìn)貨價(jià)EXPDATEVARCHAR(255)有效期MEDCODEVARCHAR(255)藥物編碼PRODATEVARCHAR(255)生產(chǎn)日期PROFACTORYNAMEVARCHAR(255)生產(chǎn)廠家名稱RESERVECOUNTINT(11)庫(kù)存總量RESERVEMAXINT(11)庫(kù)存上限RESERVEMININT(11)庫(kù)存下限SELLPRICEINT(11)銷售價(jià)SMALLCATEGORYVARCHAR(255)小類別PROVIDER_IDINT(11)供應(yīng)商ID表4-10:_Storageout_STORAGEOUT(_storageout)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增BRANDNAMEVARCHAR(255)藥物商用名MEDCODEVARCHAR(255)藥物編碼NUMINT(11)數(shù)量OUTDATEVARCHAR(255)銷售日期表4-11:_Temptable_TEMPTABLE(_temptable)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增MEDCODEVARCHAR(255)藥物編碼NUMINT(11)剩余數(shù)量REFINT(11)參照數(shù)量表4-12:_User_USER(_user)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增ADDRESSVARCHAR(255)地址EMAILVARCHAR(255)emailNAMEVARCHAR(255)姓名PASSWORDVARCHAR(255)登陸密碼PHONEVARCHAR(255)聯(lián)系電話POSITIONVARCHAR(255)職位POSTCODEVARCHAR(255)郵編RANDOMSTRVARCHAR(255)隨機(jī)驗(yàn)證碼(找回密碼時(shí)用到)SEXVARCHAR(255)性別STATEINT(11)狀態(tài)USERNAMEVARCHAR(255)帳號(hào)表4-13:_Vacancy_VACANCY(_vacancy)字段名數(shù)據(jù)類型字段描述IDINT(11)主鍵,自增LOCATIONVARCHAR(255)空缺位置數(shù)據(jù)庫(kù)配備本系統(tǒng)使用是MySQL數(shù)據(jù)庫(kù),而連接和訪問(wèn)數(shù)據(jù)庫(kù)則是使用Hibernate框架來(lái)實(shí)現(xiàn)。Hibernate是一種開放源代碼對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)對(duì)象封裝,使得Java程序員可以隨心所欲使用面向?qū)ο缶幊趟季S來(lái)操縱數(shù)據(jù)庫(kù)。
詳細(xì)環(huán)節(jié)如下:第一步:導(dǎo)入所需要各種包。第二步:在項(xiàng)目中加入Hibernate配備文獻(xiàn)hibernate.cfg.xml,該文獻(xiàn)包括了連接數(shù)據(jù)庫(kù)各項(xiàng)參數(shù)以及需要映射到數(shù)據(jù)庫(kù)實(shí)體類,這里實(shí)體類映射到數(shù)據(jù)庫(kù)后就成為了數(shù)據(jù)庫(kù)中表。該文獻(xiàn)詳細(xì)信息如下:<?xmlversion='1.0'encoding='utf-8'?><!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN"""><hibernate-configuration> <session-factory><!—數(shù)據(jù)庫(kù)連接參數(shù)設(shè)立
--> <propertyname="connection.driver_class">com.mysql.jdbc.Driver</property> <propertyname="connection.url">jdbc:mysql://localhost/medicines_management</property> <propertyname="connection.username">root</property> <propertyname="connection.password">10086</property><!--
數(shù)據(jù)庫(kù)方言,這里為MySQL數(shù)據(jù)庫(kù)
--> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <!--JDBCconnectionpool(usethebuilt-in)--> <propertyname="connection.pool_size">1</property> <!--EnableHibernate'sautomaticsessioncontextmanagement--> <propertyname="current_session_context_class">thread</property> <!--Disablethesecond-levelcache--> <propertyname="vider_class">org.hibernate.cache.NoCacheProvider</property><!--
與否顯示sql語(yǔ)句
--> <propertyname="show_sql">false</property> <propertyname="format_sql">true</property><!--
自動(dòng)更新數(shù)據(jù)庫(kù)
--> <propertyname="hbm2ddl.auto">update</property><!—需要映射到數(shù)據(jù)庫(kù)實(shí)體類
--><mappingclass="com.gdpu.medicines_management.model.Admin"/><mappingclass="com.gdpu.medicines_management.model.Announcement"/><mappingclass="com.gdpu.medicines_management.model.ClearedMed"/><mappingclass="com.gdpu.medicines_management.model.Medicine"/><mappingclass="com.gdpu.medicines_management.model.Vacancy"/><mappingclass="com.gdpu.medicines_management.model.Prescription"/><mappingclass="com.gdpu.medicines_management.model.PrescriptionMeds"/><mappingclass="com.gdpu.medicines_management.model.Provider"/><mappingclass="com.gdpu.medicines_management.model.PurchaseOrder"/><mappingclass="com.gdpu.medicines_management.model.Storage"/><mappingclass="com.gdpu.medicines_management.model.StorageOut"/><mappingclass="com.gdpu.medicines_management.model.TempTable"/><mappingclass="com.gdpu.medicines_management.model.User"/></session-factory></hibernate-configuration>第三步:使用java語(yǔ)言建立實(shí)體類,并使用HibernateAnnotation注解寫到實(shí)體類中。例如顧客實(shí)體類:packagecom.gdpu.medicines_management.model;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;importjavax.persistence.Table;//聲明實(shí)體@Entity//為實(shí)體指定表名@Table(name="_user")publicclassUser{ privateStringaddress; privateStringemail; privateintid; privateStringname; privateStringpassword; privateStringphone; privateStringposition; privateStringpostcode; privateStringsex; privateStringusername; privateintstate; privateStringrandomStr; //映射主鍵屬性 @Id //主鍵自增 @GeneratedValue publicintgetId(){ returnid; } publicvoidsetId(intid){ this.id=id; }//非主鍵屬性會(huì)自動(dòng)默認(rèn)映射,不用寫注釋,這里就不一一列出了 publicStringgetAddress(){ returnaddress; } publicStringgetEmail(){ returnemail; } 第四步:使得DAO(DataAccessObjects)數(shù)據(jù)訪問(wèn)對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。本系統(tǒng)為每一種實(shí)體類都建立了一種相相應(yīng)數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。例如訪問(wèn)數(shù)據(jù)庫(kù)中顧客表數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象:packagecom.gdpu.medicines_management.dao;importjava.sql.SQLException;importjava.util.List;importorg.hibernate.Query;importorg.hibernate.Session;importcom.gdpu.medicines_management.model.User;importcom.gdpu.medicines_management.util.MySessionFactory;publicclassUserDao{ privateUseruser;//查找所有顧客 publicList<User>list()throwsSQLException{ Sessionsession=MySessionFactory.getSession(); session.beginTransaction(); Queryq=session.createQuery("fromUser"); List<User>users=(List<User>)q.list(); session.getTransaction().commit(); session.close(); returnusers; } //增長(zhǎng)新顧客publicvoidadd(Useru){ Sessionsession=MySessionFactory.getSession(); session.beginTransaction(); session.save(u); session.getTransaction().commit(); session.close(); }//刪除顧客,通過(guò)調(diào)用deleteById()辦法刪除 publicvoiddelete(Useru){ deleteById(u.getId()); } publicvoiddeleteById(intid){ Sessionsession=MySessionFactory.getSession(); Useru=newUser(); u.setId(id); session.beginTransaction(); session.delete(u); session.getTransaction().commit(); } //更新顧客 publicvoidupdate(Useru){ Sessionsession=MySessionFactory.getSession(); session.beginTransaction(); session.update(u); session.getTransaction().commit(); } //查找指定ID顧客 publicUserloadById(intid){ Sessionsession=MySessionFactory.getSession(); session.beginTransaction(); Useru=(User)session.load(User.class,id); session.getTransaction().commit(); System.out.println(u.getUsername()); returnu; } }這樣就寫好了對(duì)該表基本增刪改查辦法,后來(lái)只要調(diào)用數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象辦法就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)操作了??梢钥吹檬褂肏ibernate框架好處是明顯,一大堆JDBC代碼都可以丟棄掉了。系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)詳細(xì)設(shè)計(jì)階段重要是依照系統(tǒng)概要設(shè)計(jì)功能規(guī)定,解決該系統(tǒng)前端和后臺(tái)邏輯功能以及設(shè)計(jì)流程。涉及依照數(shù)據(jù)字典建立數(shù)據(jù)庫(kù),組織數(shù)據(jù)及系統(tǒng)功能和模塊劃分等問(wèn)題。設(shè)計(jì)思想及流程圖添加新顧客流程圖由于本系統(tǒng)是由醫(yī)院內(nèi)部工作人員使用,因此并不開發(fā)注冊(cè)顧客功能,顧客帳號(hào)只能由系統(tǒng)管理員來(lái)添加并分派給工作人員。工作人員再使用帳號(hào)密碼來(lái)登陸系統(tǒng)。而顧客登陸時(shí)候如果是第一次登陸話會(huì)先跳轉(zhuǎn)到完善個(gè)人信息首頁(yè),只有完善個(gè)人信息后才干進(jìn)入到相應(yīng)顧客首頁(yè)進(jìn)行操作。 圖4-1添加新顧客流程圖系統(tǒng)登陸流程圖 下面是系統(tǒng)管理員和顧客登陸流程圖圖4-2系統(tǒng)登陸流程圖添加新藥流程圖本系統(tǒng)所有新藥都是由系統(tǒng)管理員錄入,也就是說(shuō)只有系統(tǒng)管理員錄入藥物才干被采購(gòu)員采購(gòu)入庫(kù),而醫(yī)生開藥也只能開藥庫(kù)里面已經(jīng)存在藥物。圖4-3系統(tǒng)管理員添加新藥流程圖藥物入庫(kù)流程圖圖4-4藥物入庫(kù)流程圖處方錄入流程圖圖4-5處方錄入圖藥師配藥流程圖圖4-6藥師配藥圖審核員發(fā)藥流程圖圖4-7審核員發(fā)藥流程圖系統(tǒng)實(shí)現(xiàn)藥房藥物管理系統(tǒng)前端實(shí)現(xiàn)藥房藥物管理系統(tǒng)前端是普通顧客,即采購(gòu)員、醫(yī)生、藥師等,重要負(fù)責(zé)藥物從入庫(kù)到銷售流程。前端界面采用是左右構(gòu)造,左邊是系統(tǒng)導(dǎo)航欄,右邊是操作和顯示區(qū)。采購(gòu)員模塊該模塊重要負(fù)責(zé)藥物采購(gòu)和供應(yīng)商管理,該模塊還設(shè)立了自動(dòng)庫(kù)存預(yù)警功能,當(dāng)采購(gòu)員登陸后來(lái),如果庫(kù)存藥物中存在有庫(kù)存總量低于庫(kù)存下限藥物時(shí)候,不論采購(gòu)員在進(jìn)行什么操作,都將會(huì)彈出一種提示框用來(lái)提示采購(gòu)員及時(shí)采購(gòu)藥物。圖5-1自動(dòng)預(yù)警提示框圖5-2查看庫(kù)存總量低于庫(kù)存下限藥物頁(yè)面藥庫(kù)管理員模塊該模塊重要是負(fù)責(zé)管理藥庫(kù)里面藥物(涉及清理已過(guò)期或者是損壞了藥物)和審核采購(gòu)單。藥庫(kù)管理員還可以對(duì)藥物出入庫(kù)狀況進(jìn)行查看。 圖5-3采購(gòu)單審核操作圖5-4庫(kù)存查看模塊圖5-5查看入庫(kù)記錄圖5-6查看銷售記錄醫(yī)生模塊該模塊重要是負(fù)責(zé)處方錄入操作。錄入處方時(shí),只有藥庫(kù)里面已有并且是未過(guò)期藥物才會(huì)出當(dāng)前藥物選項(xiàng)中供醫(yī)生選取,并且如果所需要某種藥物數(shù)量庫(kù)存局限性時(shí)也會(huì)有提示。此外,錄入處方時(shí)醫(yī)師姓名和處方錄入時(shí)間都是系統(tǒng)自動(dòng)填充,不用顧客自己輸入。圖5-7處方錄入頁(yè)面圖5-8提示藥物庫(kù)存局限性,重新錄入頁(yè)面藥師模塊該模塊重要是負(fù)責(zé)對(duì)醫(yī)生所開處方單進(jìn)行審核并進(jìn)行配藥操作。如果處方審核不通過(guò)則需要填寫不通過(guò)因素。此外如果點(diǎn)擊查看新處方時(shí)如果暫時(shí)沒(méi)有找到新處方時(shí),將進(jìn)入到自動(dòng)刷新查找新處方頁(yè)面,該頁(yè)面會(huì)每隔一分鐘自動(dòng)查找一次新處方,如果查找到新處方就自動(dòng)跳轉(zhuǎn)處處方審核頁(yè)面。圖5-9查看新處方頁(yè)面圖5-10自動(dòng)刷新頁(yè)面審核員模塊該模塊重要是負(fù)責(zé)對(duì)當(dāng)天醫(yī)生所開處方單和藥師所配藥物進(jìn)行核對(duì),核對(duì)完畢后才干進(jìn)行發(fā)藥操作,尚有就是可以對(duì)昨天已配藥但又未發(fā)藥處方單進(jìn)行查看并將藥物放回藥庫(kù)。該模塊設(shè)立了各種查找處方單方式,可以很以便地查找到想要查找處方單。圖5-11按條件查詢處方單頁(yè)面 圖5-12查看當(dāng)天未發(fā)藥處方單頁(yè)面圖5-13發(fā)藥操作頁(yè)面圖5-14查看昨天未發(fā)藥處方單頁(yè)面圖5-15昨天未發(fā)藥處方單詳細(xì)信息頁(yè)面圖5-16點(diǎn)擊藥物回庫(kù)后頁(yè)面找回密碼模塊為防止顧客忘掉登陸密碼,該系統(tǒng)還設(shè)立了顧客可以通過(guò)郵箱找回密碼功能。固然這需要顧客已經(jīng)設(shè)立好了自己郵箱信息,如果顧客不幸忘掉了自己帳號(hào)或者郵箱信息話就只能通過(guò)聯(lián)系系統(tǒng)管理員找回了。由于系統(tǒng)管理員特殊性,因此沒(méi)有設(shè)立找回密碼功能,由于一種系統(tǒng)管理員應(yīng)當(dāng)具備保管自己登陸密碼基本能力。在系統(tǒng)登陸首頁(yè)有一種忘掉密碼鏈接,只要點(diǎn)擊該鏈接就可以鏈接到找回密碼頁(yè)面。如下圖所示:圖5-17系統(tǒng)登陸頁(yè)面圖5-18找回密碼頁(yè)面圖5-19顧客登陸郵箱接受郵件頁(yè)面圖5-20點(diǎn)擊鏈接后重置密碼頁(yè)面系統(tǒng)管理員后臺(tái)實(shí)現(xiàn)顧客管理模塊該模塊可以對(duì)系統(tǒng)所有顧客進(jìn)行管理,涉及對(duì)顧客增刪改查以及查看當(dāng)前在線顧客。圖5-21添加新顧客頁(yè)面圖5-22所有顧客列表頁(yè)面圖5-23在線顧客列表頁(yè)面藥物管理模塊在該模塊里系統(tǒng)管理員可以進(jìn)行查看庫(kù)存狀況(只能查看)、查看和維護(hù)藥物字典、錄入新藥等操作。圖5-24查看庫(kù)存狀況頁(yè)面圖5-25新藥錄入頁(yè)面圖5-26更新藥物字典頁(yè)面公示管理模塊在該模塊,系統(tǒng)管理員可以進(jìn)行發(fā)布新公示、查看當(dāng)前公示以及查看歷史公示操作。在發(fā)布新公示時(shí)只需要輸入標(biāo)題和內(nèi)容即可,發(fā)布時(shí)間和發(fā)布者系統(tǒng)會(huì)自動(dòng)設(shè)立。這里由于公示特殊性,并不提供更新公示功能,只能刪除公示或者通過(guò)新公示來(lái)覆蓋舊公示。每個(gè)顧客登陸系統(tǒng)后都會(huì)彈出當(dāng)前最新公示窗口。圖5-27發(fā)布新公示頁(yè)面圖5-28查看歷史公示頁(yè)面查看日記模塊在該模塊,系統(tǒng)管理員可以通過(guò)查看當(dāng)天日記或者歷史日記,查看歷史日記時(shí)只需要輸入日期就可以查詢到那一天日記。日記重要記錄了管理員對(duì)顧客和系統(tǒng)管理以及顧客登陸或者修改個(gè)人信息等行為。因此系統(tǒng)管理員可以依照日記來(lái)理解系統(tǒng)整體運(yùn)營(yíng)狀況。圖5-29查看歷史日記頁(yè)面系統(tǒng)管理模塊在該模塊,系統(tǒng)管理員可以對(duì)系統(tǒng)進(jìn)行管理。涉及對(duì)系統(tǒng)備份,還原以及初始化等操作,為數(shù)據(jù)庫(kù)提供了較好維護(hù)功能。但要注意是這些行為不能在有顧客在線時(shí)候進(jìn)行,并且操作前必要要先重啟服務(wù)器,否則很也許會(huì)失敗。此外系統(tǒng)備份刪除后也不能再恢復(fù),請(qǐng)謹(jǐn)慎操作。圖5-30系統(tǒng)備份頁(yè)面如下是后臺(tái)調(diào)用系統(tǒng)備份辦法代碼:publicstaticvoidbackup(){ try{ Runtimert=Runtime.getRuntime(); //調(diào)用mysqlcmd: Processchild=rt.exec("D:"+File.separator+"ProgramFiles" +File.separator+"MySQL"+File.separator +"MySQLServer5.5"+File.separator+"bin" +File.separator +"mysqldump-uroot-p10086medicines_management"); //把進(jìn)程執(zhí)行中控制臺(tái)輸出信息寫入.sql文獻(xiàn),即生成了備份文獻(xiàn)。注:如果不對(duì)控制臺(tái)信息進(jìn)行讀出,則會(huì)導(dǎo)致進(jìn)程堵塞無(wú)法運(yùn)營(yíng) //控制臺(tái)輸出信息作為輸入流 InputStreamin=child.getInputStream();//設(shè)立輸出流編碼為utf8。這里必要是utf8,否則從流中讀入是亂碼 InputStreamReaderxx=newInputStreamReader(in,"utf8"); StringinStr; StringBuffersb=newStringBuffer(""); StringoutStr; //組合控制臺(tái)輸出信息字符串 BufferedReaderbr=newBufferedReader(xx); while((inStr=br.readLine())!=null){ sb.append(inStr+"\r\n"); } outStr=sb.toString(); //要用來(lái)做導(dǎo)入用sql目的文獻(xiàn): Stringtime[]=DateOperater.getDateTime().split(""); time[1]=time[1].replaceAll(":","-"); Stringpath="d:"+File.separator+"back-up"+File.separator+time[0]+","+time[1]+".sql"; FileOutputStreamfout=newFileOutputStream(path); OutputStreamWriterwriter=newOutputStreamWriter(fout,"utf8"); writer.write(outStr); //注:這里如果用緩沖方式寫入文獻(xiàn)話,會(huì)導(dǎo)致中文亂碼,用flush()辦法則可以避免 writer.flush(); //別忘掉關(guān)閉輸入輸出流 in.close(); xx.close(); br.close(); writer.close(); fout.close(); }catch(Exceptione){ e.printStackTrace(); } }圖5-31系統(tǒng)還原頁(yè)面如下是后臺(tái)調(diào)用系統(tǒng)還原辦法代碼:publicstaticvoidrestore(StringdateTime){ Stringpa[]=dateTime.split(""); Stringpath="D:"+File.separator+"back-up"+File.separator +pa[0]+","+pa[1].replaceAll(":","-")+".sql"; try{ Runtimert=Runtime.getRuntime(); //調(diào)用mysqlcmd: Processchild=rt.exec("D:"+File.separator+"ProgramFiles" +File.separator+"MySQL"+File.separator +"MySQLServer5.5"+File.separator+"bin" +File.separator +"mysql.exe-uroot-p10086medicines_management"); OutputStreamout=child.getOutputStream();//控制臺(tái)輸入信息作為輸出流 StringinStr; StringBuffersb=newStringBuffer(""); StringoutStr; BufferedReaderbr=newBufferedReader(newInputStreamReader( newFileInputStream(path),"utf8")); while((inStr=br.readLine())!=null){ sb.append(inStr+"\r\n"); } outStr=sb.toString(); OutputStreamWriterwriter=newOutputStreamWriter(out,"utf8"); writer.write(outStr); //注:這里如果用緩沖方式寫入文獻(xiàn)話,會(huì)導(dǎo)致中文亂碼,用flush()辦法則可以避免 writer.flush(); //別忘掉關(guān)閉輸入輸出流 out.close(); br.close(); writer.close(); }catch(Exceptione){ e.printStackTrace(); } }圖5-32系統(tǒng)初始化
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025光纖通訊供貨合同范本
- 2025二手房購(gòu)房合同模板
- 學(xué)校聘用清潔工勞動(dòng)協(xié)議
- 污水處理廠施工合同
- 多間店面出租合同
- 個(gè)人股份轉(zhuǎn)讓協(xié)議書
- 多媒體發(fā)布廣告合同
- 學(xué)校委托保潔公司托管合同
- 2025私人借款合同模板
- 2025設(shè)備租賃合同(1)設(shè)備租賃合同
- 幼兒園優(yōu)質(zhì)公開課:中班數(shù)學(xué)活動(dòng)《營(yíng)救汪汪隊(duì)》超清有聲動(dòng)態(tài)課件
- 加油站安全生產(chǎn)投入臺(tái)賬
- 文件簽收單范本
- 人教版七年級(jí)數(shù)學(xué)下冊(cè) (實(shí)際問(wèn)題與二元一次方程組)二元一次方程組課件(第2課時(shí))
- 對(duì)聯(lián)知識(shí)及練習(xí)題有答案
- 二年級(jí)勞動(dòng)課-摘菜與洗菜
- (完整)消化性潰瘍PPT課件ppt
- 財(cái)務(wù)報(bào)表涉稅風(fēng)險(xiǎn)點(diǎn)
- 廣州市白云廣附實(shí)驗(yàn)學(xué)校招生數(shù)學(xué)真題卷
- 施工組織設(shè)計(jì)-暗標(biāo)
- 西方美術(shù)史知到章節(jié)答案智慧樹2023年齊魯師范學(xué)院
評(píng)論
0/150
提交評(píng)論