浙江工贸职业技术学院信息传媒学院
毕 业 设 计 (论 文)
课题名称: 社团联盟的布局和开发
学生姓名: 杨帆
专 业: 计算机应用技术
学生学号: 1010301215
学生班级: 计算机1002
指导教师: 梅成才
社团联盟网站
杨帆
信息传媒学院 班级:计算机1002班 指导老师:梅成才
摘 要:本文的叙述围绕着如何实现一个功能完善的网站进行展开。依据本次毕业设计的要求,主要从可行性分析、需求分析、总体设计、详细设计、编码、测试几个阶段进行毕业设计论文的编写。 接着在需求分析中,根据用户的角度,分析了所设计的网站需要实现哪些基本功能;从设计者的角度,分析了设计一个网站所用的编辑工具和编程语言及网站的软硬件开发环境。根据分析的结果,主要采用FrontPage,Dreamweaver编辑器,结合ASP(vbscript,javascript)编程编程语言,进行网站的页面设计;网站的主要功能主要分为新闻、下载、友情链接、网上调查,图片几大模块。 详细设计阶段的任务就是把解法具体化。在详细设计阶段,依据总体分析的结果,进行具体页面的组织和数据库结构的设计。页面的组织主要是设计网页之间的联系,同时根据这些联系实现网页基本功能的构架;数据库的设计主要考虑各程序模块的基本功能,设计相应的表格、字段,用来存贮相应的数据记录,为页面的生成提供数据来源。 在编码阶段,进行具体网页的编码设计。在设计中,根据网页的程序界面,表单,需要的数据等,写出实际的程序代码。由于本次设计的页面比较多,不可能尽数地写出全部程序的代码,因此,在这一章节中,主要解释了在此次设计中主要用到的页面设计和数据库的编码技术。 测试的主要任务是为了发现程序中的错误,软件测试的过程亦是程序运行的过程。在本次设计中,主要采用边测试边修改的方法,在测试网页的同时根据结果及时进行相应的修改。在测试过程中,主要从外观、链接、速度方面测试网页是否能够实现相应的功能。„
关键词: C/S SQL VS2005
目 录
1 引言 ............................................................ 1
1.1 门诊管理系统的开发背景 .............................................................................................. 1
1.2 门诊管理系统的意义与设计目的 .................................................................................. 1 2 开发工具及环境介绍................................................ 3
2.1 门诊管理系统开发环境 .................................................................................................. 3
2.2 本项目应用的主要开发工具 .......................................................................................... 3
2.2.1 Microsoft Visual Studio 2005..................................................................................... 3
2.2.2 Microsoft SQL SERVER 2000................................................................................... 4
2.2.3 XXXX ...................................................................................... 错误!未定义书签。
2.2.4 XXXX ........................................................................................................................ 5
2.2.5 XXX ........................................................................................................................... 6
2.2.6 XXX ........................................................................................................................... 6 3 项目概述 ........................................................ 8
3.1 项目概述 .......................................................................................................................... 8
3.2 项目风险 .......................................................................................................................... 9
3.3 项目进度计划 ................................................................................................................ 10 4 需求分析 ........................................................11
4.1 业务分析 ........................................................................................................................ 11
4.1.1 xxxxx ........................................................................................ 错误!未定义书签。
4.1.2 xxxxx ........................................................................................ 错误!未定义书签。
4.1.3 信息化现状分析 ..................................................................... 错误!未定义书签。
4.2 功能性需求概述 ............................................................................................................ 11
4.2.1 系统总功能结构图 ................................................................................................. 11
4.2.2 功能模块概要说明 ................................................................................................. 12
4.3 概要设计 ........................................................................................................................ 12
4.3.1 总体结构 ................................................................................................................. 12
4.4 现行研究存在的问题及解决办法 ................................................................................ 13
4.5 用例模型 ........................................................................................................................ 14
4.5.1 确定软件项目中的参与者: ................................................................................. 14
4.5.2 确定软件项目中的用例 ......................................................................................... 15
4.5.3 软件项目用例图 ..................................................................................................... 16
4.5.4 用例列表 ................................................................................................................. 17
4.6 子用例 ............................................................................................................................ 18
4.6.1 用例:登录 ............................................................................................................. 18 5 数据库设计 .......................................................21
5.1 数据库表结构 ................................................................................................................ 21
5.2 数据库表 ........................................................................................................................ 22
5.3 数据库表关系图 ............................................................................................................ 24
5.4 数据库中表视图 ............................................................................................................ 25
5.4.1 视图 ......................................................................................................................... 25
5.5 数据库设计命名规范 .................................................................................................... 25 6 系统实现 ........................................................26
6.1 说明 ................................................................................................................................ 26
6.1.1 项目文件命名规范 ................................................................................................. 26
6.1.2 项目的文件结构说明 ............................................................................................. 26
6.2 系统功能实现 ................................................................................................................ 26
6.2.1 界面设计 ................................................................................. 错误!未定义书签。 7 测试 ............................................................37
7.1 测试例子及其结果 ........................................................................................................ 37
7.1.1 登录测试 ................................................................................................................. 37
7.1.2 添加测试 ................................................................................................................. 38
7.1.3 查询测试 ................................................................................................................. 38
7.1.4 查询测试 ................................................................................................................. 39 8 系统安全 ........................................................40 9 总结与展望 .......................................................41
致谢 ..............................................................43
参考文献 ..........................................................44
1 引言
1.1 门诊管理系统的开发背景 经过60来年计算机的发展,当今社会经济的发展和科学技术的进步,医疗技术也迅速发展,计算机在各行业中应用的普及,利用计算机实现医疗管理。既节省了医院人事资源,也节省的物资资源,医院具有管理复杂、药品繁多、病人的病历资料多样,现金量大以及报表需求复杂多样等特点,人工管理方式已不能完全胜任,这就需要标准的、高效率的计算机管理方式伴随医疗技术的发展。
无论是大型医院还是小型医院,,利用计算机支持医院高效率完成人事管理和物资管理的日常事务,是适应现代医疗制度要求、推动医院走向科学化、规范化的必要条件;计算机管理所无法比拟的优点查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高医院管理的效率,也是医院的科学化、正规化管理,与世界接轨的重要条件。所以建立门诊管理系统,使人事管理和物资管理自动化,提高信息处理的速度和准确性十分必要。
1.2 门诊管理系统的意义与设计目的
数字化医院的概念在本世纪初引入我国,特别2003年SARS以后,数字化医院成了医疗界的流行词。各医院也不管自身信息化做到什么程度,都在谈数字化医院。可是大部分医院并没有让病人品尝到数字化医院所带来的好处,虽有些改变,但是长时间的排队、信息不透明等现象还是让诸多人一提到医院就头疼。不但病人头疼,医院也头疼,因为数字化医院的建设不是件容易的事。
1) 医疗质量最佳化
充分利用系统信息及集成,让医生及时全面了解患者的各种诊疗信息,为快速准确诊断奠定良好基础;并通过各种辅助诊疗系统的开发,来提高检查检验结果的准确及时性。同时,也能把医生护士各种可能的差错降到最低,达到医疗质量最佳化。
2) 病历实现电子化
深刻理解电子病历的内涵,丰富原有病历的内容,把包括既往史,个人史,现在史等记录在案,使病历更加直观和全面,确保医疗信息的完整性。决策实现科学化
通过建立强大的管理和数据库存等系统,使得医院管理和诊疗决策完全建立在科
的基础上,不断提高管理和诊疗决策水平。
门诊管理系统的主要目标是支持医院的行政管理与事务处理业务,减轻事务处理人员的劳动强度,辅助医院管理,辅助高层领导决策,提高医院的工作效率,从而使医院能够以少的投入获得更好的社会效益与经济效益,像财务系统,人事系统,药品库存管理系统等都属于医院信息管理系统的范围,所以建立门诊管理系统,使医疗管理自动化,提高信息处理的速度和准确性十分必要。
设计目的:
1) 提高整个医院的运作效率,又节省了大量的人力和物力,提高经济效益。
2) 迎合就医者的要求,减少就医者就医时间,让病人及时就医。
3) 减少因为人为而造成的错误,提高工作人员处理效率。
4) 减轻操作人员的工作负担。
5) 实现在添加药品的同时自动把药品的信息添加到库存里,在进货退货时自动修改库存的数量。
6) 更加方便的打印自己想要的内容报表。
2 开发工具及环境介绍
2.1 门诊管理系统开发环境
开发环境是本系统使用的硬件限制,如表2.1所示:
表2.1 环境约束
2.2 本项目应用的主要开发工具
2.2.1 Microsoft Visual Studio 2005
Microsoft Visual Studio 2005是.NET平台下最为强大的开发工具,无论是软件服 „
1) 更好的规划质量
Visual Studio 2005 Team Developer Edition 为开发人员提供高级的静态分析、代码剖析、代码涵盖以及单元测试工具,使团队能够在整个生命周期中尽早、频繁地规划质量。
2) 加强团队开发作用
Visual Studio 2005 Team Foundation 还提供团队协作工具,使组织能够不费
3) 测试工具提高软件质量
Visual Studio 2005 Team Test Edition 构建于开发人员版本之上,更好地为
2.2.2 XXXX
SQL Server是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。而像存储过程、触发器等特性,也是大型数据库才拥有的。
1) 上手容易
„
2) 兼容性好
„
3) 相对于7.0的优越
„
2.2.3 xxxxx
Rational Rose是一种基于UML的建模工具,是一个完全的,具有能满足所有建 „
2.2.4 XXXX
图纸的软件,包含了非常多的组件
2.2.5 C# 程序设计
C#是微软为.NET平台量身定做的编程语言,它是一种现代面向对象程序设计语
2.2.6 XXX
xxxxxxx是用来对软件密集„
。
3 项目概述
3.1 项目概述
使用门诊管理系统能全面提高医院效益,节省由原来手工完成病历,账单,病人 „
理系统等都属于医院信息管理系统的范围。该系统主要分为一下几个主要模块:
1) 处方病历管理模块
处方病历管理模块主要是对病人,处方以及病历进行维护,在病人看完病后,在 …
2) 药品管理模块
药品管理模块主要实现进货退货管理,进货退货查询,库存查询,药品管理,药品查询,在查询库存信息时,如果库存查询出有过期的或是库存中药品的数量超过库存上限或低于下限时,则可以进行进货或退货,在进货或退货操作成功后,自动修改库存中的数量,如果药品进过来在药品信息表中不存在时,则会提示先进行添加药品,药品添加成功后自动把改药品添加到库存中,该药品在库存中的数量默认为1,当添加药品和库存信息成功后则再进行进货退货添加。操作人员也可以对进货
退货,库存信息根据一些信息进行精确查询和模糊查询,并能对查询结果进行打印报表。
3) 人事管理模块
人事管理是医院的所有员工(包括管理人员,医生,护士,收费员等)进行添加,删除和修改,如果员工有退休或是辞职或被辞退的则可以进行对该员工进行删除,如果有员工来应聘进来,则可以对该员工进行添加,当员工信息发生错误时则可以进行修改。
4) 账单管理模块
账单管理是对患者结账的情况进行管理,当病人来结账时则可以凭借账单号进行添加,账单信息可以分为已经结账的和尚未结账的,收费员根据这两种情况对账单的信息进行添加,修改和删除,也可以通过患者的信息或是账单的信息进行模糊查询和精确查询,也可以对查询结果进行打印报表。
5) 信息维护模块
信息维护分为两个功能,分别为数据备份和数据还原,数据备份是对数据库中的当前所有记录进行备份,当数据库中有添加大量的自己也不清楚的错误数据时,则可以通过前面数据备份的数据进行还原。
3.2 项目风险
1) 项目进度
由于项目开始的实践比较少、经验不够丰富以及项目开发过程中层出不穷的问题,对项目时间的安排和分析不准确,对项目的按时交付造成了很大的影响。
2) 项目需求不明确
项目的开发前期业务需求不明确,用户提供的参考资料极少,又缺少门诊管理方面的了解,再加上前期需求安排的时间太少。开发过程主要参考其它作品的形式,没有一个明确的目标。
3) 技术水平不够
技术水平问题大概是每个从事软件开发人员都会碰到的问题。在该项目中也碰到了各种各样的技术上的问题,也因为这些各种各种各样的新技术的出现,也使项目的进度受到印象。
3.3 项目进度计划
门诊管理系统的设计包括制定计划、需求分析、总体设计、详细设计、实现编码几个阶段,其项目进度安排如图3.1所示:
图3.1项目进度(甘特图)
4 需求分析
4.1 业务分析
4.1.1 xxxxx
4.1.2 xxxx
4.2 功能性需求概述
4.2.1 系统总功能结构图
系统总功能结构图包括系统的所有功能,如图4.1所示:
图4.1 系统结构图
4.2.2 功能模块概要说明
门诊管理系统主要用来帮助医院能更好的管理各个方面的信息,使操作人员能通过计算机对信息进行添加、删除、修改操作,同时可以进行浏览和查询的操作。持医院的行政管理与事务处理业务,减轻事务处理人员的劳动强度,辅助医院管理,辅助高层领导决策,提高医院的工作效率,从而使医院能够以少的投入获得更好的社会效益与经济效益。
4.3 概要设计
4.3.1 总体结构
总体结构图是系统的主体结构,如图4.2所示:
图4.2 总体结构图
1) 主控模块
起控制作用,调用其它功能模块,并且实现不需要单独建立一个模块的小功能。
2) 登录模块
控制员工账户是否可以进入主界面
3) 添加(信息)模块
可以增加医院员工,病人,药品等相关的一些信息,ID号和医疗证号都是唯一的
4) 修改(信息)模块
可以修改医院员工,病人,药品等相关的一些信息,ID号和医疗证号都是不能修改的。
5) 删除模块
用与删除选定员工,病人,药品等相关的一些信息,如此表与其它表有关联,并在与关联表里也存在要删除此记录的信息是不能删除。
6) 查询模块
可以对员工,病人,药品等相关的一些信息进行精确或模糊查询。
7) 打印报表模块
把查询出来的信息进行打印,也可以吧浏览出来的信息进行打印。
8) 浏览模块
显示员工,病人,药品等相关的一些信息。
9) 导出模块
将员工,病人,药品等相关的一些信息导出到Excel。
10) 帮助
用于帮助初用者或不了解者。
4.4 现行研究存在的问题及解决办法
门诊管理系统要求实现挂号,处方病历管理,药品管理,人事管理,账单管理,信息维护等基本功能,从安全性,可用性,可维护性,可移植性考虑,主要需解决的问题有:
1) 系统分析,数据库设计。
2) 在登录时设置安全性,当用户名,密码和是否允许登录完全匹配时才能进入主界面进行操作。
3) 数据的添加修改删除。
4) 数据的查询(精确查询和模糊查询)。
5) 打印查询出来的报表,打印浏览的报表。
6) 系统界面的美观大方。
4.5 用例模型
4.5.1 确定软件项目中的参与者:
参与者系统用户所扮演的一种角色,软件项目的参与者是使用本软件的主要人员,对于每个参与者,他都有使用系统的某项功能,参与者表示系统用户能扮演的角色,这些用户可能是人,可能是其他的计算机一些硬件或者甚至是其它软件系统,唯一的标准是它们必须要在被划分进用例的系统部分以外。它们必须能刺激系统部分并接收返回。
门诊管理系统包括收费员,医生,管理员和护士,这些操作员是按医院里所有的员工进行分类,医生和护士因为都是能帮病人看病,所以在权限上,医生和护士能操作的功能基本上是一样的,而收费员则是在患者看病的时候对病人进行挂号,查询病人的付账情况和药品的进货退货情况,只要与钱相关的,基本上都有收费员来操作,而管理员的权限则高于每个员工,他在除了其他人能操作的之外,还能对信息进行维护,包括数据的备份和数据的还原,主要的参与者如图4.3所示:
图4.3 项目操作人员
4.5.2 确定软件项目中的用例
用例是多个情节的叠加,是一个整体的复合,可以是一组场景,描述不同场景下的行为软件项目中的用例是操作员登录系统中能做什么功能,是对一项系统功能使用情况的普遍适应的描述。
管理员能对系统进行全部的功能操作 ,如查询病历信息,查询病人信息,查询进货退货信息,查询库存信息,查询药品信息,查询员工信息,查询账单信息,管理员工信息,管理病历信息,管理病人信息,管理处方信息,管理进货退货信息,管理药品信息,也可以对病人进行挂号,管理账单信息,备份数据和还原数据,这些是整个系统的基本功能,如图4.4所示:
图4.4 用例
4.5.3 软件项目用例图
软件项目的用例图是把操作员和她们所干的事情一一对应起来,如收费员可以操作管理处理,管理账单信息,查询账单信息,挂号,管理进货退货信息,查询进货退货信息等操作,而护士和医生所操作的功能一样,能操作查询药品信息,能管理药品信息管理病人信息,查询病人信息,管理病历信息,查询病历信息,查询库存信息等操作,而管理人员可是操作管理处方信息,备份数据,还原数据,查询药品信息,管理账单信息,查询账单信息,挂号,管理进货退货信息,查询进货退货信息,管理员工信息,查询员工信息,查询病历信息,查询库存信息,管理病历信息,查询病人信息,管理病人信息,管理药品信息等操作,如图4.5所示:
图4.5用例图
4.5.4 用例列表
用例列表把所有的用例以表的形式显示出来,并显示各个用例的优先级别,如使用者只有先登录系统才能对系统操作,所以在整个用例中,登录的优先级别为最高,而管理信息的用例是对数据库里的数据进行添加删除修改等操作,查询信息只有数据库里有了数据才能进行查询,所以管理信息在整个用例中为中,查询信息则为低,对数据备份不管理数据库里有没有数据都可以进行备份,只要登录系统后,数据都可以进行备份,所以数据备份的级别为中,数据还原则要在数据备份后才能进行数据还原,所以数据还原级别为低,如表4.1所示:
表4.1 用例列表
4.6 子用例
4.6.1 用例:登录
…
登录用例包括参与者的信息,操作的条件,系统本身的条件等信息,如表4.2所示:
表4.2 登录用例说明
5 数据库设计
5.1 数据库表结构
数据只有用数据库来管理才能有自动化管理的可能。数据的结构将影响整个管理机制的应用,而且一建立以后要修改常会出现麻烦。所以一开始就要仔细慎重地搭建一个完整而合理的结构。Microsoft SQL Server数据库相对其它的数据库来说要简单容易操作些,所以本系统采用数据库文件就是SQL类型的数据库,数据库名为“OSM”(Outpatient Service Management),数据库中共有12张表。
表名称及功能说明如下: 1)
E员工(员工表):用于医院所有员工的信息(包括医生,护士,收费员),
设置其能否操作该系统,并保存其登录密码。
2) limits权限(权限表):用于存储该员工能否操作系统中该功能的操作,如果为是能对该功能进行操作,否则把该功能进行隐藏。
3) PI病人(病人信息表):用于存储患者的所有信息。
4) bill(账单表):用于存储患者的付账情况,并记录付账的金额。
5) MR病历(病人病历信息表):用于存储病人的既往史,个人史,现病史以及做的各种检查的情况等相关信息。
6) prescription处方(病历的处方信息表):用于存储病人抓了什么药以及多少药等相关信息。
7) register挂号(患者挂号信息表):用于存储病人看病的类别和科室等相关信息。
8) unit(单位计量表):用于存储药品以什么单位来计算信息。 9) supplier供应(供应商信息表):用于存储供应药品的供应商信息。 10) MI药品(药品信息表):用于存储药品的功能,价格,主治有效期等相关信息。
11) OS库存(库存信息表):用于存储药品在仓库里的数量以及该药品在仓库中最多的存放数量和最少存放的数量。
12) RP进货退货(xml文件):用于存储药品进货或退货的数量,金额等相关信息。
5.2 数据库表
员工信息如表5.1所示:
表5.1 员工信息表(E员工)
操作人员的权限如表5.2所示:
表5.2权限表(limits权限)
病人信息如表5.3所示:
表5.3病人表(PI病人)
病人的病历信息如表5.4所示:
表5.4病历表(MR病历)
药品信息如表5.5所示:
表5.5药品表(MI药品)
5.3 数据库表关系图
数据库的关系如图5.1所示:
图5.1 关系图
5.4 数据库中表视图
5.4.1 视图
数据库中的所有视图如表5.6所示:
表5.6 视图说明
5.5 数据库设计命名规范
数据库的设计的命名规则如表5.7所示:
表5.7 数据库命名规范
6 系统实现
6.1 说明
6.1.1 项目文件命名规范
项目中的文件遵从见明知意原则编写。
6.1.2 项目的文件结构说明
项目中为方便对各类文件查找,存放OSM文件夹用于存放项目的所有信息,obj下的Debug中存放着所有窗体和报表信息,obj\Debug下TempPE中存放着报表的控件,Bin下的Debug文件夹用于存放项目外来引用文件、picture文件夹用于存放系统中用到的图片。
6.2 系统功能实现
6.2.1 xxxxx
6.2.2 数据库链接代码说明
SqlBaseClass类存放着数据库的链接以及各个SQL的执行语句,如果用到该数据库,只要完成SQL语句再直接调用该类的方法就可以了,另外还对数据库链接的各个方法进行异常处理,以便能快速的找出错误的地方,便于编程者进行修改,具体语句代码如下所示:
public static string str =
rity=sspi
SqlConnection sqlconn = new SqlConnection(SqlBaseClass.str);
SqlCommands qlcomm=new SqlCommand(sql,sqlconn);
sqlcomm.ExecuteNonQuery() > 0//执行SQL语句,返回Bool值
SqlDataReader reader = com.ExecuteReader(CommandBehavior.close
Connection);//读取数据表
DataSet ds = new DataSet();SqlDataAdapter dapter = new SqlData-
Adapter(sql,con);//实例化DataSet和适配器对象
dapter.Fill(ds,tablename);//填充适配器
DataTable result = ds.Tables[
int count = (int)com.ExecuteScalar();//返回受影响的行数
str = str.Replace(
str = str.Replace(
str = str.Replace(
sqlconn.Close();//关闭数据库链接
sqlconn.Dispose();//释放数据库链接
sqlcomm.Dispose();//释放语句
6.2.3 xxxxx
6.2.4 xxx
6.2.5 管理界面
管理界面功能说明:
管理界面是操作员进行添加删除和修改等操作,操作员要进行添加操作时,要先按工具栏上的添加按钮,然后输入数据,再单击保存按钮,当提示成功后则完成添加操作,修改操作要先按修改按钮,然后输入要修改的数据,再单击保存,提示修改成功后则完成修改操作,删除操作要先选中一条记录,单击删除按钮,当提示成功后完成删除操作。如图6.5所示:
图6.5管理界面
管理执行流程如图6.6所示:
图6.6管理操作流程图
以下代码说明:
实例化一个删除的SQL语句,与数据库链接并执行定义的SQL语句,从数据库中读取供应ID等于供应的文本框并返回影响的行数,实例化一个添加的SQL语句,与数据库链接并执行定义的SQL语句,实例化一个修改的SQL语句,与数据库链接并执行定义的SQL语句,获取第一条记录,上一条记录,下一条记录和最后一条记录
string str =
+
string a=
IDTextBox.Text+
SqlBaseClass.GetScalar(a)==0//获取影响行数
string str =
myset = SqlBaseClass.GetDataSet(str,
dataGridView1.DataSource = myset.Tables[
private void move(){
myrow = new DataGridViewRow();
myrow = dataGridView1.CurrentRow;
药品IDTextBox.Text = myrow.Cells[0].Value.ToString();
供应IDTextBox.Text=myrow.Cells[1].Value.ToString();
单位IDTextBox.Text=myrow.Cells[2].Value.ToString();
药品名称TextBox.Text = myrow.Cells[3].Value.ToString();
价格TextBox.Text = myrow.Cells[4].Value.ToString();
药品成分TextBox.Text = myrow.Cells[5].Value.ToString();
功能主治TextBox.Text = myrow.Cells[6].Value.ToString();
„}//记录移动时控件信息内容随表格记录移动显示
6.2.6 查询并打印报表界面
查询界面功能说明:
此界面的功能是对数据库中的数据查询,操作员可以根据自己所知道的进行精确查询和模糊查询,也可以选择查询的类别,如可以根据库存的ID,药品的ID,药品的名称,数量,库存上限,库存下限,价格,生产日期和有效日期等类别进行选择,选择类别后要进行输入内容,如果未输入内容则没有查询结果,如果要把查询的内容进行打印报表,则在查询的基础上,单击打印报表,那直接会跳到打印报表处,根据类别进行选择,如全部的,那就会把数据库中所有的库存信息调用出来,如果选择过期的,则把有效日期少于当前时间的给显示出来,如果未过期,则直接显示有效日期超过当前时间的给显示出来,如图6.7所示:
图6.7 查询并打印界面
查询或打印报表执行流程,如图6.8:
图6.8 查询并打印报表流程图
以下代码说明:
根据条件实例化查询的select语句,并从数据库读取数据,实例化报表,并把表填充到报表里。实例化树进行浏览
string str =
string str =
+
OSReport myos = new OSReport();myos.SetDataSource(mytable);
crystalReportViewer1.ReportSource = myos;//填充报表
TreeNode rootnode = new TreeNode(
7 测试
在开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占开发总工作量的40%以上。因此,我们必须重视测试工作。
首先确保系统所有功能模块均已开发完成并已通过单元测试;系统组装完毕。用于进行系统测试的软硬件环境均已准备就绪。
本测试的目的只是检查门诊管理系统各模块运行的正确性。对其功能的完整性、是否符合需求、系统设计合理性等方面不做测试。本次测试的工作主要是进行集成测试。主要包括功能测试,可用性测试,界面测试,回归测试等。
由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。
因此我们对系统的每一个单元分别进行白盒测试,我们设计每个单元的测试用例,检测系统对正确数据和非正确的数据的处理。对系统出错原因进行各方面的分析,研究探讨合理的解决方案。对系统容易出错的场合和数据进行过滤。
经过各个方面的测试之后,本系统在各个方基本达到设计时的要求。
7.1 测试例子及其结果
7.1.1 登录测试
测试流程:
1) 输入正确的用户名和错误的密码查看结果是否和设置的一样。
2) 输入错误的用户名和正确的密码查看结果是否和设置的一样。
3) 输入正确的用户名和不输入密码查看结果是否和设置的一样。
4) 不输入用户名和输入正确的密码查看结果是否和设置的一样。
5) 输入错误的用户名和错误的密码查看结果是否和设置的一样。
6) 不输入用户名和密码查看结果是否和设置的一样。
7) 输入不允许登录的正确的用户名和密码查看结果是否和设置的一样。
8) 输入允许登录的正确的用户名和密码查看结果是否和设置的一样。
测试方法:根据测试用例要求编写相关测试用例进行测试。
测试结果:在正常环境下能否进入主界面。
处理方法:进行修改后再进行回归测试。
7.1.2 添加测试
测试流程:
1) 选择管理员类别的进入主界面。
2) 选择添加药品。
3) 输入错误的数据查看能否进行添加。
4) 输入正确的数据能否进行添加。
测试方法:根据测试用例要求编写相关测试用例进行测试。
测试结果:数据能否正常添加。
处理方法:进行修改后再进行回归测试。
7.1.3 查询测试
测试流程:
1) 选择管理员类别的进入主界面。
2) 选择查询药品。
3) 选择精确查询,
4) 。。。
5) 选择精确查询,选择查询类别,输入在数据库中有的数据查询查看查询结果。
6) 选择模糊查询,选
7) …
8) 选择模糊查询,选择查询类别,输入在数据库中有的数据查询查看查询结果。
7.1.4 查询测试
测试流程:
1) 选择管理员类别的进入主界面。
2) 选择账单查询。
3) 选择精确查询,选择查询类别,输入在数据库中没有的数据进行打印报表,
查看结果。
4) 选择精确查询,选择查询类别,输入在数据库中有的数据进行打印报表,查
看结果。
5) 选择模糊查询,选择查询类别,输入在数据库中没有的数据进行打印报表,
查看结果。
6) 选择模糊查询,选择查询类别,输入在数据库中有的数据进行打印报表,查
看结果。
测试方法:根据测试用例要求编写相关测试用例进行测试。
测试结果:数据能否进行打印报表,错误的数据会不会出错 。
处理方法:进行修改后再进行回归测试。
8 系统安全
登录界面是用户进入主界面的必备的要求,用户通过自己的用户名(员工编号)和密码才能进入主界面,没有允许操作的用户不能登录系统,如用户名为001,密码为123,而在数据库中,此用户也是能允许登录的,则该用户就能登录进门诊管理系统,此界面是限制用户使用的要求。
允许操作人员凭借自己的用户名和密码进入系统,如果用户名或密码为空时,则跳出提示框提示用户名或密码为空,如果操作人员输入的用户名或密码错误时则提示用户名或密码错误。
门诊管理系统采用的是C/S结构,在数据安全方面相较于B/S会安全点,不过为了防止数据库数据被人为恶意的破坏或窃取,对数据库进行定时备份这样做可以防止因人为操作失误或其他原因而造成的数据丢失。对每个用户在数据库中的访问权限进行相应的权限设置,并对每个用户进行身份验证防止非法用户恶意访问。
9 总结与展望
医疗技术也迅速发展使人们对死亡不再是那么恐慌,面对着这医疗上的突破,仍存在这许多的人在抱怨,因为看病程序的繁琐,由手工完成的各项程序已经跟不上当今时代的快节奏,在这一问题上,医院也希望能开发出符合自己医院需求的系统。
门诊管理系统是现在医院处理琐碎事务的一种方式。在计算机技术高速发展的今天,许多手工的文件和数据都被放到了计算机中,而这些文件或数据的操作也直接在电脑上进行。它提高了医院处理各项数据的速度,能让工作人员更方便的管理医院的信息和病人的信息。
门诊管理系统是主要便于管理药品信息,病人的各项信息,医院的工作人员信息并对它们进行查询和打印报表等功能。
管理药品信息主要是对药品信息,库存信息,药品的进货退货信息进行添加,修改和删除。
管理病人信息主要是对病人信息,病人账单信息,病人处方信息,病人的病历等信息进行添加,删除和修改。
管理医院工作人员信息主要是对员工信息进行添加,修改和删除。
查询或打印报表药品信息主要是对药品信息,库存信息,药品的进货退货信息进行精确查询,模糊查询和打印报表。
查询或打印病人信息主要是对病人信息,病人账单信息,病人处方信息,病人的病历等信息进行精确查询,模糊查询和打印报表。
查询或打印医院工作人员信息主要是对员工信息进行精确查询,模糊查询和打印报表。
在系统的开发过程中也碰到不少的困难,也给了我不少的开发经验:
1) 前期项目需求分析不明确,导致于项目的总体设计不明确,以至于到项
目的详细设计时与实际作品之间有所偏差。
2)
3) 对系统不是很了解,所做的一些功能不能进行解说。 数据库规划和设计不合理,在开发的工程中不断的出现数据库的问题,
这些问题主要是因为数据库在规划或者数据库表结构上的问题,所以在开发的过程中非常频繁的去修改数据库,也因此似的访问数据库的模块随着数据库的更改而被更改。浪费了不少的精力和时间。
4) 对系统要求的一些功能因为不是很熟悉,所以做了感觉不是很好又删了
重新做,反复的进行修改,浪费了许多不必要的时间。
5) 对功能的一些要求不知道该怎么实现,所以所做的系统不太符合原先自
己想要的要求。
作品进一步展望:
对处方的一些操作,挂号和收费这几个方面要进行修改,对数据库的信息可以进行大量的删除和导入等功能。
致谢
本文是在我的指导老师黎浩宏老师的悉心指导下完成的。黎老师渊博的知识、
敏锐的洞察力、严谨的治学态度、勤奋的敬业精神以及兢兢业业的工作作风,时时刻刻激励和鞭策着我,给我留下了深刻的印象,并将是我将来学习和工作的榜样和不懈追求的目标。在此,谨向我的导师表示我最真诚的敬意和衷心地感谢。
在这三年里,浙江工贸职业技术学院信息工程系的各位老师在学业上也给了我
的很大指导和帮助,在此,向他们表示深深的谢意。
另外,还要对师兄、师弟、师妹们和各位学友表示感谢,他们在三年来对我的
帮助和支持将使我永远难忘。
谨以此文献给我最亲爱的父母亲感谢他们多年来对我的关心、支持和爱护。祝
他们身体健康、万事如意。
参考文献
[1] 刘文、朱飞雪.软件工程基础教程.北京大学出版社,2005.06.
参考文献的著录,按序号/著者/题名/出版社/出版时间等顺序排列:
期刊——著者题名.期刊名称.出版年.卷号(期号)。
书籍——著者.书名.版次(第一版不标注).出版单位,出版年。
[2] 程有娥.SQL Server2000数据库管理系统.华东师范大学出版社,2007.02.
[3] 钱冬云.SQL SERVER 2000 数据库管理系统试验知道与习题.人民邮电出版社.
[4] 李幸超.实用软件测试.电子工业出版社,2006.10.
[5] 刁成嘉.UML系统建模与分析设计.机械工业出版社.2007.06.
[6] 刁成嘉,刁弈等.UML系统建模与分析设计课程设计.机械工业出版社,2008.01.
[7] 黄维光,张敏.中文版Project 2007实用教程.清华大学出版社,2008.03.
[8] 杜四春,银红霞,蔡立军等.C#程序设计.中国水利水电出版社,2006.08.
[9] Kyle Dunn.A C# Application from Inspiration to Implementation(C#应用程序
开发全程演练).清华大学出版社,2003.07.
[10](美)内格尔(Nagel.C)等著. C#高级编程(第6版). 清华大学出版社,2008.10.
[11]李德奇,罗雅丽,何颖.C#程序设计.科学出版社,2005.08.
[12](美)Karli Watson Christian Nagel等著. C#入门经典(第3版). 清华大学 出
版社,2006.05.01.
浙江工贸职业技术学院信息传媒学院
毕 业 设 计 (论 文)
课题名称: 社团联盟的布局和开发
学生姓名: 杨帆
专 业: 计算机应用技术
学生学号: 1010301215
学生班级: 计算机1002
指导教师: 梅成才
社团联盟网站
杨帆
信息传媒学院 班级:计算机1002班 指导老师:梅成才
摘 要:本文的叙述围绕着如何实现一个功能完善的网站进行展开。依据本次毕业设计的要求,主要从可行性分析、需求分析、总体设计、详细设计、编码、测试几个阶段进行毕业设计论文的编写。 接着在需求分析中,根据用户的角度,分析了所设计的网站需要实现哪些基本功能;从设计者的角度,分析了设计一个网站所用的编辑工具和编程语言及网站的软硬件开发环境。根据分析的结果,主要采用FrontPage,Dreamweaver编辑器,结合ASP(vbscript,javascript)编程编程语言,进行网站的页面设计;网站的主要功能主要分为新闻、下载、友情链接、网上调查,图片几大模块。 详细设计阶段的任务就是把解法具体化。在详细设计阶段,依据总体分析的结果,进行具体页面的组织和数据库结构的设计。页面的组织主要是设计网页之间的联系,同时根据这些联系实现网页基本功能的构架;数据库的设计主要考虑各程序模块的基本功能,设计相应的表格、字段,用来存贮相应的数据记录,为页面的生成提供数据来源。 在编码阶段,进行具体网页的编码设计。在设计中,根据网页的程序界面,表单,需要的数据等,写出实际的程序代码。由于本次设计的页面比较多,不可能尽数地写出全部程序的代码,因此,在这一章节中,主要解释了在此次设计中主要用到的页面设计和数据库的编码技术。 测试的主要任务是为了发现程序中的错误,软件测试的过程亦是程序运行的过程。在本次设计中,主要采用边测试边修改的方法,在测试网页的同时根据结果及时进行相应的修改。在测试过程中,主要从外观、链接、速度方面测试网页是否能够实现相应的功能。„
关键词: C/S SQL VS2005
目 录
1 引言 ............................................................ 1
1.1 门诊管理系统的开发背景 .............................................................................................. 1
1.2 门诊管理系统的意义与设计目的 .................................................................................. 1 2 开发工具及环境介绍................................................ 3
2.1 门诊管理系统开发环境 .................................................................................................. 3
2.2 本项目应用的主要开发工具 .......................................................................................... 3
2.2.1 Microsoft Visual Studio 2005..................................................................................... 3
2.2.2 Microsoft SQL SERVER 2000................................................................................... 4
2.2.3 XXXX ...................................................................................... 错误!未定义书签。
2.2.4 XXXX ........................................................................................................................ 5
2.2.5 XXX ........................................................................................................................... 6
2.2.6 XXX ........................................................................................................................... 6 3 项目概述 ........................................................ 8
3.1 项目概述 .......................................................................................................................... 8
3.2 项目风险 .......................................................................................................................... 9
3.3 项目进度计划 ................................................................................................................ 10 4 需求分析 ........................................................11
4.1 业务分析 ........................................................................................................................ 11
4.1.1 xxxxx ........................................................................................ 错误!未定义书签。
4.1.2 xxxxx ........................................................................................ 错误!未定义书签。
4.1.3 信息化现状分析 ..................................................................... 错误!未定义书签。
4.2 功能性需求概述 ............................................................................................................ 11
4.2.1 系统总功能结构图 ................................................................................................. 11
4.2.2 功能模块概要说明 ................................................................................................. 12
4.3 概要设计 ........................................................................................................................ 12
4.3.1 总体结构 ................................................................................................................. 12
4.4 现行研究存在的问题及解决办法 ................................................................................ 13
4.5 用例模型 ........................................................................................................................ 14
4.5.1 确定软件项目中的参与者: ................................................................................. 14
4.5.2 确定软件项目中的用例 ......................................................................................... 15
4.5.3 软件项目用例图 ..................................................................................................... 16
4.5.4 用例列表 ................................................................................................................. 17
4.6 子用例 ............................................................................................................................ 18
4.6.1 用例:登录 ............................................................................................................. 18 5 数据库设计 .......................................................21
5.1 数据库表结构 ................................................................................................................ 21
5.2 数据库表 ........................................................................................................................ 22
5.3 数据库表关系图 ............................................................................................................ 24
5.4 数据库中表视图 ............................................................................................................ 25
5.4.1 视图 ......................................................................................................................... 25
5.5 数据库设计命名规范 .................................................................................................... 25 6 系统实现 ........................................................26
6.1 说明 ................................................................................................................................ 26
6.1.1 项目文件命名规范 ................................................................................................. 26
6.1.2 项目的文件结构说明 ............................................................................................. 26
6.2 系统功能实现 ................................................................................................................ 26
6.2.1 界面设计 ................................................................................. 错误!未定义书签。 7 测试 ............................................................37
7.1 测试例子及其结果 ........................................................................................................ 37
7.1.1 登录测试 ................................................................................................................. 37
7.1.2 添加测试 ................................................................................................................. 38
7.1.3 查询测试 ................................................................................................................. 38
7.1.4 查询测试 ................................................................................................................. 39 8 系统安全 ........................................................40 9 总结与展望 .......................................................41
致谢 ..............................................................43
参考文献 ..........................................................44
1 引言
1.1 门诊管理系统的开发背景 经过60来年计算机的发展,当今社会经济的发展和科学技术的进步,医疗技术也迅速发展,计算机在各行业中应用的普及,利用计算机实现医疗管理。既节省了医院人事资源,也节省的物资资源,医院具有管理复杂、药品繁多、病人的病历资料多样,现金量大以及报表需求复杂多样等特点,人工管理方式已不能完全胜任,这就需要标准的、高效率的计算机管理方式伴随医疗技术的发展。
无论是大型医院还是小型医院,,利用计算机支持医院高效率完成人事管理和物资管理的日常事务,是适应现代医疗制度要求、推动医院走向科学化、规范化的必要条件;计算机管理所无法比拟的优点查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高医院管理的效率,也是医院的科学化、正规化管理,与世界接轨的重要条件。所以建立门诊管理系统,使人事管理和物资管理自动化,提高信息处理的速度和准确性十分必要。
1.2 门诊管理系统的意义与设计目的
数字化医院的概念在本世纪初引入我国,特别2003年SARS以后,数字化医院成了医疗界的流行词。各医院也不管自身信息化做到什么程度,都在谈数字化医院。可是大部分医院并没有让病人品尝到数字化医院所带来的好处,虽有些改变,但是长时间的排队、信息不透明等现象还是让诸多人一提到医院就头疼。不但病人头疼,医院也头疼,因为数字化医院的建设不是件容易的事。
1) 医疗质量最佳化
充分利用系统信息及集成,让医生及时全面了解患者的各种诊疗信息,为快速准确诊断奠定良好基础;并通过各种辅助诊疗系统的开发,来提高检查检验结果的准确及时性。同时,也能把医生护士各种可能的差错降到最低,达到医疗质量最佳化。
2) 病历实现电子化
深刻理解电子病历的内涵,丰富原有病历的内容,把包括既往史,个人史,现在史等记录在案,使病历更加直观和全面,确保医疗信息的完整性。决策实现科学化
通过建立强大的管理和数据库存等系统,使得医院管理和诊疗决策完全建立在科
的基础上,不断提高管理和诊疗决策水平。
门诊管理系统的主要目标是支持医院的行政管理与事务处理业务,减轻事务处理人员的劳动强度,辅助医院管理,辅助高层领导决策,提高医院的工作效率,从而使医院能够以少的投入获得更好的社会效益与经济效益,像财务系统,人事系统,药品库存管理系统等都属于医院信息管理系统的范围,所以建立门诊管理系统,使医疗管理自动化,提高信息处理的速度和准确性十分必要。
设计目的:
1) 提高整个医院的运作效率,又节省了大量的人力和物力,提高经济效益。
2) 迎合就医者的要求,减少就医者就医时间,让病人及时就医。
3) 减少因为人为而造成的错误,提高工作人员处理效率。
4) 减轻操作人员的工作负担。
5) 实现在添加药品的同时自动把药品的信息添加到库存里,在进货退货时自动修改库存的数量。
6) 更加方便的打印自己想要的内容报表。
2 开发工具及环境介绍
2.1 门诊管理系统开发环境
开发环境是本系统使用的硬件限制,如表2.1所示:
表2.1 环境约束
2.2 本项目应用的主要开发工具
2.2.1 Microsoft Visual Studio 2005
Microsoft Visual Studio 2005是.NET平台下最为强大的开发工具,无论是软件服 „
1) 更好的规划质量
Visual Studio 2005 Team Developer Edition 为开发人员提供高级的静态分析、代码剖析、代码涵盖以及单元测试工具,使团队能够在整个生命周期中尽早、频繁地规划质量。
2) 加强团队开发作用
Visual Studio 2005 Team Foundation 还提供团队协作工具,使组织能够不费
3) 测试工具提高软件质量
Visual Studio 2005 Team Test Edition 构建于开发人员版本之上,更好地为
2.2.2 XXXX
SQL Server是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。而像存储过程、触发器等特性,也是大型数据库才拥有的。
1) 上手容易
„
2) 兼容性好
„
3) 相对于7.0的优越
„
2.2.3 xxxxx
Rational Rose是一种基于UML的建模工具,是一个完全的,具有能满足所有建 „
2.2.4 XXXX
图纸的软件,包含了非常多的组件
2.2.5 C# 程序设计
C#是微软为.NET平台量身定做的编程语言,它是一种现代面向对象程序设计语
2.2.6 XXX
xxxxxxx是用来对软件密集„
。
3 项目概述
3.1 项目概述
使用门诊管理系统能全面提高医院效益,节省由原来手工完成病历,账单,病人 „
理系统等都属于医院信息管理系统的范围。该系统主要分为一下几个主要模块:
1) 处方病历管理模块
处方病历管理模块主要是对病人,处方以及病历进行维护,在病人看完病后,在 …
2) 药品管理模块
药品管理模块主要实现进货退货管理,进货退货查询,库存查询,药品管理,药品查询,在查询库存信息时,如果库存查询出有过期的或是库存中药品的数量超过库存上限或低于下限时,则可以进行进货或退货,在进货或退货操作成功后,自动修改库存中的数量,如果药品进过来在药品信息表中不存在时,则会提示先进行添加药品,药品添加成功后自动把改药品添加到库存中,该药品在库存中的数量默认为1,当添加药品和库存信息成功后则再进行进货退货添加。操作人员也可以对进货
退货,库存信息根据一些信息进行精确查询和模糊查询,并能对查询结果进行打印报表。
3) 人事管理模块
人事管理是医院的所有员工(包括管理人员,医生,护士,收费员等)进行添加,删除和修改,如果员工有退休或是辞职或被辞退的则可以进行对该员工进行删除,如果有员工来应聘进来,则可以对该员工进行添加,当员工信息发生错误时则可以进行修改。
4) 账单管理模块
账单管理是对患者结账的情况进行管理,当病人来结账时则可以凭借账单号进行添加,账单信息可以分为已经结账的和尚未结账的,收费员根据这两种情况对账单的信息进行添加,修改和删除,也可以通过患者的信息或是账单的信息进行模糊查询和精确查询,也可以对查询结果进行打印报表。
5) 信息维护模块
信息维护分为两个功能,分别为数据备份和数据还原,数据备份是对数据库中的当前所有记录进行备份,当数据库中有添加大量的自己也不清楚的错误数据时,则可以通过前面数据备份的数据进行还原。
3.2 项目风险
1) 项目进度
由于项目开始的实践比较少、经验不够丰富以及项目开发过程中层出不穷的问题,对项目时间的安排和分析不准确,对项目的按时交付造成了很大的影响。
2) 项目需求不明确
项目的开发前期业务需求不明确,用户提供的参考资料极少,又缺少门诊管理方面的了解,再加上前期需求安排的时间太少。开发过程主要参考其它作品的形式,没有一个明确的目标。
3) 技术水平不够
技术水平问题大概是每个从事软件开发人员都会碰到的问题。在该项目中也碰到了各种各样的技术上的问题,也因为这些各种各种各样的新技术的出现,也使项目的进度受到印象。
3.3 项目进度计划
门诊管理系统的设计包括制定计划、需求分析、总体设计、详细设计、实现编码几个阶段,其项目进度安排如图3.1所示:
图3.1项目进度(甘特图)
4 需求分析
4.1 业务分析
4.1.1 xxxxx
4.1.2 xxxx
4.2 功能性需求概述
4.2.1 系统总功能结构图
系统总功能结构图包括系统的所有功能,如图4.1所示:
图4.1 系统结构图
4.2.2 功能模块概要说明
门诊管理系统主要用来帮助医院能更好的管理各个方面的信息,使操作人员能通过计算机对信息进行添加、删除、修改操作,同时可以进行浏览和查询的操作。持医院的行政管理与事务处理业务,减轻事务处理人员的劳动强度,辅助医院管理,辅助高层领导决策,提高医院的工作效率,从而使医院能够以少的投入获得更好的社会效益与经济效益。
4.3 概要设计
4.3.1 总体结构
总体结构图是系统的主体结构,如图4.2所示:
图4.2 总体结构图
1) 主控模块
起控制作用,调用其它功能模块,并且实现不需要单独建立一个模块的小功能。
2) 登录模块
控制员工账户是否可以进入主界面
3) 添加(信息)模块
可以增加医院员工,病人,药品等相关的一些信息,ID号和医疗证号都是唯一的
4) 修改(信息)模块
可以修改医院员工,病人,药品等相关的一些信息,ID号和医疗证号都是不能修改的。
5) 删除模块
用与删除选定员工,病人,药品等相关的一些信息,如此表与其它表有关联,并在与关联表里也存在要删除此记录的信息是不能删除。
6) 查询模块
可以对员工,病人,药品等相关的一些信息进行精确或模糊查询。
7) 打印报表模块
把查询出来的信息进行打印,也可以吧浏览出来的信息进行打印。
8) 浏览模块
显示员工,病人,药品等相关的一些信息。
9) 导出模块
将员工,病人,药品等相关的一些信息导出到Excel。
10) 帮助
用于帮助初用者或不了解者。
4.4 现行研究存在的问题及解决办法
门诊管理系统要求实现挂号,处方病历管理,药品管理,人事管理,账单管理,信息维护等基本功能,从安全性,可用性,可维护性,可移植性考虑,主要需解决的问题有:
1) 系统分析,数据库设计。
2) 在登录时设置安全性,当用户名,密码和是否允许登录完全匹配时才能进入主界面进行操作。
3) 数据的添加修改删除。
4) 数据的查询(精确查询和模糊查询)。
5) 打印查询出来的报表,打印浏览的报表。
6) 系统界面的美观大方。
4.5 用例模型
4.5.1 确定软件项目中的参与者:
参与者系统用户所扮演的一种角色,软件项目的参与者是使用本软件的主要人员,对于每个参与者,他都有使用系统的某项功能,参与者表示系统用户能扮演的角色,这些用户可能是人,可能是其他的计算机一些硬件或者甚至是其它软件系统,唯一的标准是它们必须要在被划分进用例的系统部分以外。它们必须能刺激系统部分并接收返回。
门诊管理系统包括收费员,医生,管理员和护士,这些操作员是按医院里所有的员工进行分类,医生和护士因为都是能帮病人看病,所以在权限上,医生和护士能操作的功能基本上是一样的,而收费员则是在患者看病的时候对病人进行挂号,查询病人的付账情况和药品的进货退货情况,只要与钱相关的,基本上都有收费员来操作,而管理员的权限则高于每个员工,他在除了其他人能操作的之外,还能对信息进行维护,包括数据的备份和数据的还原,主要的参与者如图4.3所示:
图4.3 项目操作人员
4.5.2 确定软件项目中的用例
用例是多个情节的叠加,是一个整体的复合,可以是一组场景,描述不同场景下的行为软件项目中的用例是操作员登录系统中能做什么功能,是对一项系统功能使用情况的普遍适应的描述。
管理员能对系统进行全部的功能操作 ,如查询病历信息,查询病人信息,查询进货退货信息,查询库存信息,查询药品信息,查询员工信息,查询账单信息,管理员工信息,管理病历信息,管理病人信息,管理处方信息,管理进货退货信息,管理药品信息,也可以对病人进行挂号,管理账单信息,备份数据和还原数据,这些是整个系统的基本功能,如图4.4所示:
图4.4 用例
4.5.3 软件项目用例图
软件项目的用例图是把操作员和她们所干的事情一一对应起来,如收费员可以操作管理处理,管理账单信息,查询账单信息,挂号,管理进货退货信息,查询进货退货信息等操作,而护士和医生所操作的功能一样,能操作查询药品信息,能管理药品信息管理病人信息,查询病人信息,管理病历信息,查询病历信息,查询库存信息等操作,而管理人员可是操作管理处方信息,备份数据,还原数据,查询药品信息,管理账单信息,查询账单信息,挂号,管理进货退货信息,查询进货退货信息,管理员工信息,查询员工信息,查询病历信息,查询库存信息,管理病历信息,查询病人信息,管理病人信息,管理药品信息等操作,如图4.5所示:
图4.5用例图
4.5.4 用例列表
用例列表把所有的用例以表的形式显示出来,并显示各个用例的优先级别,如使用者只有先登录系统才能对系统操作,所以在整个用例中,登录的优先级别为最高,而管理信息的用例是对数据库里的数据进行添加删除修改等操作,查询信息只有数据库里有了数据才能进行查询,所以管理信息在整个用例中为中,查询信息则为低,对数据备份不管理数据库里有没有数据都可以进行备份,只要登录系统后,数据都可以进行备份,所以数据备份的级别为中,数据还原则要在数据备份后才能进行数据还原,所以数据还原级别为低,如表4.1所示:
表4.1 用例列表
4.6 子用例
4.6.1 用例:登录
…
登录用例包括参与者的信息,操作的条件,系统本身的条件等信息,如表4.2所示:
表4.2 登录用例说明
5 数据库设计
5.1 数据库表结构
数据只有用数据库来管理才能有自动化管理的可能。数据的结构将影响整个管理机制的应用,而且一建立以后要修改常会出现麻烦。所以一开始就要仔细慎重地搭建一个完整而合理的结构。Microsoft SQL Server数据库相对其它的数据库来说要简单容易操作些,所以本系统采用数据库文件就是SQL类型的数据库,数据库名为“OSM”(Outpatient Service Management),数据库中共有12张表。
表名称及功能说明如下: 1)
E员工(员工表):用于医院所有员工的信息(包括医生,护士,收费员),
设置其能否操作该系统,并保存其登录密码。
2) limits权限(权限表):用于存储该员工能否操作系统中该功能的操作,如果为是能对该功能进行操作,否则把该功能进行隐藏。
3) PI病人(病人信息表):用于存储患者的所有信息。
4) bill(账单表):用于存储患者的付账情况,并记录付账的金额。
5) MR病历(病人病历信息表):用于存储病人的既往史,个人史,现病史以及做的各种检查的情况等相关信息。
6) prescription处方(病历的处方信息表):用于存储病人抓了什么药以及多少药等相关信息。
7) register挂号(患者挂号信息表):用于存储病人看病的类别和科室等相关信息。
8) unit(单位计量表):用于存储药品以什么单位来计算信息。 9) supplier供应(供应商信息表):用于存储供应药品的供应商信息。 10) MI药品(药品信息表):用于存储药品的功能,价格,主治有效期等相关信息。
11) OS库存(库存信息表):用于存储药品在仓库里的数量以及该药品在仓库中最多的存放数量和最少存放的数量。
12) RP进货退货(xml文件):用于存储药品进货或退货的数量,金额等相关信息。
5.2 数据库表
员工信息如表5.1所示:
表5.1 员工信息表(E员工)
操作人员的权限如表5.2所示:
表5.2权限表(limits权限)
病人信息如表5.3所示:
表5.3病人表(PI病人)
病人的病历信息如表5.4所示:
表5.4病历表(MR病历)
药品信息如表5.5所示:
表5.5药品表(MI药品)
5.3 数据库表关系图
数据库的关系如图5.1所示:
图5.1 关系图
5.4 数据库中表视图
5.4.1 视图
数据库中的所有视图如表5.6所示:
表5.6 视图说明
5.5 数据库设计命名规范
数据库的设计的命名规则如表5.7所示:
表5.7 数据库命名规范
6 系统实现
6.1 说明
6.1.1 项目文件命名规范
项目中的文件遵从见明知意原则编写。
6.1.2 项目的文件结构说明
项目中为方便对各类文件查找,存放OSM文件夹用于存放项目的所有信息,obj下的Debug中存放着所有窗体和报表信息,obj\Debug下TempPE中存放着报表的控件,Bin下的Debug文件夹用于存放项目外来引用文件、picture文件夹用于存放系统中用到的图片。
6.2 系统功能实现
6.2.1 xxxxx
6.2.2 数据库链接代码说明
SqlBaseClass类存放着数据库的链接以及各个SQL的执行语句,如果用到该数据库,只要完成SQL语句再直接调用该类的方法就可以了,另外还对数据库链接的各个方法进行异常处理,以便能快速的找出错误的地方,便于编程者进行修改,具体语句代码如下所示:
public static string str =
rity=sspi
SqlConnection sqlconn = new SqlConnection(SqlBaseClass.str);
SqlCommands qlcomm=new SqlCommand(sql,sqlconn);
sqlcomm.ExecuteNonQuery() > 0//执行SQL语句,返回Bool值
SqlDataReader reader = com.ExecuteReader(CommandBehavior.close
Connection);//读取数据表
DataSet ds = new DataSet();SqlDataAdapter dapter = new SqlData-
Adapter(sql,con);//实例化DataSet和适配器对象
dapter.Fill(ds,tablename);//填充适配器
DataTable result = ds.Tables[
int count = (int)com.ExecuteScalar();//返回受影响的行数
str = str.Replace(
str = str.Replace(
str = str.Replace(
sqlconn.Close();//关闭数据库链接
sqlconn.Dispose();//释放数据库链接
sqlcomm.Dispose();//释放语句
6.2.3 xxxxx
6.2.4 xxx
6.2.5 管理界面
管理界面功能说明:
管理界面是操作员进行添加删除和修改等操作,操作员要进行添加操作时,要先按工具栏上的添加按钮,然后输入数据,再单击保存按钮,当提示成功后则完成添加操作,修改操作要先按修改按钮,然后输入要修改的数据,再单击保存,提示修改成功后则完成修改操作,删除操作要先选中一条记录,单击删除按钮,当提示成功后完成删除操作。如图6.5所示:
图6.5管理界面
管理执行流程如图6.6所示:
图6.6管理操作流程图
以下代码说明:
实例化一个删除的SQL语句,与数据库链接并执行定义的SQL语句,从数据库中读取供应ID等于供应的文本框并返回影响的行数,实例化一个添加的SQL语句,与数据库链接并执行定义的SQL语句,实例化一个修改的SQL语句,与数据库链接并执行定义的SQL语句,获取第一条记录,上一条记录,下一条记录和最后一条记录
string str =
+
string a=
IDTextBox.Text+
SqlBaseClass.GetScalar(a)==0//获取影响行数
string str =
myset = SqlBaseClass.GetDataSet(str,
dataGridView1.DataSource = myset.Tables[
private void move(){
myrow = new DataGridViewRow();
myrow = dataGridView1.CurrentRow;
药品IDTextBox.Text = myrow.Cells[0].Value.ToString();
供应IDTextBox.Text=myrow.Cells[1].Value.ToString();
单位IDTextBox.Text=myrow.Cells[2].Value.ToString();
药品名称TextBox.Text = myrow.Cells[3].Value.ToString();
价格TextBox.Text = myrow.Cells[4].Value.ToString();
药品成分TextBox.Text = myrow.Cells[5].Value.ToString();
功能主治TextBox.Text = myrow.Cells[6].Value.ToString();
„}//记录移动时控件信息内容随表格记录移动显示
6.2.6 查询并打印报表界面
查询界面功能说明:
此界面的功能是对数据库中的数据查询,操作员可以根据自己所知道的进行精确查询和模糊查询,也可以选择查询的类别,如可以根据库存的ID,药品的ID,药品的名称,数量,库存上限,库存下限,价格,生产日期和有效日期等类别进行选择,选择类别后要进行输入内容,如果未输入内容则没有查询结果,如果要把查询的内容进行打印报表,则在查询的基础上,单击打印报表,那直接会跳到打印报表处,根据类别进行选择,如全部的,那就会把数据库中所有的库存信息调用出来,如果选择过期的,则把有效日期少于当前时间的给显示出来,如果未过期,则直接显示有效日期超过当前时间的给显示出来,如图6.7所示:
图6.7 查询并打印界面
查询或打印报表执行流程,如图6.8:
图6.8 查询并打印报表流程图
以下代码说明:
根据条件实例化查询的select语句,并从数据库读取数据,实例化报表,并把表填充到报表里。实例化树进行浏览
string str =
string str =
+
OSReport myos = new OSReport();myos.SetDataSource(mytable);
crystalReportViewer1.ReportSource = myos;//填充报表
TreeNode rootnode = new TreeNode(
7 测试
在开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占开发总工作量的40%以上。因此,我们必须重视测试工作。
首先确保系统所有功能模块均已开发完成并已通过单元测试;系统组装完毕。用于进行系统测试的软硬件环境均已准备就绪。
本测试的目的只是检查门诊管理系统各模块运行的正确性。对其功能的完整性、是否符合需求、系统设计合理性等方面不做测试。本次测试的工作主要是进行集成测试。主要包括功能测试,可用性测试,界面测试,回归测试等。
由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。
因此我们对系统的每一个单元分别进行白盒测试,我们设计每个单元的测试用例,检测系统对正确数据和非正确的数据的处理。对系统出错原因进行各方面的分析,研究探讨合理的解决方案。对系统容易出错的场合和数据进行过滤。
经过各个方面的测试之后,本系统在各个方基本达到设计时的要求。
7.1 测试例子及其结果
7.1.1 登录测试
测试流程:
1) 输入正确的用户名和错误的密码查看结果是否和设置的一样。
2) 输入错误的用户名和正确的密码查看结果是否和设置的一样。
3) 输入正确的用户名和不输入密码查看结果是否和设置的一样。
4) 不输入用户名和输入正确的密码查看结果是否和设置的一样。
5) 输入错误的用户名和错误的密码查看结果是否和设置的一样。
6) 不输入用户名和密码查看结果是否和设置的一样。
7) 输入不允许登录的正确的用户名和密码查看结果是否和设置的一样。
8) 输入允许登录的正确的用户名和密码查看结果是否和设置的一样。
测试方法:根据测试用例要求编写相关测试用例进行测试。
测试结果:在正常环境下能否进入主界面。
处理方法:进行修改后再进行回归测试。
7.1.2 添加测试
测试流程:
1) 选择管理员类别的进入主界面。
2) 选择添加药品。
3) 输入错误的数据查看能否进行添加。
4) 输入正确的数据能否进行添加。
测试方法:根据测试用例要求编写相关测试用例进行测试。
测试结果:数据能否正常添加。
处理方法:进行修改后再进行回归测试。
7.1.3 查询测试
测试流程:
1) 选择管理员类别的进入主界面。
2) 选择查询药品。
3) 选择精确查询,
4) 。。。
5) 选择精确查询,选择查询类别,输入在数据库中有的数据查询查看查询结果。
6) 选择模糊查询,选
7) …
8) 选择模糊查询,选择查询类别,输入在数据库中有的数据查询查看查询结果。
7.1.4 查询测试
测试流程:
1) 选择管理员类别的进入主界面。
2) 选择账单查询。
3) 选择精确查询,选择查询类别,输入在数据库中没有的数据进行打印报表,
查看结果。
4) 选择精确查询,选择查询类别,输入在数据库中有的数据进行打印报表,查
看结果。
5) 选择模糊查询,选择查询类别,输入在数据库中没有的数据进行打印报表,
查看结果。
6) 选择模糊查询,选择查询类别,输入在数据库中有的数据进行打印报表,查
看结果。
测试方法:根据测试用例要求编写相关测试用例进行测试。
测试结果:数据能否进行打印报表,错误的数据会不会出错 。
处理方法:进行修改后再进行回归测试。
8 系统安全
登录界面是用户进入主界面的必备的要求,用户通过自己的用户名(员工编号)和密码才能进入主界面,没有允许操作的用户不能登录系统,如用户名为001,密码为123,而在数据库中,此用户也是能允许登录的,则该用户就能登录进门诊管理系统,此界面是限制用户使用的要求。
允许操作人员凭借自己的用户名和密码进入系统,如果用户名或密码为空时,则跳出提示框提示用户名或密码为空,如果操作人员输入的用户名或密码错误时则提示用户名或密码错误。
门诊管理系统采用的是C/S结构,在数据安全方面相较于B/S会安全点,不过为了防止数据库数据被人为恶意的破坏或窃取,对数据库进行定时备份这样做可以防止因人为操作失误或其他原因而造成的数据丢失。对每个用户在数据库中的访问权限进行相应的权限设置,并对每个用户进行身份验证防止非法用户恶意访问。
9 总结与展望
医疗技术也迅速发展使人们对死亡不再是那么恐慌,面对着这医疗上的突破,仍存在这许多的人在抱怨,因为看病程序的繁琐,由手工完成的各项程序已经跟不上当今时代的快节奏,在这一问题上,医院也希望能开发出符合自己医院需求的系统。
门诊管理系统是现在医院处理琐碎事务的一种方式。在计算机技术高速发展的今天,许多手工的文件和数据都被放到了计算机中,而这些文件或数据的操作也直接在电脑上进行。它提高了医院处理各项数据的速度,能让工作人员更方便的管理医院的信息和病人的信息。
门诊管理系统是主要便于管理药品信息,病人的各项信息,医院的工作人员信息并对它们进行查询和打印报表等功能。
管理药品信息主要是对药品信息,库存信息,药品的进货退货信息进行添加,修改和删除。
管理病人信息主要是对病人信息,病人账单信息,病人处方信息,病人的病历等信息进行添加,删除和修改。
管理医院工作人员信息主要是对员工信息进行添加,修改和删除。
查询或打印报表药品信息主要是对药品信息,库存信息,药品的进货退货信息进行精确查询,模糊查询和打印报表。
查询或打印病人信息主要是对病人信息,病人账单信息,病人处方信息,病人的病历等信息进行精确查询,模糊查询和打印报表。
查询或打印医院工作人员信息主要是对员工信息进行精确查询,模糊查询和打印报表。
在系统的开发过程中也碰到不少的困难,也给了我不少的开发经验:
1) 前期项目需求分析不明确,导致于项目的总体设计不明确,以至于到项
目的详细设计时与实际作品之间有所偏差。
2)
3) 对系统不是很了解,所做的一些功能不能进行解说。 数据库规划和设计不合理,在开发的工程中不断的出现数据库的问题,
这些问题主要是因为数据库在规划或者数据库表结构上的问题,所以在开发的过程中非常频繁的去修改数据库,也因此似的访问数据库的模块随着数据库的更改而被更改。浪费了不少的精力和时间。
4) 对系统要求的一些功能因为不是很熟悉,所以做了感觉不是很好又删了
重新做,反复的进行修改,浪费了许多不必要的时间。
5) 对功能的一些要求不知道该怎么实现,所以所做的系统不太符合原先自
己想要的要求。
作品进一步展望:
对处方的一些操作,挂号和收费这几个方面要进行修改,对数据库的信息可以进行大量的删除和导入等功能。
致谢
本文是在我的指导老师黎浩宏老师的悉心指导下完成的。黎老师渊博的知识、
敏锐的洞察力、严谨的治学态度、勤奋的敬业精神以及兢兢业业的工作作风,时时刻刻激励和鞭策着我,给我留下了深刻的印象,并将是我将来学习和工作的榜样和不懈追求的目标。在此,谨向我的导师表示我最真诚的敬意和衷心地感谢。
在这三年里,浙江工贸职业技术学院信息工程系的各位老师在学业上也给了我
的很大指导和帮助,在此,向他们表示深深的谢意。
另外,还要对师兄、师弟、师妹们和各位学友表示感谢,他们在三年来对我的
帮助和支持将使我永远难忘。
谨以此文献给我最亲爱的父母亲感谢他们多年来对我的关心、支持和爱护。祝
他们身体健康、万事如意。
参考文献
[1] 刘文、朱飞雪.软件工程基础教程.北京大学出版社,2005.06.
参考文献的著录,按序号/著者/题名/出版社/出版时间等顺序排列:
期刊——著者题名.期刊名称.出版年.卷号(期号)。
书籍——著者.书名.版次(第一版不标注).出版单位,出版年。
[2] 程有娥.SQL Server2000数据库管理系统.华东师范大学出版社,2007.02.
[3] 钱冬云.SQL SERVER 2000 数据库管理系统试验知道与习题.人民邮电出版社.
[4] 李幸超.实用软件测试.电子工业出版社,2006.10.
[5] 刁成嘉.UML系统建模与分析设计.机械工业出版社.2007.06.
[6] 刁成嘉,刁弈等.UML系统建模与分析设计课程设计.机械工业出版社,2008.01.
[7] 黄维光,张敏.中文版Project 2007实用教程.清华大学出版社,2008.03.
[8] 杜四春,银红霞,蔡立军等.C#程序设计.中国水利水电出版社,2006.08.
[9] Kyle Dunn.A C# Application from Inspiration to Implementation(C#应用程序
开发全程演练).清华大学出版社,2003.07.
[10](美)内格尔(Nagel.C)等著. C#高级编程(第6版). 清华大学出版社,2008.10.
[11]李德奇,罗雅丽,何颖.C#程序设计.科学出版社,2005.08.
[12](美)Karli Watson Christian Nagel等著. C#入门经典(第3版). 清华大学 出
版社,2006.05.01.