版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于三層C/S的藥品管理系統(tǒng)的設(shè)計與實現(xiàn)PAGE64基于三層C/S的藥品管理系統(tǒng)的設(shè)計與實現(xiàn)目錄摘要第1章緒論 11.1醫(yī)院信息系統(tǒng)概述及特點 11.2課題的研究背景和意義 11.3國內(nèi)外情況和發(fā)展趨勢 31.4本文主要工作 4第2章關(guān)鍵技術(shù)分析 52.1PB開發(fā)三層分布式C/S系統(tǒng) 52.1.1分布式PowerBuilder結(jié)構(gòu) 52.1.2PowerBui1der三層分布式C/S體系的基本構(gòu)架 72.2本系統(tǒng)中三層C/S結(jié)構(gòu)的應(yīng)用 92.2.1三層體系結(jié)構(gòu)運行機制 92.2.2三層C/S結(jié)構(gòu)在本系統(tǒng)中的優(yōu)勢 102.2.3三層C/S結(jié)構(gòu)在藥品管理系統(tǒng)中的應(yīng)用 122.3SQLServer2000簡介 132.4統(tǒng)一建模語言UML 132.4.1UML產(chǎn)生的技術(shù)背景 132.4.2UML的主要思想 152.4.3標準建模語言UML 17第3章系統(tǒng)需求和功能分析 203.1系統(tǒng)需求分析 203.2系統(tǒng)組織結(jié)構(gòu)分析 203.2.1HIS組織分析 203.2.2藥品管理系統(tǒng)組織分析 213.3系統(tǒng)實現(xiàn)的功能 213.4醫(yī)院藥品管理業(yè)務(wù)流程 22第4章醫(yī)院藥品管理系統(tǒng)功能設(shè)計 234.1藥庫管理系統(tǒng)設(shè)計 244.2門診藥房管理系統(tǒng)設(shè)計 244.2.1功能設(shè)計 244.2.2功能實現(xiàn) 254.3住院藥房管理系統(tǒng)設(shè)計 274.3.1功能設(shè)計 274.3.2功能實現(xiàn) 27第5章系統(tǒng)數(shù)據(jù)庫設(shè)計 295.1數(shù)據(jù)庫設(shè)計原則 295.2SQLServer2000關(guān)系數(shù)據(jù)庫的約束 295.3藥品管理部分數(shù)據(jù)表格的設(shè)計 315.4系統(tǒng)數(shù)據(jù)分析 325.4.1數(shù)據(jù)流程分析 325.4.2數(shù)據(jù)存儲分析 325.5數(shù)據(jù)窗口技術(shù)在系統(tǒng)實現(xiàn)中的使用 335.5.1數(shù)據(jù)窗口介紹 335.5.2數(shù)據(jù)窗口的構(gòu)造和使用 34第6章醫(yī)院信息系統(tǒng)中藥品管理系統(tǒng)的具體實現(xiàn) 366.1藥庫系統(tǒng)菜單功能介紹 366.2系統(tǒng)主要功能模塊的實現(xiàn) 376.2.1系統(tǒng)維護功能的實現(xiàn) 376.2.2藥品入庫功能的實現(xiàn) 406.2.3藥品出庫功能的實現(xiàn) 456.2.4藥品調(diào)整功能的實現(xiàn) 466.2.5數(shù)據(jù)查詢功能的實現(xiàn) 476.2.6報表統(tǒng)計功能的實現(xiàn) 486.2.7藥品批量調(diào)價功能實現(xiàn) 49第七章數(shù)據(jù)庫性能優(yōu)化和系統(tǒng)安全管理 507.1數(shù)據(jù)庫性能優(yōu)化 507.1.1數(shù)據(jù)庫備份 507.1.2數(shù)據(jù)備份設(shè)備 547.1.3海量數(shù)據(jù)查詢優(yōu)化 557.2本系統(tǒng)的安全管理 567.2.1操作系統(tǒng)的安全維護 577.2.2數(shù)據(jù)的安全管理 587.2.3網(wǎng)絡(luò)的安全管理 597.2.4系統(tǒng)管理制度的健全 60第八章結(jié)論與展望 618.1結(jié)論 618.2展望 62文獻 64摘要醫(yī)院信息系統(tǒng)(HospitalInformationSystem,簡稱HIS)是計算機技術(shù)、通信技術(shù)和管理科學(xué)在醫(yī)院信息管理中的應(yīng)用,是計算機技術(shù)對醫(yī)院管理、臨床醫(yī)學(xué)、醫(yī)院信息管理長期影響、滲透以及相互結(jié)合的產(chǎn)物。對于一個應(yīng)用系統(tǒng)首先要考慮軟件的體系結(jié)構(gòu)模式,它對于應(yīng)用系統(tǒng)的成本、性能、靈活性、安全、維護等各方面都有著決定性的影響。隨著系統(tǒng)的大型化、復(fù)雜化,傳統(tǒng)的“主機/終端”模式或兩層c/s模式已不能滿足人們的要求,于是就產(chǎn)生了新的分布式應(yīng)用系統(tǒng):三層結(jié)構(gòu)系統(tǒng)在建設(shè)醫(yī)院信息平臺的過程中,藥品管理部分的設(shè)計和實現(xiàn)是尤為重要的一環(huán)。藥品管理部分主要包括藥庫管理,門診藥房管理和住院藥房管理三大部分,通過對功能模塊的操作實現(xiàn)藥品、制劑的入庫、出庫、調(diào)價、盤點、退貨、退庫、報廢、單據(jù)審核,統(tǒng)計核算等功能。該部分確保了全院藥品的正常使用,以及藥品信息在整個醫(yī)院信息系統(tǒng)中的順利流通。本文首先介紹了醫(yī)院信息系統(tǒng)的相關(guān)背景和國內(nèi)外現(xiàn)狀,分析和結(jié)合行業(yè)特點,得出了系統(tǒng)體系結(jié)構(gòu)和開發(fā)環(huán)境。本系統(tǒng)采用C/S(客戶機/服務(wù)器)體系結(jié)構(gòu),PowerBuilder:作為開發(fā)工具,SQLserve:2000為后臺數(shù)據(jù)庫。藥品流通是患者就診和醫(yī)院日常工作中重要的一環(huán),系統(tǒng)采用了自頂向下逐層分解的結(jié)構(gòu)化分析方法,從鄭州大學(xué)第一附屬醫(yī)院日常業(yè)務(wù)和對軟件系統(tǒng)需求出發(fā)結(jié)合藥房、藥庫工作的特點確定了系統(tǒng)的功能模塊和各模塊的具體實現(xiàn).在此基礎(chǔ)上,本文還詳細介紹了醫(yī)院信息系統(tǒng)中藥品管理部分的功能和作用,并著重分析了該部分中各個子系統(tǒng)間的相互關(guān)系和各自特點,由淺入深的給出了藥庫管理子系統(tǒng)、門診藥房管理子系統(tǒng)、住院藥房管理子系統(tǒng)的設(shè)計方案,設(shè)計包括系統(tǒng)功能設(shè)計和數(shù)據(jù)庫表格的設(shè)計??紤]到用戶需求和實際情況,并結(jié)合設(shè)計方案,子系統(tǒng)的實現(xiàn)具有多樣性,本文對于每一個子系統(tǒng)的相關(guān)功能都給予了重點說明和示例。關(guān)鍵詞:藥品管理;藥庫;醫(yī)院信息系統(tǒng);三層結(jié)構(gòu)第1章緒論1.1醫(yī)院信息系統(tǒng)概述及特點醫(yī)院信息系統(tǒng)(HIS)是電子學(xué)領(lǐng)域中醫(yī)學(xué)信息學(xué)(MedicalInformatics)的重要分支。HIS利用電子計算機和網(wǎng)絡(luò)通信設(shè)備,以患者就醫(yī)流程為線索,實現(xiàn)患者從掛號、們診、藥局取藥到入院登記、醫(yī)生診斷、護士護理等全面的計算機管理,為醫(yī)院及其所屬部門提供醫(yī)療信息、財務(wù)核算分析、行政管理信息和決策分析以及統(tǒng)計信息的收集、存儲、處理、提取和通訊,并滿足所有授權(quán)用戶對信息的各種功能需求[1]。從整體上劃分,醫(yī)院信息系統(tǒng)一般包括臨床診療管理、藥品管理、經(jīng)濟管理、綜合管理和統(tǒng)計等部分。從功能上劃分,HIS可以劃分為門診管理系統(tǒng)、住院管理系統(tǒng)、藥品管理系統(tǒng)、物理診斷系統(tǒng)、財務(wù)管理系統(tǒng)、醫(yī)生系統(tǒng)、行政管理系統(tǒng)、網(wǎng)上醫(yī)院及中心數(shù)據(jù)庫幾個部分。從技術(shù)講HIS具有四大優(yōu)勢:HIS能基本實現(xiàn)全院信息的徹底數(shù)字化,改變傳統(tǒng)的依靠文件、膠片、等發(fā)送信息的傳遞方式、實現(xiàn)無紙化辦公、無膠片化辦公,達到管理費用降低,甚至機構(gòu)的減員增效;加快信息流通速度,有利于醫(yī)院決策層及時、準確的把握醫(yī)院的營運狀況和發(fā)展趨勢,及時調(diào)整經(jīng)營策略,合理制定醫(yī)院的發(fā)展計劃:HIS可以借助于IC卡這一先進的工具,實現(xiàn)掛號、電子貨幣等功能,并可與醫(yī)保結(jié)合,實現(xiàn)真正的“一卡通”[2];HIS的軟件設(shè)計采用先進合理的體系結(jié)構(gòu),其優(yōu)點如下:界面友好,易于管理和維護;開發(fā)率高、周期短;開放性好,Irtranet/1nternet完全兼容;拓展性好,根據(jù)醫(yī)院發(fā)展需要,可對系統(tǒng)隨時進行擴展,將來也極易成為社會醫(yī)療系統(tǒng)的一部分。由于醫(yī)院信息系統(tǒng)(HIS)是一個信息綜合系統(tǒng),既包括業(yè)務(wù)信息又涵蓋辦公信息,所以它具有以下幾個特點:(1)信息系統(tǒng)具有多重性、實時性、多任務(wù)等特點。(2)醫(yī)院辦公部門之間即具有相關(guān)性又具有獨立性。(3)醫(yī)院辦公部門和業(yè)務(wù)部門緊密相連。(4)具有相當數(shù)量的數(shù)據(jù)共享。(5)數(shù)據(jù)具有一定的實時性,數(shù)據(jù)更新頻繁。1.2課題的研究背景和意義鄭州大學(xué)第一附屬醫(yī)院于2001年8月投入使用醫(yī)院信息管理系統(tǒng)(HIS)后,在網(wǎng)絡(luò)結(jié)構(gòu)上采用的是C/S結(jié)構(gòu),HIS系統(tǒng)在最初幾年運轉(zhuǎn)良好。但是隨著醫(yī)院信息化的快速發(fā)展,醫(yī)院的網(wǎng)絡(luò)規(guī)模在不斷擴大,終端也在不斷的增加,現(xiàn)在數(shù)量已經(jīng)超過了600臺,原先工作在C/S結(jié)構(gòu)下HIS系統(tǒng)已顯得力不從心。作為醫(yī)院的關(guān)鍵部門—藥劑科也受到了較大的影響。我國醫(yī)院的信息處理基本上還停留在手工方式,勞動強度大且工作效率低,醫(yī)師護士和管理人員的大量時間都消耗在事務(wù)性工作上,致使“人不能盡其才”;病人排隊等候時間長,輾轉(zhuǎn)過程多,影響醫(yī)院的秩序;病案、臨床檢驗、病理檢查等許多寶貴的數(shù)據(jù)資料的檢索十分費事甚至難以實現(xiàn);對這些資料深入的統(tǒng)計分析手工方式無法進行,不能充分為醫(yī)學(xué)科研利用;在經(jīng)濟管理上也因而存在漏、跑、錯等現(xiàn)象;醫(yī)院物資管理由于信息不準確,家底不明,積壓浪費,以致“物不能盡其用”。開發(fā)HIS是解決上述問題的有效途徑。HIS系統(tǒng)的有效運行,將提高醫(yī)院各項工作的效率和質(zhì)量,促進醫(yī)學(xué)科研、教學(xué),減輕各類事務(wù)性工作的勞動強度,使他們騰出更多的精力和時間來服務(wù)于病人,改善經(jīng)營管理,堵塞漏洞,保證病人和醫(yī)院的經(jīng)濟利益為醫(yī)院創(chuàng)造經(jīng)濟效益。完整的HIS系統(tǒng)實現(xiàn)了信息的全過程追蹤和動態(tài)管理,從而做到簡化患者的診療過程,優(yōu)化就診環(huán)境,改變目前排隊多、等候時間長、秩序混亂的局面。如目前多數(shù)醫(yī)院就診必須經(jīng)過掛號、等候病歷、劃價、收費、取藥或治療一系列過程,一個患者少則排3次隊,多則5、6次,用于過程性的時間最少在1個小時以上,若實施HIS以后,每個病人用于診療的中間過程性時間會大幅度減少;假定一家醫(yī)院門診人次為2000人次/天,年門診250天,每人少花費半小時,則日節(jié)約1000小時,一年節(jié)約36萬小時,其產(chǎn)生的社會效益和間接經(jīng)濟效益是明顯的。同時HIS的實施也強化了醫(yī)院內(nèi)部管理,降低了醫(yī)護人員的工作強度和時間,偽、冒、漏現(xiàn)象可以解決,也加速了資金周轉(zhuǎn)和減少藥品、器械等物資積壓。據(jù)估計如果全國有2000家醫(yī)院應(yīng)用HIS,每年每所醫(yī)院增收節(jié)支、加速資金回籠和周轉(zhuǎn)、堵漏、減少物資積壓的回收資金方面的效益按20萬元估計的話(實際比這高),則年效益估計為40億元,十分可觀。但這往往不被人所認識。當然建立HIS更主要的還在于它對醫(yī)院管理、醫(yī)療質(zhì)量和醫(yī)學(xué)研究的長期效應(yīng)帶來的綜合效益[3-5].藥品是防病治病的特殊商品,是醫(yī)院重要的經(jīng)濟收入來源,是醫(yī)療活動中必不可少的基礎(chǔ)物資,兼具物資和醫(yī)療雙重屬性,是醫(yī)院醫(yī)療和經(jīng)濟活動中的重要組成部分,在醫(yī)院的運營成本中占有很大比重。藥房、藥庫是醫(yī)院藥品供應(yīng)基地,是加強醫(yī)院藥品管理的重要環(huán)節(jié)之一。由于藥品種類繁多,流通環(huán)節(jié)繁雜,強化對藥庫管理尤為重要,它既要保障對臨床各科室的供應(yīng).又要控制藥品品種、數(shù)量、質(zhì)量,防止過期失效,減少浪費,達到增收節(jié)支的目的。對藥房、藥庫實行計算機管理,可使藥房、藥庫的工作人員可及時了解庫房藥品進、出、存的動態(tài)變化,既做到為臨床及時提供所需藥品不使藥品供應(yīng)中斷,又有效減少盲目進貨造成藥品積壓現(xiàn)象,藥品的信息化管理不僅可加快藥品周轉(zhuǎn),而且可大大提高工作人員的工作效率和管理質(zhì)量,也更加有利于及時、安全、優(yōu)質(zhì)地的保證臨床用藥。因此醫(yī)院管理者歷來都十分重視藥品信息管理的開發(fā)應(yīng)用。1.3國內(nèi)外情況和發(fā)展趨勢電子計算機在醫(yī)院的應(yīng)用已有三十多年的歷史,60年代初,美國便開始了HIS的研究。著名的麻省總醫(yī)院<MGH>開發(fā)的COSTAR系統(tǒng)是60年代初開始并發(fā)展到今天成為大規(guī)模的臨床病人信息系統(tǒng)。隨著計算機技術(shù)的發(fā)展,70年代,HIS進入大發(fā)展時期,美、日、歐各國的醫(yī)院,特別是大學(xué)醫(yī)院及醫(yī)學(xué)中心紛紛開發(fā)HIS,成為醫(yī)藥信息學(xué)的形成和發(fā)展的基礎(chǔ)。70-80年代,美國的HIS產(chǎn)業(yè)已有很大發(fā)展。1985年美國全國醫(yī)院數(shù)據(jù)處理工作調(diào)查表明,100張床位以上的醫(yī)院,80%實現(xiàn)了計算機財務(wù)收費管理,70%的醫(yī)院可支持病人掛號登記和行政事務(wù)管理。25%的醫(yī)院有了較完整的HIS,即實現(xiàn)了病房醫(yī)護人員直接用計算機處理醫(yī)囑和查詢實驗室的檢驗結(jié)果。10%的醫(yī)院(2530)有全面計算機管理的HIS。日本的HIS開發(fā)和應(yīng)用從70年代初開始。多數(shù)日本醫(yī)院是80年代以后開始進行HIS工作的,但發(fā)展十分迅猛,規(guī)模相當大,是以大型機為中心的醫(yī)院計算機系統(tǒng)[6]。如北里大學(xué)醫(yī)院的IBM/3090雙機系統(tǒng)。當前日本的HIS總的趨勢是系統(tǒng)化、網(wǎng)絡(luò)化、綜合性,開始走自上而下的開發(fā)路線,一般都有大型機作為中心、支撐整個系統(tǒng)工作,并盡量采用微機和網(wǎng)絡(luò)技術(shù),投資規(guī)模大,正在實現(xiàn)“。ordering”工作方式,即數(shù)據(jù)從發(fā)生源直接輸入計算機。到1991年統(tǒng)計有近10家實現(xiàn)或基本實現(xiàn)此種方式。支持診療的功能在不斷加強,系統(tǒng)24小時運行。不少軟件是醫(yī)院和計算機公司聯(lián)合開發(fā)的,一些大公司也開發(fā)了一些通用的醫(yī)院信息管理軟件包,也有些醫(yī)院自己開發(fā)。如北里大學(xué),開發(fā)了綜合的HIS,開發(fā)費用(機器設(shè)備除外)為3億4千萬日元(約合人民幣1300萬元)。日常運行費用支出為一年5億1千萬日元(約合人民幣2000多萬元)。歐洲的HIS發(fā)展比美國稍晚,大多數(shù)是70年代中期和80年代開始。歐洲HIS的特點是實現(xiàn)了一些區(qū)域信息系統(tǒng)。如丹麥的RedSystem,管理76所醫(yī)院和診所。法國第八醫(yī)療保健中心實現(xiàn)了能管理三所大醫(yī)院和三所醫(yī)藥學(xué)院的一體化信息系統(tǒng)-GrenobleIntegratedHIS。隨著初級衛(wèi)生保健工作的發(fā)展,歐洲各國區(qū)域性醫(yī)院計算機網(wǎng)絡(luò)將實現(xiàn)。目前歐共體的SHINE工程<StrategicHealthInformaticsNetworkforEurope>已經(jīng)開始,英法意德許多公司都參與了此項工程。在分布式數(shù)據(jù)庫系統(tǒng)和開放網(wǎng)工程方面己做了大量工作[7]。計算機70年代末期就進入了我國醫(yī)療行業(yè),當時以IBM的M340小型機為主只有少數(shù)幾家大型的部屬綜合醫(yī)院和教學(xué)醫(yī)院擁有,主要應(yīng)用于科研和教學(xué),還沒有應(yīng)用于HIS的管理。80年代初期,隨著蘋果PC機的出現(xiàn)和BASIC語言的普及,一些醫(yī)院開始開發(fā)一些小型的管理軟件,如工資軟件等;80年代中期,隨著XT286的出現(xiàn)和國產(chǎn)化,以及DBASEⅢ和UNIX網(wǎng)絡(luò)操作系統(tǒng)的出現(xiàn),一些醫(yī)院開始建立小型的局域網(wǎng)絡(luò),并開發(fā)出基于部門管理的小型網(wǎng)絡(luò)管理系統(tǒng),如住院管理,藥房管理等。進入90年代,NOVELL網(wǎng)和FOXBASE、FOXPRO數(shù)據(jù)庫日益盛行,完整的醫(yī)院網(wǎng)絡(luò)管理系統(tǒng)的實現(xiàn)已經(jīng)成為可能,于是一些有計算機技術(shù)力量的醫(yī)院開始開發(fā)適合自己醫(yī)院的醫(yī)院管理系統(tǒng)。進入21世紀,特別是2003年SARS災(zāi)難過后,我國的醫(yī)療衛(wèi)生系統(tǒng)開始真正意識到醫(yī)院信息系統(tǒng)的重要性,并開始著手進行系統(tǒng)的深入研究和推廣應(yīng)用。國家主管部門也給予了醫(yī)院前所未有的引導(dǎo)和支持[8,9]。當今的中小型醫(yī)院,一般還沒有全面采用信息技術(shù)來進行管理,其錄入、核算和分析等工序依然繁瑣復(fù)雜主要依靠人力,沒有充分發(fā)揮計算機速度快、處理效率高和能及時進行數(shù)據(jù)傳輸?shù)奶攸c。流通領(lǐng)域中的醫(yī)院錄入數(shù)據(jù)大副增加,核算指標與過去的系統(tǒng)也相去甚遠。在先進的、現(xiàn)代化的經(jīng)營管理體制上建立一套高效的計算機輔助經(jīng)營管理系統(tǒng)勢在必行。1.4本文主要工作醫(yī)院信息系統(tǒng)(HIS)是一個融計算機技術(shù)、醫(yī)院信息管理、組織行為和運作方式于一體的綜合性、先進性科學(xué)體系。本次課題的任務(wù)就是設(shè)計并開發(fā)出一套完整有效的醫(yī)院信息系統(tǒng)。本文在基于醫(yī)院信息系統(tǒng)的整體設(shè)計和實際開發(fā)之上對其下屬的藥品管理部分中的藥庫管理系統(tǒng)、門診藥房管理系統(tǒng)、住院藥房管理系統(tǒng)做出了詳細的闡述并給出一套完整的設(shè)計方案(包括系統(tǒng)功能設(shè)計和數(shù)據(jù)庫表格設(shè)計),成功地將該方案應(yīng)用到實際系統(tǒng)的開發(fā)中,建立了物理藥庫、藥房、采購中心、藥庫財務(wù)及藥品核算的網(wǎng)絡(luò)體系,實現(xiàn)信息資源共享。集中存儲藥品管理的大量的明細信息,便于查詢及統(tǒng)計。第2章關(guān)鍵技術(shù)分析2.1PB開發(fā)三層分布式C/S系統(tǒng)2.1.1分布式PowerBuilder結(jié)構(gòu)所謂分布PowerBuilder的實現(xiàn)就是在客戶端遠程地初始化一個在服務(wù)器端的用戶自定義對象,并且調(diào)用這一對象的屬性和函數(shù)。下面是分布式PowerBuilder結(jié)構(gòu)圖:圖2-1分布式PowerBuilder結(jié)構(gòu)從上圖我們可以看出,分布式應(yīng)用主要由數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器(遠程對象、服務(wù)器接口)和客戶端程序(遠程對象代理、客戶端接口、用戶界面)組成,下面分別介紹各部份。數(shù)據(jù)庫服務(wù)器:數(shù)據(jù)庫服務(wù)器的主要工作是進行數(shù)據(jù)的管理工作,包括數(shù)據(jù)庫、數(shù)據(jù)存儲過程、觸發(fā)器等等其它數(shù)據(jù)庫對象。目前流行的數(shù)據(jù)庫服務(wù)器管理系統(tǒng)主要有ORACLE,MSSQLSERVER,SYBASESQLSERVER等大中型數(shù)據(jù)庫,以及SYBASEANYWHERE,DBF,BTRIEVE等小型及桌面型數(shù)據(jù)庫[10-14]。服務(wù)器應(yīng)用(中間層應(yīng)用):在以往PowerBuilder版本中,PowerBuilder應(yīng)用是作為客戶機/服務(wù)器體系結(jié)構(gòu)中的客戶端應(yīng)用提交的,在分布式PowerBuilder中引入了服務(wù)器應(yīng)用這個概念。這個應(yīng)用包括了不可視的用戶對象,并被客戶端應(yīng)用調(diào)用,這些用戶對象被稱作遠程對象,這種調(diào)用可以是跨進程或跨硬件平臺的。分布PowerBuilder在服務(wù)器端有一個PowerScript對象Transport來監(jiān)聽客戶端對過程調(diào)用的需求,而這個服務(wù)器端的應(yīng)用也可以同一般傳統(tǒng)的客戶機/服務(wù)器應(yīng)用的客戶端或遠程的客戶端應(yīng)用一樣來調(diào)用另外的PowerBuilder服務(wù)器應(yīng)用。遠程對象:與其他的不可視用戶對象類同。一個遠程對象包含了用Powerscript編寫的商業(yè)邏輯,放在服務(wù)器端,作為不可視用戶對象的特例,遠程對象可以引用各種不可視的函數(shù)和數(shù)據(jù)庫的指令,如使用DataWindow的不可視形式DataStore來實現(xiàn)對數(shù)據(jù)庫訪問的封裝等。遠程對象像是一個過程或函數(shù)的調(diào)用,并支持參數(shù)傳遞和返回結(jié)果,支持除對象數(shù)據(jù)類型以外的其他所有類型。傳輸對象:是服務(wù)器端用以接收客戶請求的特殊連接對象。當使createtransport命令創(chuàng)建一個傳輸實例后,該對象以對象的屬性中所定義的議監(jiān)聽接收客戶的請求。這個對象的屬性包括通訊驅(qū)動名稱、通訊協(xié)類型、超時協(xié)議等,得到和設(shè)定這些屬性的方法同PowerBui1der的其他象如transaction等一樣??蛻魬?yīng)用:PowerBuilder客戶應(yīng)用是用以調(diào)用遠端對象的部分。分布PowerBuilder應(yīng)用包括了一個新的對象,稱Connection,用以連PowerBuilder服務(wù)器應(yīng)用。當同服務(wù)器建立連接后,客戶應(yīng)用將像調(diào)用本的不可視用戶對象一樣調(diào)用遠程對象。連接對象:是客戶端發(fā)送請求的客戶端的對象。當使用createtransport創(chuàng)建一個連接對象時,本對象的ConnectToServer函數(shù)執(zhí)行服務(wù)器的連接,通訊方式如通訊名稱、協(xié)議等由連接對象的屬性來決定。遠程對象代理:實際上就是遠程對象的一個定義,客戶端程序通過此代理來正確的對應(yīng)用服務(wù)器發(fā)送請求并正確的接收返回結(jié)果。即客戶端程序過遠程對象代理來獲知應(yīng)用服務(wù)器上所提供的服務(wù)的類型,從而正確使用用服務(wù)器。它運行在客戶端,在客戶端似乎不存在,對客戶是透明的。編程時就當它不存在,這是由系統(tǒng)生成的用于訪問遠程對象所用,一般只括:類的屬性、方法的接口等,不含方法的實現(xiàn),與遠程對象一一對應(yīng)。用戶界面:主要存在于客戶端程序中,主要是用于與用戶的交互??蛻舳顺绦蛲ㄟ^用戶界面接收用戶的請求,執(zhí)行相應(yīng)的操作,然后將結(jié)果通過用戶界面以一定方式展示給用戶。2.1.2PowerBui1der三層分布式C/S體系的基本構(gòu)架1.非可視化用戶對象在三層分布式C/S體系中的應(yīng)用PowerBuilder是利用面向?qū)ο缶幊痰姆绞絹碓O(shè)計應(yīng)用程序。在面向?qū)ο蟪绦蛟O(shè)計當中,有三個比較重要的特性:繼承(Inheritance)、封裝(Encapsulation)與多型多型即多態(tài),自己可以查一下(Polymorphism)。在傳統(tǒng)的兩層C/S體系當中,許多的商業(yè)規(guī)則被分散到客戶端,造成程序在維護上面的困難。所以在三層C/S體系當中將這一些商業(yè)運算規(guī)則另外獨立出來,并且將這一些邏輯運算規(guī)則經(jīng)過整理之后,將性質(zhì)相同的商業(yè)運算規(guī)則封裝在同一個對象當中。而PowerBuilder的非可視化類用戶對象(CCUO)正是扮演著封裝各種商業(yè)運算規(guī)則的重要角色,我們利用CCUO的用戶對象建立放置在主機應(yīng)用程序的遠程對象[15]。多型即多態(tài),自己可以查一下2.代理對象(ProxyObject)的應(yīng)用基本上利用CCUO建立的封裝對象只是放置在應(yīng)用程序主機上面,客戶端的程序并沒有這樣的對象。這樣,客戶端的程序?qū)⑷绾沃乐鳈C應(yīng)用程序上面有哪些封裝對象的函數(shù)可以使用呢?為解決客戶端程序不認得主機端應(yīng)用程序封裝對象內(nèi)函數(shù)的困擾,就從主機端的CCUO對象衍生出來一種代理對象(ProxyObject)放置在每一個客戶端。這個對象當中存在與主機應(yīng)用程序端的CCUO對象一樣的函數(shù)定義(包括函數(shù)名稱,傳回數(shù)值,傳遞參數(shù)),但是卻不包括函數(shù)內(nèi)的程序代碼。3.三層分布式C/S體系的數(shù)據(jù)處理方式在三層C/S體系當中,因為每一個客戶端程序不再直接連接數(shù)據(jù)庫,所以不能夠直接將數(shù)據(jù)窗口對象放置在客戶端程序[16]。這時我們必須把數(shù)據(jù)窗口對象統(tǒng)一放置在應(yīng)用程序主機上面(因為只有主機應(yīng)用程序與數(shù)據(jù)庫做連接),然后再由主機應(yīng)用程序?qū)?shù)據(jù)窗口的數(shù)據(jù)傳遞到客戶端如圖2-2.圖2-2三層的數(shù)據(jù)處理方式在三層C/S體系當中,通常會在主機應(yīng)用程序中建立一個數(shù)據(jù)存儲(DataStore)后,將數(shù)據(jù)窗口對象所讀取的數(shù)據(jù)放置在數(shù)據(jù)存儲當中,最后再將整個數(shù)據(jù)存儲的數(shù)據(jù)傳遞到客戶端的程序,而放置在客戶端的數(shù)據(jù)窗口控件當中[17]。下面是PowerBuilder提供的用來做數(shù)據(jù)傳遞的函數(shù):GetFullState():將數(shù)據(jù)窗口或數(shù)據(jù)存儲完整的狀態(tài)(包括數(shù)據(jù)窗口的定義和讀取的數(shù)據(jù))保存到blob當中。一般格式:數(shù)據(jù)窗口控件.GetFullstate(REFblob)。SetFullstate():將保存完整數(shù)據(jù)窗口(或數(shù)據(jù)存儲)狀態(tài)的blob重新指定給其它的數(shù)據(jù)窗口(或數(shù)據(jù)存儲)。一般格式:數(shù)據(jù)窗口控件.SetFullstate(REFblob)。GetChanges():將數(shù)據(jù)窗口或數(shù)據(jù)存儲變動的狀態(tài)(包含變動的數(shù)據(jù)和數(shù)據(jù)狀態(tài))保存到blob當中。一般格式:數(shù)據(jù)窗口控件.GetChanges(REFblob)。SetChanges():將保存更改數(shù)據(jù)狀態(tài)的blob重新指定給其它的數(shù)據(jù)窗口(或數(shù)據(jù)存儲)。一般格式:數(shù)據(jù)窗口控件.SetChanges(REFblob)。2.1.3PowerBui1der與數(shù)據(jù)庫的連接PowerBuilder提供了與底層數(shù)據(jù)庫系統(tǒng)緊密的連接。PowerBuilder支持不同的關(guān)系數(shù)據(jù)庫管理系統(tǒng)并充分發(fā)揮每一個數(shù)據(jù)庫的特長。開發(fā)人員利用內(nèi)置的高性能數(shù)據(jù)庫引擎一SYBASESQLAnywhere生成獨立或脫離服務(wù)器運行的服務(wù)應(yīng)用,在開發(fā)該藥品管理系統(tǒng)時,就是使用該種數(shù)據(jù)庫引擎。PowerBuilder存取數(shù)據(jù)庫的方式有兩種:(1)通過使用PowerSoft的DBMS接口。(ODBC<開放數(shù)據(jù)庫連接>是微軟公司的數(shù)據(jù)庫連接標準)(2)通過使用由PowerBuilder提供的專用的直接與數(shù)據(jù)庫相連的接口。值得一提的是PowerBuilder擁有數(shù)據(jù)窗口對象(DATAWINDOW)。它是一個智能對象是POWERSOFT公司的一項專利技術(shù)。它能操縱關(guān)系數(shù)據(jù)庫的數(shù)據(jù)而無需編寫SQL語言。利用該對象可以修改、更新、插入、刪除、滾頁、打印或以N種文件格式中的任何一種方式保留數(shù)據(jù)。數(shù)據(jù)窗口直接管理數(shù)據(jù)庫的交互與控制。在本系統(tǒng)開發(fā)過程中大多數(shù)報表均使用此對象生成,使用其操縱關(guān)系數(shù)據(jù)庫的數(shù)據(jù)十分方便、快捷。它是一個支持數(shù)據(jù)操縱的封裝性很好對象[18,19]。PowerBuilder與數(shù)據(jù)庫的連接可以通過各自專有的接口進行連接,各自的連接情況如圖2.3所示:圖2-3PowerBuilder與數(shù)據(jù)庫的連接2.2本系統(tǒng)中三層C/S結(jié)構(gòu)的應(yīng)用2.2.1三層體系結(jié)構(gòu)運行機制三層結(jié)構(gòu),顧名思義它是將數(shù)據(jù)處理過程分為三部分:第一層是客戶(用戶界面),提供用戶與系統(tǒng)的友好訪問,即用戶服務(wù)層,和傳統(tǒng)的應(yīng)用序沒有什么區(qū)別(除了業(yè)務(wù)邏輯的減少);第二層是應(yīng)用服務(wù)器:主要用大批量事務(wù)處理、事務(wù)支持、大型配置、信息傳遞和網(wǎng)絡(luò)通信。在這一把復(fù)雜的業(yè)務(wù)關(guān)系細分為多項功能單一的服務(wù),每項服務(wù)都執(zhí)行一項特任務(wù),這些服務(wù)可以用相對獨立的服務(wù)組件來實現(xiàn)其功能。通過分布這組件,可以平衡數(shù)據(jù)處理負載,協(xié)調(diào)邏輯關(guān)系,調(diào)整業(yè)務(wù)規(guī)模和業(yè)務(wù)規(guī)則。這一層可以部署在網(wǎng)絡(luò)的任何地方,即業(yè)務(wù)服務(wù)層或稱為事務(wù)邏輯層;三層是數(shù)據(jù)服務(wù)器,負責數(shù)據(jù)信息的存儲、訪問及其優(yōu)化,即數(shù)據(jù)服務(wù)。在這種體系結(jié)構(gòu)下,傳統(tǒng)的表現(xiàn)層和數(shù)據(jù)層的業(yè)務(wù)邏輯,都將集中到業(yè)務(wù)層管理。這樣增加了客戶端應(yīng)用程序的通用性、獨立性,也避免了數(shù)層臃腫的存儲過程和觸發(fā)器。另外,也減少了軟件配置和版本更新的困難。只需要配置和更新業(yè)務(wù)層就夠了,大大降低了客戶端的負擔,因此也為瘦客戶(ThinClient)結(jié)構(gòu)。以下為用戶服務(wù)層,業(yè)務(wù)服務(wù)層以及數(shù)據(jù)服務(wù)層之間的通訊運行過程。1、用戶提交數(shù)據(jù)存取請求,客戶端創(chuàng)建組件實例,啟動業(yè)務(wù)處理,發(fā)送數(shù)據(jù)存取請求到業(yè)務(wù)服務(wù)層。2、業(yè)務(wù)服務(wù)層啟動數(shù)據(jù)請求過程,對用戶服務(wù)層的請求進行相應(yīng)處理后直接發(fā)送SQL請求到數(shù)據(jù)服務(wù)層,執(zhí)行數(shù)據(jù)存取操作。3、數(shù)據(jù)服務(wù)層接收業(yè)務(wù)服務(wù)層的SQL請求,DBMS執(zhí)行SQL語句,SQL語句執(zhí)行完成后,將結(jié)果(讀取數(shù)據(jù)等操作)或狀態(tài)(修改,刪除數(shù)據(jù)等操作)返送到業(yè)務(wù)服務(wù)層。4、業(yè)務(wù)服務(wù)層接收到數(shù)據(jù)服務(wù)層返回的結(jié)果,對此結(jié)果或狀態(tài)進行相應(yīng)的處理后或者直接返回到用戶服務(wù)層,完成數(shù)據(jù)請求過程。5、用戶服務(wù)層接收到業(yè)務(wù)服務(wù)層返回的結(jié)果或狀態(tài),進行相應(yīng)的處理或判斷,顯示到用戶界面,完成數(shù)據(jù)庫存取請求。通過前面的介紹我們知道三層體結(jié)構(gòu)的解決方案是:對用戶服務(wù)層,業(yè)務(wù)服務(wù)層,數(shù)據(jù)服務(wù)層三層進行明確分割,并在邏輯上使其相互獨立。原來的數(shù)據(jù)層作為數(shù)據(jù)庫管理系統(tǒng)已經(jīng)獨立出來,所以,關(guān)鍵是要將用戶服務(wù)層和業(yè)務(wù)服務(wù)層分離成各自獨立的程序,并且還要使這兩層間的接口簡潔明了。三層體系結(jié)構(gòu)不需要客戶端有很強的處理能力,原有的低性能的PC在新系統(tǒng)中仍然能夠得到很好的利用,避免了重復(fù)投資,降低了應(yīng)用成本。三層結(jié)構(gòu)中的三層,只是邏輯上的概念。具體實現(xiàn)時,物理結(jié)構(gòu)上的差異可能會很大。三層可以在一臺計算機上,也可以在兩臺、三臺,甚至更多的計算機上,只要它們在體系上遵循三層C/S結(jié)構(gòu)即可。系統(tǒng)從一臺擴展為兩臺、三臺甚至更多計算機時,對應(yīng)用沒有任何修改。2.2.2三層C/S結(jié)構(gòu)在本系統(tǒng)中的優(yōu)勢三層結(jié)構(gòu)的軟件體系結(jié)構(gòu)是如今藥品管理系統(tǒng)開發(fā)中被大家應(yīng)用的很廣的一種系統(tǒng)架構(gòu)設(shè)計方法,其層間低藕合、層內(nèi)高內(nèi)聚的特點使得系統(tǒng)的可擴展性、易維護性都大大提高。由于藥品管理系統(tǒng)日益增長的整體復(fù)雜度和其自身的特殊性,造成了系統(tǒng)開發(fā)過程中各個環(huán)節(jié)的復(fù)雜度和開發(fā)成本都在增加,從數(shù)據(jù)分析、業(yè)務(wù)分析、流程分析到系統(tǒng)建模,其間都充滿了不確定性。三層架構(gòu)的應(yīng)用對于有效控制開發(fā)成本和提高開發(fā)成功率都有著重要的作用。原系統(tǒng)與本系統(tǒng)的結(jié)構(gòu)在性能上的比較如表2-1所示。表2-1兩層C/S結(jié)構(gòu)和三層C/S結(jié)構(gòu)的性能比較比較內(nèi)容兩層C/S結(jié)構(gòu)三層C/S結(jié)構(gòu)開發(fā)平臺與開發(fā)平臺無關(guān)與開發(fā)平臺有關(guān)界面界面不統(tǒng)一界面統(tǒng)一開發(fā)邏輯關(guān)系復(fù)雜結(jié)構(gòu)清晰,開發(fā)較為簡單擴展擴展難,基本上是重新開發(fā)擴展方便,甚至只需要對個別組件更改安全性不安全,對數(shù)據(jù)直接操作安全,通過調(diào)用應(yīng)用層組件間接訪問數(shù)據(jù)網(wǎng)絡(luò)通信時時連接數(shù)據(jù)庫,對網(wǎng)絡(luò)資源占用嚴重只有需要時,經(jīng)過應(yīng)用層訪問數(shù)據(jù)庫,網(wǎng)絡(luò)資源占用率低可操作性由于邏輯結(jié)構(gòu)復(fù)雜,操作不方便邏輯結(jié)構(gòu)清晰,分工明確,操作簡單從比較歸納得出三層C/S結(jié)構(gòu)具有以下優(yōu)點:1、安全性加強。應(yīng)用程序服務(wù)器把客戶與數(shù)據(jù)庫服務(wù)器分開了,客戶端不能直接訪問數(shù)據(jù)庫服務(wù)器。應(yīng)用程序服務(wù)器可控制哪些數(shù)據(jù)被改變和被訪問,以及數(shù)據(jù)更改和訪問方式。另外,對應(yīng)用和數(shù)據(jù)的存儲權(quán)限可以分層進行設(shè)定,這樣,即使外部的入侵者突破了客戶端的安全防線,若在應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器中備有另外的安全機構(gòu),系統(tǒng)也可以阻止入侵者進入其他部分。2、效率提高。三層C/S結(jié)構(gòu)中,客戶端和應(yīng)用服務(wù)之間的鏈接實際上只是一些簡單的通信協(xié)議,而和數(shù)據(jù)庫服務(wù)器打交道所需要的設(shè)置或驅(qū)動程序,均由應(yīng)用服務(wù)來承擔,這既減輕了客戶端的負擔,也降低了數(shù)據(jù)庫服務(wù)器的鏈接代價,使數(shù)據(jù)庫服務(wù)器專心于數(shù)據(jù)服務(wù)而不是頻繁地和客戶端的應(yīng)用程序交流。各層的邏輯關(guān)系清晰明了,真正做到了“瘦客戶”[20-22]。3、易于維護。由于應(yīng)用邏輯被封裝到了應(yīng)用程序服務(wù)器中,因此,當應(yīng)用邏輯發(fā)生變化時,僅需修改應(yīng)用程序服務(wù)器中的程序,客戶端的應(yīng)用程序不必更新,維護的代價大大降低。4、可伸縮性。三層結(jié)構(gòu)是進行明確分割的,邏輯上各自獨立,并且能單獨實現(xiàn)。由于它們是邏輯劃分的,與物理位置不一定相對應(yīng),因此它們的硬件系統(tǒng)構(gòu)成是很靈活的,各部分可以選擇與其處理負荷和處理特性相適應(yīng)的硬件。三層既可以在一臺計算機上,也可以在兩臺甚至更多的計算機上,只要它們在體系上遵循三層C/S結(jié)構(gòu)就可以了。5、可共享性。單個應(yīng)用程序服務(wù)器可以為處于不同位置的客戶應(yīng)用程序提供服務(wù),即應(yīng)用系統(tǒng)只寫一次就可以用于各個環(huán)境。6、開放性。由于應(yīng)用程序服務(wù)器的每個組件都有標準的接口,用戶可以重寫自己的客戶端程序和自己的瀏覽器程序。2.2.3三層C/S結(jié)構(gòu)在藥品管理系統(tǒng)中的應(yīng)用本藥品管理系統(tǒng)各成員之間數(shù)據(jù)交換量很大,對安全性要求高,同時系統(tǒng)要求數(shù)據(jù)庫開放性要好,醫(yī)療改革的迫切性也要求在短期內(nèi)開發(fā)出穩(wěn)定可靠、符合要求的系統(tǒng)。根據(jù)以上分析,三層結(jié)構(gòu)的C/S模式在本系統(tǒng)的結(jié)構(gòu)形式如圖2-4所示。圖2-4三層結(jié)構(gòu)的C/S模式應(yīng)用結(jié)構(gòu)圖表示層:也稱為客戶端,為最終用戶提供操作界面,實現(xiàn)與用戶的交互,以豐富、多樣、形象的形式表現(xiàn)系統(tǒng)信息。而最終的客戶是制定的GUI用戶,這類用戶對信息的表現(xiàn)形式有比較高的要求,交互式操作比較繁瑣,他們所使用的用戶界面是定制開發(fā)的,操作請求直接由應(yīng)用層的業(yè)務(wù)邏輯組件響應(yīng)。應(yīng)用層:也稱中間層,主要包括醫(yī)院業(yè)務(wù)邏輯、外部系統(tǒng)接口等。該層以組件的形式分布于網(wǎng)絡(luò)中的多臺計算機中,通過負載均衡機制,為表示層提供有效、安全的服務(wù)。在這一層也包括了數(shù)據(jù)庫ADO組件。數(shù)據(jù)層:以數(shù)據(jù)庫系統(tǒng)為主體,實現(xiàn)各類業(yè)務(wù)數(shù)據(jù)存貯、計算、析取、事務(wù)聯(lián)機分析等,為應(yīng)用層的數(shù)據(jù)訪問提供服務(wù)。2.3SQLServer2000簡介SQLServer2000是建立在SQLServer7.0在可伸縮性、可用性、可管理性和數(shù)據(jù)倉庫成功的基礎(chǔ)上開發(fā)的。在高性能和企業(yè)級可伸縮性領(lǐng)域,SQLServer2000設(shè)計成利用WindowS2000對更多處理器、更大的系統(tǒng)內(nèi)存的支持,最終達到支持64位硬件平臺。在不斷提升可用性的努力過程中,SQLServer2000采用WindowS2000四路群集,提供了大大改進的群集支持。SQLServer2000在可管理性和易用性方面在行業(yè)內(nèi)領(lǐng)先[23-25]。而且,SQLServer2000還包含對現(xiàn)有管理工具和實用程序的重大改進,并引入更具自我調(diào)節(jié)和自我管理的引擎功能。通過與OLAP服務(wù)、數(shù)據(jù)轉(zhuǎn)換服務(wù)、存儲庫和英文查詢的緊密結(jié)合,SQLServer2000代表了行業(yè)內(nèi)最全面的數(shù)據(jù)倉庫和決策支持平臺。特別重要的是,SQLServer2000關(guān)系引擎增加了實質(zhì)化的視圖,改善了在特大型數(shù)據(jù)庫環(huán)境中執(zhí)行復(fù)雜查詢的性能。同時,SQLServer2000引入了新的數(shù)據(jù)挖掘功能,可自動發(fā)現(xiàn)在大量數(shù)據(jù)之間隱藏的關(guān)系并可基于歷史數(shù)據(jù)做出預(yù)測。這些數(shù)據(jù)挖掘功能將要實施,以向最終用戶隱藏這種尖端技術(shù)的復(fù)雜性,并允許開發(fā)人員將第三方的數(shù)據(jù)挖掘產(chǎn)品輕松集成進客戶的應(yīng)用程序中。SQLServer2000按照設(shè)計可以為部署和維護強大的、易于管理的性能。2.4統(tǒng)一建模語言UML2.4.1UML概述軟件工程領(lǐng)域在1995年至1997年取得了前所未有的進展,其成果超過軟件工程領(lǐng)域過去十五年的成就總和。其中最重要的、具有劃時代重大意義的成果之一就是統(tǒng)一建模語言(UML:UnifiedModelingLanguage)的出現(xiàn)。目前,UML已經(jīng)成為面向?qū)ο蠹夹g(shù)領(lǐng)域內(nèi)占主導(dǎo)地位的標準建模語言[26]。統(tǒng)一建模語言UML是為軟件系統(tǒng)的制品進行詳述(Specifying)、形象化(visualizing)、構(gòu)建(constructing)、文檔化(documenting)的一種語言。對于商業(yè)模塊和其他非軟件系統(tǒng),UML規(guī)范是一個能夠成功提供大而復(fù)雜模板的工程實現(xiàn)的集合。UML是一種標準的圖形化建模語言,它是面向?qū)ο蠓治雠c設(shè)計的一種標準表示。UML不是一種可視化的程序設(shè)計語言,而是一種可視化的建模語言;UML不是工具或者是知識庫的規(guī)格說明,而是一種語言規(guī)格說明,是一種表示的標準;UML不是過程和方法,但是允許任何一種過程和方法使用它[27]。它溶入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)的全過程。公認的面向?qū)ο蠼UZ言出現(xiàn)于70年代中期。從1989年到1994年,其數(shù)量從不到十種增加到了五十多種[28]。到90年代中,一批新方法出現(xiàn)了,其中最引人注目的是Booch1993、OOSE和OMT-2等。但促使UML出現(xiàn)的最終原因有:(1)面對眾多的建模語言,用戶由于沒有能力區(qū)別不同語言之間的差別,因此很難找到一種比較適合其應(yīng)用特點的語言;(2)雖然不同的建模語言大多類同,但仍存在某些細微的差別,極大地妨礙了用戶之間的交流。因此在客觀上,極有必要在精心比較不同的建模語言優(yōu)缺點及總結(jié)面向?qū)ο蠹夹g(shù)應(yīng)用實踐的基礎(chǔ)上,組織聯(lián)合設(shè)計小組,根據(jù)應(yīng)用需求,取其精華,去其糟粕,求同存異,統(tǒng)一建模語言。1994年10月,GradyBooch和JimRumbaugh開始致力于這一工作。他們首先將Booch93和OMT-2統(tǒng)一起來,并于1995年10月發(fā)布了第一個公開版本,稱之為統(tǒng)一方法UM0.8(UnitizedMethod)。1995年秋,OOSE的創(chuàng)始人IvarJacobson加盟到這一工作。經(jīng)過Booch、Rumbuagh和Jacobson三人的共同努力,于1996年6月和10月分別發(fā)布了兩個新的版本,即UML0.9和UML0.91,并將UM重新命名為UML(unifiedModelingLanguage)。1996年,成立了UML成員協(xié)會,以完善、加強和促進UML的定義工作。這一機構(gòu)對UML1.0(1997年1月)及UML1.1(1997年11月17日)的定義和發(fā)布起了重要的促進作用。OMG(ObjectManagementGroup)于1997年11月正式采納UML1.1作為建模語言規(guī)范,然后成立任務(wù)組進行不斷的修訂,并產(chǎn)生了UML1.2、1.3和1.4版本,其中UML1.3是較為重要的修訂版。目前已對UML進行了重大修訂,并于2003年6月正式通過了UML2.0。UML2.0的推出是為了幫助簡化模型驅(qū)動的開發(fā),其中增強了語義部分,可幫助模型更好地生成代碼。此外,UML.20還包括增強的組件處理、對商業(yè)過程模型的支持,并更好地支持元數(shù)據(jù)交換,這一切的目的在于使UML成為一種勝過大多數(shù)文本語言的高層次語言,能直接生成代碼和進行逆向工程,甚至直接生成某些可執(zhí)行的UML模型。2.4.2UML的內(nèi)容客觀世界是一個復(fù)雜的系統(tǒng),需要從不同的角度來考察,才能真正理解這個系統(tǒng)。為了能支持從不同角度來考察系統(tǒng),標準建模語言UML定義了下列5類、共9種模型圖:第一類是用例圖,從用戶角度描述系統(tǒng)功能,并指出各功能的操作者[29]。第二類是靜態(tài)圖(Staticdiagram),包括類圖、對象圖和包圖。其中類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的。對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。它們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)的某一時段存在。包由包或類組成,表示包與包之間的關(guān)系。包圖可描述系統(tǒng)的分層結(jié)構(gòu)。第三類是行為圖(Behaviordiagram),描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。其中狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補充。在實用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個狀態(tài)其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖。而活動圖描述滿足用例要求所要進行的活動以及活動間的約束關(guān)系,有利于識別并行活動。第四類是交互圖(Interactivediagram),描述對象間的交互關(guān)系。其中順序圖顯示對象之間的動態(tài)合作關(guān)系,它強調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互;合作圖描述對象間的協(xié)作關(guān)系,合作圖同順序圖相似,顯示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,合作圖還顯示對象以及它們之間的關(guān)系。如果強調(diào)時間和順序,則使用順序圖;如果強調(diào)上下級關(guān)系,則選擇合作圖。這兩種圖合稱為交互圖。第五類是實現(xiàn)圖(Implementationdiagram)。其中構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。一個部件可能是一個資源代碼部件、一個二進制部件或一個可執(zhí)行部件。它包含邏輯類或?qū)崿F(xiàn)類的有關(guān)信息。部件圖有助于分析和理解部件之間的相互影響程度。配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。它可以顯示實際的計算機和設(shè)備(用節(jié)點表示)以及它們之間的連接關(guān)系,也可顯示連接的類型及部件之間的依賴性。在節(jié)點內(nèi)部,放置可執(zhí)行部件和對象以顯示節(jié)點與可執(zhí)行軟件單元的對應(yīng)關(guān)系。從應(yīng)用的角度看,當采用面向?qū)ο蠹夹g(shù)設(shè)計系統(tǒng)時,首先是描述需求;其次根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu);第三步是描述系統(tǒng)的行為。其中在第一步與第二步中所建立的模型都是靜態(tài)的,包括用例圖、類圖(包含包)、對象圖、組件圖和配置圖等五個圖形,是標準建模語言UML的靜態(tài)建模機制。其中第三步中所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時的時序狀態(tài)或交互關(guān)系。它包括狀態(tài)圖、活動圖、順序圖和合作圖等四個圖形,是標準建模語言UML的動態(tài)建模機制。因此,標準建模語言UML的主要內(nèi)容也可以歸納為靜態(tài)建模機制和動態(tài)建模機制兩大類。2.4.3UML的應(yīng)用領(lǐng)域UML在各個行業(yè)都得到了廣泛的應(yīng)用,并迅速成為了一個事實上的工業(yè)標準,它成為人們用來為各種系統(tǒng)建模、描述系統(tǒng)架構(gòu)、商業(yè)架構(gòu)和商業(yè)過程的統(tǒng)一工具。UML之所以得到普及的主要原因不外乎以下幾點:①UML是國際統(tǒng)一的標準,用它表示的產(chǎn)品符合國際標準,產(chǎn)品能夠得到廣泛的認可。②作為國際標準,國際軟件業(yè)和商業(yè)對UML的支持也相當普遍,因而采用它將可以得到最廣泛的技術(shù)支持和工具支持。③UML采用圖的形式來表述系統(tǒng)的視圖,圖形化易于理解的優(yōu)勢使得不同知識背景的客戶用戶、領(lǐng)域?qū)<?、系統(tǒng)分析以及開發(fā)人員可以方便的交流。④UML是一種標準的表示方法,任何方或者過程都可以采用UML,它與具體的方法和過程無關(guān),具有通用性。⑤UML具有良好的可擴展性,可適用到不同的領(lǐng)域,在具有通用性的同時還具有使自身專用化的能力。⑥UML與最好的軟件實踐經(jīng)驗集成,其自身雖然沒有表述任何方法或過程,但是卻要求使用它的過程具有以下的特征:以架構(gòu)為中心、用例驅(qū)動、支持迭代和遞增地開發(fā)。這些特征體現(xiàn)了軟件開發(fā)的成功經(jīng)驗。⑦UML對軟件設(shè)計和分析實踐中涌現(xiàn)出來的新思想和新方法提供了很好的支持,它支持模式、框架和組件等概念,提供從“概念模型到當前代碼”的可跟蹤性。第3章系統(tǒng)需求和功能分析3.1系統(tǒng)需求分析醫(yī)院原來使用的是傳統(tǒng)的二層的C/S模式,系統(tǒng)分為客戶端和服務(wù)器端部分,這種結(jié)構(gòu)帶來了“胖客戶端”現(xiàn)象及隨之而來的管理、維護困難等缺點,工作內(nèi)容繁瑣、工作量大,容易出現(xiàn)差錯;不能及時的對藥品的流動進行管理,并且不能為會計核算、管理決策等提供精確的有價值的統(tǒng)計數(shù)據(jù)。老式的管理己不能滿足現(xiàn)在的形式,計算機管理的適時出現(xiàn)有效的緩解了這一矛盾。特別是在大型醫(yī)院的管理中,計算機管理己顯示出它的及時高效性,使其在激烈的競爭中把握更多的機遇,爭取更多的利潤[30,31]。對軟件的需求是具有基本的瀏覽功能(能提供用戶瀏覽所需的信息)、查詢功能(可以根據(jù)輸入條件查詢與其相關(guān)的記錄)、插入功能(實現(xiàn)新記錄插入)、修改功能(對錯誤記錄進行更正)和刪除功能。對于用戶界面,采用人機交互方式,多功能窗口運行。正常使用時不應(yīng)出錯,當用戶的輸入錯誤時應(yīng)給出適當?shù)母崾尽H暨\行時遇到不可恢復(fù)的系統(tǒng)錯誤,也必須保證數(shù)據(jù)庫完好無損。系統(tǒng)要求具有嚴密的安全體系,以相應(yīng)的權(quán)限來管理不同的用戶,登錄時使用相應(yīng)的用戶名和密碼,嚴格控制對數(shù)據(jù)和程序的訪問和修改,以保證數(shù)據(jù)的不必要刪除和篡改。能夠根據(jù)采購、出庫和調(diào)價準確地處理藥品的賬目。同時由于嚴格的計算機管理,排除了人為的浪費問題。藥品進貨查詢,藥品銷貨查詢,貴重藥品查詢等,以圖表的形式給出藥品在一定時期內(nèi)的進出情況。3.2系統(tǒng)組織結(jié)構(gòu)分析3.2.1HIS組織分析HIS涉及醫(yī)院的方方面面,涵蓋病人來院就診的各個環(huán)節(jié)。各部分之間的信息聯(lián)系錯綜復(fù)雜,它們各自的功能也是相互依存[32]。鄭州大學(xué)第一附屬醫(yī)院有著完善的組織結(jié)構(gòu),每一個組織結(jié)構(gòu)都有其必要的職能,藥品管理在整個醫(yī)院的信息管理系統(tǒng)中扮演著不可缺少的角色。主要組織結(jié)構(gòu)如圖3-1所示:圖3-1HIS系統(tǒng)組織結(jié)構(gòu)3.2.2藥品管理系統(tǒng)組織分析藥品的管理主要是在藥房管理系統(tǒng)和藥庫管理系統(tǒng)間進行的,這里統(tǒng)稱為藥品管理系統(tǒng)。藥庫管理分為西藥庫、中藥庫,藥房管理分為:門診藥房管理系統(tǒng)、住院藥房管理系統(tǒng)。系統(tǒng)組織結(jié)構(gòu)如圖3-2所示:圖3-2藥品管理系統(tǒng)組織結(jié)構(gòu)3.3系統(tǒng)實現(xiàn)的功能藥品管理系統(tǒng)主要涉及藥庫和各類藥房(藥房分門診中、西藥房和住院病區(qū)住院藥房)之間藥品的進、銷、存等業(yè)務(wù),并且和門診計價、收費等有著密切的關(guān)系。藥庫和藥房之間雖有聯(lián)系,但又相互獨立,藥品管理系統(tǒng)主要管理醫(yī)院所有藥品的出入和內(nèi)部統(tǒng)計計算,為藥品會計提供基礎(chǔ)數(shù)據(jù),同時包括對所有藥品有效期的管理。藥品管理系統(tǒng)應(yīng)具備以下功能:(1)實時動態(tài)數(shù)據(jù)處理,對全院藥房提供動態(tài)的藥品數(shù)據(jù)。(2)網(wǎng)絡(luò)數(shù)據(jù)共享,藥品管理系統(tǒng)并入醫(yī)院網(wǎng)絡(luò)系統(tǒng)后,使藥品管理系統(tǒng)與其他相關(guān)系統(tǒng)進行數(shù)據(jù)共享。(3)對藥品的有效期實施了真正行之有效的報警管理和報廢管理。(4)優(yōu)化管理,可以使藥品庫存得到最優(yōu)化的管理,使庫存損耗降低到最小程度,實現(xiàn)庫存自動報警。(5)豐富的查詢功能輸出,可以及時得到有關(guān)藥品的大量信息。(6)一條龍管理,從最初的采購入庫到發(fā)藥到藥房到賣給病人,實現(xiàn)自動監(jiān)控調(diào)價等處理。3.4醫(yī)院藥品管理業(yè)務(wù)流程醫(yī)院本著為患者服務(wù)的精神,就診環(huán)節(jié)中以患者方便為前提,在醫(yī)院管理系統(tǒng)的設(shè)計中也充分體現(xiàn)了以病人為中心的意圖,各功能子模塊之間良好的銜接,為患者提供了方便、快捷的就診環(huán)境。藥品管理是醫(yī)院管理系統(tǒng)不可分割的一部分,涉及就診的很多環(huán)節(jié),藥品管理系統(tǒng)在HIS系統(tǒng)中的所處的重要地位在圖3-3中體現(xiàn):圖3-3藥品管理系統(tǒng)在HIS中的位置圖
第4章醫(yī)院藥品管理系統(tǒng)功能設(shè)計醫(yī)院信息系統(tǒng)中的藥品管理部分主要包括藥庫管理,門診藥房管理和住院藥房管理三大部分,通過對功能模塊的操作實現(xiàn)藥品、制劑的入庫,出庫,調(diào)價,盤點,退藥,退庫,報損,單據(jù)審核,查詢與統(tǒng)計等功能;藥品管理系統(tǒng)與住院系統(tǒng),門診系統(tǒng)互聯(lián),做到全院共享藥品代碼,并定期對藥品、制劑進行綜合作價處理,實現(xiàn)全院藥品價格的中央控制。藥品管理功能設(shè)計示意圖如下:圖4-1藥品管理系統(tǒng)功能設(shè)計示意圖藥品管理部分負責全院藥品的進出以及使用等情況,該部分要確保藥品信息在整個HIS體系中的流通順暢,因此,設(shè)計時要更多地從整體上來把握該部分。4.1藥庫管理系統(tǒng)設(shè)計藥庫管理子系統(tǒng)主要用于中、西藥庫藥品管理,建立全院共享的藥品字典、目錄;藥品入庫,藥品出庫,藥房退藥,藥品退庫,藥品計劃等,單據(jù)查詢、藥品信息查詢,統(tǒng)計報表等。該部分與藥房管理子系統(tǒng)以及醫(yī)院中涉及到藥品進出的各個科室緊密聯(lián)系。設(shè)計時,要兼顧到全院藥品信息的統(tǒng)一,以及藥品數(shù)據(jù)的完整性。藥庫系統(tǒng)包括3種用戶,分別是藥庫保管員、藥庫財務(wù)人員和系統(tǒng)管理員。藥庫系統(tǒng)還承擔著與藥房之間的通信,主要是接受藥房的領(lǐng)藥單并在確認后返還給藥房。下面為藥庫部分需求分析用例圖:圖4-2藥庫部分需求分析用例圖4.2門診藥房管理系統(tǒng)設(shè)計4.2.1功能設(shè)計門診藥房管理子系統(tǒng)主要用于門診中西藥房藥品管理,主要包括藥品領(lǐng)藥管理,藥品發(fā)藥管理,藥品盤點管理,窗口配藥管理,藥品損耗管理,處方統(tǒng)計分析等。該子系統(tǒng)功能設(shè)計如下:(1)系統(tǒng)維護:提供用戶密碼修改,以及系統(tǒng)管理員管理用戶和設(shè)置用戶角色等功能。提供藥房系統(tǒng)的基本編碼維護。(2)門診處方取藥:實現(xiàn)藥房發(fā)藥,病人退藥等功能。(3)病區(qū)處方取藥:主要實現(xiàn)病區(qū)領(lǐng)藥、出院帶藥、病區(qū)退藥。(4)藥品管理:包括藥品調(diào)撥請求、藥品報損、藥品退還藥庫、接受藥品調(diào)撥、藥品借藥錄入。(4)藥品查詢:可以對藥房管理的基本操作按指定條件查詢,并可對藥品銷售以及處方進行查詢,統(tǒng)計醫(yī)生所開處方量。(5)統(tǒng)計報表:按指定需求生成藥品相關(guān)的當班取藥報表、藥房日取藥報表、藥品出入庫報表、病區(qū)用藥金額統(tǒng)計報表、藥品申請調(diào)撥計劃單等并在數(shù)據(jù)庫中生成相應(yīng)數(shù)據(jù)的匯總記錄。(6)系統(tǒng)工具:主要提供整個系統(tǒng)的各菜單功能及操作說明的聯(lián)機幫助。4.2.2功能實現(xiàn)藥房藥品入庫:當藥房通過庫存報警輔助功能或使用庫存查詢功能發(fā)現(xiàn)某種藥品的庫存量小,希望進行入庫操作時,使用請領(lǐng)入庫功能的新建單據(jù)部分,手工錄入請領(lǐng)入庫單,并通過計算機網(wǎng)絡(luò)傳遞給藥庫管理系統(tǒng)。當藥庫接收到藥房請領(lǐng),并依據(jù)藥庫庫存情況形成出庫單后,藥房可以通過計算機網(wǎng)絡(luò)在領(lǐng)藥確認功能中找到相應(yīng)的出庫單信息,并通過該功能進行確認,一旦確認入庫后,將不能再進行更改操作。并且藥房藥庫的庫存將發(fā)生改變。藥房藥品出庫:處方確認是藥房最主要的工作,處方分門診處方和住院處方,門診處方用于門診藥品管理系統(tǒng)的發(fā)藥確認,因我院采用的是后臺人員按后臺計算機自動打印處方取藥、前臺人員叫名核對發(fā)藥的模式,門診藥品管理系統(tǒng)處方分后臺計算機取藥??旌颓芭_計算機核對發(fā)藥模塊,處方在系統(tǒng)中顯示,只有核對發(fā)藥后才減庫存;住院處方為根據(jù)不同住院醫(yī)囑產(chǎn)生的各種藥品單,分為統(tǒng)領(lǐng)單、口服長期擺藥單、臨時藥品單、退藥單、首次擺藥單、基數(shù)藥單、出院處方單、毒麻藥品單等,前兩者分別指長期醫(yī)囑的非口服藥和口服藥。病區(qū)、醫(yī)技科室、手術(shù)室等提交的各類藥品單在住院藥房可于系統(tǒng)的處方確認模塊中顯示,藥房按處方號或藥品單號確認發(fā)藥,確認后自動減庫存。對于已經(jīng)確認發(fā)藥的藥品單,用戶也可以進行查詢。以查詢待發(fā)藥處方為例,說明一下三層C/S結(jié)構(gòu)在藥品管理系統(tǒng)中的應(yīng)用。其對應(yīng)類圖如圖4-3所示,對應(yīng)的序列圖如圖4.4所示。在圖4.3中,發(fā)藥窗口類屬于表示層的客戶端窗口類,負責提供操作界面,用以顯示相關(guān)信息、執(zhí)行發(fā)藥操作等;發(fā)藥窗口類因為需要訪問待發(fā)藥處方數(shù)據(jù)而關(guān)聯(lián)到待發(fā)藥處方表類;待發(fā)藥處方表類的對象中包含由處方類對象組成的數(shù)組,用以保存查詢結(jié)果;“待發(fā)藥處方”類中的“查詢發(fā)藥處方”方法使用“待發(fā)藥處方查詢”類中的方法訪問數(shù)據(jù)庫。圖4-3查詢待發(fā)藥處方類圖圖4-4查詢待發(fā)藥處方序列圖從圖4-3、圖4-4可以看出,表示層的發(fā)藥窗口對象調(diào)用業(yè)務(wù)實體層的待發(fā)藥處方表對象的查詢待發(fā)藥處方函數(shù);在查詢待發(fā)藥處方函數(shù)中,調(diào)用數(shù)據(jù)訪問層的待發(fā)藥處方查詢對象的執(zhí)行查詢函數(shù);在發(fā)擺藥處方查詢對象的執(zhí)行查詢函數(shù)中,根據(jù)對象的存儲過程私有屬性調(diào)用對應(yīng)的數(shù)據(jù)庫儲存過程,并將查詢結(jié)果轉(zhuǎn)化為處方數(shù)組返回。4.3住院藥房管理系統(tǒng)設(shè)計4.3.1功能設(shè)計住院藥房管理子系統(tǒng)主要用于病區(qū)藥房藥品管理,藥品出入庫管理,領(lǐng)藥管理,藥品庫存與盤點管理,接收病區(qū)傳來的藥品醫(yī)囑、并進行擺藥管理(生成擺藥單,支持按日期、病區(qū)、藥品類別、醫(yī)囑類別等多種擺藥方式),藥品費用信息自動傳送到住院收費子系統(tǒng),自動扣除住院押金,還可進行藥品消耗管理,醫(yī)囑處方用藥統(tǒng)計分析等。該子系統(tǒng)功能設(shè)計如下:(1)系統(tǒng)維護:提供用戶密碼修改,以及系統(tǒng)管理員管理用戶以及設(shè)置角色等功能。(2)藥房管理:包括申請藥品、進藥計劃、藥品入庫、藥品退庫、藥品調(diào)撥、藥品盤點、藥品報損、庫存報警、有效期報警。(3)病區(qū)管理:主要實現(xiàn)病區(qū)領(lǐng)藥、出院帶藥、病區(qū)退藥。(4)查詢統(tǒng)計:包括庫存查詢、入庫查詢、退庫查詢、調(diào)撥查詢、損耗查詢、病區(qū)領(lǐng)藥查詢、病區(qū)退藥查詢、藥品申請查詢、患者領(lǐng)藥查詢、患者押金查詢。(5)財務(wù)報表:按指定需求生成藥品相關(guān)的日報、月報、年報以及任意時間段中的藥品報表,并在數(shù)據(jù)庫中生成相應(yīng)數(shù)據(jù)的匯總記錄。(6)系統(tǒng)維護:提供藥庫系統(tǒng)的基本編碼維護。(7)系統(tǒng)幫助:主要提供整個系統(tǒng)的各菜單功能及操作說明的聯(lián)機幫助。4.3.2功能實現(xiàn)通過對醫(yī)院的實際調(diào)查分析,理順了醫(yī)院藥房藥庫工作的業(yè)務(wù)流程和具體內(nèi)容。根據(jù)藥房藥庫的工作特點和具體的工作需求,將藥房藥庫管理系統(tǒng)的業(yè)務(wù)流程分析如下:(l)日常工作中,當藥房藥品發(fā)生短缺時,藥房一般要通過請領(lǐng)入庫功能向藥庫申請領(lǐng)藥,并將申請領(lǐng)藥藥品品種和數(shù)量等信息通過計算機網(wǎng)絡(luò)傳送到藥庫,藥庫根據(jù)庫存情況確定向藥房發(fā)放藥品的品種和數(shù)量等信息,藥房查收藥品后,使用領(lǐng)藥確認功能對收到藥品進行入庫確認,計入藥房庫存數(shù)量,使能在窗口發(fā)放。(2)當從醫(yī)院內(nèi)部其他藥房或科室調(diào)入藥品時,查收藥品后手工錄入藥品品種和數(shù)量等信息使用調(diào)入確認功能確認入庫,計入藥房庫存數(shù)量,使能在窗口發(fā)放。(3)由于某些原因需要將藥房的部分藥品退返藥庫時,藥房先向藥庫提出退藥申請,當藥庫通過退藥功能模塊手工錄入退藥單后,藥房通過退藥確認模塊可以獲得相關(guān)退藥信息,并且把退藥信息與現(xiàn)實生活中退還給藥庫的信息進行核對,核對無誤后進行退藥確認。確認后庫存信息發(fā)生改變,增加藥庫的庫存,沖減藥房的庫存。確認以后,本次退藥的藥品數(shù)量,收款處不能再用于計價收費。(4)當從藥房往其他藥房或科室調(diào)撥藥品時,使用調(diào)出功能錄入調(diào)出藥品信息。(5)當庫存盤點發(fā)現(xiàn)實際庫存與帳面庫存不符,允許做盤盈和盈虧處理時,使用盤盈或盤虧功能將藥品盤盈或盈虧信息錄入計算機,增加或沖減藥房庫存。(6)當藥房的藥品發(fā)生損壞需做報廢處理時,使用報廢功能,沖減藥房庫存。(7)當由于其他特殊原因引起藥房藥品庫存數(shù)量發(fā)生變化(例如借、還)時,使用其他入庫或其他出庫功能進行其他入出庫處理,從而增加或沖減藥房庫存。(8)所有藥品的入庫、出庫、盈虧、報廢數(shù)據(jù)等都由計算機記帳,平時可以查詢各種記帳單據(jù)和藥品庫存,定期打印各種帳頁和統(tǒng)計報表??梢酝ㄟ^庫存查詢功能來確定藥品是否需要請領(lǐng)入庫,并且可以使用庫存報警功能列出藥房中當前庫存數(shù)量小于預(yù)先設(shè)置的庫存警戒數(shù)量的藥品信息,起到警示作用。可以將列出的報警信息打印輸出來。可以使用藥品變質(zhì)查詢功能,對變質(zhì)藥品或?qū)⒆冑|(zhì)藥品提高警惕,作出相應(yīng)的處理。藥品的進貨、儲存、銷售主要是在藥庫和藥房之間發(fā)生的,之間涉及多種出入庫形式為了能更直觀的理解,將其以圖表的形式表達。藥房藥品的出入庫業(yè)務(wù)流程如圖4-5所示:圖4-5住院藥房藥品出入庫流程第5章系統(tǒng)數(shù)據(jù)庫設(shè)計5.1數(shù)據(jù)庫設(shè)計原則數(shù)據(jù)庫的設(shè)計是指數(shù)據(jù)庫中各個表結(jié)構(gòu)的設(shè)計,包括信息保存在哪些表格中、各個表的結(jié)構(gòu)如何及各個表之間的關(guān)系。數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)的關(guān)鍵,不同的設(shè)計方案將影響數(shù)據(jù)的訪問方式及編程效率,數(shù)據(jù)庫設(shè)計要遵循以下原則[33-36]:(1)一致性原則:對數(shù)據(jù)進行系統(tǒng)、統(tǒng)一的分析與設(shè)計,協(xié)調(diào)好各數(shù)據(jù)源,做到“數(shù)出一門”、“算法統(tǒng)一”、“度量一致”,保證系統(tǒng)數(shù)據(jù)的一致性和有效性。(2)完整性原則:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。要防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫加入不合語義的數(shù)據(jù)。對輸入到數(shù)據(jù)庫中的數(shù)據(jù)要有審核和約束機制。(3)安全性原則:數(shù)據(jù)庫的安全性是指保戶數(shù)據(jù),防止非法用戶使用數(shù)據(jù)庫或合法用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞,要有認證和授權(quán)機制。(4)可伸縮性原則:數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計應(yīng)充分考慮發(fā)展的需要、移植的需要、具有良好的擴展性、伸縮性和適度冗余。(5)規(guī)范化原則:數(shù)據(jù)庫的設(shè)計應(yīng)遵循規(guī)范化理論,規(guī)范化程度過低的關(guān)系,可能會存在插入、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題,解決的方法就是對關(guān)系模式進行分解或合并(規(guī)范化),轉(zhuǎn)換成高級范式。5.2SQLServer2000關(guān)系數(shù)據(jù)庫的約束在數(shù)據(jù)庫管理系統(tǒng)中,建立和使用約束的目的是確保數(shù)據(jù)的完整性,約束是SQLSeverer強制實行的應(yīng)用規(guī)則[37-38]。它能夠限制用戶存放到表中數(shù)據(jù)的格式和可能值,約束作為數(shù)據(jù)庫定義的一部分在CREATETABEL語句中聲明,所以又稱作聲明完整性約束。約束獨立于表結(jié)構(gòu),可以在不改變表結(jié)構(gòu)情況下,通過ALTERTABLE語句來添加或者刪除。在刪除一個表時,該表所帶的所有約束定義也隨之被刪除。在SQLSeverer中約束主要包括以下幾種:(1)PRIMARYKEY:主鍵約束(2)FOREIGNKEY:外鍵約束(3)UNIQUE:惟一約束(4)CHECK:檢查約束(5)DEFAUL:DEFAULT約束PRIMARYKEY(主鍵)約束:主鍵約束用來強制數(shù)據(jù)的實體完整性,它是在表中定義一個主鍵來唯一標識表中的每行記錄。主鍵約束有如下特點:每個表中只能有一個主鍵,主鍵可以是一列,也可以是多列的組合;主鍵值必須唯一并且不能為空,對于多列組合的主鍵,某列值可以重復(fù),但列的組合值必須唯一。FOREIGNKEY(外健)約束:外鍵是指一個表中的一列或列組合,它雖不是該表的主鍵,但卻是另一個表的主鍵。通過外鍵約束可以為相關(guān)聯(lián)的兩個表建立聯(lián)系,實現(xiàn)數(shù)據(jù)的引用完整性,維護兩表之間數(shù)據(jù)的一致性關(guān)系。UNIQUE(惟一)約束:唯一約束用來強制數(shù)據(jù)的實體完整性,它主要用來限制表的非主鍵列中不允許輸入重復(fù)值。唯一約束有如下特點:一個表中可以定義多個唯一約束;每個唯一約束可以定義到一列上,也可以定義到多列上;空值可以出現(xiàn)在某列中一次。CHECK(檢查)約束:檢查約束用來強制數(shù)據(jù)的域完整性,它使用邏輯表達式來限制表中的列可以接受哪些數(shù)據(jù)值。DEFAULT(默認)約束:默認約束用來強制數(shù)據(jù)的域完整性,它為表中某列建立一個默認值,當用戶插入記錄時,如果沒有為該列提供輸入值,則系統(tǒng)會自動將默認值賦給該列。默認值可以是常量、內(nèi)置函數(shù)或表達式。使用默認約束可以提高輸入記錄的速度。5.3藥品管理部分數(shù)據(jù)表格的設(shè)計按照上文提出的數(shù)據(jù)庫設(shè)計原則,醫(yī)院藥品管理系統(tǒng)的數(shù)據(jù)表設(shè)計嚴格遵守了關(guān)系數(shù)據(jù)庫表的約束以及規(guī)范化設(shè)計等要求,盡可能的采用了三范式標準。限于篇幅原因,藥品管理部分只給出以下一個數(shù)據(jù)表的設(shè)計:表5-1藥品存儲信息表(Drug_base_info)字段中文名稱字段名屬性說明藥品代碼Drug_codechar藥品名的唯一標識藥品名稱Drug_namechar藥品的標準名稱藥品規(guī)格Drug_specchar藥品的含量信息單位Unitschar對應(yīng)劑型及規(guī)格的最小單位如片支等劑型Drug_formchar如針劑、片劑等毒理分類Toxi_propritychar如普通、毒麻、精神等最小劑量單位Dose_per_unitdouble每一最小不可分的包裝單位劑量單位Dose_unitschar劑量的單位如ml、mg等生產(chǎn)日期Drug_product_dateint失效日期Drug_fail_dateint庫存量Storageint藥庫或藥房現(xiàn)有的藥品數(shù)量批發(fā)價Wholesale_pricedouble零售價Retail_pricedouble有效期報警天數(shù)Available_limitint藥品存儲信息表用于記錄全院各個藥房(包括涉及到藥品流通的部門)藥品儲備的相關(guān)基本信息.表5-2藥品庫存表Drug_storage_profile字段中文名稱字段名屬性說明庫房Storagechar庫房代碼藥品代碼Drug_codechar由藥品字典定義的代碼規(guī)格Drug_specchar由藥品字典定義的規(guī)格單位Unitschar對應(yīng)劑型及規(guī)格常規(guī)包裝數(shù)量Amount_pre_packageint使用規(guī)范名稱常規(guī)包裝單位Package_unitschar計量單位字典高位水平Upper_evelint庫存水平限制,達到該限制時停止采購低位水平Low_levelint庫存水平限制,低于該限制時開始采購庫房存放Sub_storageint該藥品對應(yīng)的庫存管理單位內(nèi)的存放5.4系統(tǒng)數(shù)據(jù)分析5.4.1數(shù)據(jù)流程分析數(shù)據(jù)流程圖是一種能全面地描述信息系統(tǒng)邏輯模型的主要工具,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)流程圖具有抽象性和概括性。通過調(diào)研繪制出系統(tǒng)的數(shù)據(jù)流程圖,系統(tǒng)數(shù)據(jù)流程圖如下:圖5-1管理系統(tǒng)數(shù)據(jù)流程圖5.4.2數(shù)據(jù)存儲分析系統(tǒng)設(shè)計的開始,首先考慮的是如何用數(shù)據(jù)模型把現(xiàn)實世界的實體和其間的各種關(guān)系抽象出來。目前廣泛使用的數(shù)據(jù)模型可分為兩種類型,一種是獨立于計算機系統(tǒng)的“概念數(shù)據(jù)模型”,如“實體聯(lián)系模型(EntityRelationship,E-R)”;另一種是直接面向數(shù)據(jù)庫邏輯結(jié)構(gòu)的“結(jié)構(gòu)數(shù)據(jù)模型”。在本系統(tǒng)中采用“實體聯(lián)系模型”(E-R模型)來描述數(shù)據(jù)庫的結(jié)構(gòu)與語義,以對現(xiàn)實世界進行第一次抽象。E-R模型直接從現(xiàn)實世界抽象出實體類型及實體間聯(lián)系,然后用E-R圖來表示數(shù)據(jù)模型。它有兩個明顯的優(yōu)點:接近于人的思維,容易理解;與計算機無關(guān),用戶容易接受。但E-R模型只能說明實體間語義的聯(lián)系,不能進一步說明詳細的數(shù)據(jù)結(jié)構(gòu),它只是數(shù)據(jù)庫設(shè)計的第一步,藥品管理系統(tǒng)的E-R圖如圖所示:圖5-2藥品管理系統(tǒng)E-R圖5.5窗口界面設(shè)計為了充分滿足用戶對界面的需求,我們?yōu)檐浖O(shè)計了友好的界面,統(tǒng)一的風格更為用戶的使用此軟件更加自然、方便。下面將具體說明界面設(shè)計的特點。本系統(tǒng)統(tǒng)一使用的界面風格包括作業(yè)對象確定區(qū)(select區(qū))、作業(yè)對象編輯區(qū)(edit區(qū))和控制區(qū)(control區(qū))。作業(yè)對象確定區(qū),又稱Select區(qū),該區(qū)用于確定本次作業(yè)對象,一般是通過輸入或選擇作業(yè)對象的關(guān)鍵字來確定作業(yè)對象。關(guān)鍵字應(yīng)允許直接輸入和選擇兩種方式并存。本區(qū)活動時,允許輸入選擇作業(yè)對象,作業(yè)對象編輯區(qū)應(yīng)處于休眠狀態(tài),即不允許輸入數(shù)據(jù)或輸入數(shù)據(jù)無效。作業(yè)對象編輯區(qū)(edit區(qū))用于編輯作業(yè)對象。Select區(qū)選擇確定一個工作對象后,select區(qū)休眠(不再允許數(shù)據(jù)改動),edit區(qū)活動,工作人員在該區(qū)進行數(shù)據(jù)編輯等工作。工作完成后,使用控制區(qū)”保存”按鈕,將edit區(qū)休眠,select區(qū)重新活動??刂茀^(qū),又稱control區(qū),該區(qū)提供各種按鈕,控制程序運行,一般的,程序應(yīng)提供如下標準按鈕,另根據(jù)需要可以增加其他按鈕。在系統(tǒng)色彩方面,程序(不含圖形查詢程序),均以灰色(Gray)作底色,文字使用黑色(Black)顯示。此色彩搭配可以盡可能減輕操作員長期在計算機前工作時眼睛疲勞狀況。Graphics圖形程序,以圖形反映數(shù)據(jù)情況,目的在于觀察數(shù)據(jù)時直觀、方便,此類程序以灰色作底色,圖形使用鮮艷色彩,突出直觀效果。此外,窗口、數(shù)據(jù)窗口以及各種控件都繼承超類,以保證其統(tǒng)一性。數(shù)據(jù)窗口既是數(shù)據(jù)庫操作工具,又是界面的重要組成部分。數(shù)據(jù)窗口PowerBuilder提供給開發(fā)人員的快速建立應(yīng)用程序的強有力的工具,也是PowerBuilder與其他面向?qū)ο蟮臄?shù)據(jù)庫應(yīng)用前端開發(fā)工具的最主要區(qū)別。它以自動化的用戶/數(shù)據(jù)庫接口為開發(fā)人員最大限度的節(jié)省了時間和精力,但這種自動化并不限制開發(fā)人員的主觀能動性,開發(fā)者能夠以獨具特色的方式靈活運用數(shù)據(jù)窗口。數(shù)據(jù)窗口包括兩方面的內(nèi)容:數(shù)據(jù)窗口對象和數(shù)據(jù)窗口控件。數(shù)據(jù)窗口對象主要用于展示數(shù)據(jù)并允許用戶增刪改數(shù)據(jù),數(shù)據(jù)窗口控件則把數(shù)據(jù)窗口對象放置到窗口上并呈現(xiàn)在用戶面前。藥品管理部分的各個子系統(tǒng)實現(xiàn)大量的使用到數(shù)據(jù)窗口技術(shù),通過數(shù)據(jù)窗口,藥品信息管理系統(tǒng)完成數(shù)據(jù)庫中藥品信息的表格數(shù)據(jù)的顯示和變更。在需要顯示數(shù)據(jù)庫數(shù)據(jù)源的窗口中可以方便的定制各種數(shù)據(jù)窗口對象顯示風格來滿足不同用戶需求,從而進行數(shù)據(jù)行的增加、刪除和更改:此外,在不需要顯示數(shù)據(jù)庫中數(shù)據(jù)的時候,還可以利用數(shù)據(jù)窗口對象和數(shù)據(jù)存儲對象,在應(yīng)用程序中實現(xiàn)對數(shù)據(jù)的檢索、刪除和更改等操作。一個數(shù)據(jù)窗口對象可以封裝復(fù)雜的SQL語句,因此使程序的編寫更加方便和容易。
第6章醫(yī)院信息系統(tǒng)中藥品管理系統(tǒng)的具體實現(xiàn)藥品管理部分的實現(xiàn)主要包括藥庫管理子系統(tǒng)、門診藥房管理子系統(tǒng)、住院藥房管理子系統(tǒng)的實現(xiàn)。這三個管理子系統(tǒng)既為獨立完整的子系統(tǒng)又相互關(guān)聯(lián)相互影響,從而確保藥品信息在全院各個部門的順利通信。本文以西藥庫管理系統(tǒng)為例詳細講述藥品管理系統(tǒng)的實現(xiàn)。6.1藥庫系統(tǒng)菜單功能介紹菜單項關(guān)聯(lián)系統(tǒng)的各個子功能,是每個功能模塊的接口。菜單項示意圖如下所示:圖6-1西藥庫管理系統(tǒng)菜單示意圖①系統(tǒng)維護:有藥典設(shè)置,淘汰藥典設(shè)置,淘汰藥典信息查詢,藥品價格修改等等。用于登陸用戶修改密碼,系統(tǒng)管理員可以通過該項對用戶信息進行修改、刪除、添加,以及為每一個用戶重新分配角色。②藥品入庫:有藥品庫存錄入,核對入庫單據(jù),核對單據(jù)查詢、藥品退還廠家藥品借出退還,藥品入庫同時填寫藥品的相應(yīng)基本信息。③藥品出庫:有藥房藥品調(diào)撥單錄入,其它部門調(diào)撥單錄入、藥房藥品調(diào)撥等,辦理藥品從庫房開出到醫(yī)院各個藥房。④藥品調(diào)整:有藥品信息修改,藥品信息修改記錄查詢等等,辦理藥品在醫(yī)院各個部門間的調(diào)整。⑤數(shù)據(jù)查詢:有藥品說明錄入,藥品供貨單位名片、單位庫存查詢、效期藥品查詢等等,提供各種有關(guān)藥品的相關(guān)查詢。⑥報表統(tǒng)計:有藥品入庫統(tǒng)計表,藥品出庫統(tǒng)計表,藥品領(lǐng)取出庫匯總表、藥品調(diào)價記錄、金額匯總帳表等,統(tǒng)計所有有關(guān)藥品出入的信息。⑦批量調(diào)價:對大批的藥品進行統(tǒng)一調(diào)價。6.2系統(tǒng)主要功能模塊的實現(xiàn)6.2.1系統(tǒng)維護功能的實現(xiàn)1、系統(tǒng)權(quán)限設(shè)置系統(tǒng)登錄主要用于對登錄藥房藥庫管理系統(tǒng)的用戶進行安全性檢查,以防止非法用戶登錄該系統(tǒng)。根據(jù)給用戶分配的權(quán)限,登錄用戶可以根據(jù)自己所具有的權(quán)限操作系統(tǒng)中相應(yīng)的功能。在登錄系統(tǒng)時,要求用戶輸入密碼進行身份驗證,并且只允許進行三次密碼輸入嘗試,如果三次都輸入錯誤,則關(guān)閉登錄窗口,不允許用戶登錄。該部分中,系統(tǒng)管理員可以為系統(tǒng)添加、刪除、修改用戶信息,并可通過雙擊某一用戶信息為用戶添加不同的角色信息,用戶可以擁有同一系統(tǒng)下的一個或多個角色。圖為是藥劑科操作員權(quán)限設(shè)置,操作員可以對圖中復(fù)選框中的多個選項進行修改。圖6-2用戶操作權(quán)限示意圖2、藥典設(shè)置設(shè)置入庫藥品的所有信息,包括藥品名,藥品編碼、最小單位規(guī)格、藥理作用、進價、零售價、生產(chǎn)廠商等等。其中注意事項為:藥品的通用(化學(xué))名稱、類別、劑型不能為空。編寫藥品名稱時藥品名稱采用國家統(tǒng)一的藥品化學(xué)名稱,在化學(xué)名稱下編寫不同廠家生產(chǎn)的商品名。系統(tǒng)涉及到許多需要輸入藥品的地方,為了簡化藥品的輸入,必須給每種藥品編碼,本文將編碼分為三部分,第一部分為藥品名稱拼音碼,即藥品名稱的每個漢語拼音的每一個字母;第二部分為分類碼,即可以根據(jù)使用的實際情況分類,例如以劑型分類,用法分類。以上兩部分編碼可能會存在重復(fù),為了確保編碼的唯一性可以在以上編碼的基礎(chǔ)上加第三部分為識別碼,識別碼可用阿拉伯數(shù)字。以下為藥品編碼設(shè)置界面:圖6-3藥品編碼設(shè)置示意圖3、藥品最低庫存設(shè)置藥庫庫存查詢除了可以按指定條件進行查詢外,還可以逐項或統(tǒng)一編輯每種藥品的庫存上下限,從而控制藥品的庫存數(shù)量在一定范圍之內(nèi)。以下是藥品最低庫存設(shè)置窗口:圖6-4藥品最低庫存設(shè)置示意圖6.2.2藥品入庫功能的實現(xiàn)藥庫對于醫(yī)院中藥品存放的單位,可以將其分解成不同的庫房,例如中藥庫西藥庫等;每個藥庫均使用自己獨立的單據(jù)系列(單據(jù)號的設(shè)置可以在庫房配置中設(shè)置)。其主要作用是對外向藥品廠家或藥品供應(yīng)商購藥;對內(nèi)向其他藥庫藥房及科室發(fā)放藥品,并對其所有的出入庫統(tǒng)計計帳。正常入庫:作為藥庫正入庫是指采購入庫,曾予入庫,科室退庫三種方式的藥品入庫方式。正常入庫藥庫從供貨商獲得藥品的主要業(yè)務(wù),是醫(yī)院藥品的倉庫。調(diào)撥入庫:調(diào)撥入庫要是指藥庫與藥房之間的藥品出入庫。入庫上帳:對所有的入庫帳單據(jù)進行上藥品入庫的相關(guān)的操作。本文拿西藥庫為例簡單介紹一下入庫:該模塊包括藥品庫存錄入、核對入庫單句、核對單句查詢、藥品退回廠家、藥品借出退還五個功能。選擇入庫類別,打開正常入庫窗口按空格或回車就可錄入“入庫方”字段,可通過提示欄信息按數(shù)字鍵或選擇上下鍵進行選擇。入庫日期,根據(jù)入庫的時間進行設(shè)置,系統(tǒng)默認的是當前的系統(tǒng)時間。空格或鼠標左鍵單擊按鈕調(diào)出藥品名稱輸入法按拼音詞頭錄入。系統(tǒng)接受到新的藥品名稱之后,將在多個藥品規(guī)格中作出選擇。如果該藥品只有一種規(guī)格,且只有一個廠家,則系統(tǒng)默認該規(guī)格,否則將出現(xiàn)一個規(guī)格廠家的選擇窗口讓用戶選擇,其中藥品庫存錄入窗口如圖所示:圖6-5藥品庫存錄入示意圖之后用戶需要手工輸入藥品的批號及藥品的有效期。系統(tǒng)接受到藥品名稱、規(guī)格、廠家信息后,將查看藥品的庫存,如果藥品的庫存中沒有該藥品的信息,將提示庫存沒有該藥品的記錄,此次操作不能完成,用戶可以按ESC鍵取消或修改輸入的信息,或者按放棄按鈕放棄該單據(jù)錄入的所有信息。當所有錄入的信息完成并且沒有錯誤是可以按保存按鈕保存該單據(jù)。增加按鈕是對于剛保存過一張入庫單據(jù)又想再開一張新的入庫單據(jù)時,不用再次打開正常入庫窗口就可以直接錄入下一張單據(jù)。保存,如果保存成功的話,入庫單據(jù)就保存到了服務(wù)器上。放棄,是取消本次單據(jù)的錄入不保存。退出,則退出本窗口。注意:操作過程中如果要取消某條信息的錄入直接按ESC即可取消,對于藥品信息的錄入如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 集成商培訓(xùn)制度
- 學(xué)校培訓(xùn)部工作制度
- 防火防爆安全培訓(xùn)制度
- 崗前培訓(xùn)持證上崗制度
- 救護培訓(xùn)管理制度
- 廣東體育培訓(xùn)制度
- 黨支部委員培訓(xùn)制度
- 血液透析培訓(xùn)制度
- 餐飲課外培訓(xùn)制度
- 安全培訓(xùn)室管理制度
- 2026年陜西省森林資源管理局局屬企業(yè)公開招聘工作人員備考題庫及參考答案詳解1套
- 承包團建燒烤合同范本
- 電力線通信技術(shù)
- 人工流產(chǎn)手術(shù)知情同意書
- 2025秋人教版七年級全一冊信息科技期末測試卷(三套)
- 教師三筆字培訓(xùn)課件
- 鋼鐵燒結(jié)機脫硫脫硝施工方案
- 英語A級常用詞匯
- 三菱FX3U系列PLC編程技術(shù)與應(yīng)用-第二章課件
- RoHS培訓(xùn)資料課件
- 協(xié)調(diào)控制系統(tǒng)
評論
0/150
提交評論