医院管理系统—计算机毕业设计(论文).doc_第1页
医院管理系统—计算机毕业设计(论文).doc_第2页
医院管理系统—计算机毕业设计(论文).doc_第3页
医院管理系统—计算机毕业设计(论文).doc_第4页
医院管理系统—计算机毕业设计(论文).doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

医院管理系统【摘 要】在我国,随着医药卫生体制改革的深入,医药连锁经营的推行以及日趋激烈的商业角逐,越来越多的医药经营企业意识到提高企业管理水平的重要性,也迫切要求加快管理信息化的进程。在医院行业中,医院经营的日常管理以及相应的病人登记、资料搜索,住院/出院管理,诊断管理等长期以来一直采用手工操作,但随着产业结构调整、全新的市场竞争环境,医院管理和运营效率已经成为医院成败的关键所在,手工方式的弊端毕现无遗。这就要求医院管理摆脱过去人手操作的烦琐,以计算机管理替代人工管理是时代发展的趋势,从而开发一套合适的医院管理系统也是当务之急。智能医院管理系统正是本着这个目的而开发出来,它充分满足了医院管理的各种需求,从医院经营管理的各个环节医院整体业务进行统一系统的管理。市场的需求和技术的支持,最终会导致越来越多的优秀医院管理软件的出现,并在竞争中得到不断的完善和优化。【关键词】医院管理系统数据库Visual Basic 【Abstract】In our country, with the in-depth reform of the medical and health system, medical chain operations and the implementation of increasingly fierce commercial competition, a growing number of pharmaceutical enterprises aware of the importance of raising the level of corporate governance and the urgent need for accelerating the process of information management. In the hospital sector, the daily operation of the hospital management and the corresponding patient registration, information search, residential / hospital management, diagnosis and management has long been a manual operation, but with the adjustment of the industrial structure, new market competition environment, hospital management and operation efficiency has become the key to the hospital where, manual methods are exposed their shortcomings. This requires that the hospital management from the cumbersome manual operation with manual management of computer management alternative is the development trend of the times and thus develop an appropriate hospital management system is imperative. It is in this smart hospital management system purpose developed, it fully met the needs of hospital management, hospital management from the various links overall hospital operations unified system management. Market demand and technical support, will eventually lead to more and more outstanding in hospital management software, and the competition has been continually improved and optimized. 【Keywords】Hispital management system Database Visual Basic目录【摘 要】1第一章 医院管理信息系统发展概况41.1 医院管理信息系统的定义41.2 医院管理信息系统的发展历史与现状5第2章 系统分析82.1 系统可行性研究82.2 医院管理系统业务流程分析82.3 各模块功能需求分析122.4 运行环境需求132.5 安全性、保密性、可靠性的要求142.6 界面要求142.7 异常处理要求14第3章 系统设计163.1 数据库设计16第4章 系统测试214.1 测试用例的选择21开发总结致谢参 考 文 献37第一章 医院管理信息系统的发展状况1.1医院管理信息系统的定义所谓医院管理信息系统(HIS)就是利用计算机技术来管理医院日常各项业务,如病人登记,住院/出院,诊断管理,资料搜索等功能.1.2 医院管理信息系统的历史与发展现状医院管理信息系统从早期的单机简单任务处理模式,到现在的网络化联机同步操作远程模式.有了很大的进步. 近年来,随着我国信息产业的飞速发展,计算机的开发应用已渗透到各个领域,而且日趋普及。在医学领域内,计算机的应用已经十分广泛,各种智能诊断设备都与计算机紧密结合在一起,主要应用于两个方面:一是医疗设备智能化,以硬件为主,如核磁共振成像系统、彩色B超、CT等。另一种是医院信息管理系统(HIS)的软件建设,以提高医院的现代化管理形象。第 二 章 系统分析2.1 系统可行性研究 系统定义明确以后,应该对系统可行性进行研究.可行性研究包括技术可行性,经济可行性以及社会可行性等方面. 技术可行性研究是根据现有的和准备充实的设备条件与技术力量来分析系统在技术上实现的可能性,弄清楚现有的技术条件能否保证顺利完成开发工作.医院管理系统在技术可行性上完全可以胜任,由于本医院管理系统,采用单机版,对网络的研究不高,采用micorsof access数据库,以及visual basic 6.0 结合操作系统.在设备条件上,主要考虑计算机的内存容量,外存容量,运算速度,数据精度,汉字功能,多媒体功能,可靠性以及对数据传送与通信,网络,数据库的需求以及实现的可能性.医院管理系统在如下平台中经过测试可以正常运行:硬件平台CPUIntel P4 2.2G主板Intel 850芯片组的GA-8TX-C内存1256的三星Rambus内存硬盘Seagate Barracuda 7200.7 80G显卡Unika 小妖G9800显示器美格770PF,17寸纯平显示器软件环境操作系统Microsoft WindowsXP简体中文专业版SP2办公软件Microsoft Office 2003显卡驱动nVIDIA ForceWare驱动56.72版For Win2000/XP经济可行性研究的目的,是希望以最小的开发成本取得具有最佳经济效益的软件产品,它除了研究开发与维护新系统所需要的费用是否能够可靠地提供外,主要研究新系统将来带来地经济效益是否超过其开发与维护所需要大的费用,论证搞这样的一个项目是否合算.医院管理系统是方便医院管理者,医生,护士,等工作者完成日常工作的得力助手,由于辅助了计算机高科技技术,大大的提高了员工,管理者的工作效率.而且软件产品的无损耗性,决定了此系统的低投入,高回报的特性,所以在经济上具有可行性.社会可行性是指所开发的软件项目是否涉及到知识产权的纠纷等法律问题,这样的软件产品投入运行后,对生产,管理或经营体制带来变革的社会影响以及社会承认能力.医院管理系统作为医院的一套管理系统,以提高医院办事效率,提高医院办事可靠性的方式,作为社会可行性的必要依据.2.2 医院管理系统业务流程分析 界面用户登陆病人登陆资料搜索住院/出院诊断管理帮助关于系统推出程序 2.3 各模块功能需求分析1,主界面模块:代码分析: Private Sub tbrMainToolbar_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 Log In/Log Out. If LoginSucceeded = False Then The user is currently logged out Check if database is available. if not, exit the app. If Dir(App.Path & IHMS.mdb) = Then MsgBox 需要工作的数据库文件不存在. + vbCrLf + 请检查,然后重新登录. + vbCrLf + vbCrLf + 更多信息请登录枕善居()., vbCritical, 错误 End Else frmLogin.Show 1 End If Else The user is currently logged in If MsgBox(Logging out will abort all tasks in progress. Data and files might be lost. & vbCrLf & Are you sure you want to Log Out?, vbQuestion + vbYesNo) = vbNo Then Exit Sub LoginSucceeded = False Call ConfigMenus End If Case 3 Register New Patient. frmNewReg.Show mnuNewPatient.Enabled = False tbrMainToolbar.Buttons(2).Enabled = False New Patient toolbar button Case 4 Search DB for existing patient file. f3: Search for record by hospital number. patientNumberX = 0 hosp number being sought for patientNumberX = Val(InputBox(Please enter the patients HOSPITAL NUMBER:) If patientNumberX = 0 Then Exit Sub User selects cancel Unload frmOldPatient frmWait.Show 1 Case 5 Admit/Discharge this patient. MsgBox This function is still under development., vbInformation If somePatient.AdmissionStatus = IN Then Patient is currently admitted. therefore, the admit command is not available, but the discharge command is. frmDischarge.Show 1 Else Patient is currently NOT admitted. therefore, the admit command is available, but the discharge command is not. NOTE: This part is also executed if no existing hospital history record is found for the patient i.e when somePatient.AdmissionStatus = frmAdmitExisting.Show 1 End If Case 6 Diagnose this patient. frmDiagnosis.Show 1 MsgBox This function is still under development., vbInformation Case 9 About This App. frmAbout.Show 1 End SelectEnd Sub二 .用户登陆模块界面代码分析:取消建代码:Private Sub cmdCancel_Click() set the global var to false to denote a failed login LoginSucceeded = False Me.HideEnd Sub确定键代码:Private Sub cmdOK_Click() check for correct password LoginSucceeded = False With datUsers.Recordset .MoveFirst Do While Not .EOF And Not LoginSucceeded If (cboUserName = .Fields(user) And Trim(txtPassword) = .Fields(pass) Then Login authenticated MsgBox 登录成功. 欢迎进入系统., vbInformation, 欢迎 LoginSucceeded = True Call ConfigMenus(cboUserName) Unload Me End If .MoveNext Loop If LoginSucceeded = False Then MsgBox 登录失败, 请重新登录!, vbExclamation, 失败 txtPassword.SetFocus SendKeys Home+End End If End WithEnd SubPrivate Sub Form_Load() datUsers.DatabaseName = App.Path & IHMS_97.mdb datUsers.RecordSource = IHMS_Users datUsers.Refresh populate cboUserName Dim x As Integer With datUsers.Recordset .MoveFirst x = 0 Do cboUserName.List(x) = .Fields(user) .MoveNext x = x + 1 Loop Until .EOF End WithEnd Sub三.病人登记界面:病人登记模块代码分析:Private Sub cmdCancelReg_Click() If MsgBox(Are you sure you want to abort the current patient registration? & vbCrLf & (NOTE: You will loose all information you have entered.), vbCritical + vbYesNo) = vbYes Then Unload Me End IfEnd SubPrivate Sub cmdRegAndAdmit_Click() Set thisNewPatient = New CPatient Create a Patient Object write the info into a patient object With thisNewPatient .HospNo = Val(txtHospNo) .SName = Trim(txtSName) .FName = Trim(txtFName) .DoB = Trim(txtDoB) .Sex = cboSex .HomeAdd = Trim(txtHomeAdd) .StateOfOrigin = Trim(txtStateOfOrigin) .Occupation = Trim(txtOccupation) NEXT OF KINS INFO .NameNoK = Trim(txtKinName) .RelaNok = Trim(txtRelationship) .AddNok = Trim(txtKinAddress) SPONSORS INFO .SponsorName = Trim(txtNameOfSponsor) .SponsorAdd = Trim(txtAddOfSponsor) LABORATORY INFO .LabRefNo = Val(txtLabRefNo) .BloodGrp = Trim(cboBloodGrp) .RHFactor = cboRHFactor .Allergy = Trim(txtAllergy) End With frmAdmission.Show 1 Call ClearRegForm clear the form b4 hiding it, in readiness for next use Unload MeEnd SubPrivate Sub cmdRegOnly_Click() On Error GoTo errhnd Collect the input With datPerInfo.Recordset PERSONAL INFO .Fields(Hosp_No) = Val(txtHospNo) .Fields(SName) = Trim(txtSName) .Fields(FName) = Trim(txtFName) .Fields(Date_Of_Birth) = Trim(txtDoB) .Fields(Sex) = cboSex .Fields(Home_Add) = Trim(txtHomeAdd) .Fields(State_of_Origin) = Trim(txtStateOfOrigin) .Fields(Occupation) = Trim(txtOccupation) NEXT OF KINS INFO .Fields(Name_of_NoK) = Trim(txtKinName) .Fields(Relationship_to_NoK) = Trim(txtRelationship) .Fields(Add_of_NoK) = Trim(txtKinAddress) SPONSORS INFO .Fields(Name_of_Sponsor) = Trim(txtNameOfSponsor) .Fields(Add_of_Sponsor) = Trim(txtAddOfSponsor) End With With datLabInfo.Recordset LABORATORY INFO .Fields(Lab_Ref_No) = Val(txtLabRefNo) .Fields(Hosp_No) = Val(txtHospNo) .Fields(Blood_Group) = cboBloodGrp .Fields(RhFactor) = cboRHFactor .Fields(Allergy) = Trim(txtAllergy) End With update d records into the db datPerInfo.Recordset.Update datLabInfo.Recordset.Update MsgBox New Patient Registered Successfully., vbInformation, Success Call ClearRegForm Unload Me Exit Suberrhnd: Debug.Print Err.Number; ; Err.Description MsgBox An error has occured., vbInformation, Unhandled error! Resume NextEnd SubPrivate Sub cmdRestartReg_Click() If MsgBox(Are you sure you want to clear the form and start over?, vbQuestion + vbYesNo) = vbYes Then clear form Call ClearRegForm End IfEnd SubPrivate Sub Form_Load()On Error Resume Next datPerInfo.DatabaseName = App.Path & IHMS_97.mdb datPerInfo.RecordSource = Patient_Personal_Info datPerInfo.Refresh datLabInfo.DatabaseName = App.Path + IHMS_97.mdb datLabInfo.RecordSource = Patient_Lab_Info datLabInfo.Refresh Automatically generate the next hosp. no. Note that this has to be done before adding a new record, otherwise, you will get 0 (zero) datPerInfo.Recordset.MoveLast nextPatientNum = datPerInfo.Recordset.Fields(Hosp_No) + 1 Insert a new record at end of the DB. datPerInfo.Recordset.AddNew datLabInfo.Recordset.AddNew txtHospNo = nextPatientNum txtLabRefNo = datLabInfo.Recordset.Fields(Lab_Ref_No)End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode = 4 Then Exit Sub The MDI child form is closing because the MDI form is closing. If UnloadMode = 1 Then Exit Sub The Unload statement is invoked from code. If MsgBox(Are you sure you want to abort the current patient registration? & vbCrLf & (NOTE: You will loose all information you have entered.), vbCritical + vbYesNo) = vbYes Then Cancel = 0 Else Cancel = 1 End IfEnd SubPrivate Sub Form_Unload(Cancel As Integer) frmMain.mnuNewPatient.Enabled = True enable new patient menu item frmMain.tbrMainToolbar.Buttons(2).Enabled = True enable new patient toolbar buttonEnd SubPrivate Sub txtSName_GotFocus() Display the next hosp. numberEnd Sub四.资料搜索界面代码分析:Private Sub tbrMainToolbar_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Index Case 1 Log In/Log Out. If LoginSucceeded = False Then The user is currently logged out Check if database is available. if not, exit the app. If Dir(App.Path & IHMS.mdb) = Then MsgBox 需要工作的数据库文件不存在. + vbCrLf + 请检查,然后重新登录. + vbCrLf + vbCrLf + 更多信息请登录枕善居()., vbCritical, 错误 End Else frmLogin.Show 1 End If Else The user is currently logged in If MsgBox(Logging out will abort all tasks in progress. Data and files might be lost. & vbCrLf & Are you sure you want to Log Out?, vbQuestion + vbYesNo) = vbNo Then Exit Sub LoginSucceeded = False Call ConfigMenus End If Case 3 Register New Patient. frmNewReg.Show mnuNewPatient.Enabled = False tbrMainToolbar.Buttons(2).Enabled = False New Patient toolbar button Case 4 Search DB for existing patient file. f3: Search for record by hospital number. patientNumberX = 0 hosp number being sought for patientNumberX = Val(InputBox(Please enter the patients HOSPITAL NUMBER:) If patientNumberX = 0 Then Exit Sub User selects cancel Unload frmOldPatient frmWait.Show 1 Case 5 Admit/Discharge this patient. MsgBox This function is still under development., vbInformation If somePatient.AdmissionStatus = IN Then Patient is currently admitted. therefore, the admit command is not available, but the discharge command is. frmDischarge.Show 1 Else Patient is currently NOT admitted. therefore, the admit command is available, but the discharge command is not. NOTE: This part is also executed if no existing hospital history record is found for the patient i.e when somePatient.AdmissionStatus = frmAdmitExisting.Show 1 End If Case 6 Diagnose this patient. frmDiagnosis.Show 1 MsgBox This function is still under development., vbInformation Case 9 About This App. frmAbout.Show 1 End SelectEnd Sub五.住院/出院模块界面代码分析Private Sub cmdAbortAdmission_Click() If MsgBox(确认停办当前住院手续登记吗? & vbCrLf & (提示: 登记的信息不准确.), vbCritical + vbYesNo, 提示) = vbYes Then Unload Me End IfEnd SubPrivate Sub cmdConfirmAdmission_Click()On Error GoTo errHnd With frmNewReg.datPerInfo.Recordset PERSONAL INFO .Fields(Hosp_No) = frmNewReg.thisNewPatient.HospNo .Fields(SName) = frmNewReg.thisNewPatient.SName .Fields(FName) = frmNewReg.thisNewPatient.FName .Fields(Sex) = frmNewReg.thisNewPatient.Sex .Fields(Home_Add) = frmNewReg.thisNewPatient.HomeAdd .Fields(State_of_Origin) = frmNewReg.thisNewPatient.StateOfOrigin .Fields(Occupation) = frmNewReg.thisNewPatient.Occupation NEXT OF KINS INFO .Fields(Name_of_NoK) = frmNewReg.thisNewPatient.NameNoK .Fields(Relationship_to_NoK) = frmNewReg.thisNewPatient.RelaNok .Fields(Add_of_NoK) = frmNewReg.thisNewPatient.AddNok SPONSORS INFO .Fields(Name_of_Sponsor) = frmNewReg.thisNewPatient.SponsorName .Fields(Add_of_Sponsor) = frmNewReg.thisNewPatient.SponsorAdd End With With frmNewReg.datLabInfo.Recordset LABORATORY INFO .Fields(Hosp_No) = frmNewReg.thisNewPatient.HospNo .Fields(Blood_Group) = frmNewReg.thisNewPatient.BloodGrp .Fields(RhFactor) = frmNewReg.thisNewPatient.RHFactor .Fields(Allergy) = frmNewReg.thisNewPatient.Allergy End With With Me.datHospHist.Recordset .Fields(Hosp_No) = Val(txtHospNo) .Fields(Admission_Status) = IN .Fields(Date_of_Admission) = txtDateOfAdmission .Fields(Name_of_Doctor) = txtDoctorInCharge .Fields(Doctors_Diagnosis) = txtDoctorsDiag End With frmNewReg.datPerInfo.Recordset.Update frmNewReg.datLabInfo.Recordset.Update Me.datHospHist.Recordset.Update MsgBox 新病人的住院手续登记成功., vbInformation, 成功 Unload Me Exit Suberrhnd: Debug.Print Err.Number; ; Err.Description MsgBox 一个未知错误., vbInformation, 未知错误! Resume NextEnd SubPrivate Sub Form_Load() datHospHist.DatabaseName = App.Path & IHMS_97.mdb datHospHist.RecordSource = Patient_Hospital_History datHospHist.Refresh datHospHist.Recordset.AddNew With frmNewReg.thisNewPatient txtHospNo = .HospNo txtSName = .SName txtFName = .FName txtDOB = .DoB txtSex = .Sex txtStateOfOrigin = .StateOfOrigin txtOccupation = .Occupation txtCaseRefNo = datHospHist.Recordset.Fields(Case_Ref_No) End WithEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode = 1 Then Exit Sub If MsgBox(确认停办当前住院手续登记吗? & vbCrLf & (提示: 登记的信息不准确.), vbCritical + vbYesNo, 提示) = vbYes Then Cancel = 0 Else Cancel = 1 End IfEnd Sub代码分析:Private Sub cmdAbortDischarge_Click() If MsgBox(中止当前病人出院手续办理吗?, vbCritical + vbYesNo, 提示) = vbYes Then Unload Me End IfEnd SubPrivate Sub cmdConfirmDischarge_Click() With datHospHist.Recordset .Edit .Fields(Admission_Status) = OUT .Fields(Date_of_Discharge) = txtDateDischarged .Fields(Status_Upon_Discharge) = cboDischargeStatus .Update End With MsgBox 恭喜,患者已经康复,出院手续办理完毕., vbInformation, 成功 Unload frmOldPatient Unload MeEnd SubPrivate Sub Form_Load() Dim flgFound As Boolean lblHeading.Caption = lblHeading.Caption + Str(somePatient.HospNo) datHospHist.DatabaseName = App.Path & IHMS_97.mdb datHospHist.RecordSource = Patient_Hospital_History datHospHist.Refresh SEARCH THE PATIENT_HOSPITAL_HISTORY TABLE (for the patients MOST RECENT record: datHospHist.Recordset.MoveLast With datHospHist.Recordset Do If .Fields(Hosp_No) = somePatient.HospNo Then flgFound = True Else .MovePrevious End If Loop Until (.BOF) Or (flgFound) End With Display information thats already been collected. If flgFound = False Then Al

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论