醫院門診管理系統畢業設計論文_第1頁
醫院門診管理系統畢業設計論文_第2頁
醫院門診管理系統畢業設計論文_第3頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.醫院門診管理系統的開發與設計作 者:指導教師:摘要:醫院門診信息管理系統是一個基于Internet的應用系統,完成預約、診斷、開具處方、保存病歷管理的全過程。系統操作簡便、界面友好、靈活、實用,解決醫院系統中各種信息管理的集成問題,使醫院系統的各種信息管理一體化。關鍵詞:JSP;醫院門診;信息管理系統1課題背景隨著Internet技術的發展,信息管理被廣泛應用與各行各業。伴隨著醫院的改革,醫院信息化進程的加速,建立基于Web的醫院門診信息管理系統顯得尤為重要。1.1課題研究現狀分析隨著醫療衛生事業的發展,醫院改革的深入,信息的有效、高效利用,已受到人們的關注。充分利用現代科技手段,加強各種信

2、息的利用開發,是醫院信息管理的一個重要內容,也是當今醫院的需要。目前的醫院僅僅把醫院的信息管理系統作為微機工具系統,而沒有發揮其管理的真正功能;系統分散設計,各部門獨立實施,沒有考慮信息的關聯和共享,存在信息孤島現象;醫院管理錯綜復雜,從而形成了醫院信息管理系統數據的多樣化,數據量大等特點1。通過本次醫院門診信息系統的設計,解決醫院系統中各種信息管理的集成問題,使醫院系統的各種信息管理一體化。同時,了解醫院門診的流程,把握信息管理系統開發概念,掌握動態技術,熟悉系統開發的進程,做到會用相關工具設計和開發相關系統,并實現。1.2 技術發展趨勢隨著Internet技術的普及和發展基本上各種不同操作

3、系統平臺上都有相應的Web瀏覽器程序,這就使得醫院門診信息管理系統具有非常廣泛的平臺兼容性。客戶端僅需一個Web瀏覽器程序,不再需要安裝其它軟件。客戶程序主要包括HTML頁面和一些特殊的數據庫訪問程序,它們都存放在Web服務器上,客戶應用系統的設計、維護和更新工作只需在Web服務器上進行,這樣就大大降低了系統安裝、測試、維護的工作量2。通過基于Web的醫院門診信息管理系統的開發,可以實現對醫院門診相關信息的整合管理以及共享,并且通過組件技術的應用,可以使得本醫院門診信息管理系統具有很大的可擴展性和可移植性。2需求分析需求是用戶解決問題或達到目標所需的條件或功能;系統或系統部件要滿足合同、標準,

4、規X或其它正式規定文檔所需具有的條件或權能。2.1概述醫院門診管理系統是以醫院門診掛號各工作流為基本元素的、用編程來實現其功能的軟件。2.1.1項目的目的和目標目的:使醫院門診信息管理清晰化,透明化,便于操作,易于管理,從而達到提高醫院門診信息管理效率的目的。目標:通過對醫院門診管理系統進行模塊化設計,分成具體的各個模塊來實現其所有功能。2.1.2用戶簡介本系統共有四種用戶:病人,醫生,科室,管理員。(1)病人可以查詢醫生值班情況,醫生信息。實現病人掛號和預約掛號功能。(2)可以實現病人就診功能:包括醫生寫門診病例,開化驗單或檢查單,填寫檢查或化驗結果,查看各種檢查結果,下門診診斷結果和處方或

5、處置單等。(3)科室用戶可以進入系統查看當前科室病人狀態,便于對病人進行檢查。(4)繳費劃價功能:用戶可以進行劃價繳費功能。(5)病人進行取藥功能。(6)管理員進行系統維護功能。2.1.3 角色定義(1)科室:進入系統查看當前科室病人狀態,便于對病人進行檢查。(2)醫生:寫門診病例,開化驗單或檢查單,填寫檢查或化驗結果,查看各種檢查結果,下門診診斷結果和處方或處置單等。(3)病人:查詢醫生值班情況,醫生信息。實現病人掛號和預約掛號功能。可以進行劃價繳費功能。進行取藥功能。(4)管理員:該軟件的維護人員需要詳細的了解B/S架構、C+編程語言、操作系統基本知識、數據庫設計及操作等知識,進行系統維護

