药库系统设计文档
畢業設計(論 文)
?
?
醫院藥庫管理系統設計與應用
?
?
?
?
系??? 別 | 信息與計算科學 |
專??? 業 | 信息與計算科學 |
學??? 號 | ? |
姓??? 名 | ? |
指導教師 | 劉志存 |
?
2010年05月27日
?
?
醫院藥庫管理系統設計與應用
摘??? 要
本論文主要闡述了醫院藥庫管理系統的作業流程以及系統設計。以HIS5.0子模塊藥庫管理系統的一組功能模塊畫面作為參考來源。
本文先結合中外醫院信息系統發展的歷史給出了開發該系統的背景與目的,然后介紹該系統所用到的開發工具與開發語言以及對部門系統功能的分析、設計與實現。
醫院藥庫管理系統是東軟自主研發的醫院管理系統(Hospital?Information?System,HIS)的一部分。該系統是基于二層(Client/Server,C/S)的體系結構的應用軟件。具有良好的交互性、健壯性、存取安全、速度快等特點。在軟件開發過程中,采用了分層設計,組件式開發,插件式開發等創新技術。對于表現層中易變模塊提出接口,用插件方式和抽象工廠模式實現,從而穩定了核心模塊。表現層界面布局實現動態配置,用戶可以根據業務需要和個人喜好配置個性化界面,界面布局在客戶端保存為XML文件中。
本系統提供了藥庫工作人員在藥庫的常規操作,包括藥品出庫、藥品入庫、庫存查詢、盤點管理和各種報表查詢等功能。它的使用必定會給醫院藥庫的管理帶來了極大的方便。
最后,本文會給出對醫院藥庫管理系統的總結評價以及需要改善的地方。
?
關鍵詞:醫院信息管理系統,C/S,組件,插件
?
The Design and Application of
the Hospital Drug Storehouse Management System
??????????????????????????????????? ?????????????????????Author: xxx
?????????????????????????????????????????????????????Tutor: xxx
Abstract
This paper mainlyelaborates the Drug Storehouse Management processes and system design. As the grouppicture of HIS5.0 Storehouse Management System sub-module a reference sourcemodules.
This paper first combinationof Chinese and foreign history of the development of Hospital InformationSystem given the background and purpose of the system developed, and then usedto introduce the system development tools and development language and systemfunctions on the sector analysis, design and implementation.
Hospital Drug Storehouse ManagementSystem is independently researched and developed as part of the hospitalInformation system(HIS) by Neusoft. The system is based on two-tier architecture(Client/Server, C/S) of the application software. It has a good interactive,robust, access to safe, fast and so on. In software development process, wehave adopted many innovative technologies such as the hierarchical design, the component-baseddevelopment, the plug-in technology and so on. To the volatile modules of theUser Interface, we propose interface and use plug-way mode and abstract factoryto achieve it. Thus we stabilize the core module. User-interface can be dynamicconfigured and users can set personalized interfaces based on business needsand personal preferences. Interface layout is saved as XML documents in theclient.
This system provides thenormal operations of Drug Storehouse for the Drug Storehouse staff, including outand in the Drug Storehouse, stock search, inventory management and reportsearch. It will bring great convenience to the management of the Hospital DrugStorehouse.
Finally, the hospital willgive a summary evaluation of storeroom management system and the need forimprovement.
?
Key Words: HospitalInformation System, C/S, Components, Plug-Ins
?
目??? 錄
1? 緒論... 1
1.1? 項目開發的背景及意義... 1
1.2? 課題研究方法... 2
1.3? 論文構成及研究內容... 3
2? 系統開發所用軟件簡介... 4
2.1? 系統開發環境... 4
2.2? MicrosoftVisual Studio 2005 開發環境... 4
2.3? Microsoft.NET框架介紹... 4
2.4? C#語言... 5
2.5? Oracle10g數據庫... 5
2.6? DataWindow.NET報表設計器... 6
3? 系統分析... 8
3.1? 系統結構及功能... 8
3.1.1? 基本信息維護... 8
3.1.2? 藥品管理... 9
3.1.3? 庫存管理... 9
3.1.4? 入出庫管理... 10
3.1.5? 查詢統計... 11
3.2 ?系統的主要流程... 11
3.2.1? 藥品入庫流程... 11
3.2.2? 醫院科室藥品領用流程... 12
3.2.3? 盤點流程... 13
4? 系統設計... 14
4.1? 數據庫的設計... 14
4.2? 系統架構... 17
5? 系統實現... 22
5.1? 入庫計劃... 22
5.2? 采購計劃... 23
5.3? 藥品入庫... 24
5.4? 盤點管理... 27
5.5? 盤點結存... 29
結??? 論... 31
致??? 謝... 32
參考文獻... 33
附??? 錄... 34
?
1? 緒論
1.1? 項目開發的背景及意義
醫院信息管理系統(HIS)按照Morris.Collen所給的定義是:利用電子計算機和通訊設備,為醫院所屬各部門提供病人診療信(Patient?Care?Information)和行政管理信息(Administration?Information)的收集(Collect)、存儲(Store)、處理(Process)、提取 (Retrieve)和數據交換(Communicate)的能力,并滿足所有授權用戶(Authorized)的功能需求。隨著計算機性能不斷提高,價格不斷下降,計算機已在醫院醫療、教學、科研、管理的各個方面得到越來越廣泛的應用。計算機化的醫院信息系統已成為現代化醫院運營必不可少的基礎設施與技術支撐環境。就好象一個現代化醫院的成功運行離不開功能完整、美觀舒適的建筑物,技術嫻熟的醫護人員,性能齊全、高精尖的醫療設備一樣,它也離不開計算機化的醫院信息系統。
發達國家醫院信息系統的開發實現已有三十多年的歷史,至今有了長足的進步。有許多舉世公認的成功的系統在醫院有效地運轉著,像鹽湖城LDS醫院的HELP系統,麻省總醫院?的COSTAR系統,退伍軍人管理局的DHCP系統。?縱觀美國的HIS發展歷史,大約可疑分為三個階段:第一個十年,集中在開發醫院行政?管理的功能上,像財務收費管理、住院病人和門診病人管理等。但到1972年Collen仍報告美國迄今為止連一個成功的已完成的全面醫院(管理)計算機系統都沒有。第二個十年,在繼續完成和實現醫院管理信息的計算機化的同時,開發者的努力已進入醫療信息的處理領域,像病人醫療處理系統,實驗室系統等。到1985年,美國全國醫院數據處理工作調查表明,100張床位以上的醫院80%實現了計算機財務收費管理、70%的醫院可支持病人掛號登記?和行政事務管理,25%的醫院有了較完整的HIS。最后一個十年至今,研究者又把重點放在了病人床邊系統(BedsideInformation System)、醫學影像處理 (PictureArchiving and Communication System,PACS)、病人計算機病案(ComputerBased Patient Record,CPR) 、統一的醫學語言系統 (UnifiedMedical Language System,UMLS)等方面。醫院信息系統 正在經歷著小型化(DownSizing)、智能化(Intellegence)和集成化(Integration)的改造過程[1]。
據相關資料顯示,目前我國各個級別的醫院的掛號室的信息化很落后,并且不受重視進行建設,多數只是單個微機操作甚至是人工手工操作。而很多已經建立起來的整套的醫院信息系統中,使用的管理系統也只是拼湊單項目應用階段時使用的系統,多采用功能有限的Access建立數據庫,并且系統的功能單一 、死板 、模式化、針對性不強、并且不能與其他子系統進行信息資源的交流、共享、不具有和HIS平臺兼容的特性,實質上它們不能作為醫院信息系統的一部分。本系統是在醫院信息系統設計規劃的整體框架下設計完成的,和HIS其他部分是統一的整體,共同使用Oracle數據庫,之間的數據可以完全共享,并且存在數據安全和可存儲的數據量大的優點。它又有很強的獨立性,可以單獨應用于實際當中。本系統描述了藥品從采購到出庫的所有業務操作環節,其中包括:藥品的采購、入庫、盤點、調價、出庫和查詢統計。
藥品是防病治病的特殊商品,是醫院重要的經濟收入來源,是醫療活動中必不可少的基礎物資,而藥庫是醫院藥品供應基地,是加強醫院藥品管理的重要環節之一。由于藥品種類繁多,流通環節復雜,強化對藥庫管理尤為重要,它既要保障對臨床各科室的供應,又要控制藥品品種、數量、質量防止過期失效,減少浪費,達到增收節支的目的。對藥庫實行計算機管理,可使藥庫工作人員可及時了解庫房藥品進、出、存的動態變化,即做到為臨床及時提供所需藥品不使藥品供應中斷,又有效減少盲目進貨造成藥品積壓現象,藥庫的信息化管理不僅可加快藥品周轉,而且可大大提高工作人員的工作效率和督理質量。也更加有利于及時、安全、優質地保證臨床用藥。
1.2? 課題研究方法
軟件工程(SoftwareEngineering,SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數據庫,軟件開發工具,系統平臺,標準,設計模式等方面。在現代社會中,軟件應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,數據庫,游戲等。同時,各個行業幾乎都有計算機軟件的應用,比如工業,農業,醫院,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量[2]。
軟件工程的目標是:在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。追求這些目標有助于提高軟件產品的質量和開發效率,減少維護的困難。
軟件工程學科也有許多分支,如:軟件過程學,軟件方法學,軟件的項目管理等。
軟件的過程主要是研究軟件生命周期的基本任務,軟件生命周期的模型主要包括瀑布模型,快速原型模型,增量模型,螺旋模型,噴泉模型等。軟件生命周期的各種模型在不同的軟件開發項目中各有優劣[3]。
軟件的方法學主要研究的是軟件開發的具體的實現方法,它又包括兩個部分,傳統的方法學和面向對象的方法學。傳統的方法學主要是結構化的程序設計方法[4],它是整個方法學的基礎部分,而到了20世紀90年代以后面向對象的方法學已經成為人們在開發軟件的過程中首選的泛型??梢哉f,面向對象技術是當前最好的軟件開發技術[5]。
軟件項目管理主要研究的是通過計劃,組織和控制等一系列的活動,合理的配置各種資源以便在預定的成本和期限內開發出符合用戶要求的軟件。它是整個軟件開發過程的主線,也是軟件工程學科的精髓之所在。
在軟件體系架構設計中,分層式結構是最常見,也是最重要的一種結構。微軟推薦的分層式結構一般分為三層,從下至上分別為:數據訪問層、業務邏輯層(又或成為領域層)、表示層。
三層結構原理:3個層次中,系統主要功能和業務邏輯都在業務邏輯層進行處理。所謂三層體系結構,是在客戶端與數據庫之間加入了一個“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結構,也不僅僅有B/S應用才是三層體系結構,三層是指邏輯上的三層,即使這三個層放置到一臺機器上。
三層體系的應用程序將業務規則、數據訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數據庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經由中間層與數據庫進行交互。
另外,該系統所使用的編程語言是C#,采用三層架構模式,將整個系統劃分為表示層(User Interface),業務邏輯層(Business Logic Layer),數據訪問層(Data Access Layer)。三層架構是指的“邏輯三層的軟件體系架構”而非指“部署中物理的三層架構”。
1.3? 論文構成及研究內容
論文首先給出這套系統的開發環境,然后對系統結構及功能進行簡單的說明,接下來從數據庫和系統架構對系統設計作簡單說明,最后給出這套系統主要功能畫面的說明,最后論文將會給出對藥庫管理系統的評價以及需要改善的地方。
?
2? 系統開發所用軟件簡介
2.1? 系統開發環境
操作系統環境:Windows XP
集成開發環境:MicrosoftVisual Studio 2005
數據庫:Oracle10g
2.2? Microsoft Visual Studio 2005 開發環境
Visual Studio 2005 是一套完整的開發工具集,用于生成ASP.NET Web 應用程序、XML WebServices、桌面應用程序和移動應用程序。VisualBasic、Visual C++、VisualC# 和 Visual J# 全都使用相同的集成開發環境 (IDE),利用此IDE 可以共享工具且有助于創建混合語言解決方案。
使用 VisualStudio 2005 ,開發人員能夠:創建多層的 Windows、Web、SmartPhone和 Pocket PC 應用程序;使用集成的Visual 數據庫工具來設計數據庫、表、存儲過程等;使用集成的數據庫報表設計器和查看器;設計、調試和部署多層應用程序;集成XSLT調試[6]。
2.3?Microsoft.NET框架介紹
2000年6月,微軟公司推出了“Mircosoft.Net下一代互聯網軟件和服務戰略”,引起IT行業的廣泛關注。2000年9月,微軟公司在舊金山發布了Enterprise2000。同月,微軟原總裁兼首席執行官鮑爾默來到中國就“下一代互聯網”的主題進行演講,在中國掀起了一股“.Net旋風”。2000年11月,微軟在Comdex計算機上發布了Visual Studio.Net軟件,并展示了其.Net發展戰略的框架體系和開發工具的相關特性,全面加速了微軟以.Net技術進軍市場的步伐。
.Net Framework 的目的是便于開發商業更容易地建立網絡應用程序和Web服務,它的關鍵特色是提供了一個多語言組件開發和執行的環境。從層次結構來看,.Net Framework 又包括三個主要組成部分:通用語言運行環境(Common Language Runtime )、服務框架(Services Framework)、上層的兩類應用模板-面向Web的網絡應用程序模板(Web Forms或Web Services) 和Windows應用程序模板(Win Forms)。
其中通用語言運行環境在組件運行時,負責管理內存分配、啟動和終止線程和進程、強化安全系數,同時還調整任何組件涉及到的其他組件的附件配置。在通用語言運行環境上的服務框架,它為開發人員提供了一套能夠被任何現代語言調用的、統一的面用對象、異步、層次結構的可擴展類庫。
“Microsoft.Net 代表了一個集合、一個環境、一個可以作為平臺支持下一代Internet的可編程結構?!?Net包括四個重要特點,一是軟件就是服務,二是基于XML的共同語言,三是融合多種設備和平臺,四是新一代的人機界面。通過.Net框架可以快速構建Web應用和桌面應用程序[7]。
2.4? C#語言
Microsoft.NET(簡稱.NET)是微軟公司推出的面向網絡的開發平臺的簡稱,是新一代的軟件開發方式。.NET技術的核心是.NETFramework,它提供了一個全新的環境,在此環境下,可以使用多種語言開發出在Windows平臺上運行的各種復雜的分布式應用程序。其中,新推出的C#語言是在C和C++基礎上重新構造的一種新型編程語言,也是.NET的首選編程語言[8]。
C#是從C和C++演變而來的一種簡單的、面向對象的和類型安全的新型程序設計語言,具有語法嚴謹、結構清晰、可讀性強和代碼執行效率高等優點;最重要的是,它功能強大且易活易學,利用C#,在Windows平臺下幾乎可以做任何事情。C#憑借其強大的功能、易用性以及在開發數據庫和Windows應用程序上的極大優勢,一直堅持復雜問題簡單化的思想 ,而且隱藏其細節??梢哉f,它幾乎綜合了目前所有高級語言的優點。它的主要特點是語法簡潔,精心設計的面向對象設計,與web的緊密結合,完全的安全性和錯誤處理,易于使用的版本處理技術,很好的靈活性和兼容性等。
2.5? Oracle10g數據庫
Oracle 數據庫是以高級結構化查詢語言(SQL)為基礎的大型關系數據庫,通俗地講它是用方便邏輯管理的語言操縱大量有規律數據的集合。是目前最流行的客戶/服務器(CLIENT/SERVER)體系結構的數據庫之一。
Oracle 10g作為Oracle家族比較新的產品,不僅具有Oracle以前版本優秀的特性,而且在以下兩個方面又有更加突出的表現:降低管理開銷;提高性能。這些增強有對高可用性的增強、新的Flashback 能力、支持回滾更新操作;對安全性的增強,便于管理大量的用戶;BI 方面的增強 , 包括改進的SQL 能力、分析功能、 OLAP 、數據挖掘的能力等;對非關系型數據存儲的能力得到了改進; XML的能力;對開發能力支持的加強。對生物信息學(Bioinformatics )的支持[9]。
2.6? DataWindow.NET報表設計器
?Datawindow中文譯名為數據窗口,是開發工具PowerBuilder(PB)的一個王牌組件,使用PB作為開發工具的,基本上都是沖著Datawindow 來的,它不僅可以用來顯示數據,還可以實現數據錄入、報表打印等功能,是Sybase 的專利技術,功能非常強大。Sybase從PB10.0開始,為了使PB開發的應用可以支持.Net,就開發出來了DataWindow.net組件,可以在.net的開發環境中使用,包括DataWindow控件 和Datastore對象,功能與PB中的數據窗口控件一樣。其中PB10.5的數據窗口對應DW.NET 2.0,PB11對應的是DW.NET 2.5,如果是使用PB11.5,則只能使用PB11.5里面提供的DW.NET程序集,目前Sybase還沒有單獨提供DW.NET的新版本,以支持PB11.5和PB12。而且PB12.Net,已經提供采用WPF技術實現的DW.NET了。
??????在.Net中大家經常使用的DataTable,其里面很多思想是來源于DataWindow,如緩沖區,行列狀態的概念,以及根據DataTable的更新狀態,生成不同的SQL來更新數據庫,還有GetChanges方法來獲取DataTable的更新情況等等[10]。
DataWindow.NET 是一個用于增強 .NET 應用程序開發環境性能的組件。它是 4GL RAD 產品,也就是說它可以有助于您快速完成工作?;趲醉棑碛袑@膹姶蠹夹g,DataWindow .NET 可以幫助您快速構建和部署數據驅動的應用程序,輕松地與您復雜的業務規程集成,發揮其在數據處理上的卓越性能。具備幾百種內置的函數 (functions)、屬性和公開的程序,開發者可以在虛擬代碼免費工具中體驗高水平的生產力。針對 ASP.NET 的新的 WebForms 以及 Microsoft 手寫識別支持使得在應用程序中添加復雜的表格和簽名識別容易實現。在 .NET 開發環境中的標準數據訪問組件需要大量煩瑣且耗時的編碼工作 。用DataWindow .NET 打破 DataGrid - 壟斷!
其優點包括:(1)勢降低成本,大量簡化了企業級數據驅動應用程序的開發和部署工作。(2)提高了生產力,只需極少的編碼工作,開發者在幾小時或者幾天內就可輕松構建數據密集型應用程序。(3)風險最小化,業已證明的技術、經過成百上千的開發員的試用和測試,讓新的開發者從成熟和強大的 4-GL 圖形編程組件中受益。(4)快速的開發,內置函數和屬性的 4GL 組件減少了編碼工作。
?
3? 系統分析
在本節中首先會給出醫院藥庫系統結構及功能圖。然后,結合每個功能模塊,詳細介紹每個功能模塊的作用;以及系統的主要流程。
3.1?系統結構及功能
藥庫管理系統主要面向醫院的藥品管理業務。對進行藥品進銷存管理。具體包括藥品基礎信息維護;藥品管理;藥品進銷存管理;藥品庫存管理等。
藥庫管理系統結構如圖3.1所示。
圖3.1 藥庫管理系統結構圖
下面簡要介紹一下各部分的主要功能:
3.1.1 ?基本信息維護
1)???????常數維護:錄入基本常數,如:藥品等級、性質、用法、包裝單位、最小單位等。
2)???????入出庫科室維護:維護醫院內部入出庫科室。
3)???????部門庫存常數維護:設置庫存常數。
功能描述:
l?庫存管理:選中可以對其庫存進行管理,如設置西藥房管理庫存、中藥房不管理庫存,在西藥房對中藥房做一般出庫,這樣西藥房庫存減少,中藥房庫存不變。
l?參考天數:如參考天數設置為7天,就是用當前時間的前的七天庫存總量除以7求出一天的平均庫存。
l?最低庫存天數:在庫存量小于“一天的平均庫存*最低庫存天數”就需要進行入庫。
l?最高庫存天數:入庫的數量應該為“一天的平均庫存*最高庫存天數-當前庫存”。
4)???????藥理作用維護:維護藥理作用,在藥品基本信息維護里用到。
5)???????藥品管理模板維護:維護計劃、盤點、申請的模版。
6)???????供貨公司維護:維護藥品供應商的信息,在藥品入庫時可以用到。
7)???????生產廠家維護:維護藥品生產廠家。
3.1.2 ?藥品管理
1)???????藥品基本信息維護:錄入并維護藥品的基本信息。
功能描述:
l?拆分屬性:門診不可拆分,該藥品不可拆分來賣,而是向上取整。門診可拆分,該藥品可以拆開來賣。
l?開關屬性包括,停用:這里的停用是全院停用;自制:指該藥品是該醫院制造;試敏:是否需要試敏;終端確認:指定是否需要終端確認;一般檢查類的需要選上該復選框。
l?新藥:如果在系統設置選中“新增藥品需經過審核后才生效”,新增的藥品必須經過“藥品審核才可以使用”。
l?連續錄入:操作時連續添加其他藥品,不關閉彈出的添加窗口。
2)???????藥品調價:更改藥品價格。可以選擇立即生效或者設定一個生效日期。
3)???????月結管理:按月結算,將結果向財務報賬。
3.1.3 ?庫存管理
1)???????庫存管理:管理庫存的相關信息,如藥品基本屬性、是否停用、最高庫存、最低庫存、是否需要日盤點等。
2)???????盤點管理:盤點庫存的實際數量。
盤點操作:
l?封賬:選擇某個藥品進行盤點。
l?批量封賬:對某一類藥品進行批量選擇。
l?全盤:把計算機里記錄的數量添加到盤點單上,以便只修改不一致的數量。
l?盈虧標記:“1”盤盈、“2”盤虧、“0”實際數量與記錄數量一致。
l?增量保存:填入的數量與之前的數量之和。
l?保存:保存填入的數據,以便結存時調用。
3)???????盤點結存:將實際數量記錄到計算機中,即使數據庫里面數據與實際庫存數據一致。
功能描述:
l?結存:將盤點的實際數量保存到計算機中。
l?解封:將藥品進行解封,不改變計算機中的數量,刪除盤點信息。
4)???????庫存初使化:在系統剛剛上線的時候,藥庫里本身就有一些藥品,這些藥品不需要進行入庫或出庫操作,所以這里提供了這樣的一個接口錄入這些藥品,使其庫存數量與實際數量相同。
3.1.4 ?入出庫管理
1)???????入庫計劃:維護入庫計劃單。
2)???????采購計劃:根據入庫計劃單制定采購計劃單。
3)???????采購計劃審核:對采購計劃單進行審核。
4)???????藥品入庫:采購的藥品進行入庫操作。
功能描述:
l?一般入庫:選擇經過審批的采購單對其進行入庫。選擇藥品直接進行入庫。此時如果發票還未到,則一般入庫后還需進行發票入庫和核準入庫兩個操作。由庫管員進行操作。
l?發票入庫:在一般入庫時沒有錄入發票,需要補錄發票。由采購員進行操作。
l?核準入庫:在進行了發票入庫后進行,做完這一步后藥品才算真正入庫。由財務操作。
l?入庫退庫:入庫錯了可以退回供貨商。
5)???????藥品出庫:向別的藥庫或藥房出庫。
功能描述:
l?一般出庫:向目標單位直接出庫,直接更新對方庫存。由庫管員進行操作。
l?出庫審批:審核外部申請出庫的藥品。
6)???????單據補打:打印入出庫的各種單據。
3.1.5 ?查詢統計
提供各種查詢方式,如:綜合查詢、庫存查詢、月結查詢、藥品字典信息變更查詢,調價查詢、盤點查詢。同時提供各種匯總,生成各種報表,并支持打印。
3.2? 系統的主要流程
醫院藥庫流程根據業務的不同,主要分為三個流程:1.藥品入庫流程;2.醫院科室藥品領用流程;3.盤點流程。
3.2.1 ?藥品入庫流程
醫院藥品入庫流程大致可分為以下六個步驟:
1)???????庫管員做入庫計劃,生成入庫計劃單。
2)???????采購員根據入庫計劃單制定采購計劃,生成采購單。
3)???????供貨商送貨來醫院后,庫管員進行驗收,如果驗收不通過則退貨。驗收通過的藥品進行入庫登記處理。
4)???????藥品入庫后,藥品即可出庫到藥房或者科室。
5)???????對于沒有發票的入庫數據,需要進行發票補錄。
6)???????正式入庫的數據(發票信息齊全的入庫數據)經過發票核準確認無誤后,進入本月財務月結的數據。如果發票數據有錯誤,則進行入庫數據修改。
圖3.2 藥品入庫流程圖
3.2.2 ?醫院科室藥品領用流程
1)???????藥房做一個入庫申請計劃,生成入庫申請單
2)???????藥庫根據入庫申請單向藥房出庫,生成出庫單
3)???????藥房核準然后藥庫發過來的藥品并入庫,生成入庫單
4)???????藥房把藥退給藥庫,做一個退庫申請,生成退庫申請單
5)???????藥庫根據退庫申請單和出庫單進行退藥出庫,生成退庫單
圖3.2 科室藥品領用流程圖
3.2.3 ?盤點流程
1)???????開始盤點時,記錄電腦中物品的庫存數量,打印盤點表
2)???????錄入各物品的盤點數量,保存盤點數據,可查詢盤點盈虧結果。
3)???????主管審核后,進行盤點結存。結存后的盤點盈虧數據作為財務月結數據。
圖3.4 藥品盤點流程圖
?
4? 系統設計
4.1? 數據庫的設計
數據庫設計的好壞直接關系到軟件的成功。我們在編寫軟件之前,做了大量的分析和論證,力求數據庫設計能做的最好。由于數據庫中的表實在太多,下面簡要介紹一下藥庫管理系統所涉及的部分主表及其結構,藥庫表名統一都是以PHA_開頭,公共表名統一都是以COM_開頭的表。
表4.1 藥品目錄表
字段名 | 數據類型 | 是否為空 | 是否主鍵 | 備注 |
DRUG_CODE | VARCHAR2(12) | 否 | 是 | 藥品編碼 |
TRADE_NAME | VARCHAR2(50) | 是 | 否 | 商品名稱 |
DRUG_TYPE | VARCHAR2(1) | 否 | 否 | 藥品類別 |
DRUG_QUALITY | VARCHAR2(2) | 否 | 否 | 藥品性質 |
ITEM_GRADE | VARCHAR2(1) | 是 | 否 | 項目等級 |
SPECS | VARCHAR2(32) | 是 | 否 | 規格 |
PACK_UNIT | VARCHAR2(16) | 否 | 否 | 包裝單位 |
PACK_QTY | NUMBER(4) | 是 | 否 | 包裝數 |
MIN_UNIT | VARCHAR2(16) | 否 | 否 | 最小單位 |
BASE_DOSE | NUMBER(10,4) | 是 | 否 | 基本劑量 |
DOSE_UNIT | VARCHAR2(16) | 是 | 否 | 劑量單位 |
USAGE_CODE | VARCHAR2(10) | 是 | 否 | 用法編碼 |
FREQUENCY_CODE | VARCHAR2(6) | 是 | 否 | 頻次編碼 |
ONCE_DOSE | NUMBER(10,4) | 是 | 否 | 一次用量 |
VALID_STATE | VARCHAR2(1) | 否 | 否 | 有效標記 |
NEW_FLAG | VARCHAR2(1) | 是 | 否 | 新藥標記 |
SPLIT_TYPE | VARCHAR2(1) | 是 | 否 | 拆分類型 |
?
1)???????表名:PHA_COM_BASEINFO(藥品目錄表)。
功能描述:全院藥品字典信息維護。醫生站藥品醫囑開立、藥品項目收費、藥房藥品發放、進銷調撥都根據此基本項目信息進行處理。對新增藥品處理必須維護字典項目。
結構:由于此表字段太多,此處只描述一些重要的字段,如表4.1所示。
2)???????表名:COM_DICTIONARY(公共_常數表)。
功能描述:藥品管理過程中的各種常數信息。包括用法、頻次、藥品劑型、存儲條件等信息(藥品字典信息維護時調用)。以及藥品等級與醫生職級對照等信息,如表4.2所示。
表4.2 公共常數表
字段名 | 數據類型 | 是否為空 | 是否主鍵 | 備注 |
TYPE | VARCHAR2(20) | 否 | 是 | 常數類型 |
CODE | VARCHAR2(20) | 否 | 是 | 編碼 |
NAME | VARCHAR2(50) | 是 | 否 | 名稱 |
MARK | VARCHAR2(2000) | 是 | 否 | 備注 |
SPELL_CODE | VARCHAR2(30) | 是 | 否 | 拼音碼 |
WB_CODE | VARCHAR2(30) | 是 | 否 | 五筆碼 |
INPUT_CODE | VARCHAR2(30) | 是 | 否 | 輸入碼 |
SORT_ID | NUMBER | 是 | 否 | 順序號 |
VALID_STATE | VARCHAR2(1) | 否 | 否 | 有效標志 |
OPER_CODE | VARCHAR2(6) | 是 | 否 | 操作員 |
OPER_DATE | DATE | 是 | 否 | 操作時間 |
?
3)???????表名:COM_PRIV_INOUT_DEPT(入出庫常數表)。
功能描述:維護藥品進銷管理中,各部門對應的入庫、出庫部門,如表4.3所示。
表4.3 入出庫常數表
字段名 | 數據類型 | 是否為空 | 是否主鍵 | 備注 |
CLASS2_CODE | VARCHAR2(4) | 否 | 是 | 入出庫標記 |
DEPT_CODE | VARCHAR2(4) | 否 | 是 | 科室編碼 |
OBJECT_DEPT_CODE | VARCHAR2(8) | 否 | 否 | 供藥或領藥單位碼 |
OBJECT_DEPT_NAME | VARCHAR2(64) | 是 | 否 | 供藥或領藥單位名稱 |
OPER_CODE | VARCHAR2(6) | 是 | 否 | 操作員代碼 |
OPER_DATE | DATE | 是 | 否 | 操作時間 |
MARK | VARCHAR2(128) | 是 | 否 | 備注 |
SORT_ID | NUMBER | 是 | 否 | 排序 |
?
4)???????表名:PHA_COM_DEPT(庫房參數表)。
功能描述:維護各部門的庫房參數信息。進銷管理時會調用庫房參數設置信息。該部分參數設置會影響業務及數據處理。一般在系統實施前進行設置,并在維護期內根據需要進行修改,如表4.4所示。
表4.4 庫房參數表
字段名 | 數據類型 | 是否為空 | 是否主鍵 | 備注 |
DEPT_CODE | VARCHAR2(4) | 否 | 是 | 科室編碼 |
STORE_MAX_DAYS | NUMBER(3) | 是 | 否 | 庫房最高庫存量(天) |
STORE_MIN_DAYS | NUMBER(3) | 是 | 否 | 庫房最低庫存量(天) |
REFERENCE_DAYS | NUMBER(3) | 是 | 否 | 參考天數 |
BATCH_FLAG | CHAR(1) | 是 | 否 | 是否按批號管理藥品 |
STORE_FLAG | CHAR(1) | 是 | 否 | 是否管理藥品庫存 |
UNIT_FLAG | CHAR(1) | 是 | 否 | 庫存管理時默認的單位 |
OPER_CODE | VARCHAR2(6) | 是 | 否 | 操作員代碼 |
OPER_DATE | DATE | 是 | 否 | 操作時間 |
ARK_FLAG | VARCHAR2(1) | 是 | 否 | 是否按藥柜管理藥品 |
?
5)???????表名:PHA_COM_ADJUSTPRICEINFO(調價主表)。
功能描述:藥品零售價變動時維護變動后價格,并計算各庫存部門因為調價而產生的調價盈虧。調價將同時影響全院所有部門,如表4.5所示。
結構:由于此表字段太多,此處只描述一些重要的字段,如表4.5。
6)???????表名:PHA_COM_STOCKINFO(藥品庫管信息表)。
功能描述:管理本部門庫存藥品;進行貨位號、停用、日結標記、庫存警戒線設定;藥品有效期、庫存警戒信息查詢;日常藥品信息統計,如表4.6所示。
結構:由于此表字段太多,此處只描述一些重要的字段。
4.2?系統架構
本系統采用三層架構設計模式,將整個系統劃分為表示層(UI),業務邏輯層(BLL),數據訪問層(DAL),各層的依賴關系:UI依賴于BLL,而BLL依賴BAL;依賴關系如圖4.2所示:
?
表4.5 調價主表
字段名 | 數據類型 | 是否為空 | 是否主鍵 | 備注 |
ADJUST_NUMBER | NUMBER(12) | 否 | 是 | 調價單號 |
SERIAL_CODE | NUMBER(4) | 否 | 是 | 調價單內序號 |
DRUG_DEPT_CODE | VARCHAR2(10) | 是 | 否 | 庫房編碼 |
DRUG_CODE | VARCHAR2(12) | 是 | 否 | 藥品編碼 |
PRE_RETAIL_PRICE | NUMBER(12,4) | 是 | 否 | 調價前零售價格 |
PRE_WHOLESALE_PRICE | NUMBER(12,4) | 是 | 否 | 調價前批發價格 |
RETAIL_PRICE | NUMBER(12,4) | 是 | 否 | 調價后零售價格 |
WHOLESALE_PRICE | NUMBER(12,4) | 是 | 否 | 調價后批發價格 |
STORE_SUM | NUMBER(14,4) | 是 | 否 | 調價時藥庫庫存量 |
PROFIT_FLAG | CHAR(1) | 是 | 否 | 盈虧標記1-盈,0-虧 |
INURE_TIME | DATE | 是 | 否 | 調價執行時間 |
DD_ADJUST_MARK | CHAR(1) | 是 | 否 | 藥庫調價標記 |
DS_ADJUST_MARK | CHAR(1) | 是 | 否 | 藥房調價標記 |
ABOLISH_OPER | VARCHAR2(6) | 是 | 否 | 作廢人編碼 |
ABOLISH_DATE | DATE | 是 | 否 | 作廢時間 |
?
表4.6 藥品庫管信息表
字段名 | 數據類型 | 是否為空 | 是否主鍵 | 備注 |
DRUG_DEPT_CODE | VARCHAR2(14) | 否 | 是 | 庫房編碼 |
DRUG_CODE | VARCHAR2(12) | 否 | 是 | 藥品編碼 |
MIN_UNIT | VARCHAR2(16) | 是 | 否 | 最小單位 |
RETAIL_PRICE | NUMBER(12,6) | 是 | 否 | 零售價 |
STORE_SUM | NUMBER(14,4) | 是 | 否 | 總數量 |
PREOUT_SUM | NUMBER(14,4) | 是 | 否 | 預扣庫存 |
VALID_DATE | DATE | 是 | 否 | 有效期 |
LOW_SUM | NUMBER(14,4) | 是 | 否 | 最低庫存 |
TOP_SUM | NUMBER(14,4) | 是 | 否 | 最高庫存 |
LACK_FLAG | VARCHAR2(1) | 是 | 否 | 缺藥標志 |
?
圖4.2 三層架構圖
表示層: 位于最外層(最上層),離用戶最近。用于顯示數據和接收用戶輸入的數據,為用戶提供一種交互式操作的界面,好的UI設計不僅是讓軟件變得有個性有品味,還要讓軟件的操作變得舒適、簡單、自由,充分體現軟件的定位和特點。本系統主要是以WINFORM方式作為表示層,如果業務邏輯層相當強大和完善,無論表現層如何定義和更改,邏輯層都能完善地提供服務并且表示層進行改動不會影響到業務邏輯層和數據訪問層。在本系統中界面提供常數維護、庫存管理、盤點管理、藥品入出庫等功能。
業務邏輯層:業務邏輯層在體系架構中的位置很關鍵,它處于數據訪問層與表示層中間,起到了數據交換中承上啟下的作用。由于層是一種弱耦合結構,層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設計對于其調用的底層而言沒有任何影響。如果在分層設計時,遵循了面向接口設計的思想,那么這種向下的依賴也應該是一種弱依賴關系。因而在不改變接口定義的前提下,理想的分層式架構,應該是一個支持可抽取、可替換的“抽屜”式架構。該層針對具體的問題的操作提出接口的定義,如果說數據層是積木,那業務邏輯層就是對這些積木的搭建。
數據庫訪問層:有時候也稱為是持久層,其功能主要是負責數據庫的訪問,可以訪問數據庫系統、二進制文件、文本文檔或是XML文檔。簡單的說法就是實現對數據表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就會包括對象和數據表之間的映射(mapping),以及對象實體的持久化。具體為業務邏輯層或表示層提供數據服務。
本系統采用三層架構設計模式,所有的數據在界面被封裝成對象,在將對象傳到業務邏輯層,然后業務邏輯層對對象中的數據進行處理,將必要的數據重新封裝成對象傳入數據層,數據層根據對象的類型,去構造SQL語句并對數據更新。
如果是查詢操作,在數據層將根據對象,重新構造對象的實例,把查出來的數據封裝成對象,在把對象加到集合中,把集合返回到業務邏輯層,在業務邏輯層重新對數據進行處理,將有用的數據重新封裝成對象,返回到表示層中,最后在界面中顯示出來。
如果是更新數據庫信息,將用事務跟蹤,使在更新的幾張表要么全部成功,在不成功時則回滾。
三層架構的存在著優點也有它的缺點,優點如下:1.開發人員可以只關注整個結構中的其中某一層;2.可以很容易的用新的實現來替換原有層次的實現;3.可以降低層與層之間的依賴;4.有利于標準化;5.利于各層邏輯的復用。缺點如下:1.降低了系統的性能。這是不言而喻的。如果不采用分層式結構,很多業務可以直接造訪數據庫,以此獲取相應的數據,如今卻必須通過中間層來完成。2.有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在表示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的業務邏輯層和數據訪問層中都增加相應的代碼。
基礎類設計:Neusoft.NFC.Object.NeuObject類設計,此類是所有類的基類,任何一個類都從此類派生。
代碼如下:
public class NeuObject : IDisposable
?????? {
????????????? ///<summary>
????????????? ///構造函數
????????????? ///</summary>
????????????? public NeuObject()
????????????? {
???????????????????? strID="";
???????????????????? strName="";
???????????????????? strMemo="";
????????????? }
??????? publicNeuObject(string id, stringname, string memo)
??????? {
??????????? strID = id;
??????????? strName = name;
??????????? strMemo = memo;
??????? }
??????? #region 變量
??????? ///<summary>
????????????? ///局部變量
????????????? ///</summary>
????????????? private string strID;
????????????? private stringstrName;
????????????? private stringstrMemo;
????????????? public string User01= string.Empty;
?????? public string User02 = string.Empty;
?????? public string User03 = string.Empty;
????????????? private boolalreadyDisposed = false;
?????? #endregion
?????? #region 屬性
??????? ///<summary>
????????????? /// ID
????????????? ///</summary>
????????????? public virtual string ID
????????????? {
???????????????????? get
???????????????????? {
??????????????????????????? return strID + "";
???????????????????? }
???????????????????? set
???????????????????? {
??????????????????????????? strID=value;
???????????????????? }
????????????? }
????????????? ///<summary>
????????????? ///屬性Name
????????????? ///</summary>
?????? ?????? ///<returns>Name</returns>
????????????? public virtual string Name
????????????? {
???????????????????? get
???????????????????? {
??????????????????????????? return strName + "";
???????????????????? }
???????????????????? set
???????????????????? {
??????????????????????????? strName=value;
???????????????????? }
????????????? }
????????????? ///<summary>
????????????? ///屬性Memo
????????????? ///</summary>
????????????? ///<returns>Memo</returns>
????????????? public virtual string Memo
????????????? {????
????????????? ?????? get
???????????????????? {
??????????????????????????? return strMemo + "";
???????????????????? }
???????????????????? set
???????????????????? {
??????????????????????????? strMemo=value;
???????????????????? }
??????? }
??????? #endregion
??????? #region 方法
??????? ///<summary>
????????????? ///重載ToString
????????????? ///</summary>
????????????? ///<returns>Name</returns>
????????????? public override string ToString()
????????????? {
???????????????????? return this.Name;
??????? }
??????? #endregion
?????? }
?
5? 系統實現
醫院藥庫管理系統功能龐大,涉及目前國內大中小醫院所有功能,界面很多,介于篇幅有限,下面圍繞本系統最重要兩個流程,藥品入庫流程和盤點流程。另外由于公司要求代碼保密,所以此處只做少量代碼說明,敬請諒解。
5.1? 入庫計劃
1)???????功能介紹:一般醫院從外面購買藥品,首先要做一個入庫計劃,生成入庫計劃單。入庫計劃單的生成可以直接選擇藥品,也可根據系統提供的計劃模板,警戒線,日消耗來自動生成入庫計劃單。
2)???????界面如圖5.1顯示:
圖5.1入庫計劃界面
此界面包含的按鈕很多,下面簡單介紹一個它們的功能:
新建:點此按鈕進入入庫計劃單生成界面。
計劃單:查看別的科室生成的入庫計劃單。
計劃模板:調用系統的模板生成入庫計劃單,不用手工選擇藥品生成。
警戒線:調用系統設定的警戒線,凡是不符合條件的藥品會自動顯示在入庫計劃單。
日消耗:通過計算日平均消耗來生成入庫計劃單。
排序:對計劃單內的藥品信息進行排序。
整單刪除:將整個入庫計劃單全部刪除。
刪除:刪除某個計劃單上的一條藥品信息。
保存:將生成的入庫計劃單保存。
打印:打印入庫計劃單。
導出:將入庫計劃單上的數據導出到Excel文檔中。
退出:退出此界面,回到主界面。
入庫計劃部分代碼:
///<summary>
????????????? ///插入一條入庫申請記錄
????????????? ///</summary>
????????????? ///<param name="applyIn">申請入庫記錄類</param>
????????????? ///<returns>0沒有更新1成功-1失敗</returns>
????????????? public intInsertApplyIn(neusoft.HISFC.Object.Pharmacy.Input applyIn)
????????????? {
???????????????????? string strSQL="";
???????????????????? if(this.Sql.GetSql("Pharmacy.Item.InsertApplyIn",ref strSQL) == -1) return-1;
???????????????????? try
???????????????????? {?
??????????????????????????? string[] strParm = myGetParmApplyIn(applyIn);??? //取參數列表
??????????????????????????? strSQL=string.Format(strSQL,strParm);?????? //替換SQL語句中的參數。
???????????????????? }
???????????????????? catch(Exception ex)
???????????????????? {
??????????????????????????? this.Err="插入入庫申請SQl參數賦值時出錯!"+ex.Message;
??????????????????????????? this.WriteErr();
??????????????????????????? return -1;
???????????????????? }
???????????????????? return this.ExecNoQuery(strSQL);
????????????? }
5.2?采購計劃
1)???????功能介紹:根據前面生成的入庫計劃單生成采購計劃單,此處需要填寫采購藥品的供貨公司,還可以進行采購拆分,將一種藥品拆分成多家供貨商供貨,同時還需要審核采購數量。
2)???????界面如圖5.2顯示:
圖5.2 采購計劃界面
計劃單:選擇前面生成的入庫計劃單,將其上的信息顯示在采購計劃單上。
采購拆分:將某些藥品分開采購,由多家供貨商供貨。
日消耗:選擇一種采購藥品,查看它的平均日消耗情況。
保存:保存采購計劃單。
打印:打印采購計劃單。
導出:將采購計劃單上的信息導出到Excel文檔中。
5.3?藥品入庫
1)???????功能介紹:完成了藥品的采購,接下來的就是將藥品入庫。藥品入庫分為三種情況:一般入庫,發票入庫,核準入庫。如果藥品和發票都有,進行一般入庫,此時會直接更新庫存,藥品采購結束。假如藥品先到,而發票此時還沒有到的情況下,則還需要做發票入庫和核準入庫才能完成整個的藥品入庫過程。
2)???????界面如圖5.3顯示:
圖5.3 藥品入庫界面
采購單:選擇采購單,采購的藥品會顯示在下方,雙擊下方的藥品信息會顯示在窗口的中間,此時可以進行批號和發票號的錄入,如果沒有發票則暫時不填。
刪除:將下面顯示的采購信息刪除。
保存:完成了發票號和批號的錄入后,保存信息,則藥品采購完成。
導出:將下面顯示的采購信息導出到Excel文檔中。
導入:把外界文件上的采購信息導入到系統中。
退出:關閉此界面,回到主界面。
藥品入庫部分代碼:
///<summary>
????????????? ///插入一條入庫記錄
????????????? ///</summary>
????????????? ///<param name="Input">入庫記錄類</param>
????????????? ///<returns>0沒有更新1成功-1失敗</returns>
????????????? public intInsertInput(neusoft.HISFC.Object.Pharmacy.Input Input)
????????????? {
???????????????????? string strSQL="";
???????????????????? if(this.Sql.GetSql("Pharmacy.Item.InsertInput",ref strSQL) == -1) return-1;
???????????????????? try
???????????????????? {
??????????????????????????? //獲取入庫流水號
??????????????????????????? Input.ID= this.GetSequence("Pharmacy.Item.GetInputBillID");
??????????????????????????? if (Input.ID == "")
??????????????????????????? {
?????????????????????????????????? this.Err = "獲取入庫流水號出錯!";
?????????????????????????????????? return -1;
??????????????????????????? }
??????????????????????????? string[] strParm = myGetParmInput( Input ); ??//取參數列表
??????????????????????????? strSQL=string.Format(strSQL, strParm);????? //替換SQL語句中的參數。
???????????????????? }
???????????????????? catch(Exception ex)
???????????????????? {
??????????????????????????? this.Err="插入入庫記錄的SQl參數賦值時出錯!Pharmacy.Item.InsertInput"+ex.Message;
??????????????????????????? this.WriteErr();
??????????????????????????? return -1;
???????????????????? }
???????????????????? return this.ExecNoQuery(strSQL);
????????????? }
3)???????如果一般入庫時沒有發票,則還要進行發票入庫和核準入庫
發票入庫如圖5.4界面:
圖5.4發票入庫界面
選擇好操作類別和目標單位后,在窗體左邊會出現還沒有錄發票的藥品,雙擊某個藥品即可添加到右邊窗體中,錄入發票號保存。
發票入庫完成以后,接下來就是核準入庫了。
核準入庫如圖5.5界面:
圖5.5核準入庫界面
選擇完操作類別和目標單位,在窗體左邊會出現已經輸入發票號的藥品,雙擊即可添加到右邊窗體中,保存即可。完成此步驟后藥品入庫就完成了。
5.4?盤點管理
1)???????功能介紹:盤點庫存中藥品的實際數量,將實際庫存更新到計算機中。
2)???????界面如圖5.6顯示:
圖5.6盤點管理界面
封帳:點此按鈕進入盤點,取此時的庫存做比較。
盤點模板:調用事先做好的盤點模板,不用再手工選擇藥品生成盤點單。
批量封帳:按藥品類別和藥品性質進行盤點。
全盤:根據當前庫存更新盤點庫存。
歷史盤點:調用以前的盤點單。
盤點附加:添加盤點附加藥品。
保存:保存盤點單。
刪除:刪除某條記錄。
打印:打印盤點單。
導出:導出盤點單。
盤點管理部分代碼:
///<summary>
????????????? ///向盤點統計表內插入一條數據
????????????? ///</summary>
????????????? ///<param name="checkInfo">盤點實體</param>
????????????? ///<returns>0 沒有更新1 成功-失敗</returns>
????????????? public intInsertCheckStatic(neusoft.HISFC.Object.Pharmacy.Check checkInfo)
????????????? {
???????????????????? string strSQL="";
???????????????????? //取插入操作的SQL語句
???????????????????? if(this.Sql.GetSql("Pharmacy.Item.InsertCheckStatic",ref strSQL) == -1)
???????????????????? {
??????????????????????????? this.Err="沒有找到Pharmacy.Item.InsertCheckStatic字段!";
??????????????????????????? return -1;
???????????????????? }
???????????????????? try
???????????????????? {?
??????????????????????????? string[] strParm = this.myGetParmForCheckStatic(checkInfo);???? //取參數列表
??????????????????????????? strSQL=string.Format(strSQL, strParm);??????????? //替換SQL語句中的參數。
???????????????????? }
???????????????????? catch(Exception ex)
???????????????????? {
??????????????????????????? this.Err = "格式化SQL語句時出錯Pharmacy.Item.InsertCheckStatic:" + ex.Message;
??????????????????????????? this.WriteErr();
??????????????????????????? return -1;
???????????????????? }
???????????????????? return this.ExecNoQuery(strSQL);
????????????? }
5.5?盤點結存
1)???????功能介紹:做完盤點單以后就應該做結存,結存后才真正把盤點的實際庫存數量更新到計算機中。
2)???????界面顯示如圖5.7。
結存:用盤點數量更新計算機中的庫存。
解封:將此盤點單作廢。
打印:打印盤點單。
導出:將盤點單導出到Excel文檔中。
圖5.7盤點結存界面
?
結??? 論
藥庫管理系統是HIS的一個子模塊,為醫院藥庫工作人員管理醫院藥品帶來了許多的便利提高了工作效率。該系統提供了藥庫工作人員在藥庫的常規操作,包括常數維護、藥品出庫、藥品入庫、庫存管理、庫存查詢和盤點管理等,設計這個全新的藥庫管理系統,必將進一步促進醫院的信息化管理。
使用藥庫管理系統,能夠實現庫存管理、藥品入出庫、基本信息維護等功能,并能夠對藥庫進行各種常用的查詢,保證了醫院藥品在醫院的周轉,能夠作為HIS的一個子模塊能與其他模塊進行很好整合在一起。
在開發藥庫管理系統的同時,做了大量的市場調研和分析,同時借鑒了國內外比較優秀的醫院管理系統軟件,吸收了他們的長處并改進了他們的不足。藥庫管理系統是基于二層(Client/Server,C/S)的體系結構的應用軟件。這是因為二層(C/S)方式具有良好的交互性、健壯性、存儲安全、速度快等特點。在開發的過程中,我們嚴格按照軟件工程的步驟進行,每一步都有經過了嚴密的論證。我們力求開發一個功能完備、操作方便、界面友好、高擴展性,同時具有優越性價比的軟件??梢哉f,藥庫管理系統完全適應國內醫院管理信息化的需要,適宜在國內各大、中、小醫院中推廣使用。
各戶的觀點總會存在著不同,所以十分完美的軟件是不會存在的。在好的軟件總會存在著多多少少的不足,我們的目的就是要把不足之處做到最少,盡量滿足盡可能多的各戶。在測試的過程中也發現了很多錯誤和不足。比如說系統運行一段時間后會占用太多內存、系統界面偶爾不能滿足客戶的需求、有些地方數據刷新不夠及時等等。這些都是我們需要改善的地方。
?
致??? 謝
經過相當長時間的辛苦與努力,這篇論文終于完成。如果沒有身邊同事和導師的幫助、指引和贈予,如果沒有父母和朋友的幫助與支持,這篇論文的價值肯定會大打折扣;它也是我大學四年學習生涯的最后總結,在我完成論文的最后一刻,涌上心頭的不是長途跋涉后抵達終點的欣喜,而是源自心底的誠摯謝意。
首先我要感謝我的父母以及親人,正是父母的含辛茹苦的栽培默默地支持與奉獻才有了今天的我,正是親人們給了我無比的溫暖以及支持才讓我生活的如此豐富,在此我衷心地感謝我敬愛的父母與親人們。
然后我要感謝我的導師劉志存,同時還要感謝在東軟的同事,他們給予了我很大的幫助與支持,在工作中遇到困難時,是他們不厭其煩的給我進行多次指導和悉心的指點,使我在完成論文的同時也深受啟發和教育。
由衷地感謝信息與計算科學系的各位老師對學生的指導和教誨,我也在努力的積蓄著力量,盡自己的微薄之力回報母校的培育之情,為社會創造更多的價值回報社會!
最后,再次對關心、幫助我的老師和同學表示衷心地感謝,同時也感謝母校。我明白,正是在她那溫潤寬厚的胸懷上,我成長起來的,我心永系東秦!
?
參考文獻
[1]????李有志,淺析醫院信息系統的發展及未來[EB/OL].
http://www.mesworld.cn/72-1/1983.htm,2010-01-04.
[2]????胡正國,吳健,鄧正宏 編著.程序設計方法學[M].北京:國防工業出版社.2003: 36-192.
[3]????陶安順.結構化程序設計方法[M].大連:大連海運學院出版社.1988:5-107.
[4]????(美國)魯德著,杜大鵬等譯.編程邏輯與結構化程序設計[M].北京:中國水利水電出版社.2004: 36-192.
[5]????張海藩.軟件工程[M].北京:人民郵電出版社.2006:13-97.
[6]????周禮,Visual Studio 2005介紹[EB/OL].
http://www.51cto.com/art/200806/77375.htm, 2008-06-18.
[7]????王宏.C# 程序設計案例教程[M].北京:清華大學出版社,2000:101-136.
[8]????齊立波譯.C#入門經典(第3版)[M].北京:清華大學出版社,2006:36-156.
[9]????蓋國強.深入淺出Oracle-DBA入門、進階與診斷案例[M].北京:人民郵電出版社,2006:128-157.
[10] 王國酬,DataWindow.Net應用介紹[EB/OL].
http://kb.cnblogs.com/a/1523743/, 2009-7-15.
?
附???錄
譯文1
?Software Engineering
Software engineering is to guide the development and maintenance ofcomputer software engineering disciplines.?Using engineering concepts,principles, techniques and methods to develop and maintain the software, thetime-tested and proven correct and current management techniques can be thebest combination of technical approach, which is software engineering SoftwareEngineering (Software Engineering) can be summarized as: goals, processes andprinciples.
Softwareengineering goal: production of accuracy, availability and cost of appropriateproducts Correctness of software products that achieve the desired level offunction.?Availability refers to the basic structure of the software,implementation, and documentation available for the user level.?Softwaredevelopment cost is appropriate to run the entire cost of the degree to meetuser requirements.?Attainment of these goals both in theory and inpractice there are many unresolved issues, they form the process, the processmodel and methods of selected constraints.
Softwareengineering process: production of a final project to meet the needs and goalsof software products to achieve the required steps.?Software engineeringprocess includes the development process, operational process, maintenanceprocess.?They cover the requirements, design, implementation, verificationand maintenance activities.?Requirements include problem analysis andneeds analysis.?Analysis for requirements definition, also known assoftware requirements specification.?Demand generationstatute.?Summary of design activities generally include the design anddetailed design.?Summary of the establishment of the entire softwaresystem architecture design, including subsystems, modules and related levels ofdescription, each module's interface definition Programmers produce detaileddesign description of available modules, including description of each moduleand processing the data structure description Activities designed to achievethe results into executable code.?Validation activities throughout thedevelopment process, to achieve completion of the confirmation to ensure thefinal product to meet user requirements.?Maintenance activities includingthe use of the process of ?expansion.change and improve.?With the above process, there are managementprocesses, support processes, training processes.
Softwareengineering principles: is the focus on engineering design, engineering supportand project management in the software development process must follow theprinciple.
軟件工程
軟件工程是指導計算機軟件開發和維護的工程學科。采用工程的概念、原理、?技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,這就是軟件工程。軟件工程(SE)可概括為:目標、過程和原則。?
軟件工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟件產品達到預期功能的程度??捎眯灾杠浖窘Y構、實現及文檔為用戶可用的程度。開銷合宜是指軟件開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
軟件工程過程:生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。軟件工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿于整個開發過程,實現完成后的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
軟件工程的原則:是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。
譯文2
Hospital Information System
?
Hospitalsare the key institutions in providing relief against sickness and disease. Theyhave become an integral part of the comprehensive health services, bothcurative and preventive. Significant progress has been made in improving theirefficiency and operations.
Effectivenessof a health institution - hospitals or nursing homes, depends on its goals andobjectives, its strategic location, soundness of its operations, and efficiencyof its management systems. The administrator's effectiveness depends upon theefficiency with which he is able to achieve the goals and objectives. Some ofthe major factors determining the effectiveness of a health institutionincludes patient care management and patient satisfaction.
Hospitalsare very expensive to build and to operate. Administrators and professionalshave to be extremely cost conscious. Effective computer systems and proceduresneed to be implemented to ensure proper list of limited resources towardquality health care. It becomes even more important when an in-house medicalfacility is provided by an industry for it’s employees, as is the case for TataSteel Patient care management in Tata Steel has fully listed the power ofcomputers in Medicare, whereby network of integrated systems maintainingpatient database for the hospital services in the areas of Pathology,Radiology, Medical Research, In-patient Admissions and Billing, Medical Stores& Pharmacy are operational.?
HIS has advanced intelligence tools which enables themanagement of the healthcare facilities take informed real-time decisions. Itsupports workflows, alerts and notifications which help keep critical businessas well as clinical parameters in control. HIS has functionality of businessintelligence and knowledge portal that has KPIs for advanced decision makingand content for knowledge sharing.
?
HIS系統
醫院是提供對疾病和疾病救濟關鍵的機構。他們已成為全面健康服務中不可分割的一部分,包括治療和預防?,F代醫院系統已經取得了重大進展,改善其運行效率和運營管理。
有效性的醫療機構--醫院或療養院,取決于它的目的和目標,其優越的地理位置,健全的經營,其管理系統的效率。管理員的成效取決于使他能夠達到的目標和目標成效。決定一個衛生機構效率的主要因素包括一些病人護理管理和病人的滿意度。
醫院是非常昂貴的建設和經營。管理者和專業人士都必須 極具成本意識。有效的電腦系統和程序需予以實施對質量保證有限的醫療資源得以妥善運用。它變得更加重要 當內部的醫療設施是由工業提供的為它的員工。
使用HIS系統,病人得到了健全的照顧體制,充分利用了醫療保險,計算機電源,讓網絡在維持地區的醫院服務病人數據庫集成系統病理學、放射學、醫學研究,在門診入學及賬單,醫療物品及藥劑已開始運作。
HIS的擁有先進的智能工具,它使醫療保健設施的管理采取明智的實時決策。它支持的工作流程,警報和通知,協助保護重要的業務,以及在控制臨床參數。HIS的具有商業智能和知識門戶網站,擁有先進的決策和知識共享內容KPI的功能。
總結
- 上一篇: 移动网流量用户身份识别系统的源代码_真武
- 下一篇: bch纠错码 码长8_从HDMI视频数据