• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于C#和WinForm技術設計的藥庫管理系統(tǒng)

      2020-09-29 07:51張華貴邱丹
      電腦知識與技術 2020年17期

      張華貴 邱丹

      摘要:隨著信息技術的不斷發(fā)展,計算機網絡知識飛速更新,同時計算機操作及管理也越來越簡單化。為了適應現代社會發(fā)展的需要,我國的各行各業(yè)都不斷開發(fā)出各種管理信息系統(tǒng),用來提高工作及生產效率,而在醫(yī)療單位,大部分部門都開發(fā)了相關的藥庫管理系統(tǒng)來提高管理水平,減少藥品出錯概率。

      關鍵詞:藥庫管理;C#技術;SQL Server數據庫

      中圖分類號:R197.324 ? ? ?文獻標識碼:A

      文章編號:1009-3044(2020)17-095-03

      1 背景

      在一般的醫(yī)療單位如醫(yī)院、療養(yǎng)院、衛(wèi)生所等單位,都需要使用藥品庫來存儲大量的藥品及消耗材料,而且藥品的種類也繁多。在藥庫管理系統(tǒng)中,藥品及消耗材料的入庫、出庫、盤點以及庫存查詢和藥品使用數據統(tǒng)計是最常見的工作。由于這些業(yè)務的流程復雜,以前的手工記錄需要制作許多表格由人工來填寫,所以常常顯得十分煩瑣,而且經常出錯,效率也十分低。在這種情況下,相關醫(yī)療行業(yè)都用上了先進的信息技術來管理這一問題,解決了這道難題。因此,藥庫管理系統(tǒng)的開發(fā)和應用在成了醫(yī)療行業(yè)單位的研發(fā)課題。

      2 需求分析

      我單位是一個康復療養(yǎng)中心,藥劑科管理整個藥品庫以及各個科室正常發(fā)藥的功能,通過與科里管理人員的有效溝通及功能需要,此藥庫管理系統(tǒng)最終要設計完成的目標為:能夠靈活方便快捷錄入藥品信息,新增、修改等等功能完成,使藥品信息管理更快捷;人機交互界面友好,藥品信息查詢方便,數據保存安全可靠;提供多種數據字典,使錄入的信息能從字典直接取出,如藥品字典、供應商字典、廠商字典、科室字典等;藥品管理功能,包括出入庫管理、科室使用管理、報損管理和藥品盤點管理等等;有相對完善的數據備份和恢復功能;能夠根據人員的操作權限確定其操作功能;系統(tǒng)應該具有良好的安裝性、維護性和操作性,由于藥庫管理系統(tǒng)主要是藥庫人員使用,所以采用了C#語言WinForm窗口程序來開發(fā),數據庫采用了SQL Server 2012進行設計。

      3 系統(tǒng)設計

      3.1 系統(tǒng)功能結構

      經過需求分析后,根據科室的需要,我們設計的藥庫管理系統(tǒng)的基本功能如圖1所示。

      3.2 系統(tǒng)運行預覽

      藥庫管理系統(tǒng)功能模塊由30多個窗口程序組成,根據不同的功能封裝到不同的WinForm程序中,主程序的運行界面如圖2所示。

      主窗口主要實現快速打開其他系統(tǒng)的所有功能,該窗體提供兩種方式打開子窗體的菜單,分別通過最上面的常規(guī)菜單打開系統(tǒng)中的所有子窗體;也可以利用窗體中間的導航圖標點擊來打開系統(tǒng)中的所有子窗體。系統(tǒng)采用了MDI窗口來制作,其中父窗口就是當前運行的窗口,其他系統(tǒng)的窗口都是子窗口,點擊功能按鈕打開后都顯示在主窗口的TAB界面中展示。

      4 數據庫設計

      在用SQL Server 2012作為后臺數據庫中,一共設計了十多張表來支撐程序的運行所需。為了使表看起來一目了然,所有表都以Med開頭。這里只介紹主要的幾張數據表的內容:

      Med_UserInfo 用戶信息表,字段分別有用戶編號、姓名、建立日期和用戶權限等,用于保存登錄用戶信息及用戶具有的操作權限,不同登錄用戶權限不同,如入庫人員只能進行入庫操作,出庫員只能進行發(fā)藥操作。

      Med_Provider 供應商和廠商信息字典表,這兩個字典使用同一個表,其中一個Flag字段取值為0和1分別標識是供應商或者是廠商,這個表的字段分別有編號、編碼、名稱、標識和拼音碼等字段。

      Med_Dept 科室字典,用于保存藥品出庫的科室。這個表的字段分別有編號、科室編碼、科室名稱、中西藥標志、拼音碼等字段。

      Med_ItemInfo 藥品基本信息字典表,這個表的字段分別有藥品編號、名稱、劑型、拼音碼、國際編碼、零售價、批發(fā)價、購入價、毒麻標志、上下限標志、生產廠商、供應商、建立日期、預留字段、操作員等字典,可以在字典管理菜單中進行維護操作。

      Med_InStorage 藥品入庫信息表,這個表的字段分別有入庫單編號、藥品編碼、規(guī)格、名稱、批發(fā)價、購入價、零售價、生產商和供應商、藥品單位、入庫數量、入庫日期、采購人員、操作人員、預留字段等,用來保存入庫操作員錄入新采購的藥品。

      Med_OutStorage 藥品出庫信息表,這個表的字段分別有出庫單編號、出庫科室編碼、藥品編碼、出庫數量、申請人、出庫標識、審核人、審核日期、出庫日期、簽收人、操作員等字段,用來保存藥品出庫的基本信息。

      Med_Storage 藥品庫存信息表,這個表的字段分別有編號、出庫單編號、入庫單編號、藥品編碼、科室編碼、數量等字段,用來進行藥品盤點統(tǒng)計。

      Med_Damage 藥品報損信息表,這個表的字段分別有報損單編號、報損科室編碼、藥品編碼、藥品數量、報損日期、報損人員、報損原因、處理方式、操作員等,主要用來保存藥品因各種原因而進行的報損登記。

      5 程序功能模塊設計

      本系統(tǒng)采用C# 2015進行開發(fā),使用C/S模式制作前臺與用戶之間的交互。在程序的開發(fā)過程中,為了使整個程序統(tǒng)一和規(guī)范,我們采用了模塊化設計方式。按我們的初始需要,我們設計了字典管理模塊、人員管理模塊、藥品入庫管理模塊、出庫管理模塊、綜合查詢模塊,除了查詢外,每個相應的模塊中的各種不同子功能基本都具有增、刪、改、查等方法。下面我們具體來看其中比較重要的功能及實現的方法。

      5.1 公共類庫程序設計

      在公共類庫中,我們把基本的使用功能都做了一個封裝,每個模塊的增、刪、改、查等方法都可以通過公共類庫封裝的方法傳值并調用,就可以完成相應的功能,解決了頻繁寫相同的代碼,容易出錯、不好調試代碼等缺點。公共類庫的名稱為OperDataManager.cs,在它的命名空間需要引用using System.Data.SqlClient命名空間。在它的類中包含了如下方法:

      GetConnection()方法:這個方法主要是用來返回一個數據庫的連接字符串,這個連接字符串即可以通過配置文件App.config獲取,也可以直接寫到程序里,這里我們讀取配置文件:

      public SqlConnection GetConnection()

      { ?string strConn= ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString;

      SqlConnection sqlConn=new SqlConnection(strConn);

      return sqlConn;}

      RunSql()方法:這個方法用來執(zhí)行一條SQL語句,如刪除和修改,不用返回數據,由于數據庫連后打開的方法我們初始化的時候就執(zhí)行了,所以這里的方法也不再重復寫打開數據庫的語句:

      public int RunSql (string strSql, SqlParameter[] prams)

      { ? ? ?SqlCommand cmd = CreateCommand(strSql, prams);

      cmd.ExecuteNonQuery();

      this.Close();

      return (int)cmd.Parameters["ReturnValue"].Value; }//執(zhí)行成功返回值

      GetDataSet()方法:這個方法用來返回一個DataSet類型的數據集,

      public DataSet GetDataSet(string strSql, SqlParameter[] prams, string tableName)

      { ? ? ?SqlDataAdapter SqlSda = CreateDataAdaper(strSql, prams);

      DataSet ds = new DataSet();

      SqlSda.Fill(ds, tableName);

      this.Close();

      return ds; }//執(zhí)行成功返回值

      還有其他多個方法如:初始化數據庫連接InitDate()、打開數據庫OpenData()、關閉數據庫CloseData()等都比較簡單,就不一一列出來了,另外還有一些讀取數據庫的方法都是在上面方法擴展起來的、如GetTable()返回一個數據表、GetReader()讀取一條記錄等。

      5.2 字典功能模塊

      字典功能模塊程序也做了一個很好的封裝,設計思想是單擊某一個字典功能后,獲取該字典的名稱,根據該名稱通過SQl語句查詢該名稱的數據表,然后讀出表中的字段內容,根據字段內容動態(tài)生成每個字段的標簽及文本框。這個模塊的窗口Formt程序中,上部分為生成的每個字段文本框,下部分為一個DataGridView控件,用來展示數據,窗體運行后程序初始化并執(zhí)行查詢字典表方法GetDataSet(),返回的數據在DataGridView控件中展示出來。上部分的字段相應的文本框為空值。當單擊DataGridView控件中的某行時,所選行的數據在上部的文本框中顯示出來。在文本框的下一行有新增、修改、刪除和保存按鈕,當選擇的數據修改后,單擊修改按鈕并執(zhí)行,則修改的數據將會保存到數據庫。其他的按鈕執(zhí)行相應的功能。要注意的是上部分的文本框中,所有字典生成的ID序號為自增的主鍵,不能修改,文本框的屬性也設置成了ReadOnly=True只讀。此外,我們在窗體程序中增加了一個ErrorProvider控件,用于對窗體中字段所對應的文本框做驗證,如果的Int型的,就不能輸入字符串,避免新增和更新時出現錯誤。

      5.3 藥品管理功能模塊

      藥品管理功能分為藥品入庫與藥品出庫。藥品出入庫管理是藥庫管理系統(tǒng)中的一個重要功能,它主要實現藥品的出入庫登記功能。在藥品出入庫時,不僅需要記錄藥品名稱、數量、進貨價格和類別等信息,還需要修改藥品原有庫存表中藥品的庫存數量。出入庫管理的窗體Form程序同樣采用了界面中的上下版本結構,上部分顯示需要入庫藥品的基本字段信息文本框,下部分顯示DataGridView控件綁定數據庫中已有的藥品及數量,窗體頂部采用了MenuStrip菜單欄設計,菜單欄包含了藥品入庫、藥品出庫、藥品報損、藥品刪除和退出功能。其中出庫和報損都會新增一個RichBox控件,用來說明原因,這些功能都有批準人和執(zhí)行人文本框,分清執(zhí)行權限。其中藥品的供應商和廠商以及其他帶下拉列表框的控件,都采用了直接綁定數據源的方式去調用數據字典,而藥品的出入庫信息則是通過調用SQL Server的存儲過程來實現,這里也用了SQL Server的觸發(fā)器,當執(zhí)行入庫或出庫功能按鈕后,提取藥品文本框的數據并調用存儲過程,當存儲過程執(zhí)行成功后,觸發(fā)器被觸發(fā),對藥品庫存數量進行相應的增減,報損和刪除也是同樣的工作原理。

      5.4 統(tǒng)計查詢管理功能模塊

      統(tǒng)計查詢的模塊包括了藥品入庫查詢、藥品出庫查詢、藥品盤點、藥品出入庫的月統(tǒng)計和年統(tǒng)計等功能。統(tǒng)計查詢的功能比較簡單,是在正常的SQL查詢語句中根據不同的查詢條件利用where語句過濾需要提取的數據。查詢的WinForm窗體分為左右部分,同樣頂部為主菜單,分別是入庫查詢、出庫查詢、盤點、月統(tǒng)計、導出數據等按鈕功能。左部為DataGridView控件,綁定查詢到的數據結果并顯示,右部為柱狀分析圖,分析統(tǒng)計結果。其中右部分的圖形采用的Devexpress套件中的chartControl數據圖表控件,通過綁定數據庫中的查詢即可顯示,簡單直觀。這也避免了使用系統(tǒng)自身圖形控件產生圖表帶來的諸如刷新不及時等問題。

      5.5 系統(tǒng)維護功能模塊

      這個模塊的功能比較簡單,維護一些常用信息,如設置公共變量,記錄操作員登錄操作信息、對數據庫的備份與恢復等。這些功能都比較簡單,在這里就不一一說明了。

      科室人員管理和字典管理的程序差不多,這里也不做進一步的說明。至此,藥庫管理系統(tǒng)的功能及模塊設計就完成了。有需要的朋友可以給我回郵件:Zhg_w@163.com。

      6 結束語

      通過藥品庫存管理系統(tǒng)的開發(fā),實現了藥品庫存管理的信息化,它利用先進的計算機信息技術來代替了傳統(tǒng)的手工管理與統(tǒng)計,極大地提高了工作效率并減少意外失誤。藥庫管理系統(tǒng)是醫(yī)療單位使用中不可缺少的一個重要部分,包括了常見的入庫、出庫、報損、統(tǒng)計等功能,通過這個程序,我們對于類似的管理會有深入的了解,能夠更好地為其他類似的管理軟件的開發(fā)打下堅實的基礎,也歡迎廣大朋友與我聯(lián)系,共同學習進步。

      參與文獻:

      [1] 顧旭棟. 中藥材庫存管理研究——以SH門診部為例[D]. 上海: 華東理工大學, 2015.

      [2] 冷淑霞, 徐濤. 基于C/S模式的物資管理系統(tǒng)設計與實現[J]. 山東工程學院學報, 2001, 15(4): 38-40.

      [3] 張葳. .NET通過ADO.NET構建類庫的形式訪問數據庫[J]. 黑龍江科技信息, 2012(1): 102.

      [4] 張虹. 計算機系統(tǒng)在我院藥庫管理中的應用[J]. 中國醫(yī)藥導報, 2007, 4(27): 142.

      【通聯(lián)編輯:謝媛媛】

      稻城县| 四子王旗| 双城市| 昭通市| 涿鹿县| 海原县| 哈巴河县| 和硕县| 苗栗市| 阿克陶县| 巴楚县| 定安县| 马关县| 古田县| 依安县| 曲麻莱县| 革吉县| 宜宾县| 繁昌县| 右玉县| 汤阴县| 大港区| 建德市| 嘉义县| 土默特左旗| 曲靖市| 平陆县| 邢台县| 兴义市| 寻乌县| 靖江市| 邯郸县| 嘉义县| 无极县| 晋中市| 五原县| 隆昌县| 临澧县| 民乐县| 白玉县| 子长县|