6、功能。2.2 目標系統功能需求2.2.1 病人子系統圖1 病人子系統用例圖表1 病人管理編號功能名稱輸入系統響應輸出功能描述 01處理掛號身份登錄信息進入處理掛號系統將掛號信息保存至數據庫,打印掛號單活動步驟異常處理 02查詢信息身份登錄信息進入查詢醫生信息以及值班情況2.2.2科室管理子系統圖2 科室管理子系統用例圖表2 科室管理編號功能名稱輸入系統響應輸出功能描述03處理查詢科室身份登錄進入科室管理系統病人狀態信息活動步驟異常處理2.2.3醫生子系統圖3 醫生子系統用例圖表3 醫生管理編號功能名稱輸入系統響應輸出功能描述04處理查看身份登錄信息進入查詢化驗結果活動步驟異常處理05處理下單身

7、份登錄信息進入處理下單系統1寫門診病歷2開化驗單3填化驗結果活動步驟異常處理2.2.4管理員子系統圖4 管理員系統用例圖表4 管理員編號功能名稱輸入系統響應輸出功能描述06啟用新用戶身份登錄信息進入管理員子系統啟用新用戶活動步驟異常處理07用戶審核身份登錄信息進入用戶審核系統停用非法用戶2.3 目標系統界面與接口需求2.3.1界面需求l 輸入設備:鍵盤、鼠標l 輸出設備:顯示器、打印機l 顯示風格:圖形界面、字符界面、IE界面等;l 顯示方式:1024×768l 輸出格式:顯示布局、打印格式等。2.3.2接口需求l 與其他系統的接口,如監控系統、控制系統、銀行結算系統、稅控系統、財務

8、系統、政府網絡系統及其他系統等。l 與系統特殊外設的接口,如CT機、磁共振、柜員機(ATM)、IC卡、盤點機等。2.4目標系統的其他需求2.4.1安全性信息安全是企業信息網實施的第一要素,網絡系統不但要能夠實現功能,更重要的是要穩定安全. 因此,應采取如下技術以增強網絡的安全性:l 設備的安全性 設備制造具有安全系數,控制系統完善,具有各種故障檢測和指示裝置l 數據級的安全性 保護數據庫,防止不合法的使用以免數據的更改或破壞2.4.2可靠性網絡系統作為其他應用系統的基礎,如發生系統癱瘓,其造成的損失是難以估量的,因此系統必須可靠地連續運行,即系統設計必須從系統結構、設計方案、設備選擇、廠商的技

9、術服務與維修響應能力、設備備件供應能力等方面考慮,使故障發生的可能性盡可能少,影響面盡可能小.它應該能實現內部辦公事務和外部事務處理的整合.2.4.3靈活性用戶信息應采用大型關系數據庫,模塊化等先進成熟的技術方法,在給用戶提供了極大的靈活性的同時,也有效地保證了系統的可靠性。2.4.4特殊需求由于計算機和通信技術的不斷發展,用戶的需求也在隨著時間的推移不斷的發生變化,以及由于應用軟件種類和業務數量的增加,功能的強化,系統軟件的升級將對主機和網絡系統提出更高的要求,網絡構造應具有高度的擴展性,以降低系統擴充的投入成本,并滿足信息技術高速發展的需要。能適應2-3年內的業務增長和突發性事件的需要,確

