姜 利
(長春大學(xué) 電子信息工程學(xué)院,長春 130022)
基于C#語言的醫(yī)院住院入出轉(zhuǎn)管理系統(tǒng)的設(shè)計與實現(xiàn)
姜 利
(長春大學(xué) 電子信息工程學(xué)院,長春 130022)
介紹了住院入出轉(zhuǎn)管理系統(tǒng)的設(shè)計與實現(xiàn)。系統(tǒng)選用C#語言為開發(fā)語言,以Visual Studio.NET為開發(fā)環(huán)境,后臺采用的是Oracle 10g數(shù)據(jù)庫。在經(jīng)過詳細的用戶需求分析后將系統(tǒng)分為七個功能模塊,基于Client/Server(C/S)三層架構(gòu),完成了數(shù)據(jù)庫設(shè)計、實體類設(shè)計和三層設(shè)計,實現(xiàn)了七個模塊的相應(yīng)功能。
醫(yī)院信息系統(tǒng);住院入出轉(zhuǎn);三層架構(gòu);Visual Studio.NET
隨著信息技術(shù)的迅速發(fā)展,信息化、數(shù)字化已經(jīng)進入各行各業(yè)和人們生活中的許多方面,我國的醫(yī)院也不知不覺地進入了數(shù)字化和信息化時代,我們不僅可以看到CT、MRI、彩超等大型的數(shù)字化醫(yī)療設(shè)備在醫(yī)院中廣泛使用,還可以看到從單機到計算機網(wǎng)絡(luò)的各種醫(yī)療收費系統(tǒng)、管理系統(tǒng)和醫(yī)療信息處理系統(tǒng)等正在普及,所以醫(yī)院信息系統(tǒng)的建設(shè)就非常必要[1]。住院入出轉(zhuǎn)管理系統(tǒng)是醫(yī)院信息管理系統(tǒng)的子系統(tǒng),是運行于Windows平臺的軟件系統(tǒng),可以實現(xiàn)人員添加修改刪除、權(quán)限管理、住院登記、預(yù)交金管理、無費退院、出院登記、出院召回等功能。本設(shè)計選用C#語言[2-3]為開發(fā)語言,以Visual Studio.NET[4]為開發(fā)環(huán)境,后臺采用的是Oracle 10g數(shù)據(jù)庫[5],同時使用FarPoint[6],PL/SQL Developer等相關(guān)工具。
住院流程是患者在接到住院通知單是到住院處繳納一定預(yù)交金,然后進行住院登記登記患者信息;患者發(fā)生特殊情況無需住院時進行無費退院;在進行登記后護士進行接診,安排床位;在完成治療后患者重新返回住院處結(jié)清費用進行出院登記;當(dāng)病人需要繼續(xù)接受治療時進行出院召回。
住院入出轉(zhuǎn)管理系統(tǒng)需要實現(xiàn)住院登記、出院登記、無費退院、預(yù)交金管理、出院召回、系統(tǒng)管理等功能,其中系統(tǒng)管理功能針對醫(yī)院員工,其余功能針對患者。如圖1所示是住院入出轉(zhuǎn)管理需求分析圖。
(1)住院登記,對住院患者登記,包括基本信息錄入、預(yù)交金收取。自動生成將患者信息保存在住院主表及病人信息表之中,將預(yù)交金存入住院主表和預(yù)交金表之中。
(2)出院登記,對患者進行出院登記,填寫患者出院情況,如果患者未發(fā)生任何費用提示進行無費退院。將患者信息修改存入住院主表之中。
(3)無費退院,對患者進無費退院,當(dāng)患者有未返還的預(yù)交金時提示患者進行進行預(yù)交金返還,當(dāng)已經(jīng)發(fā)生費用的患者提示進行出院登記。將修改信息存入住院主表中。
(4)預(yù)交金管理,對患者進行預(yù)交金的收取、返還、補打操作,預(yù)交金返還后作廢該條記錄顯示為紅色,預(yù)交金補打后增加一條負記錄和一條正記錄顯示為藍色。將新增的預(yù)交金數(shù)據(jù)存入預(yù)交金表中。
(5)出院召回,對患者進行出院召回操作將患者重新變?yōu)樵谠籂顟B(tài),召回時將重新分配床位、醫(yī)生、護士。將修改的信息存入住院主表中。
(6)系統(tǒng)管理,對醫(yī)院員工進行管理包括:員工管理、權(quán)限管理、登陸管理。員工管理,進行增加員工,刪除員工,將修改信息存入員工信息表中;權(quán)限管理,進行員工權(quán)限的增加與刪除,權(quán)限為(1)-(5)功能的增刪改查權(quán)限,從功能信息表中取出權(quán)限,將添加或刪除的權(quán)限存入員工權(quán)限表中;登陸管理,進行該系統(tǒng)的登陸,核對員工信息,從員工表中取出數(shù)據(jù)。

