




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 xx大學(xué) 實(shí)訓(xùn)報(bào)告課程(項(xiàng)目)名稱: 軟件工程課程設(shè)計(jì) 學(xué) 院: 專 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名: 成 績(jī): 2011年01月06日 目錄醫(yī)院信息管理系統(tǒng)引言醫(yī)院(hospital)是以向人提供醫(yī)療護(hù)理服務(wù)為主要目的的醫(yī)療機(jī)構(gòu)。其服務(wù)對(duì)象不僅包括患者和傷員,也包括處于特定生理狀態(tài)的健康人(如孕婦、產(chǎn)婦、新生兒)以及完全健康的人(如來醫(yī)院進(jìn)行體格檢查或口腔清潔的人)。其任務(wù)不僅包括防病、治病,也包括維持和促進(jìn)健康。隨著中國經(jīng)濟(jì)發(fā)展水平的提高,人們?cè)絹碓街匾曌陨淼慕】怠,F(xiàn)如今我們已步入數(shù)字化、網(wǎng)絡(luò)化的時(shí)代。為了更好地適應(yīng)這種網(wǎng)絡(luò)數(shù)字化信息的環(huán)境,一種成功的跟蹤最新
2、技術(shù),充分利用軟硬件資源,扎根于準(zhǔn)、新、全數(shù)字資源的"醫(yī)院信息管理系統(tǒng)"已孕育而生。 另外,由于醫(yī)院陳舊的管理手段給患者和醫(yī)院管理人員帶來的很多操作上的不方便,同時(shí)為了提高工作效率、服務(wù)質(zhì)量和管理水平,并使醫(yī)院管理人員從繁瑣的工作中解脫出來,從而使我們下定決心開發(fā)該系統(tǒng)。摘要此報(bào)告對(duì)醫(yī)院管理系統(tǒng)有一個(gè)系統(tǒng)介紹。從文中可以了解此項(xiàng)目的論證與計(jì)劃,包括:對(duì)系統(tǒng)的調(diào)查;對(duì)系統(tǒng)的總體功能需求和性能需求的介紹;以及此系統(tǒng)的開發(fā)的框架。報(bào)告包含可行性研究報(bào)告,針對(duì)技術(shù)可行性、經(jīng)濟(jì)可行性、管理可行性、開發(fā)環(huán)境可行性進(jìn)行了簡(jiǎn)明扼要的說明。在系統(tǒng)需求分析中對(duì)軟件需求與數(shù)據(jù)需求進(jìn)行了詳細(xì)的分析
3、。報(bào)告還在在總體設(shè)計(jì)上,給出了更加詳細(xì)的介紹。另外、隨報(bào)告還附有使用手冊(cè)等相關(guān)信息。關(guān)鍵字:軟件工程 醫(yī)院信息管理系統(tǒng) VC+6.0 SQL2005 ADO1項(xiàng)目論證和計(jì)劃使用Visual C + 6.0 和SQL Server 2005設(shè)計(jì)出醫(yī)院信息管理系統(tǒng)。使用SQL Server 2005 建立數(shù)據(jù)庫和表以及相應(yīng)的視圖,使用Visual C + 6.0建立基于對(duì)話框模型的工程框架。1.1系統(tǒng)調(diào)查在醫(yī)院日常事務(wù)中,管理工作是醫(yī)院非常重要的一項(xiàng)工作,包括:醫(yī)院系統(tǒng)設(shè)置管理、信息管理、收費(fèi)管理、統(tǒng)計(jì)查詢管理。傳統(tǒng)的醫(yī)院信息管理系統(tǒng)是單機(jī)單用戶方式,開發(fā)簡(jiǎn)單,能充分利用數(shù)據(jù)庫的特性,實(shí)現(xiàn)增、刪、
4、改、查等工作。其缺點(diǎn)是開發(fā)的系統(tǒng)依賴性強(qiáng),功能簡(jiǎn)單,沒有創(chuàng)新項(xiàng)目,不容易升級(jí)與擴(kuò)展,無法實(shí)現(xiàn)數(shù)據(jù)的共享,代碼重用性差。1.2系統(tǒng)的總體功能需求和性能需求總體需求:建立一個(gè)合理的醫(yī)院信息管理系統(tǒng),從而能夠?qū)︶t(yī)院信息做完善的管理,使醫(yī)院管理更加科學(xué)規(guī)范,并能根據(jù)系統(tǒng)提供的準(zhǔn)確信息進(jìn)行適當(dāng)?shù)恼{(diào)整,促使醫(yī)院更好發(fā)展服務(wù)于廣大群眾。采用現(xiàn)有的硬件、軟件及科學(xué)的管理系統(tǒng)開發(fā)方案,建立醫(yī)院信息管理系統(tǒng),實(shí)現(xiàn)醫(yī)院信息管理的自動(dòng)化。系統(tǒng)應(yīng)符合醫(yī)院信息管理制度,并達(dá)到操作直觀、方便、實(shí)用、安全等要求,并做到以下幾點(diǎn):1)簡(jiǎn)單性。系統(tǒng)設(shè)計(jì)盡量簡(jiǎn)單,從而實(shí)現(xiàn)使用方便、提高效率、節(jié)省開支、提高系統(tǒng)的運(yùn)行質(zhì)量。2)靈活性
5、。系統(tǒng)對(duì)外界條件的變化有較強(qiáng)的適應(yīng)能力。3)完整性。系統(tǒng)是各個(gè)子系統(tǒng)的集合,作為一個(gè)有機(jī)的整體存在。因此,要求各個(gè)子系統(tǒng)的功能盡量規(guī)范,數(shù)據(jù)采集統(tǒng)一,語言描述一致。4)可靠性。實(shí)現(xiàn)安全的、可靠的數(shù)據(jù)保護(hù)措施。醫(yī)院信息管理系統(tǒng)可以用于支持醫(yī)院完成醫(yī)院信息管理工作,實(shí)現(xiàn)的目標(biāo)有:1)支持醫(yī)院高效率完成醫(yī)院運(yùn)營中的日常工作,包括各種信息的增、刪、改、查,包括人事信息的管理等。2)支持醫(yī)院信息管理及相關(guān)方面的科學(xué)決策,如醫(yī)院領(lǐng)導(dǎo)根據(jù)根據(jù)藥品銷售情況決定購進(jìn)藥品數(shù)量等。1.3系統(tǒng)開發(fā)的框架系統(tǒng)開發(fā)的框架見圖1。圖1 系統(tǒng)開發(fā)框架在系統(tǒng)開發(fā)過程中,首先要做好系統(tǒng)分析階段。對(duì)醫(yī)院信息管理系統(tǒng)進(jìn)行需求分析、可
6、行性分析,并對(duì)現(xiàn)有業(yè)務(wù)流程進(jìn)行描述。然后,我們對(duì)整個(gè)醫(yī)院信息管理系統(tǒng)進(jìn)行系統(tǒng)建模、功能分析。在系統(tǒng)設(shè)計(jì)階段,包括:對(duì)醫(yī)院信息管理系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)、程序代碼的設(shè)計(jì)以及系統(tǒng)流程的設(shè)計(jì)。通過輸入輸出設(shè)計(jì),將系統(tǒng)設(shè)計(jì)階段與系統(tǒng)實(shí)施階段聯(lián)系起來。在系統(tǒng)實(shí)施階段,醫(yī)院信息管理系統(tǒng)的測(cè)試與維護(hù)至關(guān)重要。2.可行性研究報(bào)告通過對(duì)系統(tǒng)內(nèi)容的調(diào)查與分析,考慮系統(tǒng)的規(guī)模和目標(biāo),對(duì)于系統(tǒng)設(shè)計(jì)的幾個(gè)關(guān)鍵技術(shù)的可行性分析后的流程圖如圖2所示。圖2 系統(tǒng)處理流程圖如圖所示:管理員對(duì)醫(yī)院信息管理系統(tǒng)可以進(jìn)行系統(tǒng)設(shè)置、信息管理、醫(yī)生管理、統(tǒng)計(jì)查詢。管理員可以新建一般用戶,即醫(yī)務(wù)人員。一般用戶(醫(yī)務(wù)人員)可以進(jìn)行收費(fèi)管理功能的使
7、用,如使用門診醫(yī)療、收費(fèi)管理等功能。但一般用戶沒有權(quán)利添加新用戶,也沒有限權(quán)刪除原有用戶。醫(yī)院信息管理系統(tǒng)的四項(xiàng)關(guān)鍵技術(shù)(系統(tǒng)設(shè)置、信息管理、收費(fèi)管理功能、統(tǒng)計(jì)查詢功能)均與SQL數(shù)據(jù)庫相關(guān)聯(lián),對(duì)SQL數(shù)據(jù)庫中的數(shù)據(jù),可進(jìn)行增、刪、改、查操作。通過SQL數(shù)據(jù)庫的多表視圖功能,還可進(jìn)行多表連接,完成人工智能操作。2.1技術(shù)可行性隨著國內(nèi)軟件開發(fā)的日益發(fā)展壯大,各種中小企事業(yè)單位已具備獨(dú)立開發(fā)各種類型的軟件能力,能夠滿足不同行業(yè)的特別需求。而這個(gè)系統(tǒng)盡管其在組織關(guān)系上存在著很大的復(fù)雜性、繁復(fù)性,但是就整個(gè)系統(tǒng)的技術(shù)構(gòu)成上看來,它還是屬于一個(gè)數(shù)據(jù)庫應(yīng)用類的系統(tǒng)。其基本操作還是對(duì)存在數(shù)據(jù)庫進(jìn)行添加、刪
8、除、查找、編輯等。所以就單純的數(shù)據(jù)庫應(yīng)用來看,暫不存在太大的技術(shù)問題。2.2經(jīng)濟(jì)可行性對(duì)于整個(gè)系統(tǒng)而言,在系統(tǒng)未運(yùn)行之前,初期投資比較大,花費(fèi)相對(duì)而言比較多。但醫(yī)院信息管理系統(tǒng),減少了重要數(shù)據(jù)的流通環(huán)節(jié),提高了醫(yī)院的運(yùn)營效率,保證了醫(yī)院各項(xiàng)數(shù)據(jù)的準(zhǔn)確性,同時(shí)避免了因人工管理造成的數(shù)據(jù)丟失。醫(yī)院信息管理系統(tǒng),適應(yīng)當(dāng)前社會(huì)信息化管理的發(fā)展形勢(shì)。2.3管理可行性隨著時(shí)代的發(fā)展,人員素質(zhì)已經(jīng)逐步提高,不論是對(duì)電腦系統(tǒng)的基本操作,還是對(duì)于系統(tǒng)的維護(hù)都有了一定的基礎(chǔ),管理的可行性也得到了保障。2.4開發(fā)環(huán)境可行性采用Microsoft Visual C+ 6.0作為開發(fā)工具,Visual C+ 6.0,集
9、成了MFC6.0,于1998發(fā)行。發(fā)行至今一直被廣泛地用于大大小小的項(xiàng)目開發(fā)。Microsoft Visual C+,(簡(jiǎn)稱Visual C+、MSVC、VC+或VC)微軟公司的C+開發(fā)工具,具有集成開發(fā)環(huán)境,可提供編輯C語言,C+以及C+/CLI等編程語言。VC+整合了便利的除錯(cuò)工具,特別是整合了微軟視窗程式設(shè)計(jì)(Windows API)、三維動(dòng)畫DirectX API,Microsoft .NET框架。Visual C+以擁有“語法高亮”,IntelliSense(自動(dòng)編譯功能)以及高級(jí)除錯(cuò)功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而
10、不必重新啟動(dòng)正在調(diào)試的程序。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時(shí)間花費(fèi),在大型軟件計(jì)劃上尤其顯著。3需求分析3.1軟件需求說明書3.1.1業(yè)務(wù)需求(business requirement)醫(yī)院信息管理系統(tǒng)是為解決醫(yī)院對(duì)員工,醫(yī)療藥品,收費(fèi)等問題開發(fā)的管理系統(tǒng)。此系統(tǒng)需要按照一定的條件,查詢、統(tǒng)計(jì)符合條件的傷病人員以及藥品信息。系統(tǒng)中必須包括:系統(tǒng)設(shè)置功能,信息管理功能,收費(fèi)管理功能以及統(tǒng)計(jì)查詢功能。此外,本系統(tǒng)不但要有利于醫(yī)院的統(tǒng)一性管理,而且還要提高傷病人員的就醫(yī)效率以及醫(yī)生的工作效率和工作積極性。醫(yī)院信息管理系統(tǒng)必須能夠滿足
11、中小型醫(yī)院的運(yùn)營和管理需求。3.1.2用戶需求(user requirement) 醫(yī)院信息管理系統(tǒng)的用戶分為管理員用戶和一般用戶(醫(yī)務(wù)人員),用戶的用例圖,如下圖所示:管理員用例圖: 事件流:1. 管理員啟動(dòng)醫(yī)院信息管理系統(tǒng)用例。2. 系統(tǒng)顯示登陸界面。3. 管理員輸入用戶名及密碼進(jìn)入系統(tǒng)。4. 醫(yī)院信息管理系統(tǒng)顯示主界面。5. 管理員可以根據(jù)需要新建一般用戶(醫(yī)務(wù)人員),也可以刪除離職的一般用戶(醫(yī)務(wù)人員)。6. 管理員根據(jù)醫(yī)院發(fā)展需要,對(duì)醫(yī)院科室進(jìn)行設(shè)置,可以增加新科室、修改、刪除查詢現(xiàn)有科室。7. 管理員根據(jù)醫(yī)院藥品需求,可以添加、修改、刪除、查詢藥品信息,即完成了醫(yī)院對(duì)藥品的智能管理
12、功能。8. 管理員可以對(duì)醫(yī)院醫(yī)生進(jìn)行智能管理,可以對(duì)醫(yī)院醫(yī)生進(jìn)行增、刪、改、查管理,通過醫(yī)院信息管理系統(tǒng),完善醫(yī)院人事管理。9. 管理員通過統(tǒng)計(jì)查詢功能,對(duì)醫(yī)院門診收費(fèi)信息進(jìn)行統(tǒng)計(jì)管理,可以統(tǒng)計(jì)并查詢醫(yī)院銷售信息,及醫(yī)院效益10. 工作結(jié)束后,管理員終止醫(yī)院信息管理系統(tǒng)用例。一般用戶(醫(yī)務(wù)人員)用力圖: 事件流:1、 醫(yī)務(wù)人員(一般用戶)上班時(shí)啟動(dòng)醫(yī)院信息管理系統(tǒng)用例。2、 系統(tǒng)顯示登陸界面。3、 醫(yī)生人員輸入用戶名及密碼進(jìn)入醫(yī)院信息管理系統(tǒng)。4、 醫(yī)院信息管理系統(tǒng)顯示主界面。5、 醫(yī)務(wù)人員上班時(shí),可以查詢醫(yī)院現(xiàn)存藥品信息。6、 醫(yī)務(wù)人員可以啟動(dòng)統(tǒng)計(jì)查詢管理,查詢醫(yī)院銷售信息。7、 醫(yī)務(wù)人員啟
13、動(dòng)醫(yī)生效益統(tǒng)計(jì),查詢自己的工作業(yè)績(jī)。8、 醫(yī)務(wù)人員啟動(dòng)患者管理功能,查詢患者信息。9、 醫(yī)務(wù)人員啟動(dòng)門診收費(fèi)管理功能,可以為病人進(jìn)行開處方,看病。10、 醫(yī)務(wù)人員啟動(dòng)收費(fèi)管理功能,可以為患者進(jìn)行醫(yī)療劃價(jià)收費(fèi)。11、 工作結(jié)束后,醫(yī)務(wù)人員終止醫(yī)院信息管理系統(tǒng)用例。3.1.3功能需求(functional requirement)在醫(yī)院信息管理系統(tǒng)中,系統(tǒng)必須具備如下功能:系統(tǒng)設(shè)置功能、信息管理功能、收費(fèi)管理功能、統(tǒng)計(jì)查詢管理功能。(1) 在系統(tǒng)設(shè)置功能中:必須包括:科室名稱設(shè)置、藥品類別設(shè)置、藥品單位設(shè)置和用戶信息。該模塊必須實(shí)現(xiàn)的功能有:添加、修改、刪除和查看科室信息;添加、修改、刪除和查看藥
14、品類別信息;添加、修改、刪除和查看藥品單位信息;以及管理員可以添加、修改、刪除、查看用戶信息。(2) 在信息管理功能中:此模塊必須實(shí)現(xiàn)的主要功能包括:藥品管理、醫(yī)生管理、患者管理。其中藥品管理包括:添加、修改、刪除和查看藥品信息;醫(yī)生管理包括:添加、修改、刪除和查看醫(yī)生信息;患者管理包括添加、修改、刪除和查看患者信息。(3) 在收費(fèi)管理功能中:此模塊必須實(shí)現(xiàn)收費(fèi)項(xiàng)目管理和門診收費(fèi)管理兩大功能。其中收費(fèi)項(xiàng)目管理包括:添加、修改、刪除和查看收費(fèi)項(xiàng)目信息。(4) 在統(tǒng)計(jì)查詢管理功能中:此模塊必須實(shí)現(xiàn)對(duì)門診收費(fèi)信息進(jìn)行統(tǒng)計(jì)和查詢,必須包括:銷售信息統(tǒng)計(jì)查詢以及醫(yī)生效益統(tǒng)計(jì)查詢。醫(yī)院信息管理系統(tǒng)系統(tǒng)流程
15、圖如下:如圖所示:添加的數(shù)據(jù)程序通過錄入進(jìn)入醫(yī)院管理信息存儲(chǔ),被存儲(chǔ)的信息被記錄到醫(yī)院信息管理系統(tǒng)庫中。如果要對(duì)醫(yī)院信息管理系統(tǒng)庫中的信息進(jìn)行修改,首先要將修改好的程序存入醫(yī)院管理信息存儲(chǔ)中,然后將修改的記錄存入醫(yī)院信息管理系統(tǒng)庫中。查詢數(shù)據(jù)程序,可以直接訪問醫(yī)院信息管理系統(tǒng)庫,對(duì)醫(yī)院信息管理系統(tǒng)庫中的數(shù)據(jù)進(jìn)行訪問。醫(yī)院信息管理系統(tǒng)中的刪除數(shù)據(jù)程序,是通過直接刪除醫(yī)院信息管理系統(tǒng)庫中的數(shù)據(jù)完成的。3.2數(shù)據(jù)要求說明書3.2.1數(shù)據(jù)流分析數(shù)據(jù)流程圖是新系統(tǒng)邏輯模型的主要組成部分,它可以反映出新系統(tǒng)的主要功能、系統(tǒng)與外部環(huán)境間的輸入輸出、系統(tǒng)內(nèi)部的處理、數(shù)據(jù)傳送、數(shù)據(jù)存儲(chǔ)等情況。它的繪制依據(jù)是現(xiàn)行
16、系統(tǒng)流程圖,數(shù)據(jù)流程圖是管理信息系統(tǒng)的總體設(shè)計(jì)圖。其中數(shù)據(jù)處理指對(duì)數(shù)據(jù)的邏輯處理功能,也就是對(duì)數(shù)據(jù)的變換功能。數(shù)據(jù)流是指處理功能的輸入和輸出,用一個(gè)水平箭頭或垂直箭頭表示。數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)保存的地方。數(shù)據(jù)源/數(shù)據(jù)去向表示數(shù)據(jù)的來源或數(shù)據(jù)的流向。(1) 頂層數(shù)據(jù)流圖頂層數(shù)據(jù)流圖見圖3-2-1-1。(2)管理員總體設(shè)計(jì)流圖管理總體數(shù)據(jù)流圖見圖3-2-1-2。(3)普通用戶總體設(shè)計(jì)流圖普通用戶總體設(shè)計(jì)流圖見圖3-2-1-3。3.2.2數(shù)據(jù)字典數(shù)據(jù)字典是開發(fā)者與用戶相互溝通的有效途徑之一。它能形象的向用戶描述開發(fā)者的意圖,使用戶明白數(shù)據(jù)庫可能具有的項(xiàng)目,可有效地緩解開發(fā)者和用戶之間的交流溝通,也有利于用
17、戶向開發(fā)者提出自己的需求,避免因理解分歧造成的代價(jià)巨大的接口問題。數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析后所獲得的主要成果。針對(duì)本系統(tǒng),通過對(duì)醫(yī)院管理信息內(nèi)容和過程的分析,設(shè)計(jì)的的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)摘要如下:4總體設(shè)計(jì)4.1概要設(shè)計(jì)說明書4.1.1功能模塊圖功能模塊圖見圖4-1-14.1.2數(shù)據(jù)庫分析系統(tǒng)ER圖本系統(tǒng)存在四個(gè)實(shí)體,分別是“用戶管理”,“醫(yī)生”,“患者”,以及“藥品”。其中這四個(gè)實(shí)體也是一對(duì)多的關(guān)系,如:管理用戶對(duì)應(yīng)著“用戶名稱”,“用戶密碼”兩個(gè)屬性。醫(yī)生實(shí)體對(duì)應(yīng)著“姓名”,“年齡”,“科室”,“職稱”和“業(yè)績(jī)”這五個(gè)屬性。患者實(shí)體對(duì)應(yīng)著“姓
18、名”,“年齡”,“就診科室”及“身份證號(hào)”屬性。“藥品”實(shí)體對(duì)應(yīng)著“進(jìn)貨價(jià)格”,“銷售價(jià)格”,“庫存數(shù)量”屬性。其中“管理用戶”和“醫(yī)生”,“患者”,“藥品”之間存在著“管理”的聯(lián)系,“醫(yī)生”和 “患者”之間存在著“醫(yī)患”的關(guān)系。“醫(yī)生”和“藥品”之間存在著“銷售”關(guān)系。“患者”和“藥品”之間存在“購買”關(guān)系。詳情見下面圖(1)所示的ER圖:圖(1)系統(tǒng)ER圖注:患者與醫(yī)生由patient表和doctor表構(gòu)成多對(duì)多關(guān)系。醫(yī)生與藥品由medic表和doctor表構(gòu)成多對(duì)多關(guān)系。患者與用戶管理由patient表和user表構(gòu)成多對(duì)多關(guān)系。藥品與用戶管理由mecdic表和user表構(gòu)成多對(duì)多關(guān)系。
19、患者與藥品由表payiterms 和patient,iterms構(gòu)成多對(duì)多關(guān)系。醫(yī)生與藥品由表doctor和items,basetype構(gòu)成多對(duì)多關(guān)系。創(chuàng)建數(shù)據(jù)庫(1)啟動(dòng)SQL Server 服務(wù)器,。(2)使用查詢分析器,編寫SQL 語句,創(chuàng)建數(shù)據(jù)庫Hospital(3)在數(shù)據(jù)庫Hospital中,使用查詢分析器,編寫SQL 語句,生成數(shù)據(jù)庫中需要的8個(gè)表(基本信息表,用戶信息表,藥品信息表,醫(yī)生信息表,患者信息表,收費(fèi)項(xiàng)目表,門診收費(fèi)項(xiàng)目明細(xì)表和門診收費(fèi)登記表)。4.2詳細(xì)設(shè)計(jì)說明書4.2.1設(shè)計(jì)思路1系統(tǒng)模塊劃分本實(shí)例所描述的醫(yī)院門診管理系統(tǒng)主要包括以下功能。(1) 系統(tǒng)
20、設(shè)置功能:包括科室名稱設(shè)置、藥品類別設(shè)置、藥品單位設(shè)置和用戶信息。該模塊可以實(shí)現(xiàn)添加、修改、刪除和查看科室信息;添加、修改、刪除和查看藥品類別信息;添加、修改、刪除和查看藥品單位信息;添加、修改、刪除門診收費(fèi)系統(tǒng)和查看用戶信息。(2) 信息管理功能:此模塊的主要功能包括藥品管理、醫(yī)生管理、患者管理。其中藥品管理包括添加、修改、刪除和查看藥品信息;醫(yī)生管理包括添加、修改、刪除和查看醫(yī)生信息;患者管理包括添加、修改、刪除和查看患者信息。(3) 收費(fèi)管理功能:此模塊的主要功能包括收費(fèi)項(xiàng)目管理、門診收費(fèi)管理。其中收費(fèi)項(xiàng)目管理包括添加、修改、刪除和查看收費(fèi)項(xiàng)目信息。(4) 統(tǒng)計(jì)查詢管理:本模塊用于對(duì)門診
21、收費(fèi)信息進(jìn)行統(tǒng)計(jì)和查詢,主要功能包括銷售信息統(tǒng)計(jì)查詢以及醫(yī)生效益統(tǒng)計(jì)查詢。2設(shè)計(jì)思路描述醫(yī)院信息管理系統(tǒng)是使用Visiual C+和SQL Server來協(xié)同開發(fā)的,具體的開發(fā)思路如下。(1) 使用SQL Server建立數(shù)據(jù)庫和表以及相應(yīng)的視圖;(2) 使用Visual C+建立基于對(duì)話框模型的工程框架;(3) 依次創(chuàng)建各表的類,用來操作表的數(shù)據(jù);(4) 創(chuàng)建用戶登錄模塊,實(shí)現(xiàn)基本的登錄和退出功能;(5) 創(chuàng)建醫(yī)院管理模塊,實(shí)現(xiàn)對(duì)醫(yī)院系統(tǒng)的編輯和管理功能;(6) 創(chuàng)建信息管理模塊,實(shí)現(xiàn)對(duì)藥品、醫(yī)生、患者信息的編輯和管理功能;(7) 創(chuàng)建收費(fèi)管理模塊,實(shí)現(xiàn)收費(fèi)項(xiàng)目、門診登記以及收費(fèi)等信息的編輯
22、以及管理功能;(8) 創(chuàng)建統(tǒng)計(jì)查詢管理模塊,實(shí)現(xiàn)對(duì)銷售信息和醫(yī)生效益的統(tǒng)計(jì)功能。4.2.2編程原理1ADO連接在使用ADO數(shù)據(jù)庫之前,必須先建立數(shù)據(jù)庫連接,通過ADOConnection界面,就可以完成。為了要?jiǎng)?chuàng)建一個(gè)連接,可以先聲明一個(gè)指向ADOConnection界面的指針,然后,使用CoCreateInstance方法,在內(nèi)存中建立連接。CLSCTX_INPROC_SERVER變量指出ADO連接對(duì)象在程序中以DLL方式運(yùn)行,而不是在單個(gè)程序中甚至在不同的計(jì)算機(jī)中以“.Exe”方式運(yùn)行。表43-1所示列出了3個(gè)可能已有的連接位置,雖然CLSCTX_INPROC_SERVER是經(jīng)常用到的。表
23、43-1ADO連接位置一旦分配了ADO連接,就可以使用它來連接數(shù)據(jù)庫,此時(shí)需要指定一個(gè)BSTR變量,該變量包含有數(shù)據(jù)庫名字、用戶ID、口令和所有以后用到的光標(biāo)類型。2ADO記錄集一旦建立了ADO連接,那么就可以創(chuàng)建一個(gè)ADO記錄集,它包含由一個(gè)SQL SELECT語句的結(jié)果。為了要?jiǎng)?chuàng)建ADO記錄集,必須先使用CoCreateInstance方法對(duì)它進(jìn)行分配,正如對(duì)ADO連接所做的一樣。通常把它存儲(chǔ)在數(shù)據(jù)庫服務(wù)器級(jí)。一旦分配了ADO記錄集,就可以使用Open函數(shù)來打開記錄集。l ADORecordset鎖在打開記錄集時(shí),可能有4個(gè)不同值供LockType參數(shù)使用。l 執(zhí)行ADORecordset
24、選項(xiàng)該選項(xiàng)影像ADO如何解釋源語句。l 使用ADORecordset方法有許多從記錄集中調(diào)用的方法,Visual C+提供的adoint.h文件中列出了這些方法。3ADO字段在找回記錄集后,需要找到值并將值放在記錄集內(nèi),按照以下3個(gè)步驟進(jìn)行:(1)從ADO記錄集中找到ADOFields容器。(2)獲得ADOFields容器所包含的每個(gè)字段并將它存入ADOFields變量中。(3)準(zhǔn)備好來查看和處理字段中的信息,可以找到每個(gè)ADO字段中的值并將它存入VARIANT或CComvariant中。使用這些技術(shù),可以找到并更新字段中的信息。l 字段數(shù)據(jù)類型ADOField.get_Type方法返回一個(gè)字
25、段的數(shù)據(jù)類型,Data TypeEnum變量是一個(gè)包含數(shù)據(jù)類型的enum。l 字段屬性字段屬性可能是ADO中最不直觀的部分,雖然以一個(gè)長(zhǎng)整型被返回,但是長(zhǎng)整型變量邏輯上是一個(gè)FieldAttributeEnum枚舉中屬性的ANDed組合。l SQL命令和記錄集一起,ADO允許對(duì)連接直接運(yùn)行SQL,如果僅需要一個(gè)簡(jiǎn)單的SQL語句來運(yùn)行,并且不需要擔(dān)心形成一個(gè)記錄集,那么這是很便利的,ADOConnection:Excute的格式用于運(yùn)行SQL。4在VC+應(yīng)用程序中使用ADO有兩種方法可以在VC+程序代碼中使用ADO。可以使用ADO頭文件和OLE DB SDK的輸入庫。在源代碼中包含ADO頭文件(
26、adoid.h和adoont.h)并把ADO輸入庫adoid.lib加入連接器的輸入中,這樣就可以創(chuàng)建一個(gè)ADO對(duì)象的實(shí)例,并訪問其成員函數(shù)。使用這種方法,連接到一個(gè)數(shù)據(jù)源并創(chuàng)建一個(gè)Command對(duì)象。在VC+應(yīng)用程序中使用ADO的另一種方法是使用#import。通過#import使用ADO庫,可以使用較少的代碼獲得同樣的ADO功能。代碼的后面不必對(duì)pConnection和pCpmmand調(diào)用Release函數(shù)以便釋放這些對(duì)象。因?yàn)閜Connection和pCommand都是智能指針,所以當(dāng)超過自己的范圍后,會(huì)自動(dòng)調(diào)用Release函數(shù)以釋放這些對(duì)象。另外使用#import指令意味著不必在源代
27、碼中包含ADO頭文件,也不必連接ADO輸入庫adoid.lib。從上面的對(duì)比中可以看出,使用#import指令與使用OLE DB SDK相比,可以編寫較少的代碼。4.2.3實(shí)例詳解1創(chuàng)建數(shù)據(jù)庫和表在設(shè)計(jì)數(shù)據(jù)庫表結(jié)構(gòu)之前,首先要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫。可以在企業(yè)管理器中創(chuàng)建數(shù)據(jù)庫,也可以在查詢分析器中執(zhí)行以下Tansact-SQL語句:CREATE DATABASE HospitalGO該數(shù)據(jù)庫包含8個(gè)表:基本信息表、用戶信息、藥品信息表、醫(yī)生信息表、患者信息表、收費(fèi)項(xiàng)目表、門診收費(fèi)項(xiàng)目明細(xì)和門診收費(fèi)登記表。l 基本信息:表用來保存科室名稱、藥品類別和藥品單位名稱等信息。l 用戶信息:用來保存用戶信息。
28、l 藥品信息表:用來保存藥品信息。l 醫(yī)生信息表:用來保存醫(yī)生信息。l 患者信息表:用來保存就診患者信息。l 收費(fèi)項(xiàng)目表:用來保存收費(fèi)項(xiàng)目的基本信息。l 門診收費(fèi)項(xiàng)目明細(xì):用來保存門診登記單中收費(fèi)項(xiàng)目的基本信息。l 門診收費(fèi)登記表:用來保存門診收費(fèi)登記信息。2創(chuàng)建工程框架l 創(chuàng)建工程在Visual C+中,建立醫(yī)院信息管理系統(tǒng)的基本框架,步驟如下。(1) 單擊菜單“FileNew”命令,打開“New”對(duì)話框,單擊“Projects”選項(xiàng)卡,選擇“MFC AppWizard(Exe)”,輸入工程名,設(shè)置路徑,最后單擊“ok”按鈕。(2) “MFC AppWizard-Step 1”對(duì)話框已經(jīng)打開
29、,單擊“Dialog based”,接著單擊“Next”按鈕。(3) 在彈出的“MFC AppWizard-Step 2 of 4”對(duì)話框中,輸入對(duì)話框的標(biāo)題。(4) 在接下來的對(duì)話框中都不做修改,默認(rèn)原有的選擇。設(shè)置好屬性,單擊“確定”按鈕后,就完成了新建工程。l 設(shè)計(jì)主對(duì)話框?qū)χ鲗?duì)話框進(jìn)行菜單設(shè)置,主要步驟如下。(1) 單擊“ResourceView”選項(xiàng)卡,右鍵單擊“HR Resources”選項(xiàng),選擇“Insert”菜單項(xiàng),打開“HR Resources”窗口。(2) 選擇“Menu”文件夾,然后單擊“New”按鈕,在HR Resources目錄下新增一個(gè)Menu目錄項(xiàng),菜單ID為ID
30、R_MENUI。雙擊此菜單,對(duì)此菜單項(xiàng)的屬性進(jìn)行設(shè)計(jì)。(3) 打開對(duì)話框IDD_HR_DIALOG屬性窗口,在Menu組合框中選擇IDR_MENUI。單擊工具欄中的“運(yùn)行”按鈕,可以看到系統(tǒng)的主界面。(4) 打開ClassWizard窗口,為菜單項(xiàng)IDR_EXIT添加代碼,對(duì)應(yīng)的函數(shù)為OnEXit()。程序調(diào)用OnOK()函數(shù)關(guān)閉對(duì)話框,退出系統(tǒng)。l 添加ADO連接類本實(shí)例采用ADO來連接SQL Server數(shù)據(jù)源,所以必須添加一個(gè)用來連接的ADO類。在系統(tǒng)菜單中選擇“InsertNew Class”項(xiàng),打開“New Class”窗口,選擇“Generic Class”,然后輸入類名,就完成了
31、類的添加。3創(chuàng)建數(shù)據(jù)庫表的類本實(shí)例中為數(shù)據(jù)庫的每個(gè)表都創(chuàng)建一個(gè)類,類的成員變量對(duì)應(yīng)表的列,類的成員函數(shù)是對(duì)成員變量和表的操作。在系統(tǒng)菜單中選擇“InsertNew Class”,打開“New Class”窗口,選擇“Generic Class”,然后輸入類名,類的命名規(guī)則是大寫字母“C”加上表名。在通常情況下,類的成員變量與對(duì)應(yīng)的表中的列名相同。絕大多數(shù)成員函數(shù)的編碼格式都是非常相似的。l 基本信息類:管理基本信息表的數(shù)據(jù)庫操作。l 用戶信息類:管理用戶信息表的數(shù)據(jù)庫操作。l 藥品信息類:管理藥品信息表的數(shù)據(jù)庫操作。l 患者信息類:管理患者信息表的數(shù)據(jù)庫操作。l 收費(fèi)項(xiàng)目類:管理收費(fèi)項(xiàng)目表的數(shù)
32、據(jù)庫操作。l 門診收費(fèi)項(xiàng)目明細(xì)類:管理門診收費(fèi)項(xiàng)目明細(xì)表的數(shù)據(jù)庫操作。l 門診收費(fèi)登記類:管理門診收費(fèi)登記表的數(shù)據(jù)庫操作。4創(chuàng)建登錄模塊用戶要使用本系統(tǒng),必須通過系統(tǒng)的身份認(rèn)證。l 添加全局類當(dāng)前用戶數(shù)據(jù)應(yīng)該是全局有效的,在工程的任何位置都可以訪問它。添加一個(gè)全局類,用于保存全局變量。因?yàn)镾tdAf7.h默認(rèn)包含在很多程序中,所以在StdAf7.h中添加包含該全局類的頭文件就可以在這些程序中直接訪問curUser對(duì)象了,在訪問之前,還需要添加如下命令引入外部變量。l 添加登錄對(duì)話框用戶登錄需要添加一個(gè)對(duì)話框。輸入用戶名的編輯框?yàn)椤癐DC_USERNAME_EDIT”,輸入密碼的編輯框?yàn)椤癐DC
33、_PWD_EDIT”。* 在屬性窗口中,選中編輯框“IDC_PWD_EDIT”的“Password”屬性,這樣用戶在輸入數(shù)據(jù)時(shí)編輯框中只顯示“*”。打開ClassWizard窗口,為該對(duì)話框創(chuàng)建一個(gè)類,單擊“Member Variables”選項(xiàng)卡,為編輯框IDC_USERNAME_EDIT和IDC_PED_EDIT分別指定成員變量m_UserName和m_Pwd,它們的數(shù)據(jù)類型都是CString。當(dāng)用戶單擊“確定”按鈕時(shí),將發(fā)送BN_CLICKED消息,在ClassWizard窗口中為其添加函數(shù)OnOK(),具體如下所示。為了在該類中使用用戶表的類的對(duì)象,需要在程序開始部分添加包含用戶表的類
34、的代碼。在主對(duì)話框中添加代碼,使對(duì)話框在啟動(dòng)時(shí)首先打開登錄對(duì)話框。在ClassWizard窗口中添加OnInitDialog()函數(shù),該函數(shù)將打開登錄對(duì)話框,如果用戶不是通過單擊“確定”按鈕關(guān)閉登陸對(duì)話框,則調(diào)用OnOK()函數(shù)關(guān)閉主對(duì)話框。* 在登錄對(duì)話框中,用戶只有在通過身份認(rèn)證后才能調(diào)用OnOK()函數(shù)關(guān)閉對(duì)話框。因此可以判斷,如果dlg.DoModa()的返回值為IDOK,則表示用戶已經(jīng)通過了身份認(rèn)證。5創(chuàng)建醫(yī)院設(shè)置模塊l 添加科室信息設(shè)置對(duì)話框科室信息管理對(duì)話框可以用來添加、修改、刪除和查看科室信息。為了便于交換數(shù)據(jù),在其類頭文件中定義兩個(gè)公共變量:CString cDId,用于保存
35、當(dāng)前編輯的科室編號(hào);CString cDNameOLd,用于保存當(dāng)前編輯的科室名稱。對(duì)話框啟動(dòng)時(shí),程序?qū)⒆詣?dòng)根據(jù)Adodc控件設(shè)置的記錄源讀取科室信息,并將科室名稱顯示在DataList控件中。當(dāng)用戶單擊DataList控件時(shí),將執(zhí)行OnClickDataList()函數(shù)。程序?qū)腄ataList控件中讀取科室編號(hào)信息,并將科室名稱顯示在編輯框中。當(dāng)用戶單擊“添加”按鈕時(shí),將執(zhí)行OnAddButton()函數(shù)。當(dāng)用戶單擊“修改”按鈕時(shí),將執(zhí)行OnEditButton()函數(shù)。在保存數(shù)據(jù)之前,程序要判斷科室名稱是否為空以及是否選擇了要修改的科室記錄。當(dāng)用戶單擊“刪除”按鈕時(shí),將執(zhí)行OnDelel
36、Button()函數(shù)。在刪除數(shù)據(jù)之前,程序調(diào)用MessageBox()函數(shù)打開一個(gè)包含“是”和“否”按鈕的對(duì)話框,提示用戶確認(rèn)是否刪除數(shù)據(jù)。l 添加藥品類別設(shè)置對(duì)話框* 此對(duì)話框的代碼實(shí)現(xiàn)與科室管理對(duì)話框相似。l 添加藥品單位設(shè)置對(duì)話框* 此對(duì)話框的代碼實(shí)現(xiàn)與科室管理對(duì)話框相似。6創(chuàng)建用戶管理模塊l 添加用戶信息新建功能要實(shí)現(xiàn)用戶信息新建功能,需添加新建用戶信息對(duì)話框。在對(duì)話框中沒有輸入密碼的編輯框,因?yàn)樵谔砑佑脩魰r(shí),用戶密碼將由系統(tǒng)自動(dòng)設(shè)置為“”。當(dāng)用戶單擊“確定”按鈕時(shí),將執(zhí)行OnOK()和函數(shù),該函數(shù)將判斷用戶名是否已經(jīng)存在,因?yàn)橄到y(tǒng)不允許存在同名的用戶,如果不存在同名的用戶,程序?qū)⒄{(diào)用
37、sql_insert()函數(shù)保存用戶數(shù)據(jù)。l 添加用戶信息管理功能要實(shí)現(xiàn)用戶信息管理功能,需添加一個(gè)用戶管理對(duì)話框。當(dāng)用戶單擊“添加”按鈕時(shí),將執(zhí)行OnAddButton()函數(shù),該代碼將打開一個(gè)添加用戶信息的對(duì)話框,將公共變量iUserType設(shè)置為2,表示添加的用戶記錄默認(rèn)類型為普通用戶。當(dāng)用戶單擊“密碼復(fù)位”按鈕時(shí),將執(zhí)行OnModiButtion()函數(shù)。因?yàn)镈ataList控件的BoundColumn屬性被設(shè)置為User_type字段,所以m_datalist.GetBoundText()將返回當(dāng)前選擇用戶類型值。除Adiministrator用戶外,其他系統(tǒng)管理員只能對(duì)自己和普通用
38、戶進(jìn)行密碼復(fù)位。當(dāng)下面3個(gè)條件都滿足時(shí),當(dāng)前用戶不具備對(duì)選擇用戶進(jìn)行密碼復(fù)位的權(quán)限:當(dāng)前用戶不是Adiministrator;當(dāng)前用戶與選擇用戶不是同一個(gè)用戶;選擇用戶是系統(tǒng)管理員。當(dāng)用戶單擊“刪除”按鈕時(shí),將執(zhí)行OnDelButtion()函數(shù),該函數(shù)在刪除用戶時(shí),同時(shí)需要進(jìn)行權(quán)限認(rèn)證。除Adiministrator外,其他系統(tǒng)管理員只能刪除普通用戶,而且Adiministrator在任何情況下都不允許被刪除。l 添加用戶密碼修改功能要實(shí)現(xiàn)用戶密碼修改功能,需添加用戶密碼修改對(duì)話框。當(dāng)用戶單擊“確定”按鈕時(shí),將執(zhí)行OnOK()函數(shù),該函數(shù)首先對(duì)輸入數(shù)據(jù)進(jìn)行有效性檢查,檢查如下內(nèi)容:舊密碼不能
39、為空;新密碼不能為空;新密碼和確認(rèn)密碼必須相同;用戶名和密碼必須能通過身份認(rèn)證。通過這些檢查后,程序?qū)?huì)調(diào)用sql_updatePwd()函數(shù)更新當(dāng)前用戶的密碼。l 添加用戶管理代碼當(dāng)用戶單擊主界面的菜單中的“用戶管理”菜單項(xiàng)時(shí),將執(zhí)行OnUserman()函數(shù)。當(dāng)用戶單擊主界面中的“修改密碼”菜單項(xiàng)時(shí),將執(zhí)行OnPwdman()函數(shù)。7創(chuàng)建信息管理模塊l 添加藥品信息編輯對(duì)話框添加藥品信息對(duì)話框可以用來添加和修改藥品信息。打開Class Wizrad窗口,為該對(duì)話框創(chuàng)建類并為控件設(shè)置成員變量。在對(duì)話框的頭文件中,添加5個(gè)公共變量:CString cMId,用于保存當(dāng)前編輯的藥品記錄編號(hào);CS
40、tring cMedName,用于保存當(dāng)前編輯的藥品名稱;CString cTId,用于保存當(dāng)前編輯的藥品類別編號(hào);CString cUid,用于保存當(dāng)前編輯的藥品單位編號(hào);CString cFlg,用于保存當(dāng)前編輯的藥品分類信息,中藥或西藥。當(dāng)對(duì)話框啟動(dòng)時(shí),將調(diào)用OnInitDialog()函數(shù)。如果成員變量cMId等于空,則表示添加記錄,此時(shí)程序?qū)?duì)藥品分類組合框控件進(jìn)行初始化。如果成員變量cMId不等于空,則表示修改記錄,此時(shí)成員變量將在打開對(duì)話框之前被賦值。當(dāng)用戶單擊“確定”按鈕時(shí),將執(zhí)行OnOK()函數(shù)。在保存數(shù)據(jù)之前,需要判斷藥品名稱是否存在。程序?qū)⒏鶕?jù)成員變量才,cMId的值,決
41、定保存數(shù)據(jù)的方式,包括插入數(shù)據(jù)和修改數(shù)據(jù)。l 添加藥品信息管理對(duì)話框查詢條件分為全部和按類別查詢兩種情況。當(dāng)選擇全部時(shí),后邊的組合框?qū)⒉豢梢姡划?dāng)選擇按類別查詢時(shí),后面的組合框中列出所有的藥品類別名稱。l 對(duì)應(yīng)框中包含兩個(gè)ADO Data控件,分別為查詢條件組合框和DataGrid控件提供數(shù)據(jù)源。可以在實(shí)例工程中查看各控件的屬性及對(duì)應(yīng)的成員變量。函數(shù)RefreshData()的功能是根據(jù)用戶選擇的查詢條件設(shè)置ADO Data控件的數(shù)據(jù)源,從而決定在DataGrid控件中顯示的藥品記錄。l CASE WHEN_ELSE_END是SQL Server的分支語句,可以在SELECT語句中使用它。通常當(dāng)
42、表中使用整型字段表示狀態(tài)時(shí),可以使用CASE語句將其轉(zhuǎn)換為對(duì)應(yīng)的文本顯示。當(dāng)載入對(duì)話框時(shí),將執(zhí)行OnInitDialog()函數(shù)。程序?qū)⒃O(shè)置查詢條件為“全部”,并隱藏藥品類別組合框,最后調(diào)用RefreshData()函數(shù)刷新顯示。當(dāng)用戶選擇查詢類別組合框時(shí),將執(zhí)行OnSelchangeSelCombo()函數(shù)。如果選擇顯示全部記錄,則隱藏DataCombo控件。當(dāng)用戶單擊DataCombo控件時(shí),將執(zhí)行OnAddButton()函數(shù),程序?qū)⒋蜷_編輯藥品信息的對(duì)話框。當(dāng)用戶單擊“添加”按鈕時(shí)將執(zhí)行OnAddButton()函數(shù)。程序?qū)⒋蜷_編輯藥品信息對(duì)話框。當(dāng)用戶單擊“修改”按鈕時(shí),將執(zhí)行OnE
43、ditButton()函數(shù),程序?qū)腄ataGrid控件中讀取數(shù)據(jù),賦值到藥品編輯對(duì)話框的對(duì)應(yīng)成員變量中。當(dāng)用戶單擊“刪除”按鈕時(shí),將執(zhí)行OnDeltButton()函數(shù)。l 添加選擇藥品記錄對(duì)話框當(dāng)用戶單擊“確定”按鈕時(shí),將執(zhí)行OnOK()函數(shù)。l 添加醫(yī)生信息編輯對(duì)話框在類的頭文件中,添加3個(gè)公共變量:CString cDId,保存當(dāng)前編輯的醫(yī)生編號(hào);CString cSex,保存當(dāng)前編輯的性別信息;CString cDeptId,保存當(dāng)前編輯的科室信息。* 此對(duì)話框的代碼與藥品信息編輯對(duì)話框的相似。l 添加醫(yī)生信息管理對(duì)話框查詢條件分為全部和按科室查詢兩種情況。當(dāng)選擇全部時(shí),后面的組合框
44、不可見,當(dāng)選擇按科室查詢時(shí),后邊的組合框中列出所有的可是名稱。對(duì)話框中包含兩個(gè)ADO Data控件,分別為查詢組合框和DataGrid控件提供數(shù)據(jù)源。可以在實(shí)例工程中查看各控件的屬性及對(duì)應(yīng)的成員變量。l 添加患者信息編輯對(duì)話框添加一個(gè)對(duì)話框,步驟代碼與編輯藥品信息對(duì)話框相似。l 添加患者信息管理對(duì)話框添加一個(gè)對(duì)話框。步驟代碼與添加醫(yī)生信息管理對(duì)話框類似。8創(chuàng)建收費(fèi)管理模塊l 添加收費(fèi)項(xiàng)目編輯對(duì)話框添加一個(gè)對(duì)話框。在對(duì)話框的頭文件中,添加3個(gè)公共變量:CString cItId,保存當(dāng)前編輯記錄的編號(hào);CString cItemName,保存當(dāng)前編輯記錄的名稱;CString cUId,保存當(dāng)前
45、編輯記錄的計(jì)量單位編號(hào)。當(dāng)對(duì)話框啟動(dòng)時(shí),將調(diào)用OnInitDialog()函數(shù)。如果成員變量cItId等于空,則表示添加記錄。如果成員變量cMId不等于空,則表示修改記錄,此時(shí)成員變量將在打開對(duì)話框之前被賦值。當(dāng)用戶單擊“確定”按鈕時(shí)將執(zhí)行OnOK()函數(shù)。在保存數(shù)據(jù)之前需要判斷收費(fèi)項(xiàng)目名稱是否存在。程序員將根據(jù)成員變量cItId的值,決定保存數(shù)據(jù)的方式,包括插入數(shù)據(jù)和修改數(shù)據(jù)。l 添加收費(fèi)項(xiàng)目管理對(duì)話框添加一個(gè)對(duì)話框。函數(shù)RefreshData()的功能是設(shè)置ADO Data控件的記錄源,根據(jù)選擇的查詢條件,生成SELECT語句,查詢相應(yīng)的收費(fèi)項(xiàng)目記錄,并顯示在DataGrid表格中。當(dāng)用戶
46、單擊“添加”按鈕時(shí),將執(zhí)行OnAddButton()函數(shù),程序?qū)腄ataGrid控件中讀取數(shù)據(jù),賦值到收費(fèi)項(xiàng)目編輯對(duì)話框的對(duì)應(yīng)成員變量中。當(dāng)用戶單擊“刪除”按鈕時(shí),將執(zhí)行OnDelButton()函數(shù)。l 添加門診登記單收費(fèi)項(xiàng)目編輯對(duì)話框編輯門診登記收費(fèi)項(xiàng)目的對(duì)話框可以在編輯門診收費(fèi)信息時(shí)用來添加和修改收費(fèi)項(xiàng)目信息。添加一個(gè)對(duì)話框。在其頭文件中,添加2個(gè)公共變量:CString cPayId,記錄編號(hào);CString cItemID,記錄編號(hào)。當(dāng)用戶單擊“選擇”按鈕時(shí)將執(zhí)行OnSelectionButton()函數(shù)。程序?qū)⒏鶕?jù)“收費(fèi)類別”單選按鈕的值決定打開的選擇對(duì)話框。選擇藥品對(duì)話框?qū)?yīng)的
47、類為CMedSelectionDlg,選擇收費(fèi)項(xiàng)目對(duì)話框?qū)?yīng)的類為CItemSelectionDlg。如果用戶在選擇對(duì)話框中單擊“確定”按鈕,則程序從對(duì)應(yīng)的全局變量中讀取用戶選擇的數(shù)據(jù),并賦值到控件對(duì)應(yīng)的成員變量中,最后顯示在界面上。當(dāng)用戶修改銷售數(shù)量時(shí),將執(zhí)行OnChangeSaletotaEdit()函數(shù)。程序?qū)⒏鶕?jù)銷售數(shù)量計(jì)算銷售金額,并顯示在界面上。當(dāng)用戶單擊“確定”按鈕時(shí),將執(zhí)行OnOK()函數(shù)。l 添加門診登記信息編輯對(duì)話框編輯門診登記信息的對(duì)話框可以用來添加門診信息。添加一個(gè)對(duì)話框,對(duì)話框中包含3個(gè)ADO Data控件,分別為“門診科室”組合框(Data Combo控件)、“開處
48、醫(yī)生組合框”(DataCombo控件)和收費(fèi)項(xiàng)目記錄表格(DataGrid控件)提供數(shù)據(jù)源。在填寫門診登記單時(shí),用戶需要依次選擇患者信息、門診科室、開處醫(yī)生,添加和編輯收費(fèi)項(xiàng)目信息,然后根據(jù)自動(dòng)計(jì)算的應(yīng)收金額輸入實(shí)收金額。如果數(shù)據(jù)庫中沒有當(dāng)前的患者信息,用戶可以單擊“添加新患者”按鈕添加患者,但是門診科室、開處醫(yī)生、藥品和收費(fèi)項(xiàng)目等信息必須事先保存到數(shù)據(jù)庫中。在其頭文件中添加一個(gè)公共變量CString cPatientId,患者編號(hào)。RefreshData()用于定義顯示門診收費(fèi)項(xiàng)目信息的數(shù)據(jù)源,并將顯示在DataGrid控件中。程序?qū)⒏鶕?jù)“收費(fèi)類別”單選按鈕設(shè)置SELECT語句,分別讀取藥品
49、收費(fèi)信息和其他項(xiàng)目收費(fèi)信息。當(dāng)對(duì)話框啟動(dòng)時(shí),將調(diào)用OnInitDialog()函數(shù)。當(dāng)用戶單擊“添加新患者按鈕時(shí),將執(zhí)行OnPatientaddButton()函數(shù)。程序?qū)⒋蜷_編輯患者信息的對(duì)話框,并將新添加的患者信息顯示在對(duì)話框中。當(dāng)用戶單擊“選擇患者”按鈕時(shí),將執(zhí)行OnPatientselectionButton()函數(shù)。程序?qū)⒋蜷_選擇患者信息的對(duì)話框,并將選擇的患者信息顯示在對(duì)話框中。當(dāng)用戶單擊“添加收費(fèi)信息”按鈕時(shí),將執(zhí)行OnAddButton()函數(shù)。程序?qū)⒋蜷_編輯門診登記單收費(fèi)項(xiàng)目對(duì)話框,添加收費(fèi)項(xiàng)目記錄,然后刷新表格中的記錄內(nèi)容,將更新對(duì)話框右側(cè)的收費(fèi)信息。當(dāng)用戶單擊“修改收費(fèi)信
50、息”按鈕時(shí),將執(zhí)行OnEditButton()函數(shù)。程序?qū)腄ataGrid表格中讀取收費(fèi)項(xiàng)目的信息,顯示在CpayItemsDlg對(duì)話框中。在修改收費(fèi)項(xiàng)目信息后,同樣需要更新對(duì)話框右側(cè)的收費(fèi)信息。當(dāng)用戶單擊“刪除收費(fèi)信息”按鈕時(shí),將執(zhí)行OnDeleteButton()函數(shù)。程序?qū)h除指定的收費(fèi)項(xiàng)目記錄,并刷新DataGrid控件的內(nèi)容,最后更新對(duì)話框右側(cè)的收費(fèi)信息。當(dāng)用戶單擊“收費(fèi)”按鈕時(shí),將執(zhí)行OnOK()函數(shù)。程序?qū)⒈4婊颊呔幪?hào)、醫(yī)生編號(hào)、和操作用戶信息,在執(zhí)行sql_Update()函數(shù)時(shí),將根據(jù)當(dāng)前的系統(tǒng)時(shí)間生成登記日期。在打開門診登記信息編輯對(duì)話框之前,程序?qū)⒉迦胍粋€(gè)空的記錄,因?yàn)?/p>
51、程序需要根據(jù)此記錄的編號(hào)插入收費(fèi)項(xiàng)目數(shù)據(jù)。在保存門診登記信息時(shí),程序只需要調(diào)用sql_Update()函數(shù)更新空記錄就可以行。當(dāng)用戶單擊“取消”按鈕時(shí),將執(zhí)行OnCancle()函數(shù)。因?yàn)樵谔砑娱T診登記信息之前,系統(tǒng)已經(jīng)默認(rèn)地插入了一條記錄,所以當(dāng)用戶單擊“取消”按鈕時(shí),將刪除當(dāng)前記錄。l 添加門診登記信息管理對(duì)話框添加一個(gè)對(duì)話框。函數(shù)RefreshData()的功能是設(shè)置ADO Data控件的記錄源,根據(jù)選擇的查詢條件,生成SELECT語句,查詢相應(yīng)的門診登記記錄,并顯示在DataGrid表格中。當(dāng)用戶單擊“添加”按鈕時(shí),將執(zhí)行OnAddButton()函數(shù)。程序?qū)⒋蜷_編輯收費(fèi)項(xiàng)目記錄的對(duì)話
52、框。在打開編輯門診登記信息對(duì)話框之前,系統(tǒng)將插入一條空的記錄。當(dāng)用戶單擊“刪除”按鈕時(shí),將執(zhí)行OnDeleButton()函數(shù)。9創(chuàng)建統(tǒng)計(jì)查詢管理模塊l 添加銷售信息統(tǒng)計(jì)表對(duì)話框銷售信息統(tǒng)計(jì)表用來按月統(tǒng)計(jì)每種藥品和收費(fèi)項(xiàng)目的銷售和利潤信息。創(chuàng)建視圖ReportMedicine。在創(chuàng)建視圖時(shí),SELECT語句中使用了一個(gè)嵌套的子SELECT語句,用于分組統(tǒng)計(jì)藥品的。視圖中使用LEFT(r.RegDate,7)進(jìn)行分組。創(chuàng)建視圖ReportItem。后面的程序?qū)囊晥DReportItem提取收費(fèi)項(xiàng)目的銷售數(shù)據(jù)。添加一個(gè)對(duì)話框。函數(shù)RefreshData()的功能是根據(jù)用戶選擇的條件設(shè)置SELECT
53、語句,從而刷新表格中顯示的記錄。當(dāng)裝載對(duì)話框時(shí),將執(zhí)行OnInitDialog()函數(shù)。程序初始化“年”、“月”和“類型”控件,并調(diào)用RefreshData()函數(shù)刷新顯示。l 添加醫(yī)生效益統(tǒng)計(jì)表對(duì)話框醫(yī)生效益統(tǒng)計(jì)表用來按月統(tǒng)計(jì)每個(gè)醫(yī)生的創(chuàng)收信息,包括銷售產(chǎn)品(藥品或其他收費(fèi)項(xiàng)目)數(shù)量、總金額和利潤等。首先創(chuàng)建視圖PayList。視圖對(duì)醫(yī)生在藥品和其他收費(fèi)項(xiàng)目方面的銷售情況進(jìn)行統(tǒng)計(jì)。創(chuàng)建視圖ReportDoctor。后面的程序?qū)囊晥DReportDoctor中提取醫(yī)生效益情況。添加一個(gè)對(duì)話框。函數(shù)RefreshData()的功能是根據(jù)用戶選擇的條件設(shè)置SELECT語句,從而刷新表格中顯示的記錄
54、。當(dāng)裝載對(duì)話框時(shí),將執(zhí)行OnInitDialog()函數(shù)。程序初始化“年”和“月”控件,并調(diào)用RefreshData()函數(shù)刷新顯示。5使用手冊(cè)使用前要先連接數(shù)據(jù)庫,通過登錄界面到達(dá)醫(yī)院管理系統(tǒng)主界面,在主界面可以看到系統(tǒng)設(shè)置、信息管理、收費(fèi)管理、和數(shù)據(jù)統(tǒng)計(jì)。5.1如何連數(shù)據(jù)庫l 使用sql server的企業(yè)管理器直接附加“附加數(shù)據(jù)庫文件”目錄下的Hospital.mdf文件。l 本系統(tǒng)采用ADO方式連接的。所以在運(yùn)行時(shí)需要修改。在ADOConn.cpp文件中找到OnInitADOConn()函數(shù)。修改:Source=所使用SQL服務(wù)器名;password=用戶密碼;修改Adodc空間中的5
55、.2如何打開主界面l 在登錄界面輸入帳號(hào)和密碼,點(diǎn)擊確定。l 在未新建用戶與修改密碼的情況下可使用系統(tǒng)默認(rèn)帳號(hào):admin 密碼:。l 如已新建用戶或修改密碼,也可以使用新帳號(hào)和相應(yīng)密碼登錄。5.3.如何進(jìn)行系統(tǒng)設(shè)置單擊主界面下的系統(tǒng)設(shè)置,可以看到以下選項(xiàng)。l 科室名稱:?jiǎn)螕艨剖颐Q,可以打開科室信息管理設(shè)置界面,在此界面可對(duì)科室信息進(jìn)行添加、修改、刪除和查看。l 藥品類別單擊藥品類別,可以打開藥品類別信息設(shè)置界面,在此界面可對(duì)藥品類別進(jìn)行添加、修改、刪除和查看。l 藥品單位單擊藥品單位,可以打開藥品單位設(shè)置界面,在此界面可對(duì)藥品單位進(jìn)行添加、修改、刪除和查看。l 用戶管理單擊用戶管理,可以打開用戶管理界面,在此界面可進(jìn)行添加帳號(hào)、刪除帳號(hào)和密碼復(fù)位,該功能僅管理員可用。l 修改密碼單擊修改密碼,可以打開修改密碼界面,在此界面可進(jìn)行修改賬后密碼操作。5.4如何管理各項(xiàng)信息單擊主界面下的信息管理,可以看到以下選項(xiàng)。l 藥品管理單擊藥品管理,可以打開藥品信息管理界面,在此界面可對(duì)藥品信息進(jìn)行添加、修改、刪除和查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Part3-4 Unit2 Health and Fitness 課件-【中職專用】高一英語(高教版2021基礎(chǔ)模塊2)(2023修訂版)
- 2025年多線程編程試題及答案
- Part1-2 Unit7 Invention and Innovation課件-【中職專用】高一英語(高教版2021基礎(chǔ)模塊2)(2023修訂版)
- 寵物消費(fèi)市場(chǎng)細(xì)分需求預(yù)測(cè)2025:寵物醫(yī)療設(shè)備產(chǎn)品創(chuàng)新應(yīng)用報(bào)告
- 2025年生態(tài)環(huán)境修復(fù)工程資金申請(qǐng)項(xiàng)目申報(bào)材料準(zhǔn)備與政策環(huán)境分析報(bào)告
- 人教新課標(biāo)音樂三年級(jí)下冊(cè)哦、十分鐘教學(xué)設(shè)計(jì)
- 2025年冷鏈物流行業(yè)資金申請(qǐng)項(xiàng)目風(fēng)險(xiǎn)控制與應(yīng)對(duì)策略報(bào)告
- 2025年生態(tài)修復(fù)工程生物多樣性保護(hù)與生態(tài)修復(fù)工程社會(huì)效益研究報(bào)告
- 山東省滕州市南沙河中學(xué)2025屆七年級(jí)數(shù)學(xué)第二學(xué)期期末復(fù)習(xí)檢測(cè)試題含解析
- 2025年智能投顧平臺(tái)風(fēng)險(xiǎn)控制與合規(guī)運(yùn)營案例分析及啟示報(bào)告
- 2025年入團(tuán)積極分子培訓(xùn)考試題庫及答案
- 人工智能在價(jià)格預(yù)測(cè)中的應(yīng)用-深度研究
- 《新聞傳播學(xué)》課件
- Unit 3 The world of Science 大單元教學(xué)設(shè)計(jì)-2023-2024學(xué)年高中英語外研版(2019)必修第三冊(cè)
- 延邊大學(xué)《物聯(lián)網(wǎng)技術(shù)1》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年山東省濟(jì)南市中考英語試題卷(含答案解析)
- 基礎(chǔ)寫作-終結(jié)性考核(期末考試)-國開(SC)-參考資料
- 中建路基邊坡防護(hù)及排水專項(xiàng)施工方案
- 《十萬個(gè)為什么》(米伊林)分享課課件
- DB11-T 584-2022 薄抹灰外墻外保溫工程技術(shù)規(guī)程
- 2024秋期國家開放大學(xué)《當(dāng)代中國政治制度》一平臺(tái)在線形考(任務(wù)一至四)試題及答案
評(píng)論
0/150
提交評(píng)論