1、摘 要随着计算机的发展,越来越多的行业实现了管理的信息化和自动化,医务行业也不例外。在很多医院中,挂号作为医院工作中最重要的一个环节还没有完全实现信息化管理,因此本系统选择医院预约挂号为研究对象,以实现网上预约挂号、缓解医院现场挂号难、提高医院工作效率为目标。本次设计采用C#语言及VS2013和MySQL为开发工具,并结合软件工程的设计思想,以B/S为模式设计并实现了医院预约挂号系统,实现了患者的预约、查询以及管理员对预约信息的管理等功能。医院预约挂号系统有着很好的应用前景,用它来代替医院现场挂号,实现患者看病挂号网络化是一个必然趋势。随着计算机技术和网络技术的发展,它的功能将会得到不断的发展
2、和完善。关键词:C#;VS2013;数据库;B/S模式;挂号目 录1可行性分析11.1项目开发背景11.2项目开发意义11.3可行性研究的主要内容21.3.1技术可行性21.3.2操作可行性31.3.3经济可行性32项目开发计划42.1编写目的42.2项目概述42.3功能描述42.4项目开发计划52.5交付期限53需求分析63.1系统需求分析63.2系统流程图63.3数据描述73.3.1数据流图73.3.2数据字典83.4系统E-R图93.5需求规定113.5.1功能需求113.5.2性能需求123.5.3运行需求123.5.4其他需求124系统概要设计134.1总体设计134.1.1总体设计
3、原理134.1.2系统功能模块设计134.1.3功能分析154.2数据库设计154.2.1数据库概念设计154.2.2数据库逻辑结构设计165详细设计205.1人机界面设计205.1.1一般交互设计205.1.2信息显示设计215.1.3数据输入设计215.2程序设计过程225.2.1登陆界面设计225.2.2程序流程设计256测试296.1测试描述296.1.1测试目的306.1.2测试方案306.2测试计划306.2.1测试过程306.2.2进度安排及里程碑326.2.3系统资源336.2.4项目风险分析336.3测试计划设计说明346.3.1测试用例选取原则346.3.2测试内容及其选取
4、策略356.3.3功能测试376.4医院挂号系统覆盖率测试386.4.1逻辑覆盖率386.4.2语句覆盖416.4.3判定覆盖416.4.4条件覆盖416.5医院挂号系统黑盒测试426.5.1等价类划分测试426.5.2边界值法437设计总结457.1心得体会457.2存在的问题45致 谢46参考文献471可行性分析1.1项目开发背景随着计算机技术的飞速发展,计算机在系统管理中的应用越来越普及,利用计算机实现各个系统的管理显得越来越重要。对于一些大中型管理部门来说,利用计算机支持管理高效率完成日常事务的管理,是适应现代管理制度要求、推动管理走向科学化、规范化的必要条件。我国由于人口多,进而带来
5、医院看病难的问题,由于人口众多,需要排队进行挂号,这样会浪费患者的时间,而且医院的效率也不高。患者挂号是一项琐碎、复杂而又十分细致的工作,患者数量之庞大,一般不允许出错,如果实行手工操作,每天挂号的情况以及挂号时间等须手工填制大量的表格,这就会耗费医院管理工作人员大量的时间和精力,患者排队等候时间长,辗转过程多,影响了医疗的秩序。如何利用现代信息技术使企业拥有快速、高效的市场反映能力和高效率,已是医院特别关心的问题。尽快建立一个医院预约挂号系统,完善现代医院的信息化管理机制,已成为医院生存发展的当务之急。所以,建立网上预约挂号系统势在必行。本系统以医院为背景,在认真调研和分析了医院的现状之后,
6、根据用户的需求和各个功能的关系,作出了积极的设计方案。在新的管理资源和管理模式上,一定能使工作质量、工作效率等得到提高,推动医院发展的步伐。1.2项目开发意义开发医院预约挂号系统,使患者就诊系统化,规范化,自动化,从而达到提高管理效率的目的。本系统开发设计思想是实现患者预约挂号的数字化。尽量采用现有软硬件环境,及先进的管理系统开发方案,提高系统开发水平和应用效果的目的;系统应符合医院管理的规定,满足日常管理的需要,并达到操作过程中的直观,方便,实用,安全等要求;系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充,维护;系统应具备数据库维护功能,及时根据
7、用户需求进行数据的添加,删除,修改等操作。网上预约挂号系统是一种基于互联网的新型挂号系统,利用该预约挂号系统,患者就可以在家里预约医院的专家,而无需受排队之苦。它能更好的改善就医环境,简化就医环节,节约就医时间,真正体现了一切以病人为中心,一切从方便患者出发,符合当今医院人性化服务温馨服务的理念。目前,门诊一直是阻挠医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院。而造成门诊量难以提高的因素主要有两个方面:一是集中式挂号,就诊人员流量不均,具有不确定性,有明显的就诊高峰和低谷。高峰期患者挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生就诊时间短、不仔细、服务差。而低
8、谷期,医生无患者可看,医院资源浪费。二是专家号难挂,特别是名专家,会出现倒号、炒号现象,严重损害患者利益,影响医院的声誉。而采用网上预约挂号,可有效解决这一现象,通过网上有效的身份验证,杜绝倒、炒专家号的现象,提高医院门诊服务质量,取得良好的社会效益和经济效益。此外,患者到医院就诊前对医院的相关信息了解不多,对所要挂的专科医生的情况不太了解,只能凭经验和印象进行选择,具有较大的盲目性。而当医院开通网上预约挂号服务以后,求医者只需坐在家中轻点下鼠标,就可以挂上医院专家门诊号,可以做到“足不出户选医生”。网上预约正悄然改变着求医者的看病观念。所以,预约看病应用将越来越广泛。1.3可行性研究的主要内
9、容可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计过程,也就是在较高层系上以较抽象的方式进行的系统分析和设计过程。在进行可行性研究时首先要进一步分析和澄清问题定义。在问题定义阶段初步确定系统的规模和目标,如果正确就进一步加以肯定,如果有错误就应该及时改正,如果对目标约束和限制,必须把他们一一列出来。从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。对于每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三个方面研究每种解法的可行性。1.3.1技术可行性(1)对系统的简要描述基于Micro
10、soft Visual Studio 2013开发环境和使用MySQL数据库开发的面向患者、医院管理员和专家的网上信息管理系统。系统在安装了Windows XP操作系统的个人电脑上使用。(2)系统处理流程患者登录该系统后,根据自己病情,查询医院内自己所需的专家信息及专家简历,选中专家后,登记患者的姓名及电话号码以及简要病历,并填写预约时间。患者预约信息反馈到医院系统管理员后,管理员对预约信息进行整理,产生预约清单。预约清单开放给医院预约挂号号码发放处和医院内各专家,医院预约挂号号码发放处根据预约清单打印并在预约当日按照预约清单发放挂号号码,医院内各专家可以进入系统根据预约清单查询预约自己的患者
11、的数量及患者的简要病历。1.3.2操作可行性操作可行性主要研究系统的操作方式在该用户组织内是否可行。在当前的社会条件下,Internet网已经在中国全面覆盖,在中国各地,均可以通过硬件设备联网。而且各商业组织也拥有属于自己的内部局域网,所以该系统可以实现联网。该系统在联网情况下,可以通过PC机访问系统的数据,所以该系统的操作方式符合该用户组织。而且本系统操作方法简单,只需掌握基本上网知识,用户即可以轻易学会使用方法及操作流程。系统管理员需要进行简单培训。1.3.3经济可行性经济可行性主要研究该系统的经济效益能否超过它的开发成本。目前在中国,到医院就医的人流量是非常庞大的,所以人们对医院的依赖性
12、非常强。在这样的背景下,为医院设计这样的一个系统,其经济效益是十分可观的而且取消了人们就医挂号的烦恼。又由于通过网络传递信息可以不受距离的限制,因此可以节省大量的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高医院的执行效率,即提高了医院的经济效益,所以从经济上完全是可行的。2项目开发计划2.1编写目的此系统在可行性分析的基础上,进一步的说明对医院预约挂号系统的要求,准确的定义出医院预约挂号系统要完成的任务,确定该系统要完成哪些工作,使系统尽可能的满足用户的要求,尽可能的简单方便的运行。2.2项目概述医院挂号系统主要功能包括:后台管理和前台操作,其中:后台管理主要包括:用户管
13、理、预约信息管理、专家信息管理、相关业务的查询和系统维护等;用户管理:在数据库中存储有各角色用户的信息信息,当某个角色的信息需要变化是时,可以随时进行信息的变更包括增加、删除、修改等功能,同时数据库中信息相应变化,并保持数据的时效性和完整性。预约信息管理主要包括:随时查询患者的预约信息,如患者姓名、病例、所属科室等,而且可及时更新数据库数据。 专家信息管理主要包括:专家信息的增、删、改、查等。在需要时(可每隔一个时间段查询一次) 查询预约该专家的患者数量及各方面的情况,如预约量超过专家的可以预约的人数后(大于某一自定的数量) 时,可生成预约名额已满报告,方便患者在进行预约时查看可以有效防止预约
14、成功由于人数原因而不能就诊的情况。2.3功能描述1.预约挂号实现患者从网上直接预约挂号。预约的时候需要填写患者的姓名、预约日期、电话以及简单的病情症状。2.预约查询预约完成后患者可以查询自己的预约信息,当患者想改变专家则可取消本次预约。3.取消预约患者查询到自己的预约信息后,可以从次功能对先前的预约进行取消操作。4.登录管理员以及专家用户可以从登录功能模块进行登录而患者通过注册可以获得登录权限进而进行一系列操作。5.整理专家信息管理员登录以后可以对用户进行添加、删除和修改,实现对用户的管理。6.调配专家管理员登录后通过次模块可以查看患者预约信息,并对患者预约的专家进行调配。7.门诊流量统计管理
15、员登录后可以通过次模块对每天的预约人数进行统计并导出。8.专家查询专家用户登录以后可以查询预约自己的患者信息。通过查询患者信息,可以对工作有一个合理的安排与准备。2.4项目开发计划1.任务分解分三个大的阶段进行开发第一阶段完成本系统的数据流图跟E-R图。第二阶段完成概要设计跟详细设计。第三阶段书写文档。2.关键问题各模块之间的联系和后台数据库的完成。使用目前的设备与现有开发技术完全可以开发出该系统,总的来说该项目没有较大的技术难点与其他的一些风险因素。对于出现的一些小难点总都能得到解决。2.5交付期限本系统的开发时限为两个星期,该系统的交付期限为2015年12月25日。3需求分析3.1系统需求
16、分析目前,门诊一直是困扰医院提高服务质量的一个复杂环节,特别是医疗水平高、门诊量大的医院,而造成门诊质量难以提高的因素主要有两方面:一方面集中式挂号(现在流行的分层挂号只是相对而言一个范围较小的集中式挂号),就诊人员流量不均、具有不确定性,有明显的就诊高峰和低谷(表现在整个医院不同门诊时间段及同科室的不同时间段)。高峰期病人挂号排队长,就诊时间长,医生熟人插号现象,环境拥挤混乱,医生问诊时间短、不仔细、态度差。而低谷期,医生无病人看、溜号,医院资源浪费。另一方面专家号(特别是名专家号)难挂,出现倒号、炒号现象,严重损害病人利益,影响到医院的声誉。而采用网上预约挂号,可有效的解决这一现象,还通过
17、有效的身份验证,杜绝倒、炒专家号的现象,提高医院门诊服务质量,取得良好的社会效益和经济效益。为了解决这一问题,我们需要一种能够方便快捷的挂号方式来满足各方面的需求,减少排队挂号的痛苦和时间的浪费,而本课题所研究的基于JSP的医院网上挂号预约系统正好是为了解决这一问题而设计的方案,因此,本系统拥有很大的用户需求。3.2系统流程图系统流程图通过图形的形式描述系统的各功能模块以及各个权限的操作者之间的交互情况,如下图3.1所示。门诊流量统计报告患者登陆程序用户注册显示专家信息专家查询程序管理员管理程序显示治疗情况患者预约信息用户信息管理用户注册患者登陆程序患者登陆程序用户注册专家查询程序显示专家信息
18、显示治疗情况管理员管理程序门诊流量统计报告管理员管理程序显示治疗情况显示专家信息专家查询程序图3.1系统流程图3.3数据描述3.3.1数据流图数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图有四种基本符号:正方形表示数据的源点或终点;圆角矩形代表变换数据的处理;开口矩形代表数据存储;箭头表示数据流。医院网络预约挂号系统中需要处理的信息有登录信息,专家信息以及患者预约信息,根据数据信息的流向画出本系统的数据流图。医院预约挂号系统顶层数据流图如下图3.2所示。预约系统患者专家管
19、理员预约信息 反馈信息 预约信息 登录信息 反馈信息 登录信息图3.2顶层数据流图3.3.2数据字典数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典通常包括数据项、数据结构、数据流、数据存储、数据处理五部分,其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义描述数据流、数据存储的逻辑内容。根据数据流图,得出了相应的数据字典卡片,每张卡片上主要应该包括名字、描述、定义。名称:预约信息别名:预约报表描述:患者预约时填写的信息定义:患者姓名+专家姓名+患者身份证+病历+科
20、室+日期+患者电话位置:输出到打印机 患者清单 名称:管理员登陆信息别名:管理员信息描述:系统管理员的登陆信息定义:用户名+密码+用户权限位置:名称:治疗信息别名:患者治疗情况描述:患者预约完成就诊后的信息定义:患者姓名+专家姓名+科室+治疗日期+治疗情况位置:输出到打印机 治疗清单 名称:专家信息别名:患者预约查询信息 描述:患者挂号时查询的各个专家 的信息 定义:专家姓名+专家号+专家性别+科室+专家特长+预约人数+当前人数+专家电话位置:显示在患者客户端 保存到磁盘3.4系统E-R图为了把用户的数据清楚、准确地描述出来,系统分析员通常要建立一个概念数据模型。概念结构独立于支持数据库的DB
21、MS,具有能充分反映现实世界、易于理解、易于更动、易于向关系、网状或层次等各种数据模型转换。可根据实体间的关系和属性得到E-R图。E-R图中的三个基本符号:矩形表示实体型,矩形框内写明实体名;椭圆形表示属性,并用无向边将其与相应的实体型连接起来;菱形表示联系,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。 医院预约挂号系统是针对医院管理员,医院专家和患者的系统。所以,在本系统中有患者、系统管理员、医院专家三个实体。患者在预约的时候必须填写相关的预约信息,即患者姓名、身份证号、联系方式、预约时间、预约的专家以及患者简单病情症状,这
22、些都是“患者”实体的属性。系统管理员有自己的登录用户名和密码,还可以修改自己的密码,这些是“管理员”实体的属性。专家为了能让在网上预约的患者清晰的了解自己,所以系统里有专家的姓名、电话、科室、编号、特长、可以预约的人数,已经预约的人数,专家进系统查询预约患者信息时还需要登录系统,所以专家还有登录系统所需要的用户名和密码,这些是“专家”实体的属性。患者及其属性如下图3.3所示。患者患者姓名身份证专家姓名科室病例电话图3.3患者实体及其属性图管理员及其属性如下图3.4所示。管理员用户名密码权限图3.4管理员实体及其属性图专家及其属性如下图3.5所示。专家专家号性别科室专家特长预约人数当前人数专家电
23、话专家姓名图3.5专家实体及其属性图通过以上描述的各个实体的属性图,这样就可以了解系统的实体信息,实体属性图中描述了各个实体的属性,这些也是在进行系统操作时可以得到的信息。这是以需求说明为基础设计的局部概念模型,然后以这些局部模型为基础集成为一个全局的概念模型,在概念模型设计中多是采用这种自底向上的设计方式,称为系统集成法。分析得出系统中实体属性后,每个实体之间都有一定的联系,“管理员”实体与“专家”实体之间的关系为管理员管理专家,“管理员”与“患者”实体之间的关系是管理员管理患者的预约信息,“专家”与“患者”两实体之间的关系为专家对患者进行诊治。所以得出的医院预约挂号系统E-R图如图3.6所
24、示。患者专家治疗信息治疗N1图3.6医院预约挂号系统E-R图3.5需求规定3.5.1功能需求医院预约挂号系统主要实现一下几部分功能:内部人员权限管理,预约挂号,门诊流量统计,公告栏管理,专家信息管理。内部人员权限管理模块:管理员以及专家的登录以及修改密码。管理员可以从登录模块进入系统对预约信息以及专家基本信息进行整理。专家可以从登录模块进入系统查询患者预约情况。 预约挂号模块:全国各地患者可以通过此模块进行预约挂号,并填写自己的挂号信息。可以查询自己先前的预约信息,也可以通过此系统取消先前的预约。门诊流量统计:记录每天门诊的患者流量,对其进行统计。专家信息管理:管理员可以对医院专家的信息进行增
25、加、修改和删除。3.5.2性能需求统应具有配置灵活、易于维护、便于扩展、性能可靠等突出优点,支持面向对象的大型数据库系统。如:SQL Server等,可处理大容量数据,并具有高安全性和可靠性。1.时间特性 操作响应时间一般在13秒之内,随之数据量的增大,操作的响应时间就要延长。2.数据精度各种数据的输入,输出要满足各种对数据精度的要求,严格按照系统要求的格式。3.适应性适应现有Windows 系统的需求,并有可能适应更高级别的系统。3.5.3运行需求1.用户界面用户界面简单直观,一目了然,给用户带来极大的便利,让用户能够简单直接的运用本系统2.硬件接口不需要特定的硬件或硬件接口进行支撑,一般微
26、机均可运行。3.软件接口运行于Windows XP或者更高版本的操作系统上。3.5.4其他需求1.保密需求:必须输入相关的正确的用户名和密码才能进入系统,并且不同的用户选择相应的权限才能登录成功。2.数据要求:对于患者和专家的联系电话,必须有严格的位数限制,经过分析研究,联系电话位数必须限制11位。3.身份证要求:为杜绝无关人员对系统进行恶意的破坏,在患者预约挂号时,必须填写自己真实的18位身份证号,输入的位数不对以及输入的身份证格式不对,系统则会提示身份证输入有误,不予存到系统数据库里,预约失败。4.可维护性:平时由管理人员可以维护,遇到大问题或难解决的问题由开发人员进行维护。5.可扩展性:
27、在系统使用过程中,如果有医院在预约挂号方面有新的要求,则应能在本系统中进行扩展,增加新的功能。4系统概要设计4.1总体设计4.1.1总体设计原理经过需求分析,已经清楚了系统所要完成的全部功能,现在决定“怎么做”,总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题。因此总体设计又称为概要设计或初步设计。通过这个阶段的工作,将划分出组成该系统的物理元素程序、文件、数据库、人工过程和文档等,但是这些物理元素仍然处于黑盒子级别。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成,以及这些模块间的相互关系。总体设计过程首先要寻找实现目标系统的的各种不
28、同的方案,需求分析阶段得到的数据流图是设想的各种可能方案的的基础,然后从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图。然后分析比较这些合理的方案,选出最佳的方案,进一步为这个最佳方案设计软件结构,设计出初步的软件结构后还要进行多方改进,从而得到更合理的结构,进行数据库设计。进行总体设计,可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。4.1.2系统功能模块设计在需求分析的时候已经对系统的的功能进行了初步分析,在这里对系统功能进行详细的设计。由于系
29、统中面向的是医院的系统管理员,医院的坐诊专家,以及广大患者,所以对系统分为三大主功能模块,即管理、专家、患者三大主功能模块。管理模块是针对管理员对系统的管理进行设计的功能模块,管理员需要进行登录系统后方可进行系统信息管理,所以首先要有登录模块。管理员登录系统后需要对专家的信息进行增加、删除和修改,所以在此主功能模块下设计了一个整理专家信息模块,管理员可以通过此模块对专家信息进行管理。管理员还需要对每天患者预约的信息进行查看整理,所以设计了一个调配专家,调配专家模块用于当患者预约的专家在预约当日临时有事不能按时坐诊的话,管理员可以通过此模块给相关患者进行专家调配,就是给相关预约患者调配一个与患者
30、预约的专家同科室的专家,然后保存到数据库里,以便患者查询预约信息。系统要求有一个统计门诊流量的功能,统计每天预约的人数,所以在管理模块下设计了一个统计门诊流量的功能模块。在主页面有一个公告栏,来公示医院的通知以及医院的新闻动态,公告栏由管理员管理,所以在管理主功能模块下设计了一个公告栏模块。专家主功能模块下设计了一个专家查询模块,专家从此模块查询患者预约信息。专家登录系统则从管理模块下的登录模块进行登录,登录的时候选择登录相应的登录权限。患者主功能模块下设计了三个分模块:预约、查询信息和取消预约。患者从网上进行预约挂号时,需要填写预约的各种信息,患者可以进入预约模块填写自己的预约信息,并保存,
31、预约成功。当患者预约成功后,患者想查询先前的预约信息,则需要一个查询模块,所以在患者主功能模块下设计了一个查询信息模块。当患者在预约当日有事不能按时就诊,患者需要取消先前的预约,所以在患者主功能模块下设计了一个取消预约的模块。医院预约挂号系统的功能模块如下图4.1所示。医院预约挂号系统管理员专家患者登录用户管理统计门诊流量治疗信息管理登录预约信息查询登录注册预约专家取消预约对患者治疗图4.1系统功能模块图4.1.3功能分析1.登录:当管理员、专家及患者用户需要进入系统时,可以从登录模块输入用户名和密码,并选择自己权限进行登录。当输入错误的信息时系统拒绝访问。2.统计门诊流量:管理员可以用此功能
32、进行每天预约的患者数量,做出统计。3.调配专家:当患者预约的专家在预约的时间临时有事情不能给患者看病的情况下,管理员可以对此患者进行专家调配,调配为同一科室的专家。4.整理专家信息:管理员通过此功能添加、修改和删除专家信息,及时更细医院里专家的信息,以方便患者进行预约。5.专家查询:专家用户登录系统后,进入到查询信息模块,查询预约自己的患者信息,以方便专家做好合理的安排和准备。6.预约:患者进入系统后,可以查看各个科室的各个专家信息,根据自己的病情预约适合的专家。7.查询信息:当患者预约完毕后,可以通过查询功能,对自己先前的预约信息进行查询、核对。8.取消预约:当患者临时有事不能到医院看病时,
33、可以通过查询信息查询到自己的预约信息,然后取消自己先前的预约。4.2数据库设计4.2.1数据库概念设计数据库一般分为三级模式:外模式、模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述。在该系统中具体的模式有:用户(用户名,密码,权限)专家信息(专家编号,专家姓名,性别,科室,特长,预约人数,当前人数,电话)预约记录(患者姓名,专家姓名,患者身份证,科室,病历,就诊日期,电话)治疗记录(患者姓名,专家姓名,科室,治疗
34、日期,治疗情况)4.2.2数据库逻辑结构设计数据库是信息系统的核心和基础,数据库设计的质量将直接关系到信息系统开发的成败和优劣。数据库设计是根据业务需求,信息需求,和处理需求,确定系统中的数据结构、数据操作和数据一致性约束的过程。数据库设计是在一个给定的应用环境中,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境,包括数据库的存取效率、数据库存储空间的利用率、数据库系统运行管理的效率等。根据医院挂号系统的功能
35、要求,选取MySQL作为后台数据库。在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。具体内容如下各表所示。登录信息表中存储的是管理员和专家以及患者登录系统时所需要的用户名和密码,以及识别登录权限信息。具体如下表4.1所示。表4.1用户登录信息表属性名 字段名类型长度Null备注姓名usernamevarchar50否主键密码passwordvarchar50否权限issysvarchar50否预约信息表主要存储患者的预约信息,患者预约挂号时填写的各种信息都存储到预约信息表中。具体如下表4.2所示。表4.2预约信息表属性名字段名类型长度Null备注患者姓名pati
36、entnamevarchar50否主键专家姓名specialistnovarchar50否患者身份证zhuanjiavarchar50否病历binglivarchar50是科室kehsivarchar50否预约日期orderdatevarchar50否患者电话telvarchar50否专家信息表用于存储医院专家的信息,专家的姓名、科室、电话、联系方式、预约人数等信息都存储啊在专家信息表中。具体如下表4.3所示。表4.3专家信息表属性名字段名类型长度Null备注专家姓名specialistnamevarchar50否专家号specialistnovarchar50否主键专家性别specialis
37、tsexvarchar50否科室keshivarchar50否专家特长techangvarchar50否预约人数ordernameint10否当前人数currentnumint10否专家电话telvarchar50否治疗信息表用于存储患者就诊的信息,管理员可以通过该表查询患者的治疗情况,同时进行就诊量的统计。具体如下表4.4所示。表4.4治疗信息表属性名字段名类型长度Null备注患者姓名hznamevarchar50否主键专家姓名zjnamevarchar50否科室keshivarchar50否治疗日期zldatavarchar50否治疗情况zlqkvarchar50否5详细设计结构化详细设计
38、是对概要设计的进一步细化,其目标是为软件结构图中每个模块提供可供程序员编程实现的具体算法。详细设计阶段的根本目标是确定应该具体地实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计阶段的任务还不具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。因此,详细设计的结果基本上决定了最终的程序代码的质量。考虑程序代码的质量时必须注意,程序的“读者”有两个人。那就是计算机和人。在软件的生命周期中,设计测试方案、诊断程序错误、修改和改进程序等等都必须首先读懂程序。
39、实际上对于长期使用的软件系统而言,人读程序的时间可能比写程序的时间还要长的多。因此,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。详细设计的目标不仅仅是逻辑上正确的实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。2详细设计常采用的描述方式有三类:图形描述、语言描述和表格描述。图形描述包括程序流程图和问题分析图;语言描述主要是程序设计语言;表格描述包括判定表等。这里主要运用了程序流程图来分析医院预约挂号系统。5.1人机界面设计5.1.1一般交互设计一般交互设计涉及
40、信息显示、数据输入和系统整体控制。(1) 保持一致性。为客户交互界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式。(2) 提供信息的反馈。向用户及时提供视觉和听觉的信息反馈,以保证在用户和系统之间及时地建立双向通信。在本系统设计过程中,基本做到了信息的及时反馈,当用户操作完一步后系统会对数据库中的数据进行及时地显示。(3) 执行有较大影响的操作前提示用户确认。在设计过程中,如果用户要执行删除操作,以及对数据库的读写操作时,都会有窗体弹出询问继续操作或者予以提示。(4) 减少两次操作间需要记忆的内容。为了避免用户为下一步操作而记忆大量数据,所以在设计过程中在需要数据传递的窗
41、体中设置全局变量,来传递数据。(5) 提高对话、移动和思考的效率。尽量减少用户击键的次数,在设计时考虑用户屏幕的布局以减少用户鼠标移动的距离,尽量避免用户在操作中发生疑问的情况。(6) 允许犯错误。允许用户的误操作尽量不对系统造成伤害。(7) 按功能对动作分类,并据此设计屏幕布局。屏幕布局尽量将软件所具有的所有功能在主页面展示,界面一目了然。5.1.2信息显示设计系统在显示用户所需要的信息时应该尽量完整、清晰和易于理解。这样才能满足用户的需求。使用不同的方式显示信息:用文字、图形、声音,按位置、移动和大小,使用颜色和省略等方式传达信息。(1) 只显示与当前工作有关的信息。在用户操作有关系统的特
42、定功能的信息时,不必看到与之无关的数据、菜单和图形。(2) 使用便于用户迅速吸收数据的方式来表示数据。(3) 使用一致的标记、标准的缩写和可预知的颜色。显示的含义应该非常准确,用户无须参照其他信息源就能理解。(4) 产生有意义的错误信息。对于系统在运行过程中产生的错误尽量给用户返回一个容易理解的错误信息,以使用户保持对系统的信任,和系统的可用性。(5) 使用窗口分隔不同类型的信息。使用不同的窗口显示、保存不同类型的信息。(6) 高效率的使用显示屏。当使用多窗口时,应该有足够的空间使得每个窗口至少都能显示出一部分。5.1.3数据输入设计用户的大部分时间用在选择菜单命令、键入数据和向系统提供输入。
43、在系统中,键盘是主要的输入介质,但是鼠标等设备的也是重要的输入手段,所以,对于他们的数据输入操作有如下约定:(1) 尽量减少用户的输入动作。为了方便用户的使用,鼠标应当尽量减少操作的幅度。(2) 保持显示信息和输入信息之间的一致性。对于用户来说,要保证其输入的数据在显示上与其他显示的视觉特征(例如:文字大小、颜色、位置等)要一致。(3) 允许用户自定义输入。用户可能希望定义自己专用的命令或略去某些类型的警告信息和动作确认,人机界面应该为用户提供这样做的机制。(4) 交互应该是灵活的,并且可调整成用户最喜欢的输入方式。用户类型与喜欢的输入方式有关,不同的用户喜欢不同的输入方式。(5) 使用当前动
44、作语境中不适用的命令不起作用。这可使得用户不去做那些肯定会导致错误的动作。(6) 让用户控制交互流。用户应该能跳过不必要的动作,改变所需做的动作的顺序,以及在不退出程序的情况下从错误状态中恢复正常。(7) 消除冗余的输入。除非可能发生误解,否则不要要求用户指定输入数据的单位;尽可能提供默认值,绝对不要要求用户提供程序可以自动获得或计算出来的信息。对于不同类型的用户在登录到系统后,由于有不同的权限,所以在主界面中会有一些项目受到限制而无法使用,所以要使这些项目不发生作用,以保证系统安全。5.2程序设计过程程序过程设计主要是在借助过程设计工具的情况下,对程序的具体实现过程进行设计。程序的主要部分设计在这个环节完成。在这个任务说明书中我们采用盒图的形式来表达程序的具体的设计过程,我们的系统设计为C/S结构,所以是客户端登陆系统的形式,盒图没有箭头,所以不允许随意转移控制,坚持使用盒图可以使程序员养成用用结构化的方式来思考问题。5.2.1登陆界面设计在用户登录时,在输入用户名和密码及用户类型的前提下将其与数据库中的数据进行比对,若一致,则打开主窗体;若不一致提示错误,并要求重新输入。注册后保存用户信息,登陆界面的的程序盒图如图5.1所示。 private void button1_Click(object sender, EventArgs e)