圖1 住院入出轉(zhuǎn)管理需求分析圖
傳統(tǒng)的信息管理系統(tǒng)開發(fā)時并沒有分層,難以維護,可擴展性不強,因此應(yīng)用系統(tǒng)選擇正確的體系結(jié)構(gòu)是至關(guān)重要的,如今許多醫(yī)院采用的是C/S(Client/Server)三層架構(gòu)體系。三層架構(gòu)可以使得軟件系統(tǒng)結(jié)構(gòu)更清楚,軟件開發(fā)工作更明確,有利于后期的維護和升級,缺點是不適用于執(zhí)行效率要求非常高的系統(tǒng)設(shè)計。
三層架構(gòu)指的是持久層、業(yè)務(wù)層、表示層。[7]如圖2所示。表示層:位于系統(tǒng)的最外層(最上層),離用戶最近。用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),只提供系統(tǒng)與用戶交互的接口界面。業(yè)務(wù)邏輯層:位于表示層和數(shù)據(jù)訪問層之間,專門負責(zé)處理用戶輸入的信息,或者是將這些信息發(fā)送給持久層進行保存,或者是通過持久層從數(shù)據(jù)庫查處這些數(shù)據(jù)。業(yè)務(wù)邏輯層連接著表示層持久層,負責(zé)數(shù)據(jù)處理和傳遞。持久層:僅實現(xiàn)對數(shù)據(jù)的保存和讀取操作。數(shù)據(jù)訪問包括訪問數(shù)據(jù)庫系統(tǒng)、二進制文件、文本文檔或是XML文檔。數(shù)據(jù)訪問層只負責(zé)對數(shù)據(jù)的訪問存取工作。

圖2 三層架構(gòu)示意圖
Model不屬于任何一層,它其實是面向?qū)ο缶幊讨凶罨镜摹邦悺钡母拍睿?],可以稱之為實體類。實體類起著連接各個層的作用,在代碼的設(shè)計過程中需要將所傳的值封裝到相應(yīng)的類之中再與各個層之間進行傳遞和處理,這樣使得整個值的傳遞過程變的系統(tǒng)化不易出錯。
根據(jù)三層架構(gòu)的理念在Visual Studio.NET環(huán)境下對系統(tǒng)進行搭建如圖3所示。其中FrameWork為持久層、Neusoft.HISFC.BizProcess為業(yè)務(wù)層、Neusoft.HISFC.WinForms為表示層Neusoft.HISFC.Models與Neusoft.HISFC.Models.Base.EnumServiceBase為Model層。

圖3 三層搭建圖示
根據(jù)系統(tǒng)的需求以及架構(gòu)設(shè)計數(shù)據(jù)庫表,如表1是系統(tǒng)模塊設(shè)計相關(guān)表。

表1 數(shù)據(jù)庫設(shè)計說明表
為方便數(shù)據(jù)傳輸Model層中的類名與數(shù)據(jù)庫表名相似,類中屬性與表中字段名一致,在類的設(shè)計中往往會添加一些屬性,這類屬性在數(shù)據(jù)庫的表中沒有相應(yīng)的字段進行對應(yīng),添加它的目的是為了方便代碼的編寫。圖4為Model所有類設(shè)計。

圖4 實體類設(shè)計圖示
持久層設(shè)計,在持久層中有一個類如圖5所示。類中有四個方法分別為:連接數(shù)據(jù)庫方法、關(guān)閉數(shù)據(jù)庫方法、執(zhí)行查詢數(shù)據(jù)方法、執(zhí)行增加刪除數(shù)據(jù)方法。

圖5 持久層設(shè)計圖示
業(yè)務(wù)層設(shè)計,在業(yè)務(wù)層中有大量代碼接收表示層用戶數(shù)據(jù)處理后封裝傳遞給持久層方法進行執(zhí)行,同時有大量方法接收持久層封裝數(shù)據(jù)進行處理返回給表示層進行顯示。如圖6所示為業(yè)務(wù)層所有類。

