




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、成績: 數(shù)據(jù)庫技術(shù)與應(yīng)用課程設(shè)計題目: 醫(yī)院門診掛號系統(tǒng) 班級: 軟件2班 姓名: 林苾湲 學(xué)號: 20112723 日期: 評語: 簽字: 1 系統(tǒng)總體設(shè)計方案1.1系統(tǒng)實現(xiàn)目標(biāo)本系統(tǒng)是一個功能強(qiáng)大、操作使用簡單、智能化、可擴(kuò)展性、集成有效性和垮平臺的醫(yī)院門診掛號系統(tǒng)。1.2系統(tǒng)功能模塊設(shè)計醫(yī)院門診掛號系統(tǒng)信息維護(hù)門診管理院長查詢醫(yī)生信息維護(hù)科室 信息維護(hù)首次掛號就診卡掛號科室掛號量后臺信息維護(hù) 圖 1.2.1 功能模塊其中各模塊的信息維護(hù)還包括對各類信息的增刪改查操作。后臺管理(權(quán)限管理)若為超級管理員,則可進(jìn)行用戶的增刪改查由于多組合查詢功能比較簡單,只需輸入相關(guān)查詢的條件即可進(jìn)行多組合
2、模糊查詢,因此在此并沒有畫出查詢子系統(tǒng)的總體結(jié)構(gòu)。1.3數(shù)據(jù)庫設(shè)計1.3.1數(shù)據(jù)庫表設(shè)計數(shù)據(jù)庫表的命名是用表名的英文或英文縮寫,編程實現(xiàn)簡單易記。 (1) 用戶信息表Tuser:保存系統(tǒng)使用者的信息,包括用戶名及其密碼。(2) 醫(yī)生資料表TDoctor:保存醫(yī)生信息,包括醫(yī)生所屬的科室。(3) 科室資料表TDepartment:保存科室分類信息,如分為內(nèi)科、外科。(4) 病人信息表TPatient:保存病人的基本信息,以后可以重復(fù)使用。(5) 門診掛號表TRegister:保存門診病人掛號的信息。(6) 門診掛號類型表TRegisterType:保存門診掛號類型分類信息及其掛號價格,如普通號、
3、專家號。1.3.2數(shù)據(jù)庫表設(shè)計格式說明在前章介紹的實體以及實體之間關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫中表以及各個表之間的關(guān)系。醫(yī)院門診管理系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計結(jié)果如下面的幾個表格所示。每個表格表示在數(shù)據(jù)庫中的一個表。表1-1用戶信息表Tuser編號字段名字段代碼字段類型允許為空主鍵外鍵1用戶名UidVarchar(50)NY2姓名UnameVarchar(50)Y3密碼UpwdVarchar(50)N4身份證UIDcardVarchar(50)Y表1-2醫(yī)生資料表TDoctor編號字段名字段代碼字段類型允許為空主鍵外鍵1醫(yī)生編號DidVarchar(10)NY2姓名DnameVarchar(50)
4、Y3性別DgenderVarchar(10)Y4身份證DidcardVarchar(20)Y5出生日期DbirthdaydateY6所屬科室編號DpmtidVarchar(5)YY7 電話DtelVarchar(11)Y表1-3科室資料表TDepartment編號字段名字段代碼字段類型允許為空主鍵外鍵1科室編號DpmtidVarchar(50)NY2科室名稱DpmtnameWarchar(50)N表1-4病人信息表TPatient編號字段名字段代碼字段類型允許為空主鍵外鍵1病人編號(就診卡號)PidVarchar(20)NY2姓名PnameVarchar(50)Y3性別PgenderVarch
5、ar(10)Y4身份證PidcardVarchar(20)Y5出生日期PbirthdaydateY7 電話PtelVarchar(11)Y表1-5 門診掛號表 TRegister編號字段名字段代碼字段類型允許為空主鍵外鍵1掛號RidVarchar(20)NY2病人編號PidVarchar(20)YY3掛號類型編號RtypeidVarchar(10)YY4科室編號DpmtidVarchar(5)YY5醫(yī)生編號DidVarchar(10)YY6掛號日期RegistDateDatetimeY表1-6門診掛號類型表 TRegisterType編號字段名字段代碼字段類型允許為空主鍵外鍵1類型編號Rtyp
6、eidVarchar(10)NY2類型名稱Rtypenamevarchar(50)Y3價格RegpriceMoneyY2 系統(tǒng)實現(xiàn)2.1 PB11.5和SQL SERVER 2012連接PB11.5和SQL SERVER 2012連接方式有兩種,一種是通過ODBC數(shù)據(jù)源連接數(shù)據(jù)庫,另一種是MSS SQL SERVER專用接口連接數(shù)據(jù)庫。前者首先在計算機(jī)ODBC數(shù)據(jù)源管理器中創(chuàng)建新的數(shù)據(jù)源,設(shè)置好Data Source Name(數(shù)據(jù)源名稱)和DataBase(數(shù)據(jù)庫文件名),然后在PB中建立數(shù)據(jù)庫配置文件(配置文件就是命名了的一組連接到特定數(shù)據(jù)源或數(shù)據(jù)庫的參數(shù)),輸入ProfileName(配
7、置文件的名字)和Data Source(定義好的ODBC數(shù)據(jù)源),點(diǎn)擊Connect按鈕即可。此外,在通過專用接口連接數(shù)據(jù)庫時還可以使用配置參數(shù)文件連接數(shù)據(jù)庫。配置參數(shù)文件主要包含數(shù)據(jù)庫名,服務(wù)器地址,登錄名,登錄密碼等內(nèi)容。2.2應(yīng)用系統(tǒng)的對象在應(yīng)用程序?qū)ο蟮腛pen 事件中輸入如下代碼:SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=hmis;UID=hisl;PWD=123456'"/連接數(shù)據(jù)庫Connect using SQ
8、LCA;if sqlca.sqlcode<>0 THENmessagebox("數(shù)據(jù)庫連接出錯",SQLCA.SQLerrtext)elseopen(w_login)end if應(yīng)用程序運(yùn)行后連接數(shù)據(jù)庫,數(shù)據(jù)庫連接好后就出現(xiàn)系統(tǒng)登錄界面,否則退出系統(tǒng),直至數(shù)據(jù)庫連接成功.在應(yīng)用程序?qū)ο蟮淖兞慷x窗口中,定義全局變量用于應(yīng)用程序不同對象間參數(shù)的傳遞。2.3登錄模塊2.3.1功能概述用戶登錄系統(tǒng)窗口是用戶進(jìn)入系統(tǒng)的唯一通道,它是進(jìn)入應(yīng)用系統(tǒng)的喉舌,在安全保密、系統(tǒng)維護(hù)中占有重要的地位,登錄系統(tǒng)在外觀界面上一定要美觀、友好,登錄系統(tǒng)就是要驗證當(dāng)前的用戶名是否與該用戶密
9、碼一致,用戶類型是否正確,限制用戶登錄出錯的次數(shù),保留登錄痕跡等工作。2.3.2主要技術(shù)要點(diǎn)(1) 保留登錄痕跡根據(jù)操作局部性原理,一般情況下用戶上次登錄之后還會繼續(xù)登錄,因此在程序中可以依照人機(jī)交互界面友好性原則保留用戶登錄時的用戶名,控件sle_1用來顯示用戶名,profilestring是一個函數(shù),用來讀取profile文件中一組參數(shù),核心代碼如下:/將登錄名寫入配置文件SetProfileString("user.ini","user","username",sle_1.text)gs_username=sle_1.text/
10、將配置文件中的登錄名寫到用戶名的編輯框中sle_1.text=profilestring("user.ini","user","username","")if trim(sle_1.text)<>"" thensle_2.setfocus()elsesle_1.setfocus()end if (2) 友情提示用戶登錄出錯的原因用戶登錄錯誤的原因可能包括用戶名不存在,密碼錯誤等等核心代碼如下:t /判斷輸入的用戶名是否存在。密碼是否正確select Uid,Upwd into :lg
11、_uid,:lg_upwd from TUser where Uid=:sle_1.text;if lg_uid=""thenst_4.text="提示:當(dāng)前輸入的用戶名不存在!"sle_1.text=''sle_2.text=''sle_1.setfocus() returnend ifif lg_upwd<>sle_2.text thenst_4.text="提示:輸入的密碼錯誤!"sle_2.text=''sle_1.setfocus() returnend if2.4
12、系統(tǒng)主窗口和菜單的設(shè)計2.4.1功能概述醫(yī)院門診掛號系統(tǒng)的主窗口是信息管理系統(tǒng)的重要部分,勾勒出整個應(yīng)用程序的概況,系統(tǒng)的主要功能為:病人首次就診(即需要填寫病人信息來辦理就診卡)、就診卡就診、當(dāng)前科室掛號量以及掛號信息的查詢醫(yī)生信息管理(包括增刪查改)、科室信息管理(包括增刪查改)、用戶信息管理,注銷(可以切換用戶)。2.4.2主要技術(shù)要點(diǎn)(1) 對主窗口中的功能按鍵進(jìn)行了權(quán)限管理在本系統(tǒng)中實現(xiàn)的是當(dāng)?shù)卿浀挠脩舨皇浅壒芾韱T,即用戶名為000的用戶使,用戶無法使用后臺信息管理功能。核心代碼如下:string useruser=profilestring("user.ini"
13、;,"user","username","")if user="000" then m_main.m_后臺管理.enabled=trueelsem_main.m_后臺管理.enabled=falseend if(2)定義了計時器,可以隨系統(tǒng)顯示當(dāng)前時間和當(dāng)前使用這個系統(tǒng)的用戶名核心代碼如下datetime d1select getdate() into : d1 from Tuser;this.title="醫(yī)院門診掛號系統(tǒng)"+" "+gs_username+" &
14、quot;+string(d1)2.5首次就診卡就診2.5.1功能概述首次就診卡就診是門診掛號管理中比較重要的模塊,由于病人沒有就診卡號故先進(jìn)行信息錄入,并賦予一個就診卡號,隨之,即可進(jìn)行掛號,選擇掛號科室,類型,醫(yī)生,還可以查詢當(dāng)前該科室的掛號人數(shù),所有這些信息均會在一個框內(nèi)打印出來,用戶可以查看這些信息。2.5.2主要技術(shù)要點(diǎn)(1) 掛號功能由于該功能是將錄入病人信息和掛號結(jié)合合在一起,故使得操作更為簡便。string reg_genderif rb_1.checked=true thenreg_gender="男"end if if rb_2.checked=true
15、 thenreg_gender="女"end ifdate dtdt=date(dp_1.text)insert into TPatient(Pid,Pname,Pgender,Pidcard,Pbirthday,Ptel) values (:sle_3.text,:sle_2.text,:reg_gender,:sle_5.text,:dt,:sle_1.text);datetime regdtstring reg_deptid,reg_docid,regtype,regpriceselect getdate() into : regdt from Tuser;strin
16、g times,rid,rstint itimes=string(regdt)for i=1 to 19 rst=mid(times,i,1) if isnumber(rst)=true then rid=rid+rst end ifnextselect Dpmtid into :reg_deptid from TDeptment where Dpmtname=:ddlb_1.text; select Did into :reg_docid from TDoctor where Dname=:ddlb_3.text; select Rtypeid,Regprice into :regtype,
17、:regprice from TRegisterType where RTypename=:ddlb_2.text; int numselect count(*) into :num from TRegister where Did=:reg_docid;insert into TRegister(Rid,Pid,Rtypeid,Dpmtid,Did,RegistDate) values(:rid,:sle_3.text,:regtype,:reg_deptid,:reg_docid,:regdt);mle_1.text="姓名:"+sle_2.text+"rn就
18、診卡號:"+sle_1.text+"rn掛號:"+rid+"rn掛號科室:"+ddlb_1.text+"rn掛號類型:"+ddlb_2.text+"rn掛號醫(yī)生:"+ddlb_3.text+"rn掛號費(fèi)用:"+regprice+"rnrn 前面還有"+string(num)+"人掛號"+"rnrn時間:rn"+string(regdt) 2.6就診卡就診2.6.1功能概述該功能也是門診掛號系統(tǒng)的重要功能,用戶只需要輸入就診卡號
19、就可得到,該病人的主要信息,然后再進(jìn)行掛號科室,掛號類型,掛號醫(yī)生的選擇,掛號的功能與首次掛號的功能類似。2.6.2主要技術(shù)要點(diǎn)(1)輸入就診卡號得到病人信息輸入就診卡號得到病人信息的功能是通過數(shù)據(jù)庫查詢技術(shù)實現(xiàn)的。SQL語句使用SELECT子句,F(xiàn)ROM子句,WHERE子句。核心代碼如下:if sle_1.text='' thenmessagebox("提示","就診卡號不能為空!") sle_1.setfocus() returnend ifstring reg_pid,reg_pname,reg_gender,reg_idcardd
20、ate reg_birthdayselect Pid ,Pname,Pgender,Pidcard ,Pbirthday into :reg_pid ,:reg_pname,:reg_gender,:reg_idcard,:reg_birthday from TPatient where Pid=:sle_1.text;if reg_pid=""thenmessagebox("提示","無當(dāng)前就診卡號!")sle_1.text=''sle_1.setfocus() returnend if(2)游標(biāo)技術(shù)調(diào)入基本信息 掛
21、號科室,醫(yī)生等值是通過游標(biāo)技術(shù)來實現(xiàn),掛號科室是在窗口的open事件中從數(shù)據(jù)庫讀取業(yè)務(wù)系統(tǒng)名,醫(yī)生再通過科室信息那個ddlb的selectchange事件中從數(shù)據(jù)庫根據(jù)選擇科室的類型讀取該科室下的醫(yī)生的姓名。核心代碼如下:string ls_doctorstring ls_didselect Dpmtid into :ls_did from TDeptment where Dpmtname=:ddlb_1.text;ddlb_3.reset()declare get_doc cursor forSELECT distinct DnameFROM TDoctor where Dpmtid=:ls
22、_did;open get_doc;fetch get_doc into:ls_doctor;do while sqlca.sqlcode=0 ddlb_3.additem(ls_doctor)fetch get_doc into :ls_doctor; loopclose get_doc;2.7科室掛號量查詢功能2.7.1功能概述用戶可以通過該功能來查看當(dāng)前各科室的掛號量或者所有科室的掛號量以及詳細(xì)的掛號信息。2.7.2主要技術(shù)要點(diǎn)(1) 實現(xiàn)數(shù)據(jù)窗口對象的動態(tài)加載在查看界面中只有一個數(shù)據(jù)窗口,而數(shù)據(jù)窗口對象根據(jù)不同的查詢方式實時動態(tài)地加載。核心代碼如下:dw_1.settransobjec
23、t(SQLCA)if ddlb_1.text<>"全部" then dw_1.retrieve(ls_did)elsedw_1.retrieve("%")end if實現(xiàn)在datasourse設(shè)置了查詢功能 SELECT tregister.rid, tregister.pid, tregister.rtypeid, tregister.dpmtid, tregister.did, tregister.registdate FROM tregister WHERE tregister.dpmtid like :dpmtid (2)總的掛號量的
24、統(tǒng)計通過SQL語句中的Count(*)子句來統(tǒng)計所有科室的掛號量以及各個科室的掛號量string ls_didselect Dpmtid into :ls_did from TDeptment where Dpmtname=:ddlb_1.text;int numselect count(*) into :num from TRegister where Dpmtid=:ls_did;st_5.text=string(num)2.8醫(yī)生信息管理2.8.1功能概述該功能模塊包括對醫(yī)生信息的添加和修改,刪除以及查詢。查詢可以通過輸入任何有關(guān)醫(yī)生信息的子集,通過模糊查找即可查找跟該檢索信息有關(guān)的醫(yī)生
25、信息2.8.2主要技術(shù)要點(diǎn)(1) 添加,修改,刪除的數(shù)據(jù)庫操作在本應(yīng)用中采用數(shù)據(jù)庫SQL語句的INSERT子句,UPDATE子句,DELETE子句,并且實現(xiàn)了數(shù)據(jù)窗口的實時更新,當(dāng)做了諸如增刪改的操作后。核心代碼如下:string reg_genderif rb_1.checked=true then /將復(fù)選框中的選中轉(zhuǎn)換為可輸入數(shù)據(jù)庫的字符串reg_gender="男"end if if rb_2.checked=true thenreg_gender="女"end ifdate dtdt=date(dp_1.text)string reg_dept
26、id/醫(yī)生信息插入數(shù)據(jù)庫select Dpmtid into :reg_deptid from TDeptment where Dpmtname=:ddlb_2.text; insert into TDoctor values(:sle_2.text,:sle_1.text,:reg_gender,:dt,:ddlb_1.text,:reg_deptid,:sle_4.text,:sle_3.text); /更新數(shù)據(jù)窗口dw_1.retrieve()/修改信息update TDoctor set Did=:sle_2.text, Dname=:sle_1.text, Dgender=:reg_
27、gender, Dbirthday=:dt, Dgrade=:ddlb_1.text, Dpmtid=:reg_deptid, Dtel=:sle_4.text, Didcard=:sle_3.text where Did=:st_id.text;/刪除信息if messagebox('提示:是否刪除?',sle_1.text,question!,yesno!)=2 then return DELETE FROM TDoctor WHERE Did=:st_id.text;dw_1.retrieve()(2) 信息的模糊查詢數(shù)據(jù)窗口的過濾條件是可以對字符串型的字段進(jìn)行過濾的。對
28、于多個字段的過濾條件是通過OR邏輯關(guān)系進(jìn)行連接。以此實現(xiàn)多角度的查詢。核心代碼如下:string ls_filterif trim(sle_5.text)=""then ls_filter=""else ls_filter="Pos(Dname,'"+sle_5.text+"',1)>0"+" or Pos(Did,'"+sle_5.text+"',1)>0"+" or Pos(Dpmtid,'"+sle
29、_5.text+"',1)>0"+" or Pos(Dgrade,'"+sle_5.text+"',1)>0"end ifdw_1.setfilter(ls_filter)dw_1.filter()(3)編輯框的實時更新 當(dāng)用戶在數(shù)據(jù)窗口中選中了某條記錄,并雙擊該條記錄,其詳細(xì)信息關(guān)聯(lián)顯示到各對應(yīng)的編輯框,并改變刪除,修改按鈕的使用狀態(tài)為True,用戶即可對信息進(jìn)行編輯或刪除string ch_dpmtid,ch_dpmtname,ch_dgenderif row>0 then sle_1.text=dw_1.object.dnamerow sle_2.text=dw_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鄭州公租房合同到期后續(xù)簽政策出臺
- 2025域名購買合同協(xié)議書
- 2025建筑工程勞務(wù)合同模板
- 2025標(biāo)準(zhǔn)民間個人借款合同范本
- 2025【標(biāo)準(zhǔn)】正規(guī)農(nóng)副產(chǎn)品購銷合同范本
- 2025金融設(shè)備租賃合同范本
- 2025合同管理制度的內(nèi)容包括些什么
- 2025合作出版合同范本
- 2025域名購買轉(zhuǎn)讓合同樣本
- 2025企業(yè)辦公租賃合同模板版范例
- 中國急性缺血性卒中診治指南(2023)解讀
- 高速公路收費(fèi)站QC小組成果如何降低入口發(fā)卡差錯率
- (高清版)JTG D81-2017 公路交通安全設(shè)施設(shè)計規(guī)范
- 壓軸題10 壓強(qiáng)與浮力選填壓軸題(解析版)-2023年中考物理壓軸題專項訓(xùn)練
- 中醫(yī)外科 男性不育癥
- (正式版)JTT 1490-2024 港口安全設(shè)施分類與編碼
- 車輛應(yīng)急預(yù)案方案惡劣天氣
- 【部編版】語文五年級下冊第五單元《交流平臺 初試身手》精美課件
- 枇杷文化知識講座
- 浙江偉鋒藥業(yè)有限公司年產(chǎn)100噸拉米夫定、50噸恩曲他濱、30噸卡培他濱技改項目環(huán)境影響報告
- 公路養(yǎng)護(hù)安全作業(yè)規(guī)程-四級公路養(yǎng)護(hù)作業(yè)控制區(qū)布置
評論
0/150
提交評論