姜 利
(長(zhǎng)春大學(xué) 電子信息工程學(xué)院,長(zhǎng)春 130022)
基于C#語(yǔ)言的醫(yī)院住院入出轉(zhuǎn)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
姜 利
(長(zhǎng)春大學(xué) 電子信息工程學(xué)院,長(zhǎng)春 130022)
介紹了住院入出轉(zhuǎn)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)選用C#語(yǔ)言為開(kāi)發(fā)語(yǔ)言,以Visual Studio.NET為開(kāi)發(fā)環(huán)境,后臺(tái)采用的是Oracle 10g數(shù)據(jù)庫(kù)。在經(jīng)過(guò)詳細(xì)的用戶(hù)需求分析后將系統(tǒng)分為七個(gè)功能模塊,基于Client/Server(C/S)三層架構(gòu),完成了數(shù)據(jù)庫(kù)設(shè)計(jì)、實(shí)體類(lèi)設(shè)計(jì)和三層設(shè)計(jì),實(shí)現(xiàn)了七個(gè)模塊的相應(yīng)功能。
醫(yī)院信息系統(tǒng);住院入出轉(zhuǎn);三層架構(gòu);Visual Studio.NET
隨著信息技術(shù)的迅速發(fā)展,信息化、數(shù)字化已經(jīng)進(jìn)入各行各業(yè)和人們生活中的許多方面,我國(guó)的醫(yī)院也不知不覺(jué)地進(jìn)入了數(shù)字化和信息化時(shí)代,我們不僅可以看到CT、MRI、彩超等大型的數(shù)字化醫(yī)療設(shè)備在醫(yī)院中廣泛使用,還可以看到從單機(jī)到計(jì)算機(jī)網(wǎng)絡(luò)的各種醫(yī)療收費(fèi)系統(tǒng)、管理系統(tǒng)和醫(yī)療信息處理系統(tǒng)等正在普及,所以醫(yī)院信息系統(tǒng)的建設(shè)就非常必要[1]。住院入出轉(zhuǎn)管理系統(tǒng)是醫(yī)院信息管理系統(tǒng)的子系統(tǒng),是運(yùn)行于Windows平臺(tái)的軟件系統(tǒng),可以實(shí)現(xiàn)人員添加修改刪除、權(quán)限管理、住院登記、預(yù)交金管理、無(wú)費(fèi)退院、出院登記、出院召回等功能。本設(shè)計(jì)選用C#語(yǔ)言[2-3]為開(kāi)發(fā)語(yǔ)言,以Visual Studio.NET[4]為開(kāi)發(fā)環(huán)境,后臺(tái)采用的是Oracle 10g數(shù)據(jù)庫(kù)[5],同時(shí)使用FarPoint[6],PL/SQL Developer等相關(guān)工具。
住院流程是患者在接到住院通知單是到住院處繳納一定預(yù)交金,然后進(jìn)行住院登記登記患者信息;患者發(fā)生特殊情況無(wú)需住院時(shí)進(jìn)行無(wú)費(fèi)退院;在進(jìn)行登記后護(hù)士進(jìn)行接診,安排床位;在完成治療后患者重新返回住院處結(jié)清費(fèi)用進(jìn)行出院登記;當(dāng)病人需要繼續(xù)接受治療時(shí)進(jìn)行出院召回。
住院入出轉(zhuǎn)管理系統(tǒng)需要實(shí)現(xiàn)住院登記、出院登記、無(wú)費(fèi)退院、預(yù)交金管理、出院召回、系統(tǒng)管理等功能,其中系統(tǒng)管理功能針對(duì)醫(yī)院?jiǎn)T工,其余功能針對(duì)患者。如圖1所示是住院入出轉(zhuǎn)管理需求分析圖。
(1)住院登記,對(duì)住院患者登記,包括基本信息錄入、預(yù)交金收取。自動(dòng)生成將患者信息保存在住院主表及病人信息表之中,將預(yù)交金存入住院主表和預(yù)交金表之中。
(2)出院登記,對(duì)患者進(jìn)行出院登記,填寫(xiě)患者出院情況,如果患者未發(fā)生任何費(fèi)用提示進(jìn)行無(wú)費(fèi)退院。將患者信息修改存入住院主表之中。
(3)無(wú)費(fèi)退院,對(duì)患者進(jìn)無(wú)費(fèi)退院,當(dāng)患者有未返還的預(yù)交金時(shí)提示患者進(jìn)行進(jìn)行預(yù)交金返還,當(dāng)已經(jīng)發(fā)生費(fèi)用的患者提示進(jìn)行出院登記。將修改信息存入住院主表中。
(4)預(yù)交金管理,對(duì)患者進(jìn)行預(yù)交金的收取、返還、補(bǔ)打操作,預(yù)交金返還后作廢該條記錄顯示為紅色,預(yù)交金補(bǔ)打后增加一條負(fù)記錄和一條正記錄顯示為藍(lán)色。將新增的預(yù)交金數(shù)據(jù)存入預(yù)交金表中。
(5)出院召回,對(duì)患者進(jìn)行出院召回操作將患者重新變?yōu)樵谠籂顟B(tài),召回時(shí)將重新分配床位、醫(yī)生、護(hù)士。將修改的信息存入住院主表中。
(6)系統(tǒng)管理,對(duì)醫(yī)院?jiǎn)T工進(jìn)行管理包括:員工管理、權(quán)限管理、登陸管理。員工管理,進(jìn)行增加員工,刪除員工,將修改信息存入員工信息表中;權(quán)限管理,進(jìn)行員工權(quán)限的增加與刪除,權(quán)限為(1)-(5)功能的增刪改查權(quán)限,從功能信息表中取出權(quán)限,將添加或刪除的權(quán)限存入員工權(quán)限表中;登陸管理,進(jìn)行該系統(tǒng)的登陸,核對(duì)員工信息,從員工表中取出數(shù)據(jù)。
圖1 住院入出轉(zhuǎn)管理需求分析圖
傳統(tǒng)的信息管理系統(tǒng)開(kāi)發(fā)時(shí)并沒(méi)有分層,難以維護(hù),可擴(kuò)展性不強(qiáng),因此應(yīng)用系統(tǒng)選擇正確的體系結(jié)構(gòu)是至關(guān)重要的,如今許多醫(yī)院采用的是C/S(Client/Server)三層架構(gòu)體系。三層架構(gòu)可以使得軟件系統(tǒng)結(jié)構(gòu)更清楚,軟件開(kāi)發(fā)工作更明確,有利于后期的維護(hù)和升級(jí),缺點(diǎn)是不適用于執(zhí)行效率要求非常高的系統(tǒng)設(shè)計(jì)。
三層架構(gòu)指的是持久層、業(yè)務(wù)層、表示層。[7]如圖2所示。表示層:位于系統(tǒng)的最外層(最上層),離用戶(hù)最近。用于顯示數(shù)據(jù)和接收用戶(hù)輸入的數(shù)據(jù),只提供系統(tǒng)與用戶(hù)交互的接口界面。業(yè)務(wù)邏輯層:位于表示層和數(shù)據(jù)訪問(wèn)層之間,專(zhuān)門(mén)負(fù)責(zé)處理用戶(hù)輸入的信息,或者是將這些信息發(fā)送給持久層進(jìn)行保存,或者是通過(guò)持久層從數(shù)據(jù)庫(kù)查處這些數(shù)據(jù)。業(yè)務(wù)邏輯層連接著表示層持久層,負(fù)責(zé)數(shù)據(jù)處理和傳遞。持久層:僅實(shí)現(xiàn)對(duì)數(shù)據(jù)的保存和讀取操作。數(shù)據(jù)訪問(wèn)包括訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng)、二進(jìn)制文件、文本文檔或是XML文檔。數(shù)據(jù)訪問(wèn)層只負(fù)責(zé)對(duì)數(shù)據(jù)的訪問(wèn)存取工作。
圖2 三層架構(gòu)示意圖
Model不屬于任何一層,它其實(shí)是面向?qū)ο缶幊讨凶罨镜摹邦?lèi)”的概念[8],可以稱(chēng)之為實(shí)體類(lèi)。實(shí)體類(lèi)起著連接各個(gè)層的作用,在代碼的設(shè)計(jì)過(guò)程中需要將所傳的值封裝到相應(yīng)的類(lèi)之中再與各個(gè)層之間進(jìn)行傳遞和處理,這樣使得整個(gè)值的傳遞過(guò)程變的系統(tǒng)化不易出錯(cuò)。
根據(jù)三層架構(gòu)的理念在Visual Studio.NET環(huán)境下對(duì)系統(tǒng)進(jìn)行搭建如圖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è)計(jì)數(shù)據(jù)庫(kù)表,如表1是系統(tǒng)模塊設(shè)計(jì)相關(guān)表。
表1 數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明表
為方便數(shù)據(jù)傳輸Model層中的類(lèi)名與數(shù)據(jù)庫(kù)表名相似,類(lèi)中屬性與表中字段名一致,在類(lèi)的設(shè)計(jì)中往往會(huì)添加一些屬性,這類(lèi)屬性在數(shù)據(jù)庫(kù)的表中沒(méi)有相應(yīng)的字段進(jìn)行對(duì)應(yīng),添加它的目的是為了方便代碼的編寫(xiě)。圖4為Model所有類(lèi)設(shè)計(jì)。
圖4 實(shí)體類(lèi)設(shè)計(jì)圖示
持久層設(shè)計(jì),在持久層中有一個(gè)類(lèi)如圖5所示。類(lèi)中有四個(gè)方法分別為:連接數(shù)據(jù)庫(kù)方法、關(guān)閉數(shù)據(jù)庫(kù)方法、執(zhí)行查詢(xún)數(shù)據(jù)方法、執(zhí)行增加刪除數(shù)據(jù)方法。
圖5 持久層設(shè)計(jì)圖示
業(yè)務(wù)層設(shè)計(jì),在業(yè)務(wù)層中有大量代碼接收表示層用戶(hù)數(shù)據(jù)處理后封裝傳遞給持久層方法進(jìn)行執(zhí)行,同時(shí)有大量方法接收持久層封裝數(shù)據(jù)進(jìn)行處理返回給表示層進(jìn)行顯示。如圖6所示為業(yè)務(wù)層所有類(lèi)。
圖6 持久層設(shè)計(jì)圖示
表示層設(shè)計(jì),在表示層中包含所有模塊的界面顯示,代碼中方有事件將用戶(hù)數(shù)據(jù)進(jìn)行封裝傳遞給業(yè)務(wù)層方法同時(shí)將業(yè)務(wù)層封裝數(shù)據(jù)進(jìn)行顯示,另外有一些事件進(jìn)行界面清屏、界面調(diào)用、界面退出等。如圖7所示為表示層所有Form。
圖7 表示層設(shè)計(jì)圖示
在經(jīng)過(guò)所有代碼設(shè)計(jì)后,經(jīng)過(guò)BUG測(cè)試完成本系統(tǒng)的設(shè)計(jì),圖8是住院入出轉(zhuǎn)管理系統(tǒng)主界面。系統(tǒng)包括五個(gè)菜單,菜單入院管理下包含兩個(gè)模塊:入院登記與出院召回;菜單出院管理下包含兩個(gè)模塊無(wú)費(fèi)退院與出院登記;菜單預(yù)交金管理;菜單系統(tǒng)管理包含有兩個(gè)模塊:員工管理與員工權(quán)限管理;幫助菜單下包含修改登陸密碼、退出系統(tǒng)與注銷(xiāo)登陸三個(gè)功能。
圖8 系統(tǒng)主界面圖示
限于篇幅,此處僅介紹出院登記實(shí)現(xiàn),其余模塊類(lèi)似,圖9為出院登記界面,操作員輸入患者住院號(hào)點(diǎn)擊回車(chē)可以顯示患者信息,填寫(xiě)出院情況后點(diǎn)擊保存,可以對(duì)患者進(jìn)行出院登記,如患者未發(fā)生費(fèi)用則提示患者進(jìn)行無(wú)費(fèi)退院。
圖9 出院登記界面圖示
本設(shè)計(jì)實(shí)現(xiàn)了基于C#語(yǔ)言的醫(yī)院住院入出轉(zhuǎn)管理系統(tǒng)。在經(jīng)過(guò)詳細(xì)的用戶(hù)需求分析后將系統(tǒng)分為七個(gè)功能模塊,基于Client/Server(C/S)三層架構(gòu),完成了數(shù)據(jù)庫(kù)設(shè)計(jì)、實(shí)體類(lèi)設(shè)計(jì)和三層設(shè)計(jì),實(shí)現(xiàn)了七個(gè)模塊的相應(yīng)功能。系統(tǒng)可以在Windows操作系統(tǒng)下進(jìn)行醫(yī)院住院入出轉(zhuǎn)管理,實(shí)現(xiàn)客戶(hù)端與服務(wù)端的數(shù)據(jù)連接,可以實(shí)現(xiàn)多個(gè)員工同時(shí)連同一數(shù)據(jù)庫(kù)。由于本系統(tǒng)架構(gòu)簡(jiǎn)單,只能用于簡(jiǎn)單的住院處管理,未實(shí)現(xiàn)接口擴(kuò)展,對(duì)于真正的醫(yī)院信息系統(tǒng)仍需要系統(tǒng)的開(kāi)發(fā)與實(shí)現(xiàn)。
[1] 陳國(guó)清,李建國(guó),賈峻波.醫(yī)院信息系統(tǒng)的建設(shè)與應(yīng)用[J].醫(yī)學(xué)信息,2007(10):20-21.
[2] 石治國(guó).C#開(kāi)發(fā)寶典[M].北京:清華大學(xué)出版社,2001.
[3]Nagel.C.C#高級(jí)編程[M].6版.北京:清華大學(xué)出版社,2008.
[4] 孫永強(qiáng),陳宗斌,邸艷輝.Visual C#.NET入門(mén)與提高[M].北京:清華大學(xué)出版社,2002.
[5] 王海亮,林立新.精通Oracle.10g.PL/SQL編程[M].北京:中國(guó)水利水電出版社,2004.
[6] 宋楚平.WinForm應(yīng)用開(kāi)發(fā)與實(shí)踐教程[M].北京:高等教育出版社,2009.
[7] 周建輝,姚素紅.三層架構(gòu)作業(yè)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].南通航運(yùn)職業(yè)技術(shù)學(xué)院學(xué)報(bào),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-),男,吉林伊通人,助教,主要從事計(jì)算機(jī)應(yīng)用及教學(xué)管理方面研究。
責(zé)任編輯:吳旭云