醫(yī)院預約掛號系統(tǒng)設(shè)計_第1頁
醫(yī)院預約掛號系統(tǒng)設(shè)計_第2頁
醫(yī)院預約掛號系統(tǒng)設(shè)計_第3頁
醫(yī)院預約掛號系統(tǒng)設(shè)計_第4頁
醫(yī)院預約掛號系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第2章技術(shù)介紹2.1Java開發(fā)語言Java開發(fā)語言是現(xiàn)在最為流行的一種面向?qū)ο蟮拈_發(fā)語言,很多企業(yè)都在使用。應(yīng)用的領(lǐng)域主要是在應(yīng)用型的系統(tǒng)、網(wǎng)站以及安卓類型的app軟件等。Java開發(fā)語言是Sun公司開發(fā)的,并對外免費發(fā)布的。Java語言的開發(fā)包是JDK,運行環(huán)境是JRE,就是寫程序時需要JDK,運行程序是JRE。其中JDK中包括了JRE,因為安裝JDK后就可以運行Java語言的程序[5]。Java語言的編程工具主要有Eclipse、NetBeans、MyEclipse等,我開發(fā)求職招聘網(wǎng)站用到的是MyEclipse開發(fā)平臺。Java語言的主要特點有以下幾點:1.簡單性:Java語言的特點和C++很相似,但Java語言把一些C++中具有的復雜的特性去掉了,如操作符、繼承的特性、指針,例如C++中的goto語句,在Java中利用了更為簡單的break和Continue來替代[6]。Java開發(fā)語言沒有結(jié)構(gòu)的限制,所有的字符、數(shù)組、方法都是采用的對象。2.面向?qū)ο笮裕好嫦驅(qū)ο蟮拈_發(fā)語言對于程序員來說是非常簡單的,對于程序中用到的數(shù)據(jù)和方法不需要嚴格的過程來控制,只需要一個類Class來進行操作[7]。類是對數(shù)據(jù)和方法狀態(tài)和行為的描述,具有一定的體系和層次。每個Java應(yīng)用程序都是用類來進行組織運行的。3.分布性:Java也是一種分布式的開發(fā)語言,可以在網(wǎng)絡(luò)上應(yīng)用,支持各種網(wǎng)絡(luò)連接,同時還可以對Socket應(yīng)用對話的類提供網(wǎng)絡(luò)連接。4.動態(tài)性:Java語言也是一種動態(tài)的語言,它可以應(yīng)用在動態(tài)變化的環(huán)境中。Java中的類有些是從網(wǎng)絡(luò)中動態(tài)獲取的。2.2MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫是微軟公司在1979發(fā)展的一個具有開放源碼特點的關(guān)系型的數(shù)據(jù)庫。由于MySQL數(shù)據(jù)庫是開源的,每個人都可以在協(xié)議的許可下進行下載并根據(jù)自己的需求進行修改。MySQL因其速度快、體積小、運行穩(wěn)定而受廣大用戶的喜愛。現(xiàn)在MySQL數(shù)據(jù)庫已經(jīng)成為了中小型系統(tǒng)的最愛,在不進行事物服務(wù)處理的情況下,MySQL數(shù)據(jù)庫已經(jīng)成為了用戶的最佳選擇。1.性能穩(wěn)定:MySQL運行時占用的內(nèi)存非常少,保證了數(shù)據(jù)查詢的速度和效率,還能保證機器正常運轉(zhuǎn),不會出現(xiàn)數(shù)據(jù)異常宕機的情況。2.安裝運行簡單:MySQL數(shù)據(jù)安裝包下載安裝簡單,與NavicatforMySQL等MySQL數(shù)據(jù)庫操作平臺結(jié)合使用,可以很方便的進行數(shù)據(jù)庫的創(chuàng)建和查詢,可以進行可視化的編輯操作,方便了程序員對于數(shù)據(jù)庫的管理[8]。3.功能強大:MySQL數(shù)據(jù)庫支持定義的過程和函數(shù),可以把一些常用的功能編輯成固定的函數(shù),然后程序調(diào)用。支持存儲過程,方便程序員對特定業(yè)務(wù)流程的處理。支持觸發(fā)器,保證的數(shù)據(jù)庫的統(tǒng)一性,在特定的事件下完成特定的數(shù)據(jù)處理。支持視圖,可以講多個表組成一個視圖,避免查詢時反復連接不同的表,簡化了查詢過程。2.3MyEclipseMyEclipse開發(fā)平臺是Java應(yīng)用程序眾多開發(fā)平臺中的一種最簡單的開發(fā)平臺。MyEclipse是在eclipse開發(fā)平臺的基礎(chǔ)上應(yīng)用了現(xiàn)有的插件而進行了升級版的集成開發(fā)環(huán)境。MyEclipse可以進行數(shù)據(jù)庫、J2EE的開發(fā)、發(fā)布,集成J2EE的開發(fā)環(huán)境,支持HTML、CSS、Javascript、Spring、Hibernate。MyEclipse8.5以上版本都集成了Tomcat和JDK,剩下了這兩者配置帶來的麻煩,用戶還可以引用自己配置的Tomcat和JDK到MyEclipse8平臺中[9]。在Myelipse中可以進行set和get方法的自動添加,該方法的添加用Myeclipse自動生成的添加即可,一些重要的函數(shù)可以選擇注釋。同時,利用Myeclipse可以進行自動生成構(gòu)造函數(shù)。第3章系統(tǒng)分析3.1技術(shù)可行性分析1.技術(shù)可行性 醫(yī)院預約掛號系統(tǒng)在技術(shù)上主要是對C#語言的應(yīng)用、對數(shù)據(jù)庫的設(shè)計和程序?qū)?shù)據(jù)庫的讀寫操作以及網(wǎng)頁頁面的設(shè)計與布局。系統(tǒng)完成的各項功能都是依托于對數(shù)據(jù)庫的操作來進行的,C#對數(shù)據(jù)庫的操作是利用了ADO.NET技術(shù)來實現(xiàn)對MySQL的連接,并設(shè)置固定的連接字符串,通過特定的地址、數(shù)據(jù)庫名稱、用戶名和密碼來連接。在網(wǎng)頁設(shè)計方面在前臺和后臺設(shè)計固定的頁面框架,每個頁面的設(shè)計都是依托這個框架也來進行的,設(shè)計中用到了基本的html網(wǎng)頁設(shè)計語言來進行,引用了一些CSS樣式,通過對table和DIV進行控制來美化整個頁面,數(shù)據(jù)庫技術(shù)和網(wǎng)頁設(shè)計技術(shù)在這次畢業(yè)設(shè)計之前都經(jīng)過過系統(tǒng)的學習,自己在開始系統(tǒng)時也查閱了相關(guān)的技術(shù)資料。所以醫(yī)院預約掛號系統(tǒng)在技術(shù)上是可行的。2.經(jīng)濟可行性 醫(yī)院預約掛號系統(tǒng)在成本上主要是開發(fā)費用,包括了人力的開發(fā)成本以及購買相關(guān)開發(fā)軟件的費用,開發(fā)軟件都是網(wǎng)絡(luò)開源的,在網(wǎng)絡(luò)上下載就可以正常使用,人力成本是一次性投入,不需要太多的費用支持。系統(tǒng)的投入運行主要是節(jié)約了患者的掛號時間,避免患者來醫(yī)院排隊掛號,讓看病并的更加的及時高效。這些都是金錢所無法比擬的。3.社會可行性 醫(yī)院預約掛號系統(tǒng)是基于網(wǎng)絡(luò)平臺的掛號方式,系統(tǒng)的系統(tǒng)管理員、醫(yī)生、患者三種用戶可以分別處于不同的位置都可以登錄系統(tǒng),患者可以在家先進行掛號,再去醫(yī)院就診,避免了排隊掛號浪費時間。對于醫(yī)院方面來說避免到了過多的人排隊掛號帶來的混亂,節(jié)約了醫(yī)院的資源,提高了醫(yī)院就診的效率。醫(yī)院在線掛號系統(tǒng)實現(xiàn)了患者掛號的信息化管理,可以收集患者的掛號記錄,為醫(yī)院對患者的病情分析等方面可以提供更多的參考依據(jù),為醫(yī)院的長期發(fā)展都是非常有利的。3.2功能需求分析醫(yī)院預約掛號系統(tǒng)在使用用戶上主要包括了系統(tǒng)管理員用戶、醫(yī)生用戶以及患者用戶。1.系統(tǒng)管理用戶主要可以對醫(yī)院的基本信息進行維護,對醫(yī)院所有的科室進行添加維護,對每個科室下的所有醫(yī)生的基本資料進行上傳,對前臺注冊的患者用戶進行查看和管理。系統(tǒng)管理員用戶用例圖如圖3.1所示:圖3.1系統(tǒng)管理員用戶用例圖2.醫(yī)生用戶主要是對患者的掛號記錄進行查看,并可以標記為已就診完成,查看的患者都是掛自己號的患者掛號記錄,不可以查看別的醫(yī)生的掛號記錄。醫(yī)生可以修改自己的基本資料和登錄密碼。醫(yī)生用戶的用例圖如圖3.2所示:圖3.2醫(yī)生用戶用例圖3.患者用戶主要是在前臺進行掛號,患者必須先注冊一個自己的基本信息后登錄成功才可以掛號,可以查看到醫(yī)院的基本信息,并按照科室的分類對醫(yī)生進行查看。掛號成功后可以查看自己的掛號記錄,并可以修改自己的注冊資料?;颊哂脩舻挠美龍D如圖3.3所示:圖3.3患者用戶用例圖3.3數(shù)據(jù)分析表3-1科室信息表數(shù)據(jù)存儲編號D1數(shù)據(jù)存儲名稱科室信息表簡述記錄醫(yī)院所有科室的名稱數(shù)據(jù)流來源系統(tǒng)管理員添加數(shù)據(jù)存儲組成科室ID+科室類型+科室名稱關(guān)鍵字科室ID相關(guān)聯(lián)的處理醫(yī)院管理模塊表3-2醫(yī)生信息表數(shù)據(jù)存儲編號D2數(shù)據(jù)存儲名稱醫(yī)生信息表簡述記錄每個醫(yī)生的基本信息數(shù)據(jù)流來源系統(tǒng)管理員添加數(shù)據(jù)存儲組成醫(yī)生ID+醫(yī)生工號+姓名+性別+年齡+科室ID+照片+職稱+聯(lián)系電話+每天接診人數(shù)+個人詳細介紹+登錄密碼關(guān)鍵字醫(yī)生ID相關(guān)聯(lián)的處理患者掛號模塊表3-3患者信息表數(shù)據(jù)存儲編號D3數(shù)據(jù)存儲名稱患者信息表簡述記錄每個患者注冊的輸入的個人資料數(shù)據(jù)流來源患者注冊數(shù)據(jù)存儲組成患者ID+患者登錄帳號+患者姓名+患者性別+患者年齡+家庭地址+聯(lián)系電話+登錄密碼關(guān)鍵字患者ID相關(guān)聯(lián)的處理患者掛號模塊表3-4掛號記錄信息表數(shù)據(jù)存儲編號D4數(shù)據(jù)存儲名稱掛號記錄信息表簡述記錄患者每次的掛號信息數(shù)據(jù)流來源患者掛號時添加數(shù)據(jù)存儲組成掛號記錄ID+患者ID+醫(yī)生ID+掛號日期+狀態(tài)關(guān)鍵字掛號記錄ID相關(guān)聯(lián)的處理患者掛號管理模塊表3-5醫(yī)院信息表數(shù)據(jù)存儲編號D5數(shù)據(jù)存儲名稱醫(yī)院信息表簡述記錄醫(yī)院的基本信息數(shù)據(jù)流來源系統(tǒng)管理員添加數(shù)據(jù)存儲組成醫(yī)院ID+醫(yī)院基本信息關(guān)鍵字醫(yī)院ID相關(guān)聯(lián)的處理患者查看醫(yī)院基本信息模塊第4章系統(tǒng)設(shè)計4.1系統(tǒng)功能設(shè)計通過分析醫(yī)院在線掛號系統(tǒng)主要包括了系統(tǒng)管理員、醫(yī)生、患者三個用戶模塊。系統(tǒng)管理員主要包括了醫(yī)院信息管理、科室信息管理、醫(yī)生管理、患者管理、系統(tǒng)管理。醫(yī)生主要包括了個人信息管理、患者掛號管理、系統(tǒng)管理。患者主要包括了患者注冊、患者登錄、患者掛號、我的掛號記錄、修改個人信息。醫(yī)院在線掛號系統(tǒng)的功能結(jié)構(gòu)圖如圖4.1所示:圖4-1系統(tǒng)功能結(jié)構(gòu)圖1.系統(tǒng)管理員醫(yī)院信息管理:添加醫(yī)院的介紹信息,方便患者了解醫(yī)院的基本信息??剖夜芾恚簩︶t(yī)院中所有科室進行分類添加。醫(yī)生管理:添加醫(yī)院中每個科室中的所有醫(yī)生的基本信息,包括了姓名、年齡、照片以及個人簡介等信息。患者管理:對前臺注冊的患者用戶資料進行查看和刪除。系統(tǒng)管理:修改自己的登錄密碼。2.醫(yī)生個人信息管理:醫(yī)生登錄后可以修改自己的默認信息。患者掛號管理:醫(yī)生可以查看到掛自己號的所有患者信息,默認顯示當前的掛號記錄,對于就診完成的患者可以標記已就診,方便對患者掛號記錄進行查看。系統(tǒng)管理:醫(yī)生登錄后可以修改之前的默認登錄密碼。3.患者患者注冊:患者如果需要掛號,需注冊個人的基本信息,包括姓名、性別、家庭地址等信息?;颊叩卿洠簩颊叩牡卿泿ぬ栠M行驗證?;颊邟焯枺夯颊呖梢愿鶕?jù)科室選擇對應(yīng)的醫(yī)生,查看醫(yī)生的基本信息,然后進行掛號,掛號時需要患者登錄成功。我的掛號記錄:根據(jù)登錄患者的帳號信息查詢到該患者所有的掛號記錄。個人信息修改:患者可以修改之前注冊的個人信息和登錄密碼。4.2數(shù)據(jù)庫設(shè)計4.2.1數(shù)據(jù)概念模型設(shè)計1.系統(tǒng)管理員信息概念模型圖如圖4-2所示:圖4-1系統(tǒng)管理員信息概念模型圖2.醫(yī)生信息概念模型圖如圖4-3所示:圖4-2醫(yī)生信息概念模型圖3.患者信息概念模型圖如圖4-4所示:

圖4-3收費員信息概念模型圖4.科室信息概念模型圖如圖4-5所示:圖4-4科室信息概念模型圖5.掛號記錄信息概念模型圖如圖4-5所示:圖4-5藥品信息概念模型圖4.2.2數(shù)據(jù)關(guān)系模式設(shè)計醫(yī)院預約掛號系統(tǒng)主要包括了系統(tǒng)管理員、醫(yī)生、患者、科室、掛號記錄五個實體組成。各個實體之間的E-R關(guān)系圖如圖4.3所示:圖4.3實體關(guān)系E-R圖1.一個管理員可以管理多個科室2.一個管理員可以管理多個醫(yī)生3.一個科室下包括多個醫(yī)生4.一個管理員可以管理多個患者5.一個患者可以掛號多個掛號記錄6.一個醫(yī)生可以查看多個掛號記錄4.2.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計根據(jù)對醫(yī)院預約掛號系統(tǒng)的功能和數(shù)據(jù)字段的分析和設(shè)計,系統(tǒng)主要包括了系管理員信息表、醫(yī)生信息表、患者信息表、科室信息表、預約掛號記錄表、醫(yī)院信息表組成。每個表格的邏輯結(jié)構(gòu)設(shè)計如下所示:1.系統(tǒng)管理員信息表表4-1管理員信息表字段數(shù)據(jù)類型是否為空約束/自增描述idInt否主鍵管理員IDzhanghaoVarchar(50)否管理員帳號mimaVarchar(50)否管理員密碼2.醫(yī)生信息表表4-2醫(yī)生信息表字段數(shù)據(jù)類型是否為空約束/自增描述idInt否主鍵醫(yī)生IDgonghaoVarchar(50)否醫(yī)生工號xingmingVarchar(50)否醫(yī)生姓名xingbieVarchar(50)否醫(yī)生性別nianlingVarchar(50)否年齡keshiIDInt否外鍵所屬科室IDzhaopianVarchar(50)否個人照片zhichengVarchar(50)否醫(yī)生職稱dianhuaVarchar(50)否醫(yī)生聯(lián)系電話renshuVarchar(50)否每天就診人數(shù)jianjieVarchar(50)否個人簡介mimaVarchar(50)否登錄密碼3.科室信息表表4-3科室信息表字段數(shù)據(jù)類型是否為空約束/自增描述idInt否主鍵科室IDkeshileixingVarchar(50)否科室類型keshimingVarchar(50)否科室名稱4.預約掛號記錄表表4-4預約掛號記錄表字段數(shù)據(jù)類型是否為空約束/自增描述idInt否主鍵掛號記錄IDHuanzheIDInt否外鍵患者IDyishengIDInt否外鍵醫(yī)生IDshijianVarchar(50)否掛號日期zhuangtaiVarchar(50)否狀態(tài)5.患者信息表表4-5患者信息表字段數(shù)據(jù)類型是否為空約束/自增描述HidInt否主鍵患者IDHzhanghaoVarchar(50)否患者登錄帳號HxingmingVarchar(50)否患者姓名HxingbieVarchar(50)否患者性別HnianlingVarchar(50)否患者年齡HdizhiVarchar(50)否患者家庭地址HdianhuaVarchar(50)否患者聯(lián)系電話HmimaVarchar(50)否患者登錄密碼6.醫(yī)院信息表表4-6醫(yī)院信息表字段數(shù)據(jù)類型是否為空約束/自增描述idint否主鍵醫(yī)院IDyiyuanxinxitext否醫(yī)院基本信息第5章系統(tǒng)實現(xiàn)5.1患者模塊5.1.1患者注冊患者注冊代表的功能就是醫(yī)院掛號時在掛號本上輸入的個人資料,包括了患者的登錄帳號、密碼、姓名、性別、年齡、家庭地址、聯(lián)系電話組成。輸入完所有的信息添加提交后進入到y(tǒng)onghucheck()方法中獲取輸入的值,并通過if語句驗證每個輸入項目的值都不能為空,同時驗證新密碼和確認密碼的值必須一致。然后進入到huanzhe_servlet.java中的huanzhezhuce中利用登錄帳號為條件查詢帳號在huanzhe信息表中是否已經(jīng)存在,如存在就代表重復,不能注冊[10]。否則進行患者信息的插入語句,插入成功后跳轉(zhuǎn)到注冊頁面。注冊頁面是zhuce.jsp,頁面設(shè)計圖如圖5-1所示:圖5-1患者注冊Stringzhanghao=req.getParameter("zhanghao"); Stringxingming=req.getParameter("xingming"); Stringxingbie=req.getParameter("xingbie"); Stringnianling=req.getParameter("nianling"); Stringdianhua=req.getParameter("dianhua"); Stringdizhi=req.getParameter("dizhi"); Stringmima=req.getParameter("mima"); Strings=liuService.panduan_zhanghao(zhanghao); if(s.equals("yizhan")) { req.setAttribute("message","賬號已被占用,請輸入其他賬號"); req.setAttribute("path","site/userreg/userreg.jsp");StringtargetURL="/common/success.jsp";dispatch(targetURL,req,res); } else { Stringsql="insertinto huanzhe(zhanghao,xingming,xingbie,nianling,dianhua,dizhi,mima)values(?,?,?,?,?,?,?)"; Object[]params={zhanghao,xingming,xingbie,nianling,dianhua,dizhi,mima}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","注冊成功,請登錄"); req.setAttribute("path","site/default.jsp");StringtargetURL="/common/success.jsp";dispatch(targetURL,req,res); } }5.1.2患者登錄患者登錄是在框架頁incLeft.jsp頁實現(xiàn)的,在整個頁面的右面。每個頁面中都包括登錄頁面。輸入帳號和密碼后點擊登錄,進入到denglu方法中會利用if語句驗證兩個輸入的值是否為空,通過一個或的連接,判斷兩個中的任意一個為空都提示“用戶名或密碼不能為空”。然后再以帳號和密碼為條件查詢huanzhe信息表,查詢返回的集合行數(shù)大于0時,代表正確。正確是把患者的基本信息存儲在session中的huanzhe中。,最后跳轉(zhuǎn)到主頁index.jsp。登錄頁面也講重新刷新,判斷sesion中的huanzhe值是否存在,如存在隱藏登錄頁面Login2表格,顯示Login1表格,Login1表格中包括了修改個人信息、修改密碼兩個超級鏈接以及顯示用戶帳號和退出按鈕[11]?;颊叩卿涰撁嬖O(shè)計如圖5-2所示:圖5.2患者登錄頁面Stringsql="select*fromhuanzhewherezhanghao=?andmima=?";Object[]params={userName,userPw};DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } if(mark==true) { result="yes"; Thuanzhehuanzhe=newThuanzhe(); huanzhe.setId(rs.getString("id")); huanzhe.setZhanghao(rs.getString("zhanghao")); huanzhe.setXingming(rs.getString("xingming")); huanzhe.setXingbie(rs.getString("xingbie")); huanzhe.setNianling(rs.getString("nianling")); huanzhe.setDianhua(rs.getString("dianhua")); huanzhe.setDizhi(rs.getString("dizhi")); huanzhe.setMima(rs.getString("mima")); WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",1); session.setAttribute("huanzhe",huanzhe); } rs.close();}5.1.3患者掛號患者掛號時整個系統(tǒng)的核心,患者掛號時需要先點擊導航欄中的醫(yī)院科室超級鏈接,進入到keshiList.jsp頁面,顯示每個科室類型下對應(yīng)的所有科室名稱,點擊科室名稱后就可以查看到該科室下的所有醫(yī)生信息,再yishengList.jsp頁面中顯示了醫(yī)生的個人照片、姓名和職稱,照片中設(shè)計了一個超級鏈接可以進入到醫(yī)生詳情頁面yishengInfo.jsp,詳情頁面中顯示了醫(yī)生的姓名、性別。年齡、職稱、聯(lián)系電話、個人簡介。輸入一個預約掛號時間點擊預約掛號按鈕進入到check方法中,會先通過一個if語句獲取預約掛號的事件是否為空,然后在驗證session中的huanzhe是否為空,為空就代表未登錄,也不能進行掛號。然后根據(jù)醫(yī)生的ID查詢到該醫(yī)生的每天就診人數(shù),再根據(jù)醫(yī)生ID和掛號時間查詢掛號記錄表,統(tǒng)計出當天對該醫(yī)生已經(jīng)掛號的總?cè)藬?shù),判斷每天就診的人數(shù)和總?cè)藬?shù)相同的情況下,就代表當天該醫(yī)生的就診人數(shù)已滿,提示患者不能再掛號,如果不相等,就把醫(yī)生ID、患者ID、掛號時間、狀態(tài)插入到掛號記錄表,狀態(tài)默認未已預約掛號,插入成功后提示掛號成功跳轉(zhuǎn)到醫(yī)院科室頁面[12]?;颊邟焯栱撁嬖O(shè)計圖如圖5-3所示:圖5-3患者掛號HttpSessionsession=req.getSession(); Thuanzhehuanzhe=(Thuanzhe)session.getAttribute("huanzhe"); Stringshijian=req.getParameter("riqi"); Stringzhuangtai="已預約掛號"; StringyishengID=req.getParameter("yishengID"); StringhuanzheID=huanzhe.getId(); Stringsql="insertintoguahao(shijian,yishengID,huanzheID,zhuangtai)values(?,?,?,?)"; Object[]params={shijian,yishengID,huanzheID,zhuangtai}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","預訂掛號成功"); req.setAttribute("path","site/default.jsp");StringtargetURL="/common/success.jsp";dispatch(targetURL,req,res);5.1.4我的掛號記錄我的掛號記錄是點擊導航欄中的我的掛號記錄超級連接進入到該頁面,這個超級鏈接只是在患者登錄成功后才能顯示出來。我的掛號記錄頁面顯示了自己所有的掛號記錄,包括了掛號的科室、醫(yī)生的基本信息。是通過session中的huanzhe中的id為條件查詢掛號記錄表,并與醫(yī)生信息表進行關(guān)聯(lián),通過醫(yī)生ID字段[13]。查詢的數(shù)據(jù)放在yudingList鏈表中,并在Myguahao.jsp頁面中顯示出來。頁面設(shè)計圖如圖5-4所示:圖5-4我的掛號記錄HttpSessionsession=req.getSession();Thuanzhehuanzhe=(Thuanzhe)session.getAttribute("huanzhe"); ListyudingList=newArrayList();Stringsql="selectc.*,d.keshiming,d.xingming,d.xingbie,d.nianling,d.zhicheng,d.dianhuafromguahaocleftjoin(selecta.*,b.keshimingfromyishengaleftjoinkeshibona.keshiID=b.id)asdonc.yishengID=d.idwherehuanzheID=?"; Object[]params={huanzhe.getId()}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tyudingyuding=newTyuding(); yuding.setId(rs.getString("id")); yuding.setShijian(rs.getString("shijian")); yuding.setKeshiming(rs.getString("keshiming")); yuding.setXingming(rs.getString("xingming")); yuding.setXingbie(rs.getString("xingbie")); yuding.setNianling(rs.getString("nianling")); yuding.setZhicheng(rs.getString("zhicheng")); yuding.setDianhua(rs.getString("dianhua")); yuding.setZhuangtai(rs.getString("zhuangtai")); yudingList.add(yuding); } rs.close(); }5.1.5修改個人信息修改人信息是患者登錄成功后可以對之前注冊的資料進行修改操作。頁面中會先獲取session中的huanzhe的id,然后以id為條件查詢患者信息表,把查詢到的患者的各項信息賦值給對應(yīng)的控件。修改操作的驗證和注冊的驗證一致,都要驗證不為空和帳號唯一性。都驗證成立后才能執(zhí)行修改患者的sql語句,修改成功后重新刷新該頁面。修改個人信息頁面是huanzheInfo.jsp,頁面設(shè)計圖如圖5-5所示:圖5-5修改人信息Stringid=req.getParameter("id"); Stringzhanghao=req.getParameter("zhanghao"); Stringxingming=req.getParameter("xingming"); Stringxingbie=req.getParameter("xingbie"); Stringnianling=req.getParameter("nianling"); Stringdianhua=req.getParameter("dianhua"); Stringdizhi=req.getParameter("dizhi"); Stringsql="updatehuanzhesetzhanghao=?,xingming=?,xingbie=?,nianling=?,dianhua=?,dizhi=?whereid=?"; Object[]params={zhanghao,xingming,xingbie,nianling,dianhua,dizhi,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","修改成功"); req.setAttribute("path","site/default.jsp"); StringtargetURL="/common/success.jsp";dispatch(targetURL,req,res);5.2醫(yī)生模塊5.2.1個人信息管理個人信息修改是醫(yī)生登錄到個人后臺后可以對自己的基本資料進行更新。頁面中控件中的每個值都是獲取session中yisheng的各個信息值賦值給對應(yīng)的字段。修改時需要驗證每個控件的值都不為空。都驗證成立后才能執(zhí)行修改醫(yī)生的sql語句,修改成功后重新刷新該頁面。修改個人信息頁面是yishengInfo.jsp,頁面設(shè)計圖如圖5-6所示:圖5.6個人信息修改Stringid=req.getParameter("id"); Stringgonghao=req.getParameter("gonghao"); Stringxingming=req.getParameter("xingming"); Stringxingbie=req.getParameter("xingbie"); Stringnianling=req.getParameter("nianling"); StringkeshiID=req.getParameter("mingcheng1"); Stringzhicheng=req.getParameter("zhicheng"); Stringdianhua=req.getParameter("dianhua"); Stringrenshu=req.getParameter("renshu"); Stringfujian=req.getParameter("fujian"); Stringjianjie=req.getParameter("jianjie"); Stringsql="updateyishengsetgonghao=?,xingming=?,xingbie=?,nianling=?,keshiID=?,zhicheng=?,dianhua=?,renshu=?,zhaopian=?,jianjie=?whereid=?"; Object[] params={gonghao,xingming,xingbie,nianling,keshiID,zhicheng,dianhua,renshu,fujian,jianjie,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","修改成功"); req.setAttribute("path","yisheng/yisheng/yishengInfo.jsp"); 5.2.2預約掛號管理預約掛號管理是對患者的掛號記錄進行查看和標記,查看是查看該醫(yī)生所對應(yīng)的掛號記錄,通過醫(yī)生ID查詢到掛號記錄表,查詢到掛自己號的所有患者掛號記錄。并默認是今天的掛號記錄。是通過yuding_servlet.java中的guahaoMana方法來獲取查詢數(shù)據(jù),數(shù)據(jù)的查詢是以當天時間、登錄醫(yī)生為條件進行查詢,把預約掛號表與患者信息表關(guān)聯(lián)在一起。查詢是掛號記錄狀態(tài)為已預約掛號時,顯示可以標記,否則顯示已就診。已預約掛號的記錄可以進行標記處理,把預約掛號記錄的狀態(tài)改為已就診。預約掛號管理頁面是guahaoList.jsp。頁面設(shè)計圖如圖5-7所示:圖5-7預約掛號管理Stringid=req.getParameter("id"); Stringfangkuan=req.getParameter("fangkuan"); Stringsql="updateguahaosetzhuangtai='已就診'whereid=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","標記成功");req.setAttribute("path","yuding?type=guahaoMana");5.2.3系統(tǒng)管理修改登錄是醫(yī)生可以對自己的后臺登錄密碼進行更新。頁面中設(shè)計了原密碼、新密碼和確認密碼來保證更新密碼的安全性和正確性。先比較輸入的原密碼和session中保持的密碼是否相同,然后在對比兩次新密碼是否一致。這兩個條件都成立后才能以session中的醫(yī)生ID為條件更新密碼。更新成功后重新刷新該頁面,修改登錄密碼頁面是userPw.jsp,頁面設(shè)計圖如圖5-9所示:圖5-9修改登錄密碼WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); Tyishengyisheng=(Tyisheng)session.getAttribute("yisheng"); Stringsql="updateyishengsetmima=?whereid=?"; Object[]params={userPwNew,yisheng.getId()}; DBmydb=newDB(); mydb.doPstm(sql,params);return"yes";5.3系統(tǒng)管理員模塊5.3.1醫(yī)院信息管理醫(yī)院信息管理中可以更新醫(yī)院的基本資料,頁面中通過一個fckeditor編輯器控件來對醫(yī)院信息進行在線編譯,編輯器控件是引用了一個FredCK.FCKeditorV2.dll來實現(xiàn)的。頁面初始化會先查詢醫(yī)院的基本信息,然后賦值在編輯器控件中,信息的更新是在yiyuan_servlet.java中的yiyuanUpdate來進行醫(yī)院信息的更新。醫(yī)院信息管理頁面是yiyuan.jsp。頁面設(shè)計圖如圖5-10所示:圖5-10醫(yī)院信息管理Stringid=req.getParameter("id").trim(); Stringyiyuanxinxi=req.getParameter("yiyuanxinxi").trim(); Stringsql="Updateyiyuansetyiyuanxinxi=?whereid=?"; Object[]params={yiyuanxinxi,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","保存成功");req.setAttribute("path","yiyuan?type=yiyuanInfo");5.3.2科室管理科室管理是對醫(yī)院的所有科室進行添加,科室添加頁面中包括了科室類型、科室名稱??剖翌愋褪峭ㄟ^一下下拉列表select綁定了醫(yī)院常有的科室類型,包括了內(nèi)科、外科、五官科、婦產(chǎn)可、精神心理科、其他科室。點擊提交按鈕后進入到keshicheck()方法中驗證科室的名稱是否為空,不為空進入到keshi_servlet.java中的keshiAdd方法獲取科室的類型、名稱插入到科室信息表中??剖姨砑禹撁媸莐eshiAdd.jsp。頁面設(shè)計圖如圖5-11所示:圖5-11科室添加Stringkeshileixing=req.getParameter("keshileixing").trim(); Stringkeshiming=req.getParameter("keshiming").trim(); Stringsql="insertintokeshi(keshileixing,keshiming)values(?,?)"; Object[]params={keshileixing,keshiming}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","添加成功"); req.setAttribute("path","keshi?type=keshiMana");5.3.3醫(yī)生管理醫(yī)生管理中包括了醫(yī)生信息的添加和醫(yī)生信息的管理兩個模塊。1.醫(yī)生信息添加醫(yī)生信息添加頁面包括了醫(yī)生的工號、姓名、性別、年齡、所在科室、照片、職稱、聯(lián)系電話、每天接診人數(shù)、個人簡介組成。其中職稱是綁定了固定值住院醫(yī)師、主治醫(yī)師、副主任醫(yī)師、主任醫(yī)師。所在科室中有科室類型和科室名稱兩個下拉列表框,并實現(xiàn)了聯(lián)動的效果,選擇科室類型后,會根據(jù)科室類型的查詢科室信息表,把查詢到的科室名稱賦值給科室名稱下拉列表控件。照片是利用了upload.jsp頁面來實現(xiàn)上傳,需要上傳一個本地的圖片,上傳后的圖片會保存到upload文件夾中,并通過時間進行了重新命名,來保證每一個照片文件的名稱不重復。醫(yī)生信息表中只存儲照片重新命名后的文件名。添加提交按鈕后進入到check()方法中驗證所有的輸入項目都不為空,然后進入到y(tǒng)isheng_servlet.java中的yishengAdd方法執(zhí)行添加。醫(yī)生信息添加頁面是yishengAdd.jsp頁面。頁面設(shè)計圖如圖5-12所示:圖5-12醫(yī)生信息添加Stringgonghao=req.getParameter("gonghao"); Stringxingming=req.getParameter("xingming"); Stringxingbie=req.getParameter("xingbie"); Stringnianling=req.getParameter("nianling"); StringkeshiID=req.getParameter("mingcheng1"); Stringzhicheng=req.getParameter("zhicheng"); Stringdianhua=req.getParameter("dianhua"); Stringrenshu=req.getParameter("renshu"); Stringfujian=req.getParameter("fujian"); Stringjianjie=req.getParameter("jianjie"); Stringmima="123456"; Stringsql="insertintoyisheng(gonghao,xingming,xingbie,nianling,keshiID,zhicheng,dianhua,renshu,zhaopian,jianjie,mima)values(?,?,?,?,?,?,?,?,?,?,?)"; Object[]params={gonghao,xingming,xingbie,nianling,keshiID,zhicheng,dianhua,renshu,fujian,jianjie,mima}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","添加成功");req.setAttribute("path","yisheng?type=yishengMana");2.醫(yī)生信息管理醫(yī)生信息管理中默認查詢了所有醫(yī)生的信息,是通過yisheng_servlet.java中的yishengMana方法來獲取數(shù)據(jù),點擊刪除后獲取醫(yī)生的ID,通過yishengDel方法以醫(yī)生ID為條件刪除醫(yī)生的基本信息。醫(yī)生信息管理頁面是yishengMana.jsp頁面。頁面設(shè)計圖如圖5-13所示:圖5-13醫(yī)生信息管理Stringid=req.getParameter("id"); Stringsql="deletefromyishengwhereid=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","刪除成功");req.setAttribute("path","yisheng?type=yishengMana");5.3.4患者信息管理患者信息管理中默認查詢了所有注冊成功的患者基本信息。數(shù)據(jù)的查詢是通過huanzhe_servlet.java中的huanzheMana方法來獲取數(shù)據(jù),點擊刪除后獲取患者的ID,通過huanzheDel方法以huanzheID為條件刪除患者的基本信息?;颊咝畔⒐芾眄撁媸莌uanzheMana.jsp頁面。頁面設(shè)計圖如圖5-14所示:圖5-14患者管理Stringid=req.getParameter("id"); Stringsql="deletefromhuanzhewhereid=?"; Object[]params={id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","刪除成功");req.setAttribute("path","huanzhe?type=huanzheMana");

第6章系統(tǒng)測試6.1測試環(huán)境搭建醫(yī)院預約掛號系統(tǒng)的運行要基于Java和MySQL的運行環(huán)境,還需要tomcat服務(wù)器的支持,具體的環(huán)境配置如下:1.硬件環(huán)境處理器:Inter(R)Core(TM)i5-4210U,CPU@1.7GHz2.4GHz硬盤:540MB內(nèi)存:4GB2.軟件環(huán)境開發(fā)平臺:MyEclipse8.5以上版本在JDK:JDK1.6Tomcat:Tomcat6.0以上版本數(shù)據(jù)庫:MySQL5.7,NavicatforMySQL瀏覽器:360瀏覽器、搜索瀏覽器6.2測試結(jié)果表6-1用戶注冊測試項目輸入數(shù)據(jù)輸出結(jié)果各個注冊信息為空無提示對應(yīng)的輸入值不能為空密碼和確認密碼不一致密碼:123456確認密碼:123兩次輸入的密碼不一致用戶賬號重復用戶賬號:zhangming提示賬號已被占用,請輸入其他賬號信息正確時登錄賬號:liming登錄密碼:111確認密碼:111患者姓名:黎明患者性別:男患者年齡:24家庭地址:北四路25號聯(lián)系電話冊成功表6-2用戶登陸測試項目輸入數(shù)據(jù)輸出結(jié)果用戶賬號或密碼錯誤用戶賬號:liming密碼:12345提示用戶賬號或密碼錯誤用戶賬號和密碼正確用戶賬號:liming密碼:111登陸成功,進入到首頁表6-3醫(yī)生預約測試項目輸入數(shù)據(jù)輸出結(jié)果按科室查詢醫(yī)生選擇呼吸內(nèi)科可以查詢到該科室下的所有醫(yī)生用戶未登錄是無提示預約掛號請先登錄用戶已登陸選擇醫(yī)生張美嶺,預約掛號時間:2020-04-13點擊預約掛號提示預約掛號成功表6-4我的預約掛號查詢測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論