圖6 持久層設(shè)計圖示
表示層設(shè)計,在表示層中包含所有模塊的界面顯示,代碼中方有事件將用戶數(shù)據(jù)進行封裝傳遞給業(yè)務(wù)層方法同時將業(yè)務(wù)層封裝數(shù)據(jù)進行顯示,另外有一些事件進行界面清屏、界面調(diào)用、界面退出等。如圖7所示為表示層所有Form。

圖7 表示層設(shè)計圖示
在經(jīng)過所有代碼設(shè)計后,經(jīng)過BUG測試完成本系統(tǒng)的設(shè)計,圖8是住院入出轉(zhuǎn)管理系統(tǒng)主界面。系統(tǒng)包括五個菜單,菜單入院管理下包含兩個模塊:入院登記與出院召回;菜單出院管理下包含兩個模塊無費退院與出院登記;菜單預(yù)交金管理;菜單系統(tǒng)管理包含有兩個模塊:員工管理與員工權(quán)限管理;幫助菜單下包含修改登陸密碼、退出系統(tǒng)與注銷登陸三個功能。

圖8 系統(tǒng)主界面圖示
限于篇幅,此處僅介紹出院登記實現(xiàn),其余模塊類似,圖9為出院登記界面,操作員輸入患者住院號點擊回車可以顯示患者信息,填寫出院情況后點擊保存,可以對患者進行出院登記,如患者未發(fā)生費用則提示患者進行無費退院。

圖9 出院登記界面圖示
本設(shè)計實現(xiàn)了基于C#語言的醫(yī)院住院入出轉(zhuǎn)管理系統(tǒng)。在經(jīng)過詳細的用戶需求分析后將系統(tǒng)分為七個功能模塊,基于Client/Server(C/S)三層架構(gòu),完成了數(shù)據(jù)庫設(shè)計、實體類設(shè)計和三層設(shè)計,實現(xiàn)了七個模塊的相應(yīng)功能。系統(tǒng)可以在Windows操作系統(tǒng)下進行醫(yī)院住院入出轉(zhuǎn)管理,實現(xiàn)客戶端與服務(wù)端的數(shù)據(jù)連接,可以實現(xiàn)多個員工同時連同一數(shù)據(jù)庫。由于本系統(tǒng)架構(gòu)簡單,只能用于簡單的住院處管理,未實現(xiàn)接口擴展,對于真正的醫(yī)院信息系統(tǒng)仍需要系統(tǒng)的開發(fā)與實現(xiàn)。
[1] 陳國清,李建國,賈峻波.醫(yī)院信息系統(tǒng)的建設(shè)與應(yīng)用[J].醫(yī)學(xué)信息,2007(10):20-21.
[2] 石治國.C#開發(fā)寶典[M].北京:清華大學(xué)出版社,2001.
[3]Nagel.C.C#高級編程[M].6版.北京:清華大學(xué)出版社,2008.
[4] 孫永強,陳宗斌,邸艷輝.Visual C#.NET入門與提高[M].北京:清華大學(xué)出版社,2002.
[5] 王海亮,林立新.精通Oracle.10g.PL/SQL編程[M].北京:中國水利水電出版社,2004.
[6] 宋楚平.WinForm應(yīng)用開發(fā)與實踐教程[M].北京:高等教育出版社,2009.
[7] 周建輝,姚素紅.三層架構(gòu)作業(yè)管理系統(tǒng)的設(shè)計與實現(xiàn)[J].南通航運職業(yè)技術(shù)學(xué)院學(xué)報,2009,8(4):74-77.
The Design and Implementation of Hospital Management System about Admission and Discharge Based on C#
JIANG Li
(College of Electronic Information Engineering,Changchun University,Changchun 130022,China)
This paper introduces the design and implementation of a hospital management system about admission and discharge,which uses C#Language as the development language,Visual Studio.NET as the development environment and Oracle 10g as database.The system is divided into seven modules after user demand analysis.Database design,model design and three-layer design are completed based on Client/Server(C/S)three-layer structure.The system with seven modules is implemented.
hospital information system(HIS);hospital admission and discharge;three-layer architecture;Visual Studio.NET
TP319
A
1009-3907(2011)08-0023-05
2011-07-13
姜利(1977-),男,吉林伊通人,助教,主要從事計算機應(yīng)用及教學(xué)管理方面研究。
責(zé)任編輯:吳旭云