10、保各級系統的可擴充性和先進性,并注意設備的冗余設計以及網絡的負載均衡。3 概要設計醫院門診管理系統將醫生管理子系統,病人管理子系統,科室子系統,管理員子系統等四大系統的有關信息納入電腦系統統一管理,以使醫生科室等各部門的相關人員以及就醫患者及時獲取有關信息,以提高醫療效果和管理效率。系統包括前臺和后臺兩部分。前臺部分主要實現主界面登錄功能。后臺主要實現數據庫的邏輯關系的建立和重要信息的存儲管理,對后臺數據信息進行管理功能。圖5 系統功能模塊3.1 醫生信息管理模塊寫門診病例,開化驗單,填寫化驗結果,查看各種檢查結果,下門診診斷結果和處方等。3.2 科室信息管理模塊進入系統查看當前科室病人狀態,

11、便于對病人進行檢查。3.3 病人模塊查詢醫生值班情況,醫生信息。實現病人掛號和預約掛號功能。可以進行劃價繳費功能。3.4 管理員模塊對用戶身份進行審核,以及記錄系統日志。4數據庫設計系統共有有8X表。(1)醫生表:用于存儲醫生的個人信息。(2) 患者表:用于存儲患者的個人信息。(3) 病歷記錄表:病歷記錄表記錄了患者的病歷信息。(4) 預約記錄表:預約記錄表記錄了已預約但尚未創建病歷的患者信息。(5) 管理員表:管理員表存儲了與管理員有關的信息。(6) 患者化驗表:記錄了患者化驗結果。(7)患者藥品表:記錄患者所開處方信息。(8)藥品表:記錄藥品信息。表5 醫生表字段名類型備注約束IDNumb

12、ervarchar(18)醫生編號主鍵Namevarchar(32)XX索引Ageint年齡Yearsint工作年限Gendervarchar(1) 性別1 - 男,2 - 女Officesvarchar(32)科室Remarkvarchar(25)職稱字段名類型備注約束IDNumbervarchar(18)患者編號主鍵NameVarchar(32)XX Gender varchar(1)性別Ageint年齡 Healthvarchar(32) 健康狀況Remarkvarchar(255)主治醫生職稱Officesvarchar(12)醫生科室Cost double費用Doctorvarcha

13、r(32)主治醫生表6 病人表 表7 病歷記錄表字段名類型備注約束patientIdNumbervarchar(18)病人編號主鍵字段名類型備注約束resultvarchar(255)結果symptomvarchar(255)癥狀doctorIdNumbervarchar(18)醫生編號表8 預約記錄表字段名類型備注約束QIDint記錄編號主鍵Doctorvarchar(18)主治醫生編號索引Patientvarchar(18)患者編號索引DateDatetime預約時間默認為當前系統日期表9 管理員表字段名類型備注約束AIDVarchar(18)管理員編號主鍵PasswordVarchar(

14、20)登錄時密碼PhoneVarchar(15)聯系可為空表10 患者化驗表字段名類型備注約束uuid varchar(50)患者編號主鍵IDNumbervarchar(18)化驗編號Subjectvarchar(255)化驗科目AssayResultvarchar(255)化驗結果表11 患者藥品表字段名類型備注約束Code varchar(32)名稱號字段名類型備注約束條Countint數量表12 藥品表字段名類型備注約束Codevarchar(32)名稱號主鍵字段名類型備注約束Namevarchar(32)藥品名 PriceDouble單價5系統實現5.1醫生信息管理模塊模塊功能描述:圖

15、6 醫生開化驗單主要代碼如下:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletR

16、esponse;import utilitly.Utility;import bean.AssayListBean;import dao.AssayDao;import dao.QueueInfoDao;public class ShowAssyList extends HttpServlet private static final long serialVersionUID = 1L;public ShowAssyList() super();public void destroy() super.destroy(); / Just puts "destroy" str

17、ing in logpublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setChara

18、cterEncoding("UTF-8");String patientIdNumber = request.getSession().getAttribute("patientIdNumber").toString();String patientName = request.getSession().getAttribute("patientName").toString();StringBuffer sb = new StringBuffer();ArrayList<AssayListBean> assayList

