《[软件管理系统类精品]MIS课程设计报告诊所系统分析设计.doc》由会员分享,可在线阅读,更多相关《[软件管理系统类精品]MIS课程设计报告诊所系统分析设计.doc(37页珍藏版)》请在三一办公上搜索。
1、MIS课程设计报告书(诊所系统分析设计)系部名称:信息与管理工程系学生姓名:专业名称:信息管理与信息系统班 级:时间:2011年3月14日-2011年12月26日目 录:一.可行性分析 4二.系统分析部分 4 1.业务流程图 5 2.数据流程图 5 3.功能分析图 6 4.数据字典 7 5.数据加工处理的描述 8 6.管理信息系统流程设想图 9三.系统设计部分 1.功能结构图设计 9 2.新系统信息处理流程设计 9 3.输出设计(主要指打印输出设计) 9 4.存储文件格式设计(数据库结构设计) 9 5.输入设计(主要指数据录入卡设计) 12 6.代码设计(职工证号和部门代号等) 14 7.程序
2、设计说明书 14四.系统实施部分 1.程序框图 14 2.源程序 18 3.模拟运行数据 71 4.打印报表 72 5.系统使用说明书 72五.附录或参考资料信管专业2008级MIS课程设计任务书1设计任务1.1设计目的通过本次设计,要求同学们能够将所学到的信息系统分析方法与软件设计技术及方法综合运用到实际信息系统的分析与设计中,提高同学们对软件的综合分析与设计能力,主要包括对数据的分析、组织能力,数据的提取、处理能力;软件结构的分析设计,复杂界面与输入输出设计能力;学习常用软件开发工具的使用。1.2设计要求结合所学习的系统分析与设计的具体方法,应用程序设计的基本知识和数据库知识进行详细的系统
3、分析设计。具体要求如下:1、 学习进行相对复杂数据的分析与设计,建立合理的数据模型。2、 学习使用VB的数据环境设计器和数据报表设计器进行报表输出设计。3、 学习使用visio工具进行常用软件图形的绘制。4、 进一步熟练进行软件系统的界面设计,深入掌握界面设计元素。5、 提供相应的软件设计报告。报告要求有系统的需求分析、系统流程图、数据流程图、软件结构图、数据库设计说明和软件说明书。6、 提供与设计报告相一致的软件系统。7、 每四人为一个课题组,自由组合,检查相应的小组讨论,讨论结果计入平时成绩。8、 报告书写规范见附件。2系统分析2.1系统分析概述系统分析就是根据系统调查中获得的原始资料,对
4、用户组织内部整体管理状况和信息处理堆积进行分析,确定用户需求,并建立系统逻辑模型的过程,着重于信息系统“做什么”,而不是“怎么做”。本部分就是在这个基础上对系统业务流程和系统数据流程图进行分析。2.2可行性分析2.2.1目标方案的可行性随着计算机性能的不断提高,计算机化的医院信息系统已成为现代化医院运营过程中必不可少的基础设施与技术支撑环境。医院信息系统利用电子计算机和通信设备为医院所属各部门提供病人诊疗信息和行政管理信息的收集、存储、处理、提取和数据交换的能力,并满足所有授权用户的所有功能需求。2.2.2经济可行性现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为医院的
5、工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高医院的工作效率;第四,本系统可以使敏感文档更加安全,等等。所以,本系统在经济上是可行的。2.2.3技术可行性本系统的开发利用Microsoft SQL Server2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用Visual Basic6.0作为系统开发的开发环境,它作为一种现代的编程语言,提供完善的指令控制语句、类
6、与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。2.2.4运行可行性本系统为一个小型的诊所管理系统,所耗费的资源非常的小,诊所的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。2.3系统需求分析由于本系统设计针对小区诊所的具体情况,因此用户需求的目的是通过该小区诊所的需求调查,从中总结出诊所对管理信息系统的需求,然后根据这些需求设计出系统的方案。诊所管理分为前台管理系统和
7、后台管理系统两部分,诊所前台系统主要负责挂号、划价、收费工作,后台管理系统主要负责药品、库存信息的查询、门诊挂号的统计、以及病人资料的管理,系统的维护等工作。所以该系统由基础维护、门诊管理、院长查询三大模块组成。其中基础维护包括药品信息维护和收费项目维护,门诊管理包括挂号管理、划价管理、收费管理和药房发放,院长查询包括科室挂号量和库存统计。2.4业务流程图2.5数据流程图2.6系统组织结构分析图2.7业务流程分析2.8数据流程分析根据上述的业务流程,对其中的数据处理、数据存储以及数据流动过程进行抽象,得到了系统的逻辑模型,即系统的数据流程图。2.9数据字典药品库存表编号库房药品编号药品数量备注
8、1中药房1001102中药房100253中药房1003314中药房100435 药品资料表编号名称单价分类费用归类拼音码有效期1001青霉素5西药西药类QMS31002北豆根12西药西药类BDG51003止痛片2西药西药类ZTP51004感叹号9西药西药类GTH5 门诊划价表编号科室划价编号医生划价时间划价员20100000002内科20100000002张为2010-6-6张三20100000003检查科20100000003李虹2010-6-6张三20100000004外科20100000004王新新2010-6-6张三20100000012内科20100000012郝燕丽2010-6-6
9、张三 门诊划价明细表编号划价编号药品编号单价数量金额420100000001100212336220100000001200431332010000000120023135201000000111002121122.10系统各模块详细的业务流程图3系统设计3.1系统设计概述及设计原则系统设计阶段是开发管理信息系统的关键环节之一,因此它的工件质量直接影响到新系统的稳定性、可靠性、精确性和运行费用的高低。所以,整个系统设计过程的各项工作都必须按照科学的方法和原则进行。系统设计原则: 1) 系统运行安全可靠,稳定性好; 2) 系统的可管理性和可维护性好; 3) 系统输入界面友好,操作简便易行,尽量减
10、少用户的输入工作量; 4)允许多种数据输入方式,能实现多种查询,允许进行模糊查询; 5)数据具有规范性,整体性,方便数据之间的比较分析。3.2系统设计模块u 权限管理主要是用户的等级和权限的划分。分级用户:管理员用户、院长用户、普通用户,权限可以自定义添加和删除。u 门诊挂号管理建立和维护病人的索引信息,分配病人的ID号,确保病人信息的唯一性,为病人建立就诊卡,对门诊病人进行挂号,为门诊病人的后续活动以及门诊工作量统计提供信息。u 门诊划价收费管理用于门诊收费处记录病人的缴费信息,并执行相应的统计核算功能。门诊划价用于完成门诊病人的各种处方、检查申请、治疗申请等诊治费用的计价工作;门诊收费用于
11、完成门诊病人各种各种诊治费用的收取工作,能够依据划价单查询病人划价信息,进行费用收取处理,并保存操作记录备查。u 药房管理用于管理医院药房的采购、入库及出库等业务。u 打印报表可以打印病人的药品明细单和收费票据。3.3编码设计编码是指代表事物名称、属性、状态等的符号,它以简短的符号形式代替具体的文字说明。如中国邮政编码采用了一种6位的编码来表示省市、地区等信息。设计出一个好的编码方案对系统的开发工作具有重要作用。1、编码能反映数据或信息间的逻辑关系,并使其具有唯一性。2、信息编码化便于利用计算机进行信息或数据的识别和处理。3、利用编码可以节省计算机课的存储空间、提高运行速度。4、利用编码可以提
12、高系统的可靠性。常用的编码主要有顺序码、区间码、助记码和缩写码。下面对商品编号的编码设计进行介绍。代码名称:商品编号 代码类型:区间码 代码长度:8位前三位代表类别,后五位为内部顺序码。3.4输入/输出设计系统输入/输出(I/O)设计是在系统设计中很容易被忽视的环节,又是一个很重要的环节,它对于用户和今后系统使用的方便和安全可靠性来说都是非常重要的。一个好的输入系统设计可以为用户和系统双方带来良好的工作环境,一个好的输出系统可以为管理者提供简洁、明了、实用的管理和控制信息。输入设计包括输入方式设计、用户界面设计。在本系统中,输入几乎都是采用键盘输入,键盘输入与用户界面设计是紧密联系在一起的。设
13、计时本着方便用户的原则,主要采用了以下措施:(1) 注意保证各个模块的输入格式一致,方便用户使用不同的模块。(2) 严格的检错措施。尽量减少用户的输入,以减少出错羁旅;对用户的输入内容作空格、非法字符等检验。(3) 使用菜单方式,使得条例清晰、逻辑性强。(4) 关键性的强调和警告:对于数据库的更新、删除及用户登录等操作,利用提问的方式来帮助用户进一步来帮助用户进一步确认操作的有效性。一个好的输出设计不仅可以赢得用户的好评,更重要的是可以为用户提供简洁、明了、有效、实用的管理和控制信息。为适应诊所日常管理的需要提供对内对外的报告和单据,本系统主要采用屏幕输出和打印输出。屏幕输出主要是满足日常管理
14、的需要,用于查询结果的显示;而打印输出主要是为了提供对内对外的报告和单据。4系统实施4.1系统配置(1)硬件环境CPU赛扬1.2,内存64Mb以上,硬盘3G以上。(2)软件环境各种操作系统,如:windows98/windowsxp/windos2000。4.2系统菜单系统菜单包括门诊管理、院长查询、项目信息、帮助。门诊管理包含门诊挂号、门诊划价、门诊收费和药品发放子菜单:院长查询包括科室挂号量、药品库存子菜单;项目信息包括药品库存和药品信息子菜单。4.3系统窗口及源代码 登陆界面,代码如下: Private Sub btnExit_Click() Unload MeEnd SubPrivat
15、e Sub btnLogin_Click() Dim Psw1, Psw2, Psw3 As String Psw1 = user Psw2 = lead Psw3 = admin If ComboUser.Text = 用户 Then If txbPsw.Text = Psw1 Then Me.Hide frmAbout.Show Else MsgBox 密码错误! txbPsw.Text = End If QuanXian = 1 End If If ComboUser.Text = 院长 Then If txbPsw.Text = Psw2 Then Me.Hide frmAbout.S
16、how Else MsgBox 密码错误! txbPsw.Text = End If QuanXian = 2 End If If ComboUser.Text = 管理员 Then If txbPsw.Text = Psw3 Then Me.Hide frmAbout.Show Else MsgBox 密码错误! txbPsw.Text = End If QuanXian = 3 End If Dim db As New Databases Dim strSQL As String strSQL = insert into 登录信息( 用户类型编号,登录时间) values ( strSQL
17、 = strSQL + Trim(QuanXian) + , strSQL = strSQL + CStr(Date) + ) db.RunSelectSQL (strSQL)End SubPrivate Sub Form_Load() ComboUser.AddItem (用户) ComboUser.AddItem (院长) ComboUser.AddItem (管理员)End SubPrivate Sub Timer1_Timer() Label4.Caption = Format(Now, AMPM(hh:mm:ss)End Sub 所有用户进入系统简介界面 代码如下:Private S
18、ub Command1_Click() Me.Hide frmMain.ShowEnd Sub点击确定,进入系统主界面 代码如下:Private Sub mnCash_Click() Dim frm As New frmCash If QuanXian = 3 Then frm.Show Else MsgBox 你无权查看此信息! End IfEnd SubPrivate Sub Exit_Click() EndEnd SubPrivate Sub mnGHL_Click() Dim frm As New frmGHL If QuanXian = 1 Then MsgBox 你无权查看此信息!
19、 Else frm.Show End IfEnd SubPrivate Sub mnGuaHao_Click() Dim frm As New frmGuaHao frm.ShowEnd SubPrivate Sub mnHuaJia_Click() Set formHuaJia = New frmHuaJia formHuaJia.ShowEnd SubPrivate Sub mnKCL_Click() Dim frm As New frmKCL If QuanXian = 1 Then MsgBox 你无权查看此信息! Else frm.Show End IfEnd SubPrivate
20、Sub mnLogin_Click() Dim frm As New frmLoginCX If QuanXian = 1 Then MsgBox 你无权查看此信息! Else frm.Show End IfEnd SubPrivate Sub mnMedicine_Click() Dim frm As New frmMedicine If QuanXian = 3 Then frm.Show Else MsgBox 你无权查看此信息! End IfEnd SubPrivate Sub mnShouFei_Click() Dim frm As New frmShouFei frm.ShowEn
21、d SubPrivate Sub mnZhuXiao_Click() Me.Hide frmLogin.ShowEnd Sub点击门诊管理 门诊挂号,进入门诊挂号界面,该界面代码如下:Private Sub Clear() Me.txbName.Text = Me.cbbSex.Text = 男 Me.txbAge.Text = Me.txbMoney.Text = Me.txbName.Text = Me.txbTime.Text = CStr(Date) Me.txbNation.Text = 汉族 Me.cbbMoneyType.Text = 自费 Me.cbbRegType.Text
22、= 普通号 Dim db As New Databases Dim rs As Recordset Set rs = db.RunSelectSQL(select 编号,名称 from 科室资料) Set Me.cbbRoomType.RowSource = rs Me.cbbRoomType.ListField = 名称 Set rs = db.RunSelectSQL(select 编号,姓名 from 医生资料) Set Me.cbbDoctor.RowSource = rs Me.cbbDoctor.ListField = 姓名End SubPrivate Sub Save() Dim
23、 iAge As Integer iAge = 0 iAge = CInt(Trim(txbAge.Text) Dim strSQL As String strSQL = select max(编号) as 编号 strSQL = strSQL + from 病人信息库 where 编号 like strSQL = strSQL + CStr(Year(Date) + % Dim db As New Databases Dim rs As Recordset Dim strT As String Dim strId As String Set rs = db.RunSelectSQL(strS
24、QL) If Not IsNull(rs(0) Then strT = strId = CStr(CInt(Mid(rs(0), 5, 7) + 1) For i = Len(strId) To 6 strT = strT + 0 Next i strId = strT + strId Else strId = 0000001 End If strId = CStr(Year(Date) + strId strSQL = insert into 病人信息库(编号, 姓名, 性别, 年龄, strSQL = strSQL + 民族, 费用类型) values( + strId + , strSQ
25、L = strSQL + Trim(txbName.Text) + , + Trim(cbbSex.Text) + , strSQL = strSQL + Trim(txbAge.Text) + , + Trim(txbNation.Text) + , strSQL = strSQL + Trim(cbbMoneyType.Text) + ) db.RunSelectSQL (strSQL) Dim strPatientId As String strPatientId = strId strSQL = select max(编号) as 编号 from 门诊挂号 where 编号 like
26、strSQL = strSQL + CStr(Year(Date) + % Set rs = db.RunSelectSQL(strSQL) If Not IsNull(rs(0) 0 Then strT = strId = CStr(CInt(Mid(rs(0), 5, 7) + 1) For i = Len(strId) To 7 strT = strT + 0 Next i strId = strT + strId Else strId = 0000001 End If strId = CStr(Year(Date) + strId strSQL = insert into 门诊挂号(编
27、号, 病人编号, 姓名, strSQL = strSQL + 性别, 挂号科室,费用类型, 挂号类型, 挂号费用,医生, strSQL = strSQL + 时间, 是否已划价) values( + strPatientId + , strSQL = strSQL + strId + , + Trim(txbName.Text) + , strSQL = strSQL + Trim(cbbSex.Text) + , + Trim(cbbRoomType.Text) strSQL = strSQL + , + Trim(cbbMoneyType.Text) + , strSQL = strSQL
28、 + Trim(Me.cbbRegType.Text) + , + Trim(Me.txbMoney.Text) strSQL = strSQL + , + Trim(Me.cbbDoctor.Text) + , strSQL = strSQL + Trim(Me.txbTime.Text) + ,否) db.RunSelectSQL (strSQL) ClearEnd SubPrivate Sub cbbRegType_Click() Select Case Me.cbbRegType.Text Case 普通号 1元 Me.txbMoney.Text = 1 Case 专家号 20元 Me
29、.txbMoney.Text = 20 Case 专家号 5元 Me.txbMoney.Text = 5 End SelectEnd SubPrivate Sub Form_Load() cbbRegType.AddItem (普通号 1元) cbbRegType.AddItem (专家号 5元) cbbRegType.AddItem (专家号 20元) cbbMoneyType.AddItem (自费) cbbMoneyType.AddItem (公费) cbbMoneyType.AddItem (离休) cbbSex.AddItem (男) cbbSex.AddItem (女) Clear
30、End SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) If StrComp(Button.Key, btnNew) = 0 Then Clear ElseIf StrComp(Button.Key, btnSave) = 0 Then If Trim(txbAge.Text) = Then MsgBox 请输入年龄 Exit Sub End If Save ElseIf StrComp(Button.Key, btnCancel) = 0 Then Clear ElseIf StrComp(But
31、ton.Key, btnExit) = 0 Then Hide ElseIf StrComp(Button.Key, btnHJ) = 0 Then Hide Set formHuaJia = New frmHuaJia formHuaJia.Show End IfEnd Sub点击保存,将病人挂号信息存入门诊挂号表,单击划价进入进价界面代码如下:Private Sub btnAdd_Click() If Len(Trim(txbName.Text) = 0 Or _ Len(Trim(txbMXID.Text) = 0 Then Exit Sub End If CalMXMoney fgDe
32、tail.Rows = fgDetail.Rows + 1 fgDetail.TextMatrix(fgDetail.Rows - 1, 1) = Trim(Me.txbMXID.Text) fgDetail.TextMatrix(fgDetail.Rows - 1, 2) = Trim(Me.txbMName.Text) fgDetail.TextMatrix(fgDetail.Rows - 1, 3) = Trim(Me.txbPrice.Text) fgDetail.TextMatrix(fgDetail.Rows - 1, 4) = Trim(Me.txbNumber.Text) fg
33、Detail.TextMatrix(fgDetail.Rows - 1, 5) = Trim(Me.txbMMoney.Text) fgDetail.TextMatrix(fgDetail.Rows - 1, 6) = Trim(Me.txbPY.Text) ClearMX CalTotalMoney End SubPrivate Sub btnCancel_Click() fgDetail.Rows = 1End SubPrivate Sub btnDelete_Click() If MsgBox(你确定要删除吗?, vbYesNo) = vbYes Then fgDetail.Remove
34、Item fgDetail.Row CalTotalMoney End IfEnd SubPrivate Sub btnModify_Click() fgDetail.TextMatrix(fgDetail.Row, 1) = Trim(Me.txbMXID.Text) fgDetail.TextMatrix(fgDetail.Row, 2) = Trim(Me.txbMName.Text) fgDetail.TextMatrix(fgDetail.Row, 3) = Trim(Me.txbPrice.Text) fgDetail.TextMatrix(fgDetail.Row, 4) = T
35、rim(Me.txbNumber.Text) fgDetail.TextMatrix(fgDetail.Row, 5) = Trim(Me.txbMMoney.Text) fgDetail.TextMatrix(fgDetail.Row, 6) = Trim(Me.txbPY.Text) CalTotalMoneyEnd SubPrivate Sub btnSave_Click() If fgDetail.Rows = 1 Then Exit Sub End If Dim strSQL As String Dim db As New Databases strSQL = select max(
36、编号) as 编号 from 门诊划价 where strSQL = strSQL + 编号 like + CStr(Year(Date) + % Dim rs As Recordset Set rs = db.RunSelectSQL(strSQL) Dim strT As String Dim strId As String If Not IsNull(rs(0) Then strT = strId = CStr(CInt(Mid(rs(0), 5, 7) + 1) For i = Len(strId) To 7 strT = strT + 0 Next i strId = strT +
37、strId Else strId = 0000001 End If strId = CStr(Year(Date) + strId strSQL = Insert into 门诊划价(编号, 科室, 挂号编号, 医生, strSQL = strSQL + 划价时间, 划价员, 是否收费,划价金额, 是否发药) strSQL = strSQL + values ( + strId + , + cbbRoom.Text + , strSQL = strSQL + Trim(txbID.Text) + , strSQL = strSQL + Trim(cbbDoctor.Text) + , strS
38、QL = strSQL + CStr(Date) + ,张三,否, strSQL = strSQL + Trim(txbMoney.Text) + ,否) For i = 1 To fgDetail.Rows - 1 strSQL = strSQL + Insert into 门诊划价明细(划价编号, strSQL = strSQL + 药品编号, 单价, 数量, 金额) values ( strSQL = strSQL + strId + , + fgDetail.TextMatrix(i, 1) + , + fgDetail.TextMatrix(i, 3) strSQL = strSQL + , + fgDetail.TextMatrix(i, 4) + , + fgDetail.TextMatrix(i, 5) + ) Next db.RunSelectSQL (strSQL) strSQL = update 门诊挂号 set 是否已划价=是 where 编号 = strSQL = strSQL + Trim(txbID.Text) + db.RunSelectSQL (strSQL) db.CloseConn