19、= new ArrayList<AssayListBean>();AssayDao assayDao = new AssayDao();try assayList = assayDao.getAssayList(patientIdNumber); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<assayList.size

20、();i+)sb.append(""patientIdNumber":"+patientIdNumber+"");sb.append(","patientName":"+patientName+"");sb.append(","name":"+assayList.get(i).getName()+"");sb.append(","uuid":"+assayList.get(i)

21、.getUuid()+"");sb.append(","assayResult":"+assayList.get(i).getAssayResult()+"");sb.append(","price":"+assayList.get(i).getPrice()+""");if(i!=(assayList.size()-1)sb.append(",");sb.append("");PrintWriter ou

22、t= response.getWriter();out.print(sb.toString(); out.close();/保存流水信息QueueInfoDao queueInfoDao = new QueueInfoDao();try queueInfoDao.saveQueueInfo(request.getSession().getAttribute("account").toString(), "開化驗單",Utility.getDateTime(); catch (ClassNotFoundException e) e.printStackTr

23、ace(); catch (SQLException e) e.printStackTrace();public void init() throws ServletException 5.2 科室信息管理模塊模塊功能描述:圖7 查詢病人狀態 主要代碼如下:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import

24、javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import utilitly.Utility;import dao.PatientDao;import dao.QueueInfoDao;import bean.PatientBean; public class SeePatient extends HttpServlet private static final long serialVersion

25、UID = 1L;public SeePatient() super();public void destroy() super.destroy(); / Just puts "destroy" string in logpublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse

26、response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");StringBuffer sb = new StringBuffer();QueueInfoDao queuedInfoDao = new QueueInfoDao();ArrayList<PatientBean> patient = new ArrayList<PatientBean>(

27、);PatientDao patientDao = new PatientDao();try patient = patientDao.seePatient();/保存流水信息queuedInfoDao.saveQueueInfo(request.getSession().getAttribute("account").toString(), "查詢病人狀態",Utility.getDateTime(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e

28、) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<patient.size();i+)sb.append(""idNumber":"+patient.get(i).getIdNumber()+"");sb.append(","name":"+patient.get(i).getName()+"");sb.append(","gender"

29、;:"+patient.get(i).getGender()+"");sb.append(","age":"+patient.get(i).getAge()+"");sb.append(","health":"+patient.get(i).getHealth()+"");sb.append(","remark":"+patient.get(i).getRemark()+"");sb.a

30、ppend(","offices":"+patient.get(i).getOffices()+"");sb.append(","result":"+patient.get(i).getResult()+"");sb.append(","symptom":"+patient.get(i).getSymptom()+"");sb.append(","flag":"+patient

31、.get(i).getFlag()+""");if(i!=(patient.size()-1)sb.append(",");sb.append("");PrintWriter out= response.getWriter();out.print(sb.toString(); out.close(); public void init() throws ServletException 5.3 病人模塊模塊功能描述:圖8 病人預約主要代碼如下:package servlet;import java.io.IOExceptio

32、n;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.DoctorDao;import dao.PatientDao;impor

33、t bean.DoctorBean;import bean.PatientBean;public class GetDutyInfo extends HttpServlet private static final long serialVersionUID = 1L;public GetDutyInfo() super();public void destroy() super.destroy(); public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletExceptio

34、n, IOException public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");StringBuffer sb = new StringBuffer();PatientBean patient = new PatientBean(

35、);ArrayList<DoctorBean> doctor = new ArrayList<DoctorBean>();DoctorDao doctorDao = new DoctorDao();PatientDao patientDao = new PatientDao();String account = request.getSession().getAttribute("account").toString();try doctor = doctorDao.seeDutyInfo();patient = patientDao.getPati

36、entInfoByAccount(account);if(patient.getRegister().equals("0")request.getSession().setAttribute("doctorName", "未掛號");elserequest.getSession().setAttribute("doctorName", patient.getDoctor(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLExcept

37、ion e) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<doctor.size();i+)sb.append(""name":"+doctor.get(i).getName()+"");sb.append(","gender":"+doctor.get(i).getGender()+"");sb.append(","age":&qu

38、ot;+doctor.get(i).getAge()+"");sb.append(","years":"+doctor.get(i).getYears()+"");sb.append(","idnumber":"+doctor.get(i).getIdNumber()+"");sb.append(","professionalTitle":"+doctor.get(i).getProfessionalTitle()+

39、"");sb.append(","offices":"+doctor.get(i).getOffices()+""");if(i!=(doctor.size()-1)sb.append(",");sb.append("");PrintWriter out= response.getWriter();out.print(sb.toString(); out.close();public void init() throws ServletException 5.4 管

40、理員模塊模塊功能描述:圖9 查詢系統用戶主要代碼如下:package servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.ArrayList;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.

41、HttpServletResponse;import bean.RoleBean;import dao.RoleDao;public class ShowVerifiedUser extends HttpServlet private static final long serialVersionUID = 1L;public ShowVerifiedUser() super();public void destroy() super.destroy(); public void doGet(HttpServletRequest request, HttpServletResponse res

42、ponse)throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");StringBuffer sb = new StringBuffer();ArrayList&

43、lt;RoleBean> role = new ArrayList<RoleBean>();RoleDao roleDao = new RoleDao();try role = roleDao.showVerifiedUser(); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();sb.append(" "rows":");for(int i=0;i<role.size();i+)sb.

44、append(""account":"+role.get(i).getAccount()+"");sb.append(","password":"+role.get(i).getPassword()+"");sb.append(","idnumber":"+role.get(i).getIdNumber()+"");sb.append(","flag":"+role.get(i

45、).getFlag()+"");sb.append(","role":"+role.get(i).getRole()+"");sb.append(","remark":"+role.get(i).getRemark()+""");if(i!=(role.size()-1)sb.append(",");sb.append("");PrintWriter out= response.getWriter();ou

46、t.print(sb.toString(); out.close();public void init() throws ServletException 6 測試6.1醫生測試用例醫生doctor的登錄系統,用戶名為doctor,登錄密碼為123456,醫生登錄后可更改密碼以及個人信息、查看患者病歷信息、查看預約信息、創建病歷、更改病歷、填寫化驗結果等。l 測試項目:修改個人信息模塊輸入:個人信息預置條件:無操作步驟:輸入修改的個人信息,點擊修改預期輸出:提示修改成功l 測試項目:預約模塊輸入:進入查看預約預置條件:病人已經預約操作步驟:點擊接診預期輸出:提示接診l 測試項目:開化驗單輸入:

47、進入開化驗單預置條件:無操作步驟:選擇化驗項目預期輸出:添加成功l 測試項目:填寫病歷模塊輸入:進入寫病歷預置條件:無操作步驟:點擊填寫病例預期輸出:成功添加病例信息l 測試項目:查看化驗結果輸入:進入查看化驗結果預置條件:已進行化驗操作步驟:點擊查看化驗結果預期輸出:病人化驗結果6.2科室測試用例科室office登錄,用戶名為office,登錄密碼為123456,登陸后可以查詢科室病人狀態。測試項目:查詢病人狀態模塊輸入:進入科室管理系統預置條件:病人于科室就診操作步驟:點擊查看科室病人狀態預期輸出:病人狀態6.3管理員測試用例管理員admin123登錄,登錄密碼為:admin123,管理員登錄后可以查看系統賬戶、審核系統賬戶、查詢日志等。l 測試項目:審核系統用戶模塊輸入:進入管理員系統預置條件:有新注冊醫生或科室操作步驟:進入待審審核用戶,點擊啟用預期輸出:成功通過新用戶l 測試項目:查詢系統日志模塊輸入:進入管理員系統預置條件:無操作步驟:

溫馨提示

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

評論

0/150

提交評論