首页 医疗纠纷检索系统—免费毕业设计论文

医疗纠纷检索系统—免费毕业设计论文

举报
开通vip

医疗纠纷检索系统—免费毕业设计论文医疗纠纷检索系统—免费毕业设计论文 医疗纠纷信息检索系统 ——用户子系统 目 录 引言 ........................................ 1 1 医疗纠纷信息检索系统的系统分析 .................. 7 1.1 开发医疗纠纷信息检索系统的意义 .......................... 8 1.2 系统分析 ................................................ 8 1.3 开发工具选取 ...........

医疗纠纷检索系统—免费毕业设计论文
医疗纠纷检索系统—免费毕业 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 论文 医疗纠纷信息检索系统 ——用户子系统 目 录 引言 ........................................ 1 1 医疗纠纷信息检索系统的系统分析 .................. 7 1.1 开发医疗纠纷信息检索系统的意义 .......................... 8 1.2 系统分析 ................................................ 8 1.3 开发工具选取 ............................................ 9 2 医疗纠纷信息检索系统的需求分析 .................. 11 2.1 系统用户组成 ........................................... 11 2.2 对数据处理的要求 ....................................... 11 3 医疗纠纷信息检索系统的总体设计 .................. 12 3.1 数据处理流程分析 ....................................... 12 程序结构设计前的分析 ................................... 13 3.2 3.3 总体框图 ............................................... 14 4 医疗纠纷信息检索系统的功能模块 .................. 15 4.1 系统的功能模块设计 ..................................... 15 4.2 设计的准备工作 ......................................... 16 5 医疗纠纷信息检索系统的详细设计 .................. 18 5.1 数据库结构设计 ......................................... 18 5.2 用户登录模块设计 ....................................... 21 5.3 工作选项模块(MDI主窗体模块)设计...................... 24 5.4 用户信息管理模块设计 ................................... 33 5.5 数据信息统计模块设计 ................................... 36 5.6 帮助模块的设计 ......................................... 40 6 医疗纠纷信息检索系统的实现 ..................... 47 6.1 软件环境 ............................................... 47 6.2 硬件环境 ............................................... 47 结 论 ......................................... 48 致 谢 ......................................... 49 参考文献 ....................................... 50 附录1 程序清单 ................................. 50 摘 要 医疗纠纷信息检索系统是采用Visual Basic语言和大型数据库开发语言共同开发的,用于医院医务处对医疗纠纷的检索与统计。 设计本系统的目的就是为了减少过多的人工操作,使医生能够快速而且准确的完成对医疗纠纷的录入、修改、删除、查找、统计等操作,系统的开发及应用为医疗纠纷管理提供了灵活、方便的管理机制, 提高工作人员的工作效率。 本设计采用所见即所得的可视界面设计方法,在开发环境、功能上进一步完善和扩充,尤其在数据库管理、网络应用方面更胜一筹。利用Visual Basic 6.0提供的强大的可视化组件库进行编程,可以快速、高效地开发基于Windows环境的各类应用系统。在此还使用了SQL Server 2000提供的DTS服务。 现阶段本系统可实现的功能是:一、可以进行数据的录入、删除、保存等操作,便于数据的更新、维护;二、通过查询列出符合条件的详细信息;三、以上各查找结果均可以报 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 形式输出,便于分析、使用及存档管理;四、可以对数据统计,使数据更加直观的显示在用户的面前。 关键词: 医疗纠纷 Visual Basic SQL Server 数据库 DTS服务 Abstract The searching system for the medical dissension information use Visual Basic 6.0 and a big database to develop. This design is used to search and count the medical dissensions of medical affairs Dept. of the hospitals. The reason of making this design is to reduce the manpower operation and improve the effect of recording, modifying, deleting, searching and counting work etc. of medical dissension more quickly and exactly. The development and application of this system offers a flexible and convenient management system for the management of medical dissension and hasten the work effect. This system offers a kind of visual-interface-design, which means you can get the result as soon as you see the interface. It also improves and enlarges the development environment and functions, especially on data management and network application. It is faster and more effective to develop all kinds of application systems on the basic of Windows Environment by utilizing the powerful visual groupware room to program. So we use DTS of SQL Server 2000. Now the functions of this software are: first it helps the recording, deleting and storing of the data and the refreshing and protecting of the data; second it can list the detailed information by searching; third, all the results can be output in the form of report that is easy for the management of analyzing, using and storing; forth, it can count the data, so the data can be showed directly in front of the users. Keywords: Medical dissension, Visual Basic, SQL Server, database, DTS serve 引言 人类已跨入新世纪,正在进入信息时代。信息社会的到来,给全球带来了信息技术飞速发展的契机;信息技术的应用,引起了人们生产方式、生活方式和思想观念的巨大变化,极大的推动了人类社会的发展和人类文明的进步,把人类带入了崭新的时代;信息系统的建立已逐渐成为社会各个领域不可或缺的基础设施;信息已成为社会发展的重要战略资源、决策资源和控制战场的灵魂;信息化水平已成为衡量一个国家现代化程度和综合国力的重要标志。抢占信息资源已经成为国际竞争的重要内容。 管理信息系统在强调管理,强调信息的现代社会中变得越来越普及。管理信息系统作为一门学科已经跨越了若干个领域,比如管理,系统,运筹,统计以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。经过100多年的发展,信息管理的过程已经历了传统管理时期、技术管理时期、信息资源管理时期,现正逐渐向“网络信息资源管理”阶段演进。这种演进和发展对信息管理工作模式和服务模式必会造成巨大的变化,产生新的社会需要。 医疗纠纷信息检索系统是管理信息系统的一种。医疗纠纷管理的工作量是非常大的,在对医疗纠纷信息的检索过程中需要对大量的数据进行查找,同时还需要对数据进行必要的统计工作。开发本系统就是为了减少对医疗纠纷数据不必要的大量的人工操作,将这项工作交给计算速度更快的计算机,使医院的管理者能够更好的解决医疗纠纷。 设计本着方便使用者的思想,操作界面友好、直观,能够使初次使用者以最快的速度掌握本系统的使用方法。系统功能完善,处处都为使用者着想。 1 医疗纠纷信息检索系统的系统分析 1.1 开发医疗纠纷信息检索系统的意义 由于人们生活水平的提高,健康问题正逐渐的成为人们最为关注问题。随着病人的就医行为,病人与医务人员之间就建立了医患关系,这是不容置疑的问题。 病人希望的是解除病痛,病人要求的是医生用高超的医疗技术赶走病魔。而医护人员的责任和义务正是要千方百计的满足病人的希望和要求,这就是医患关系,也是医患矛盾。诸多的原因造成目前的医疗纠纷日益增多,医疗纠纷的增多同时也会给医院带来相当大的工作量,对医疗纠纷信息的查找、统计、分析等工作需要很长的时间,浪费了医务人员的时间,降低了工作效率。这就要求有一种能够代替大量人工操作的工具来提高对医疗纠纷信息检索、统计的速度。随着计算机技术的发展,通过计算机来完成对医疗纠纷的大量操作已经成为可能。 1.2 系统分析 由于医疗纠纷检索系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,保证系统安全性和可靠性,并在保证安全性和可靠性的前提下尽量满足系统的高效性,而且要保证系统数据信息的一致性。 系统的安全性。不同的用户具有不同的使用权限,具有最高权限的人员(管理员)方能录入、修改、删除数据库中的信息,具有一般权限的人员(用户)只对数据进行检索和统计的操作。 系统的一致性。系统的数据要保证一致性、准确性,当某以数据库中记录改变,与之相关联的数据库也随之变化。 系统的可靠性。由于数据量大,必须对数据及时备份和恢复。 系统的高效性。为了方便使用者,所以在系统的设计时,一定要考虑大系统使用的高效性,提高系统的使用效率。 1.3 开发工具选取 1.3.1选择Visual Basic 6.0的原因 Visual Basic是一种通用的程序设计语言,之所以选择用Visual Basic来开发数据库系统,主要因为以下3个原因:编程效率高;使用Visual Basic可以操作多种类型的数据库;在Visual Basic中可以比较方便地使用API函数和操作I/O接口。笔者在编程实践中使用过不同的计算机语言,感觉Visual Basic在编程效率上是比较高的。在Visual Basic 6.0中有了功能强大、使用方便的ADO(Active Database Object)技术,ADO是微软制定的应用程序级数据库访问接口,支持所有OLD DB数据厂商。ADO包括了现有的ODBC,而且占用内存少,访问数度更快。同时提供的ADO控件,可以用最少的代码创建数据库应用程序。Visual Basic可以面向多种类型的数据库,除开发单用户的数据库系统外,还可以开发多用户(或称为网络数据库的)数据库系统。 1.3.2大型数据库 本系统是为了医疗纠纷信息处理开发的医疗纠纷信息检索系统,因为医疗纠纷信息有需要定时更新、添加的特点,所以要求系统的数据库为大型数据库,所以在数据库的选择上我选择了SQL Server 2000。因为SQL Server 2000提供了与众多高级数据库管理器相同的 运行性能,但是其价格却远远低于它们;而且SQL Server 2000还与Windows NT集成,是公认的运行在Windows NT平台上的最佳数据库。可见是在低造价平台上显示突出性能的数据库,所以选择它既能满足技术上的可行性,又满足经济可行性。 1.3.3支持网上运行 现在正处于“信息爆炸”的时代,如果开发的系统能支持网上运行,它就能实现资源共享。而我们开发的医疗纠纷信息检索系统完全可以实现网上网上信息资源的共享。SQL Server 2000正是一种可以在Windows NT平台上运行的数据库,这样就为本系统实现网上运行提供了技术上的可行性。 综上所述,可以采用Visual Basic 6.0和SQL Server 2000来开发医疗纠纷信息检索系统。 2 医疗纠纷信息检索系统的需求分析 2.1 系统用户组成 为了数据的安全性,系统将用户分为管理员和用户两类。用户只能对数据进行检索和统计操作;管理员则可以对数据进行录入、修改、删除等操作。这样可以大大的增加数据的安全性,只有管理权利的工作人员才能对数据操作。 2.2 对数据处理的要求 对数据处理的要求如下: 在设计处理上要求按住院号输入对应的相关数据。 在数据录入的方式上,可以随时录入,以可以集中录入。 在数据录入时能方便地作单位选择。 要求能方便地对现存的数据进行浏览、修改和删除。 能按科室统计、按医生统计、按年份统计和按等级统计,并且统计结果可以在屏幕上显示。 3 医疗纠纷信息检索系统的总体设计 3.1 数据处理流程分析 数据库或数据表结构确定之后,在实际的数据处理程序设计之前需要对所处理的数据处理流程作必要的分析。所谓对数据处理流程作必要的分析是指找出各数据之间的主要关系,数据存取的主要走向。当然,在实际的数据处理过程中还会有些细节问题。在遇到这些细节问题时,及时处理即可。另外。有些细节问题不是在做数据处理流程分析时事先都能知道的。 在数据关系简单的情况下对数据处理,可以在将数据库设计好之后直接设计程序。但是按正规的数据库管理系统的设计程序,无论要处理的数据关系复杂与否都应在做程序设计之前做好数据的流程分析。本系统的数据关系不算太复杂但是也不简单,因此还是要仔细研究数据处理过程和各类数据之间的关系。 对于现在这个数据数据处理系统来说,最主要的工作实际就是三项:要将医疗纠纷情况及时的录入数据库;对医疗纠纷能够进行复杂的检索;能够对数据库中的数据按一定的条件进行统计。 通过对用户的需求分析和数据结构分析,得到本系统的数据处理 工作流程,图1为数据处理图。数据可以对患者信息表,医生信息表和科室信息表进行录入,修改和删除操作;查找和统计也是对患者信息表,医生信息表和科室信息表进行操作。 数据录入 数据修改 数据删除 患者信息表 医生信息表 科室信息表 查找 统计 图1数据处理图 3.2 程序结构设计前的分析 系统总体设计的目的是安排一个数据库管理系统如何按照确定的要求工作,怎么去做这些工作,以及各个程序之间是什么关系。 进行程序结构设计前分析首先要确定本程序大致需要做些什么工作,这些工作的顺序是个什么情况。分析的目的是要找出程序的设计思想是否合适,是否有遗漏的问题等。 对系统总体设计进行简要的说明如下: (1)按照结构化程序设计的原则,一个程序或系统只能有一个入口和一个出口。本系统以“用户登录”程序作为入口,以“退出”作为出口。其他程序或模块均没有退出系统的功能。 (2)系统初始的工作顺序为“用户登录”——“工作选项”。 (3)工作选项是系统的主程序或称主模块。在工作选项中设置 4个功能选项。“工作选项”模块中的4个功能之间为平级关系,即这4项功能是相互独立的。 (4)需要体现各功能模块对其下级模块的调用。 (5)系统总体设计只是对系统工作流程的一种概念性的表示,程序运行时的细节过程和系统内部的一些调用关系不必全部列出。 (6)系统运行时的数据处理关系不需要列出。 3.3 总体框图 通过对程序结构设计前的分析,可以得到图2为工作流程图。 用户登录 工作选项 查系统管 询统计理 退重用按按按按数数数 出新户科医年等据据据 登管室生份级录修删 录理统统统统入改除 计计计计 注删修 册除改 用用密 户户码 图2 总体框图 4 医疗纠纷信息检索系统的功能模块 4.1 系统的功能模块设计 根据系统的需求分析,结合实际情况,系统分为以下七个模块: 用户登录模块;工作选项模块(MDI主窗体模块);用户信息管理模块;数据信息管理模块;数据信息查询模块;数据信息统计模块;帮助模块。 4.2 设计的准备工作 在Visual Basic 中创建一个工程,打开VB 6.0 在弹出的“新建工程”窗口里单击“打开”按扭。即新建一个工程。 在设计中使用的重要控件有:Ado Data控件、DataGrid控件、MSchart控件等。 Ado Data控件使用Microsoft ActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合OLE DB规范的数据源。使用Visual Basic的类模块也可以很方便的创建子集的数据提供者。尽管可以在应用程序中直接使用ActiveX数据对象,但图3的ADO Data控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使可以用最少的代码创建数据库应用程序。 图3 Ado Data控件 在VB开发环境中选择主菜单“工程”中的“部件”子菜单,在控件标签页中选择“Microsoft ADO Data Control 6.0(OLEDB)”控件。然后单击“确定”按钮,这样Ado Data控件就引入到工程开发环境的工具箱中,就能够看见Ado Data控件的图标。然后单击该图标, 就可以在窗体中的任何位置添加Ado Data控件。 DataGrid控件是通过绑定ADO数据控件来使用的。DataGrid控件是数据网格控件。利用DataGrid控件可以同时浏览或修改多个记录的数据,而且也可以用于输入大批量的数据。 DataGrid控件是ActiveX控件,因此默认的工具箱中并没有这个控件按钮,需要时也要添加。在控件对话框中选择“Microsoft DataGrid Control 6.0 (OLEDB)”单击“确定”按钮,此时在工具箱中出现DataGrid按钮。 MSChart控件以图形方式显示数据的图表。支持2维和3维显示,支持条形图、线形图、饼图以及组合形式的图表,它可以与数组、ADO数据控件关联形成数据图表。 MSChart控件不是Visual Basic内部控件,需要在“部件”对话框中选择“Microsoft Chart Control 6.0”。单击“确定”按钮,将其加入到工具箱。这时,就可以在窗体中添加并使用MSChart控件了。 5 医疗纠纷信息检索系统的详细设计 5.1 数据库结构设计 库结构设计之前的数据分析的目的在于研究本系统究竟要处理哪些数据,这些数据是怎样组成的。下一步是根据数据的组成情况合理安排库结构。 根据需求分析,将数据库的结构设计为一库四表,这样可以减少数据的冗余程度,不必要的重复将全部消除,提高了查询的效率。图4为数据库的结构。 用户信息表 患者信息表 医疗纠纷库 医生信息表 科室信息表 图4 数据库结构 根据系统需求分析,数据库采用Microsoft SQL Server 2000,它完全可适合工作需求,并且它所支持的数据类型十分丰富,它是一种非过程化的程序语言,SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是关系型数据库管理系统的一部分,由它决定对指定数据库存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。也就是说,没有必要写出将如何做某件事情,只需写出要做什么,它就会完成需要的操作。SQL可用于所有用户的DB活动模型,SQL语言命令少且易于掌握。还有就是所有主要的关系数据库管理系统都支持SQL语言,所有用SQL编写的程序是可移植的。各数据表结构设计: 表1 用户信息表--input表 字段名称 数据类型 字段大小 作用 必填字段 索引 是否主键 Username Nvarchar 8 用户名 是 无 是 Password Nvarchar 18 密码 是 无 否 Usertype int 4 用户类型 是 无 否 表2 患者信息表—patient表 字段名称 数据类型 字段大小 作用 必填字段 索引 是否主键 PID Nvarchar 10 住院号 是 无 是 Pname Nvarchar 10 患者姓名 是 无 否 Ptel Nvarchar 11 电话 否 无 否 PSay Nvarchar 50 投诉原因 是 无 否 pDate Nvarchar 8 投诉日期 否 无 否 pResult Nvarchar 10 投诉结果 是 无 否 pClass Nvarchar 15 投诉等级 是 无 否 pPay int 4 赔偿金 否 无 否 hDoctorid Nvarchar 10 主治医生 是 无 否 表3 医生信息表—doctor表 字段名称 数据类型 字段大小 作用 必填字段 索引 是否主键 doctorID Nvarchar 10 医生是 无 是 代码 doctorName Nvarchar 10 姓名 是 无 否 Doctorsex char 2 性别 是 无 否 Doctortel Nvarchar 13 电话 否 无 否 officeID Nvarchar 6 所在是 无 否 科室 代码 表4 科室信息表—office表 字段名称 数据类型 字段大小 作用 必填字段 索引 是否主键 ID Nvarchar 6 科室代码 是 无 是 officeName Nvarchar 16 科室名称 是 无 否 officeTel Nvarchar 11 科室电话 否 无 否 从实际的医疗纠纷数据的管理来说,患者的住院号是唯一的,就像是身份证号码一样,每个患者都有与之唯一对应的住院号。医生在医院也有一个与之对应的代码,虽然存在重名的现象,但是医生的代码是不会重的,这样就很好的解决了重名的问题。在患者信息表、医 生信息表和科室信息表存在对应关系,定义了两组对应关系:患者信息表中的hDoctorid字段与医生信息表中的doctorId字段为多对一的关系;医生信息表中的officeId字段与科室信息表中的ID字段为多对一的关系。 图5为各表之间的关系。 图5 各表之间关系图 5.2 用户登录模块设计 5.2.1窗体模块的功能 本系统的使用者分为两类:管理员和用户。所以在设计登录窗体时,要比普通的登录窗体多增加选项卡控件,用来区分登录者的身份。选项卡数为2,第一个选项卡设置为用户登录区,在其选项区中使用 ComboBox控件,用下拉式列表显示用户信息表中全部用户的用户名,这样可以方便使用者登录。第二个选项卡设置为管理员登录区,由于关系到系统的安全性,所以管理员的用户名必须由登录人员自己添写。同时为了避免非法用户的干扰,对于用户登录窗口,如果在用户连续输入错3次密码,则系统将会自动退出。 5.2.2登录功能的实现 通过用户在登录选项卡中添加的用户名和密码与用户信息表中的信息相比较,如果用户名的密码全部正确,则可以进入系统,用户进入用户界面,管理员则进入管理员界面。要是用户名和密码与用户信息表中的信息不完全符合,则用户无权进入系统进行操作。 用户名与密码与用户信息表中信息比较时用到了ADO操作数据库。 ADO是AxtiveX Data Object的缩写,它是Microsoft数据库应用程序开发的新接口,是Microsoft新的数据访问技术,是建立在OLE DB之上的高层数据库访问技术。ADO被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。 ADO最基本的操作流程:初始化COM库,引入ADO库定义文件;用Connection对象连接数据库;利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取 得结果记录集进行查询、处理;使用完毕后关闭连接释放对象。 5.2.3窗体界面的设计 在工程中添加窗体,命名为frmlogin,图6为窗体的界面。 图6 登录窗体的设计示意图 表5的内容为该窗体上的控件及其属性。 表5 登录窗体的主要控件的属性设置以及功能表 控件 名称 属性 功能 Form frmlogin BorderStyle属性设为1,Caption属性为用来显示登录窗 “登录” 体 Label Label1 Caption属性设置为“医疗纠纷检索系 统” Label Label2 Caption属性设置为“用户名:” Label Label3 Caption属性设置为“密码:” Label Label4 Caption属性设置为“管理员:” Label Label5 Caption属性设置为“密码:” SSTab SSTab1 Caption属性设置为“用户登录” 区分用户和管理 员登录 表5 登录窗体的主要控件的属性设置以及功能表 (续表) Textbox Text1 Text属性设为空,将PasswordChar用来输入 属性设为“*” 用户密码 Textbox Text3 Text属性设为空,将PasswordChar用来输入管理 属性设为“*” 员密码 ComboBox Combo1 Text设为空 用来输入用户 名 CommandButton Command1 Caption属性设为“登录” 进入用户界面 CommandButton Command2 Caption属性设为“取消” CommandButton Command3 Caption属性设为“登录” 进入管理员界 面 CommandButton Command4 Caption属性设为“取消” 再对窗体和控件的大小,位置,字体还有背景都一一进行设置即可。 5.2.4窗体的工作流程/方式 在用户信息表Input表中的usertype是用来确定登录用户身份的,usertype值为0表示登录者身份为用户,usertype值为1时表示登录者的身份为管理员。 在验证用户时,如果登录者选择了管理员身份,则系统将会在数据库中的用户信息表Input表中进行查询,以确定是否存在相应的用户名和口令,以及usertype是否为1。如果登录者选择了用户的身份,则同样在input表中进行查询,以确定是否存在相应的用户名和口令,不同的是usertype值此时为0。 如果登录用户所选择的身份,及其输入的用户名口令,和数据库中对应的用户名和密码吻合,则登录用户登录成功,此时系统会自动退出登录窗体,并进入MDI主窗体。 如果用户所输入的用户名和口令,没有通过数据库验证,则登录用户登录失败。用户需要重新输入用户名和口令,如果用户登录失败3次,则系统自动退出登录窗体,并提示用户"您无权操作本系统!再见~" 5.3 工作选项模块(MDI主窗体模块)设计 5.3.1窗体模块的功能 本系统采用多文档界面(Multi Document Interface ,MDI)来组 织系统中各个窗体。多文档界面是一种Windows用户界面标准。它有一个父窗体,在典型情况下,父窗体用来显示程序菜单以及包含子窗体。 在工程中添加一个MDI窗口,使用默认名称MDIForm1。 5.3.2窗体菜单的设计 MDI主窗体是整个系统的容器,为了方便用户的使用,特地设计了菜单。在主菜单中,设计了5个根菜单——“系统”、“管理”、“查询”、“统计”和“帮助”。 “系统”菜单用来管理用户信息和重新登录的管理;“管理”菜单是对医疗纠纷信息的管理;“查询”菜单是用来对医疗纠纷信息的详细查询的操作;“统计”菜单是用来对医疗纠纷信息进行相关统计的操作;“帮助”菜单用来显示有关系统的帮助信息。 不同类型的用户进入系统显示不同菜单选项。 “系统”菜单项的子菜单中,用户可以单击“密码修改”进入密码修改界面,对用户密码进行修改,以可以单击“重新登录”进入登录界面,重新选择登录身份进入系统,用户也可以单击“退出”,来退出MDI窗体。管理员除了有普通户的功能外,还可以单击“用户管理”进入用户管理界面,进行添加用户,删除用户,修改用户密码操作。用户进入系统是将“用户管理”项设置为不可以使用。如果登录用户是以用户身份登录,则显示图7,该图为MDI主窗体的“系统”菜单项。如果登录用户是以管理员身份登录,则显示图8,该图为MDI主窗体的“系统”菜单项。 图7 用户的“系统”菜单 图8 管理员的“系统”菜单 “管理”菜单项的子菜单中的各选项只对管理员有效,用户登录时,菜单上各项设置为不可使用,这样可以提高系统的安全性。当管理员登录时,“管理”菜单的子菜单中管理员可单击“与患者相关„„”进入患者信息主界面,也可以单击“与医生相关„„”进入医生信息主界面,还可以单击“科室情况”进入科室情况的界面对科室的信息进行操作。如果登录用户是以用户身份登录,则显示图9的MDI主窗体的“管理”菜单项。如果登录用户是以管理员身份登录,则显示图10的MDI主窗体的“管理”菜单项。 图9 用户的“管理”菜单 图10 用户的“管理”菜单 “查询”菜单项的子菜单只有一项,用户的管理员都可使用,用户可以单击“投诉患者查询”进入查询主界面,进行查询操作。则图11为MDI主窗体的“查询”菜单项。 图11 “查询”菜单 “统计”菜单项的子菜单只有一项,用户与管理员都可使用,用户可以单击“详细统计”进入统计主界面。则图12为MDI主窗体的“统计”菜单项。 图12 “统计”菜单 “帮助”菜单中定义了“帮助主题”子菜单,单击可进入帮助文档。“技术支持”的下级子菜单中是2个电子邮件,用户可以通过网络得到系统技术的支持。“关于”子菜单,单击它可以显示有关系统的信息。在用户和管理员主窗体中均有效,则图13为MDI主窗体的“帮助”菜单项。 图13 “帮助”菜单 表6为整个MDI主窗体的菜单表的内容。 表6 MDI窗体的菜单设计 对象 属性 设置 一级菜单——“系统” 标题 系统(&S) 名称 s “系统”菜单的二级菜单 标题 密码修改 名称 pmodify 快捷键 Ctrl+A “系统”菜单的二级菜单 标题 用户管理 名称 lognew 快捷键 Ctrl+N “系统”菜单的二级菜单 标题 重新登录(&P) 名称 rnew 表6 MDI窗体的菜单设计 (续表) “系统”菜单的二级菜单 标题 退出 名称 exit 快捷键 Ctrl+B 一级菜单——“管理” 标题 管理(&F) 名称 query “管理”菜单的二级菜单 标题 与患者相关„„ 名称 patientabout 快捷键 Ctrl+D “管理”菜单的二级菜单 标题 与医生相关„„ 名称 doctorabout 快捷键 Ctrl+E “管理”菜单的二级菜单 标题 科室情况 名称 officeroom 快捷键 Ctrl+F 一级菜单——“查询” 标题 查询(&L) 名称 ppquery “查询”菜单的二级菜单 标题 投诉患者查询 名称 pquery 一级菜单——“统计” 标题 统计(&G) 名称 tong “统计”菜单的二级菜单 标题 详细统计 名称 tj 一级菜单——“帮助” 标题 帮助(&H) 名称 help “帮助”菜单的二级菜单 标题 帮助主题 名称 helpzhuti “帮助”菜单的二级菜单 标题 技术支持(&T) 名称 technology “帮助”菜单的三级菜单 标题 电子邮件1 名称 Email1 “帮助”菜单的三级菜单 标题 电子邮件2 名称 Email2 “帮助”菜单的二级菜单 标题 关于医疗纠纷检索系统(&A) 名称 about 快捷键 Ctrl+K 5.3.3窗体工具栏的设计 在应用程序中紧贴着菜单栏下面带有图案的条形区域被称为工 具栏,工具栏可以被认为是菜单的一个简集。在工具栏中可以把菜单 中的主要操作以图形的形式安排进来,这样可以给用户在使用上带来方便。 工具栏不是Visual Basic的基本控件,需要在使用时添加进来,添加方法是使用Microsoft Windows Common Controls 6.0,将该部件加入到工具箱。工具栏的默认名称是ToolBar。使用鼠标双击工具栏图标,工具栏即被加入到窗体并紧贴在菜单栏的下方,这时菜单栏和工具栏之间出现一条横线。 在工具栏中可以使用文字表示各工具的作用,但是使用图标表示各个工具的作用会使操作更加方便。在工具栏中加入图标,需要一个被称为图像列表框的控件与之配合才能将图标加入其中,图像列表框的名称是ImageList。 由于不同身份的用户进入系统时显示不同的工具栏,所以本系统设置了2个工具栏,一个是管理员工具栏ToolBar1,另一个是用户工具栏ToolBar2。 在工具箱中找到“ToolBar”,双击它后会在MDI窗体上显示出来,再找到“ImageList”,也双击到MDI窗体上。然后右键单击工具栏,点击“属性”,在弹出的“属性”对话框中的通用选项卡上修改“样式”的属性值为“1-trbFlat”;“图像列表”的属性值为“ImageList1”。再选中“按钮”选项卡,点击“插入按钮”,其中管理员工具栏ToolBar1有13个按钮,表7为管理员工具栏属性设置。用户工具栏有9个按钮,表8为用户工具栏属性设置。 表7 管理员工具栏ToolBar1的按钮属性设置 索引 关键字 样式 图像 工具提示文本 1 4-tbrPlaceholder 0 2 4-tbrPlaceholder 0 3 s11 0-trbDefault 3 密码修改 4 s12 0-trbDefault 9 重新登陆 5 s13 0-trbDefault 7 退出 6 4-tbrPlaceholder 0 7 s14 0-trbDefault 5 与患者相关 8 s15 0-trbDefault 4 与医生相关 9 s16 0-trbDefault 6 科室情况 10 4-tbrPlaceholder 0 11 s17 0-trbDefault 8 查询 12 s18 0-trbDefault 1 统计信息 13 s19 0-trbDefault 2 关于 表8 用户工具栏ToolBar2的按钮属性设置 索引 关键字 样式 图像 工具提示文本 1 4-tbrPlaceholder 0 2 4-tbrPlaceholder 0 3 s11 0-trbDefault 3 密码修改 4 s12 0-trbDefault 9 重新登陆 5 s13 0-trbDefault 7 退出 6 4-tbrPlaceholder 0 7 s17 0-trbDefault 8 查询 8 s18 0-trbDefault 1 统计信息 9 s19 0-trbDefault 2 关于 这两个工具栏分别用在不同的身份登录显示的MDI窗体里,管理员工具栏是显示在管理员登录时的MDI窗体里,而用户工具栏则显示在用户登录时显的MDI窗体里。下面设置工具栏里的图像列表。右键单击“ImageList1”的“属性”,在弹出的“属性页”对话框中选中“图像”选项卡,按照工具栏里对各按钮的图像索引来设置相应的图像索引。点击“插入图片”按钮来插入对应索引的图片,图片插入完毕后,点击“确定”按钮退出对话框。 5.3.4窗体状态栏的设计 状态栏可以用来显示系统的某些信息,比如日期时间等,使用状 态栏可以使用户界面增色不少。 状态栏不是Visual Basic的基本控件,它被包含在名称为Microsoft Windows Common Control 6.0的部件之中。 在Visual Basic编辑状态下打开部件选项,在“控件”列表中选择Microsoft Windows Common Control 6.0,单击“确定”按钮将其加入到工具箱。 在工具箱里找到状态栏图标将其加入到窗体。用鼠标右键单击状态栏,出现弹出菜单,选择“属性”选项即可打开状态栏的“属性页”对话框。状态栏属性页打开之后首先选择通用属性,使用默认属性即可,不必调整。状态栏刚装入窗体时只有一个窗格,在“窗格”选项卡中单击“插入窗格”按钮,在状态栏中建立4个窗格,然后向窗格中放置图片,单击“浏览”按钮查找需要的图片,图片找到后将其选定即可。 本系统第一栏显示登录用户信息,第二栏显示工作状态,第三栏显示日期,第四栏显示时间。 状态栏中的第一栏称为StatusBar1.Panels(1),第二栏称为StatusBar1.Panels(2),以此类推。 图14为用户MDI主窗体,图15为管理员MDI主窗体。 图14 用户MDI主窗体设计界面 图15 管理员MDI主窗体界面设计 5.3.5窗体的工作流程/方式 MDI主窗体的作用很明确,它主要作为整个系统中的各个管理窗体的父窗体。对于不同身份的用户(管理员高和用户),MDI主窗体显示出不同的菜单项和不同的工具栏。 对于管理员,由于管理员具有系统中的所有权限,因此MDI主窗体将会显示所有的菜单项,可以通过单击菜单项上的选项来管理医疗纠纷信息和用户信息等全部操作。 对于用户,由于用户的权限受到了一定的限制,所以MDI主窗体的菜单项中有些为不可使用,用户可以通过单击菜单项中选项来查询医疗纠纷信息和对信息进行统计和重新登录等操作。 5.4 用户信息管理模块设计 5.4.1窗体模块的功能 该模块只有管理员有权使用。利用该模块可以进行添加用户、删除用户和修改用户密码的操作。添加用户可以设置新用户名、用户密码和用户类型;删除用户可以删除用户信息表中已有的用户;修改密码可以对用户的密码进行修改。 5.4.2窗体界面的设计 在工程中添加一个窗体,命名为“frmuser”,该窗体用来实现对用户信息管理的操作界面。表9的内容为frmuser窗体中各个控件属性。 表9 frmuser窗体的控件及其属性 控件 名称 属性 Form frmuser BorderStyle属性设为1,Caption属性设为“用户管 理” Frame Frame1 Caption属性设为“选项” Frame Frame2 Caption属性设为空 CommandButton cmdadd Caption属性设为“添加” CommandButton cmdadduser Caption属性设为“添加用户” CommandButton cmdchpwd Caption属性设为“改变密码” CommandButton cmdde Caption属性设为“删除” CommandButton cmddeleteuser Caption属性设为“删除用户” CommandButton cmdquit Caption属性设为“取消” CommandButton cmdquit1 Caption属性设为“取消” CommandButton Command1 Caption属性设为“关闭” ComboBox Combo1 Backcolor属性设为&H80000018& TextBox Text1 Backcolor属性设为&H80000018& TextBox Text2 Backcolor属性设为&H80000018& TextBox Text3 Backcolor属性设为&H80000018& 表9 frmuser窗体的控件及其属性 (续表) Label Label1 Caption属性设为“用户名:” Label Label2 Caption属性设为“输入密码:” Label Label3 Caption属性设为“确认密码:” Label Label4 Caption属性设为“用户类型:” 图16为窗体的设计示意图。图17为添加用户时的示意图,图 18为删除用户时的示意图。 图16 用户管理界面示意图 图17 添加用户时的界面示意图 图18 删除用户时的界面示意图 在工程中添加一个窗体,命名为“changpsw”,该窗体将被用来实现用户密码修改的功能。在该窗体中只能修改用户的密码,修改密码时需要用户的用户名和原密码,新密码需要添加2次,以确定新密码添加的正确性。表10的内容为Changpsw窗体中的控件属性。图19为窗体的设计示意图。 表10 Changpsw窗体的控件及其属性 控件 名称 属性 Form changpsw BorderStyle属性设为1,Caption属性设为“用户管理”, Maxbutton属性设置为False CommandButton Command1 Caption属性设为“修改” CommandButton Command2 Caption属性设为“退出” Image Image1 Label Label1 Caption属性设为“密 码 修 改” Label Label1 Caption属性设为“用户名:” Label Label1 Caption属性设为“原密码:” Label Label1 Caption属性设为“新密码:” Label Label1 Caption属性设为“确认新密码:” TextBox Text1 TextBox Text2 TextBox Text3 TextBox Text4 图19 密码修改界面示意图 5.4.3窗体的工作流程/方式 本部分所介绍的窗体具有管理员身份的用户能够使用,普通用户只能使用密码修改功能。具体工作如下: (1)单击“添加用户”按钮,在窗体中的添加用户框中按给定条件输入用户名、密码、确认密码选择用户类型,然后单击选项框中的“添加”按钮,添加成功后弹出对话框提示注册成功。 (2)单击“删除用户”按钮,在窗体中的删除用户框中输入要删除用户的用户名即可,删除成功后弹出对话框提示删除成功。 (3)单击“修改密码”按钮,弹出密码修改窗体,在用户名和原密码文本框中输入要修改密码的用户名和密码,在新密码和确认新密码文本框中输入新设置的密码,修改成功后弹出对话框提示修改成功。 5.5 数据信息统计模块设计 5.5.1窗体模块的功能 本系统除了可以对数据进行检索外,还可以对数据按照一定的条件进行统计,这样可以使工作人员对医疗纠纷信息有多元化的理解, 同时还可以使医院更好地处理医疗纠纷 5.5.2窗体界面的设计 设计窗体前要先将MSchart控件加入到工具箱中,在第6章中已经介绍了添加MSchart控件的方法,在此就不多说了。表11的内容为详细统计窗体(frmcount)及其控件属性。 表11 frmcount窗体的控件及其属性 控件 名称 属性 Form frmcount BorderStyle属性设为1,Caption属性设为“详细统 计”,MaxButton属性设为False,MDIChild属性设为 True Label Label1 Caption属性设为“详细统计” MSChart MSChart1 DataSource属性设置为Adodc1,Enable属性设置为 False MSChart MSChart2 DataSource属性设置为Adodc2,Enable属性设置为 False MSChart MSChart3 DataSource属性设置为Adodc3,Enable属性设置为 False MSChart MSChart4 DataSource属性设置为Adodc4,Enable属性设置为 False Shape Shape1 BorderColor属性设置为&H80000001&,shape属性设 置为4-Rounded Rectangle,BorderWidth属性设置为2 Line Line1 BorderColor属性设置为&H00008080&,BorderWidth 属性设置为2 SSTab SSTab1 Adodc Adodc1 表11 frmcount窗体的控件及其属性 (续表) Adodc Adodc2 Adodc Adodc3 Adodc Adodc4 ComboBox Combo1 CommandButton Command1 Caption属性设为“返回” CommandButton Command2 Caption属性设为“打印” CommandButton Command3 Caption属性设为“打印” CommandButton Command4 Caption属性设为“选定” CommandButton Command5 Caption属性设为“打印” CommandButton Command6 Caption属性设为“打印” DataGrid DataGrid1 DataSource属性设置为Adodc1 DataGrid DataGrid2 DataSource属性设置为Adodc2 DataGrid DataGrid3 DataSource属性设置为Adodc3 DataGrid DataGrid4 DataSource属性设置为Adodc4 Frame Frame1 Caption属性设为“数值统计” Frame Frame2 Caption属性设为“图表分析” Frame Frame3 Caption属性设为“数值统计” Frame Frame4 Caption属性设为“图表分析” Frame Frame5 Caption属性设为“选择科室:” Frame Frame6 Caption属性设为“数值统计” Frame Frame7 Caption属性设为“图表分析” Frame Frame8 Caption属性设为“数值统计” Frame Frame9 Caption属性设为“图表分析” 图20为整个窗体的设计。 图20 frmcount窗体设计界面 5.5.3打印图表 在使用 MSChart 控件时,发现MSChart并没有提供打印的功能,因为以前使用的 Graph 控制项,是有打印功能的。经过研究之后,发现只有一个 EditCopy 方法可以利用来打印。 EditCopy 方法的功能:以 Windows 中继文件格式将目前图表的 图片复制到剪贴簿中。它同时将建立图表使用的 资料 新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单 复制到剪贴簿中。 程序码如下: Private Sub Command1_Click() '复制 MSChart 控制项的内容,包括图表及资料 MSChart1.EditCopy Printer.Print " " '从剪贴簿中抓出图表来打印 Printer.PaintPicture Clipboard.GetData(), 0, 2500 Printer.EndDoc End Sub 5.5.4窗体的工作流程/方式 本模块的功能全部用户均有权使用,并且可以对图表进行打印。具体的统计功能的实现如下: (1)按科室统计。单击 “按科室统计” 选项卡,在选项卡的“数值统计”框中显示的是按科室统计后的数值,在选项卡的“图表分析”框里显示的是各科室统计数值的图表形式。 (2)按医生统计。单击 “按医生统计” 选项卡,在选项卡的“数值统计”框中显示的是统计后的数值,在选项卡的“图表分析”框里显示的是对医生医疗纠纷情况统计数值的图表形式。在下拉列表框里可以选择医生所在的科室,单击“选定”按钮,在选项卡的“数值统计”框中显示的是对选定科室医生统计后的数值,在选项卡的“图 表分析”框里显示的是对选定科室医生医疗纠纷情况统计数值的图表形式。 (3)按年份统计。单击 “按年份统计” 选项卡,在选项卡的“数值统计”框中显示的是按年份统计后的数值,在选项卡的“图表分析”框里显示的是按年份统计数值的图表形式。 (4)按等级统计。单击 “按等级统计” 选项卡,在选项卡的“数值统计”框中显示的是按医疗事故等级统计后的数值,在选项卡的“图表分析”框里显示的是按医疗事故等级统计数值的图表形式。 5.6 帮助模块的设计 5.6.1帮助模块的功能 联机帮助系统是任何一个完备的应用软件所不可缺少的重要组成部分,一个好的联机帮助系统可以使用户在软件使用过程中能够迅速掌握软件的操作、使用方法。为了使开发的软件具有专业水准,就必须考虑为软件制作一个新颖、实用的联机帮助系统。下面将要介绍的chm格式的HtmlHelp联机帮助系统即是一个不错的选择。 5.6.2帮助文件的制作 本系统的帮助文件是利用Microsoft公司推出的下一代联机帮助系统HtmlHelp制作的。 标准的HtmlHelp帮助文件主框架窗口由位于框架上方的工具条、位于框架左侧的包含有目录、索引以及搜索等选项卡的浏览窗口和位于窗口右侧的用于显示相应主题内容的视图构成。HtmlHelp帮助文件的扩展名也由WinHelp的.hlp变为.chm,开发工具也从Help Workshop换为HtmlHelp Workshop。 在VC安装盘中的HtmlHelp目录下可以找到该工具的软件安装包。也可以从微软官方网站得到最新版本。 在安装成功后,通过HtmlHelp Workshop工具即可很方便的开发HtmlHelp帮助系统的chm帮助文件了。HtmlHelp帮助系统是基于HTML文件及其相关图像、脚本等文件的,chm帮助文件中包含有若干纯HTML格式的主题文件,每一个主题文件都表示帮助系统中的一个主题。由于HtmlHelp帮助系统是基于HTML格式的各主题文件的,因此在建立帮助系统工程之前需要对各部分的帮助内容进行规划,这主要包括对目录结构的设计、帮助内容的主题划分以及HTML文件的制作等。图21为HtmlHelp Workshop工具工作界面。 图21 HtmlHelp Workshop工具工作界面 制作联机帮助前的准备工作是要先制作主题内容,需要先将具体的内容做成html文件。 启动HtmlHelp Workshop后通过File菜单下的New菜单项将弹 出新建工程对话框。列表框中给出了要建立的文件类型,分别为工程文件、文本文件、HTML文件、目录文件和索引文件。这里选取Project,以建立一个工程文件。系统将会显示新建工程向导,并询问是否需要转换现有的WinHelp工程。这里直接点击"下一步"以新建一个工程,向导将进入到创建工程文件对话框以指定要建立的工程文件。建立的工程文件以hhp为后缀,用于管理组成帮助文档的所有文件,它包含了帮助系统中所有源文件的名字和位置以及其它有关帮助系统定义和选项的设置信息。 向导的下一步,询问是否将现有的目录文件(.hhc)、索引文件(.hhk)或主题文件(.htm)添加到工程。如果选中某种文件就要指出这些文件的名字及存放路径。如果不添加,也可以在建立了工程后再行添加。最后,在完成向导对话框结束向导并创建一个新的工程。向导将自动加上必要的工程文件设置,这些设置都可以在项目选项对话框中修改。左侧三个选项卡是分别用来对工程文件、目录文件和索引文件进行设置和编辑,在每个选项卡的左侧均列有与之相关的工具按钮。 点击“改变工程”选项按钮,将弹出图22的工程选项设置对话框。在General选项卡中设置帮助系统的标题(Title编辑框)为“医疗纠纷检索系统用户 手册 华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载 ”、在运行时显示的默认主题文件(Default File编辑框)为概述.htm。 图22 工程选项设置对话框 HtmlHelp联机帮助系统通过目录文件对其所有的主题文件进行组织管理,一个设计良好的目录结构将可以使用户能够快速检索到相关的帮助主题。在HtmlHelp Workshop左侧选项卡窗口中点击Contents选项卡,将弹出提示对话框以询问是创建一个新的目录文件还是打开一个已经存在的目录文件。 在建立目录文件后,可以在Contents选项卡对目录文件进行定制。点击目录属性按钮将弹出目录属性设置对话框。HtmlHelp Workshop为帮助系统目录的显示格式提供了默认的设置,可以通过改变目录属性来定制目录的显示格式。但通常多直接使用系统的默认设置。 目录文件根据帮助系统的内容,按照层次关系将各主题内容以树型结构组织起来。目录文件定义的内容和组织结构将显示在帮助系统左侧的目录窗格中,共包含标题项、和主题项两种类型的目录项。目录项可以包含子目录项和主题项,既可以与一个主题文件相关联,也 可以不关联任何主题文件;而主题项表示了某主题的具体帮助内容,必须与一个主题文件或URL地址相关联。在运行编译产生的CHM帮助文件时,点击目录选项卡中的主题项目,在侧视图窗格将显示相应的主题帮助内容。 图23 向目录添加标题项或主题项 点击插入目录项或插入主题项按钮均会弹出图23的目录项入口对话框。通过该对话框将可以向目录文件添加目录项或是主题项的目录项目入口。在Entry Title编辑框中输入目录项/主题项的名称,并通过下面的Add、Edit或Remove按钮添加、编辑或删除与该入口项相关联的主题文件或URL地址。如果在添加或编辑主题项时未指定与其关联的主题文件或URL地址。系统将会弹出一个对话框以提示用户。该对话框的Advance选项卡对目录项/主题项所显示的窗口名、框架名等进行定义,也可以通过更改Image Index的值来改变显示在目录项左侧的图标。在添加项目时该选项是禁用的,只有在用编辑按钮打开项目时才可以更改。 在目录项/主题项添加到目录文件后,可以选择某一项并对其进行编辑或删除。还可以通过上移、下移、左移、右移这四个按钮来可 以插入的项目在目录结构中的层次及上下位置。双击目录项或点击察看HTML源文件时,与该目录项关联的主题文件的HTML源代码将显示在右侧的编辑视图,并可以对其进行编辑 索引文件定义了帮助系统中所包含的关键字,通常是帮助系统中所涉及到的术语、概念以及其他一些重要词汇等。与目录文件一样,索引文件的设计好坏也极大影响了用户能否快速查找到所需要的帮助主题。在未创建索引文件时点击Index选项卡,将会弹出对话框,以提示用户新建一个索引文件或是打开一个已经存在的索引文件。 在创建了索引文件后可以通过索引选项卡提供的工具栏来定制其属性或插入、编辑索引项。这些工具用于对关键字的定义和修改,多数按钮功能与目录文件工具按钮相同。点击属性索引按钮将弹出属性设置对话框。该对话框所提供的属性设置选项较少,只对帮助索引显示的默认框架、窗口以及显示字体等进行了设定,通常也多采用默认设置。 建立、编辑索引文件的过程与处理目录文件的过程非常类似。其要插入的项目只有关键字一项,定义的关键字将显示在帮助系统的索引选项卡中。每个关键字必须至少与一个主题文件或URL地址相关联,并允许与多个主题文件或URL地址关联,在双击关键字时帮助系统将弹出一个显示了所有与该关键字相关联主题的对话框,可以从中选择一个主题,其主题内容将显示在右侧视图。点击插入关键字按钮将会弹出索引入口对话框。 与目录文件中项目的添加类似,在Keyword编辑框中输入关键 字的名称,并通过下面的Add、Edit和Remove按钮添加、编辑和删除与关键字相关联的主题文件或URL地址。索引关键字必须至少与一个主题文件相连接,否则系统将弹出错误提示信息。如果多个主题文件都包含相同的关键字,那么就应当把这些主题文件都加入到该关键字的连接中,建立一个关键字与多个主题文件的关联。 在将关键字添加到索引文件后,可以对选项进行编辑或删除。也可以像处理目录文件一样利用上移、下移、左移或右移按钮来改变关键字在索引选项卡中的层次与上下位置。双击关键字或点击查看HTML源文件按钮,将在右侧编辑框显示与之关联的主题文件的HTML源代码,并可以对其进行编辑。 前面已经创建完成了帮助系统所必须的工程文件、目录文件以及索引文件的创建,并完成了相应的配置设置。但是由于在创建工程文件时目录文件与索引文件尚未创建,因此在创建完目录文件和索引文件后还要再回到工程文件进行设置,以将上述两文件添加到工程文件。在Project选项卡中,点击添加/修改窗口定义按钮,并在弹出的对话框中选择Files选项卡。在其TOC、Index以及Default等组合框的下拉列表中选取要添加的目录文件、索引文件以及缺省显示页等文件。 在File菜单下提供了Compile、Decompile菜单项将可以编译、反编译CHM帮助文件,并可以通过View菜单下的Compiled Help File 菜单项查看编译产生的CHM帮助文件。图24显示的就是本系统的联机帮助文件。 图24 医疗纠纷检索系统用户手册 6 医疗纠纷信息检索系统的实现 6.1 软件环境 操作系统:Microsoft Windows 2000 Professional 开发工具:Visual Basic 6.0 数据环境:SQL Server 2000 6.2 硬件环境 CPU:CRII800处理器 内存:256 MB 硬盘:30G 显卡:NVIDIA GeForce2 MX 100/200 光驱:acer 52X 其它:鼠标、打印机 结 论 在这次毕业设计的研究与学习过程中,经过指导教师,同学以及自己的努力,取得了一定的成绩。通过以上分析,基本上实现了医疗纠纷检索系统的预期功能,完成了医疗纠纷检索的设计: 界面友好,功能齐全; 数据的安全性得到了保障,只有管理员能对数据进行操作,用户 只能对数据查询的统计; 可以查找到某一特定的医疗纠纷的详细情况; 按需要对数据库中的数据进行统计,掌握医疗纠纷的原因; 在录入资料时可以进行修改和删除。 该系统的设计不仅可以提高工作效率和对数据统计的准确性,而且还可以通过对数据进行分析,更好的解决医疗纠纷。同时为医院将来计算机信息管理网络化打下基础。 致 谢 大学生活即将结束,回首过去四年的大学生活令我无比留恋。在大学的四年里,学到了许多专业文化知识和基础学科知识,开阔了视野,增长了见识,更重要的是学会了做人的道理。同时在大学期间还结交了许多同学,朋友和老师,并建立了相当深厚的友谊。 在我做毕业设计、完成论文的过程中,得到了信息学院很多老师和同学的帮助,使我能够顺利完成毕业设计和论文。 尤其是在这近半年的毕业设计期间,刘飒老师给予了正确的指导和不断的督促。正是在她的督促和鼓励以及帮助和关怀下,我的毕业设计才能顺利完成。同时在相处的半年时间里,我还从刘老师那学会了正确对待生活的态度,对我以后走向社会非常重要。在这里我要特别感谢我的指导老师。还有要感谢王石同学,在整个毕业设计的研究过程中我们互相帮助,互相扶持,直到毕业设计顺利的完成。 同时也非常感谢辽宁中医院医务处杨鸫祥老师在我们实习期间的热情帮助和耐心地指导。 参考文献 1黄梯云. 管理信息系统导论(第2版). 北京:机械工业出版社,2000,25-28 2徐英,韩京才. Windows 2000 Server中文版高级指南.北京:机械工业出版社,2000,135-145 3李赫雄,许宏泰,唐家才. SQL Server 2000应用程序开发.北京:人民邮电出版社,2001,168-186 4赵松涛. 中文版SQL Server 2000应用及实例集锦.北京:人民邮电出版社,2002,199-215 5李晓黎,张巍.Visual Basic + SQL Server数据库应用系统开发与实例.北京:人民邮电出版社,2004,175-181 6求是科技. Visual Basic 6.0数据库开发技术与工程实践.北京:人民邮电出版社,2004,355-362 7姚巍. Visual Basic数据库开发及工程实例.北京:人民邮电出版社,2003,398-415 8刘志铭. Visual Basic数据库开发实例解析.北京:机械工业出版社,2003,301-309 附录1 程序清单 1 标准模块 Option Explicit '表示当前的用户名称 Public gsUserName As String 普通用户,1表示管理员 '改变用来保存当前的用户类型,其中0表示 Public gnUserType As Integer Public gsNum As String Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Declare Function Lstrcpy Lib "kernel32" Alias "lstrcpyA" (lpString1 As Any, lpString2 As Any) As Long Public conn As New ADODB.Connection Public i, j As Integer Public SortCol As Integer, SortMode As Integer Public s, y Public sqlstr As String Public strConn As String Public Sub Main() Dim DBName As String If App.PrevInstance Then End strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ws" conn.Open "driver={SQL Server};server=ws;database=ws;Persist Security Info=False" frmlogin.Show End Sub 2 主窗体MDIForm1代码: Option Explicit Public Loading As String Private Sub about_Click() Load frmabout frmabout.Show End Sub Private Sub doctorabout_Click() Unload frmuser Unload changpsw Unload Form7 Unload Form3 Unload frmcount Unload frmabout Form5.Option2.Value = True Form5.Caption = "医师管理" " StatusBar1.Panels(2).Text = "当前操作: " & "医师管理 Load Form5 Form5.Show End Sub Private Sub email1_Click() ShellExecute 0&, vbNullString, "MailTo:haoxiangfei@sina.com", vbNullString, vbNullString, vbNormalFocus End Sub Private Sub email2_Click() ShellExecute 0&, vbNullString, "MailTo:wangyidishi@163.com", vbNullString, vbNullString, vbNormalFocus End Sub Private Sub exit_Click() Unload Me End Sub Private Sub helpzhuti_Click() Shell "hh.exe help.chm", vbNormalFocus End Sub Private Sub lognew_Click() Unload changpsw Unload Form5 Unload Form7 Unload Form3 Unload frmcount Unload frmabout Load frmuser frmuser.Show End Sub Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox("真的要退出本系统吗,", vbQuestion + vbYesNo + vbDefaultButton2, "退出") = vbNo Then Cancel = 1 End If End Sub Private Sub MDIForm_Load() ……" Loading = "等待 StatusBar1.Panels(1).Text = "登陆用户: " & gsUserName StatusBar1.Panels(2).Text = "当前操作: " & Loading StatusBar1.Panels(3).Text = "今天日期: " & Format(Date, "yyyy/m/d") StatusBar1.Panels(4).Text = "当前时间: " & Format(Time, "H:mm") App.HelpFile = App.Path & "\help.chm" End Sub Private Sub officeroom_Click() Unload frmuser Unload changpsw Unload Form5 Unload Form3 Unload frmcount Unload frmabout Load Form7 Form7.Show End Sub Private Sub patientabout_Click() Unload frmuser Unload changpsw Unload Form7 Unload Form3 Unload frmcount Unload frmabout Form5.opatient.Value = True Form5.Caption = "患者管理" StatusBar1.Panels(2).Text = "当前操作: " & "患者管理" Form5.Show End Sub Private Sub pmodify_Click() Unload frmuser Unload Form5 Unload Form7 Unload Form3 Unload frmcount Unload frmabout Load changpsw changpsw.Show End Sub Private Sub pquery_Click() Unload frmuser Unload Form5 Unload Form7 Unload changpsw Unload frmcount Unload frmabout Form3.Option1.Value = True Load Form3 Form3.Show Form3.tpid.SetFocus End Sub Private Sub rnew_Click() Load frmlogin frmlogin.Show End Sub Private Sub tj_Click() Unload frmuser Unload Form5 Unload Form7 Unload changpsw Unload Form3 Unload frmabout Load frmcount frmcount.Show End Sub Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "s11" Unload frmuser Unload Form5 Unload Form7 Unload Form3 Unload frmcount Unload frmabout Load changpsw changpsw.Show Case "s12" Load frmlogin frmlogin.Show Case "s13" Unload Me Case "s14" Unload frmuser Unload changpsw Unload Form7 Unload Form3 Unload frmcount Unload frmabout Form5.opatient.Value = True Form5.Caption = "患者管理" StatusBar1.Panels(2).Text = "当前操作: " & "患者管理" Load Form5 Form5.Show Case "s15" Unload frmuser Unload changpsw Unload Form7 Unload Form3 Unload frmcount Unload frmabout Form5.Option2.Value = True Form5.Caption = "医师管理" StatusBar1.Panels(2).Text = "当前操作: " & "医师管理" Load Form5 Form5.Show Case "s16" Unload frmuser Unload changpsw Unload Form5 Unload Form3 Unload frmcount Unload frmabout Load Form7 Form7.Show Case "s17" Unload frmuser Unload Form5 Unload Form7 Unload changpsw Unload frmcount Unload frmabout Form3.Option1.Value = True Load Form3 Form3.Show Form3.tpid.SetFocus Case "s18" Unload frmuser Unload Form5 Unload Form7 Unload changpsw Unload Form3 Unload frmabout Load frmcount frmcount.Show Case "s19" Load frmabout frmabout.Show End Select End Sub Private Sub Toolbar2_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "s11" Unload frmuser Unload Form5 Unload Form7 Unload Form3 Unload frmcount Unload frmabout Load changpsw changpsw.Show Case "s12" Load frmlogin frmlogin.Show Case "s13" Unload Me Case "s17" Unload frmuser Unload Form5 Unload Form7 Unload changpsw Unload frmcount Unload frmabout Form3.Option1.Value = True Load Form3 Form3.Show Form3.tpid.SetFocus Case "s18" Unload frmuser Unload Form5 Unload Form7 Unload changpsw Unload Form3 Unload frmabout Load frmcount frmcount.Show Case "s19" Load frmabout frmabout.Show End Select End Sub Private Sub Timer1_Timer() StatusBar1.Panels(4).Text = "当前时间: " & Format(Time, "H:mm") End Sub 3 登录窗体frmlogin代码: Option Explicit Dim user As String, pwd As String Private Sub Command1_Click() On Error GoTo errHandler '用户密码错误的次数,如果错误次数超过3次,则退出系统 Static nTryCount As Integer user = Combo1.Text pwd = Text1.Text '取得用户的用户类型和用户名,并分别保存在两个全局变量gnUserType和 gsUserName中 gnUserType = 0 gsUserName = user '根据所取得的用户名、密码和用户类型在数据库中进行搜索 Dim strSQL As String strSQL = "select * from input where username= '" & user & "' and password ='" & pwd & "' and usertype=" & gnUserType Dim rs As New ADODB.Recordset rs.Open strSQL, conn, adOpenStatic If rs.EOF Then '登录失败 MsgBox "对不起,无此用户或者密码不正确~请重新输入~~", vbCritical, "错误" Combo1.SetFocus Text1.Text = "" nTryCount = nTryCount + 1 If nTryCount >= 3 Then MsgBox "您无权操作本系统!再见~", vbCritical, "无权限" nTryCount = 0 Unload Me End If Else '登陆成功 rs.Close Unload Me Load MDIForm1 MDIForm1.Show '显示MDI主窗口 MDIForm1.Toolbar2.Visible = True MDIForm1.Toolbar1.Visible = False Unload Form3 Unload Form5 Unload Form7 Unload frmuser Unload changpsw MDIForm1.patientabout.Enabled = False MDIForm1.doctorabout.Enabled = False MDIForm1.officeroom.Enabled = False MDIForm1.lognew.Enabled = False End If Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" Unload Me End Sub Private Sub Command2_Click() Unload Me End Sub Private Sub Command3_Click() On Error GoTo errHandler user = Text2.Text pwd = Text3.Text '取得用户的用户类型和用户名,并分别保存在两个全局变量gnUserType和gsUserName中 gnUserType = 1 gsUserName = user '根据所取得的用户名、密码和用户类型在数据库中进行搜索 Dim strSQL As String strSQL = "select * from input where username= '" & user & "' and password ='" & pwd & "' and usertype=" & gnUserType Dim rs As New ADODB.Recordset rs.Open strSQL, conn, adOpenStatic '用户密码错误的次数,如果错误次数超过3次,则退出系统 Static nTryCount As Integer If rs.EOF Then '登录失败 MsgBox "对不起,无此用户或者密码不正确~请重新输入~~", vbCritical, "错误" Text2.SetFocus Text2.Text = "" Text3.Text = "" nTryCount = nTryCount + 1 If nTryCount >= 3 Then MsgBox "您无权操作本系统!再见~", vbCritical, "无权限" nTryCount = 0 Unload Me End If Else '登陆成功 rs.Close Unload Me Load MDIForm1 MDIForm1.Show '显示MDI主窗口 MDIForm1.Toolbar2.Visible = False MDIForm1.Toolbar1.Visible = True Unload Form3 Unload Form5 Unload Form7 Unload frmuser Unload changpsw MDIForm1.patientabout.Enabled = True MDIForm1.doctorabout.Enabled = True MDIForm1.officeroom.Enabled = True MDIForm1.lognew.Enabled = True End If Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" Unload Me End Sub Private Sub Command4_Click() Unload Me End Sub Private Sub Form_Load() On Error GoTo errHandler Text1.Text = "": Text2.Text = "": Text3.Text = "" Text1.PasswordChar = "*": Text3.PasswordChar = "*" Dim i As Integer Dim p As String Dim rs As New ADODB.Recordset rs.Open "select username from input where usertype = 0", conn, adOpenStatic, adLockReadOnly rs.MoveFirst Combo1.Clear For i = 1 To Val(rs.RecordCount) p = Trim(rs(0)) rs.MoveNext Combo1.AddItem p Next i rs.Close Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" Unload Me End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Command1.SetFocus End If End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Command3.SetFocus End If End Sub 4 用户管理窗体frmuser代码: Private Sub cmdadd_Click() 'On Error GoTo errHandler Dim strUser As String Dim strPwd As String Dim nType As Integer nType = -1 '取得用户名 tUser: ge strUser = Text1.Text If strUser = "" Then Exit Sub Dim rs As New ADODB.Recordset rs.Open "select * from input where username='" & strUser & "'", conn, adOpenStatic If Not rs.EOF Then MsgBox "该用户名已经存在~", vbCritical, "用户名重复" Text1.Text = "": Text2.Text = "": Text3.Text = "": Combo1.ListIndex = -1: Text1.SetFocus Exit Sub End If rs.Close ‘取得用户密码 getPwd: '判断密码的有效性(两次密码要一致,而且密码不能为空) strPwd = Text2.Text If Text2.Text <> Text3.Text Then MsgBox "两次密码输入的结果不一致~请重新输入", vbCritical, "错误" Text2.Text = "": Text3.Text = "": Text2.SetFocus Exit Sub End If If strPwd = "" Then MsgBox "必须输入密码~", vbCritical, "需要密码" Text2.SetFocus Exit Sub End If '取得用户类型 getType: nType = Combo1.ListIndex If nType < 0 Then MsgBox "必须选择用户类型~", vbCritical, "选择用户类型" Combo1.ListIndex = -1 Exit Sub End If Text1.Text = "": Text2.Text = "": Text3.Text = "": Combo1.ListIndex = -1 conn.Execute "insert into input(username,password,usertype) values('" & strUser & "','" & strPwd & "'," & nType & ")" MsgBox " 新用户注册成功 ~", vbInformation, "提示信息" Call cmdquit_Click Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" End Sub Private Sub cmdadduser_Click() Frame2.Caption = "添加用户" Frame2.Enabled = True cmddeleteuser.Enabled = False cmdchpwd.Enabled = False cmdadduser.Visible = False Command1.Visible = False cmdquit.Visible = True cmdadd.Visible = True Text1.Text = "": Text2.Text = "": Text3.Text = "": Combo1.ListIndex = -1 End Sub Private Sub cmdchpwd_Click() Unload Me changpsw.Show End Sub Private Sub cmdde_Click() On Error GoTo errHandler getUser: strUser = Text1.Text If strUser = "" Then Exit Sub Dim rs As New ADODB.Recordset rs.Open "select * from input where username='" & strUser & "'", conn, adOpenStatic If rs.EOF Then MsgBox "不存在该用户~", vbCritical, "重新输入" Text1.Text = "" Exit Sub End If rs.Close If lstUser.Text = gsUserName Then MsgBox "不能删除当前记录!", vbCritical, "删除用户错误" Exit Sub End If conn.Execute "delete from input where username='" & Text1.Text & "'" MsgBox " 该用户已经删除 ~", vbInformation, "提示信息" Call cmdquit1_Click Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" End Sub Private Sub cmddeleteuser_Click() Frame2.Caption = "删除用户" Frame2.Enabled = True cmdadduser.Enabled = False cmdchpwd.Enabled = False Command1.Visible = False cmddeleteuser.Visible = False cmdquit1.Visible = True cmdde.Visible = True Text2.Enabled = False: Text3.Enabled = False: Combo1.Enabled = False End Sub Private Sub cmdquit_Click() Frame2.Caption = "请选择操作~" Frame2.Enabled = False cmddeleteuser.Enabled = True cmdchpwd.Enabled = True cmdadduser.Visible = True Command1.Visible = True cmdquit.Visible = False cmdadd.Visible = False Text1.Text = "": Text2.Text = "": Text3.Text = "": Combo1.ListIndex = -1 End Sub Private Sub cmdquit1_Click() Frame2.Caption = "请选择操作~" Frame2.Enabled = False cmdadduser.Enabled = True cmdchpwd.Enabled = True Command1.Visible = True cmddeleteuser.Visible = True cmdquit1.Visible = False cmdde.Visible = False Text1.Text = "": Text2.Enabled = True: Text3.Enabled = True: Combo1.Enabled = True End Sub Private Sub Command1_Click() Unload Me MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & MDIForm1.Loading End Sub Private Sub Form_Load() MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & Me.Caption Me.Left = 300: Me.Top = 200 cmdadd.Visible = False cmdquit.Visible = False cmdde.Visible = False cmdquit1.Visible = False Text1.Text = "": Text2.Text = "": Text3.Text = "" Text2.PasswordChar = "*": Text3.PasswordChar = "*" Combo1.AddItem "普通用户", 0 Combo1.AddItem "管理员", 1 Combo1.ListIndex = -1 Frame2.Enabled = False Frame2.Caption = "请选择操作~" End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Unload Me MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & MDIForm1.Loading End Sub 5 密码修改窗体changpsw代码: Option Explicit Private Sub Form_Load() Me.Left = 300: Me.Top = 200 Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = "": Text2.PasswordChar = "*" Text3.PasswordChar = "*" Text4.PasswordChar = "*" MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & Me.Caption End Sub Private Sub Command1_Click() On Error GoTo errHandler '建立全局性的数据连接 Dim strConn As String '取得用户输入的用户名和密码 Dim user As String, pwd As String user = Text1.Text pwd = Text2.Text '取得用户的用户类型和用户名,并分别保存在两个全局变量gnUserType和gsUserName中 gsUserName = user '根据所取得的用户名、密码和用户类型在数据库中进行搜索 Dim strSQL As String strSQL = "select * from input where username= '" & user & "' and password ='" & pwd & "' " Dim r As New ADODB.Recordset r.Open strSQL, conn, adOpenStatic '用户密码错误的次数,如果错误次数超过3次,则退出系统 Static nTryCount As Integer If r.EOF Then '登录失败 MsgBox "对不起,无此用户或者密码不正确~请重新输入~~", vbCritical, "错误" Text1.Text = "": Text2.Text = "": Text3.Text = "": Text4.Text = "": Text1.SetFocus nTryCount = nTryCount + 1 If nTryCount >= 3 Then MsgBox "您无权修改密码~再见~", vbCritical, "无权限" Unload Me MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & MDIForm1.Loading End If Exit Sub Else If Text3.Text <> Text4.Text Then MsgBox "两次密码输入的结果不一致~请重新输入", vbCritical, " 错误" Text3.Text = "": Text4.Text = "" Text3.SetFocus Exit Sub ElseIf Text3.Text = "" Then MsgBox "密码不能为空~", vbCritical, "错误" Text3.SetFocus Exit Sub Else conn.Execute "update input set password='" & Text3.Text & "' where username='" & Text1.Text & "'" MsgBox " 密码修改成功 ~", vbInformation, "提示信息" Unload Me MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & MDIForm1.Loading End If End If Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" End Sub Private Sub Command2_Click() Unload Me MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & MDIForm1.Loading End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text2.SetFocus End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text3.SetFocus End If End Sub Private Sub Text3_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text4.SetFocus End If End Sub Private Sub Text4_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Command1.SetFocus End If End Sub 6 详细统计窗体frmcount代码: Option Explicit Dim strSQL As String Dim strCon As String Private Sub Command1_Click() Unload Me MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & MDIForm1.Loading End Sub Private Sub Command2_Click() On Error GoTo errHandler MSChart1.EditCopy Printer.Print " " Printer.PaintPicture Clipboard.GetData(), 0, 0 Printer.EndDoc Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" End Sub Private Sub Command3_Click() On Error GoTo errHandler MSChart2.EditCopy Printer.Print " " Printer.PaintPicture Clipboard.GetData(), 0, 0 Printer.EndDoc Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" End Sub Private Sub Command4_Click() If Combo1.Text <> "" And Combo1.ListIndex <> 0 Then strCon = "office.officeName = '" & Trim(Combo1.Text) & "'" Else strCon = "" End If strSQL = "select doctor.doctorName,count(doctor.doctorId) as 被投诉次数 from doctor,patient,office where doctor.doctorId=patient.hDoctorid and office.Id=doctor.officeId " If strCon <> "" Then strSQL = strSQL + " and " + strCon strSQL = strSQL + "group by doctor.doctorName" Else strSQL = strSQL + "group by doctor.doctorName" End If Adodc3.CursorLocation = adUseClient Adodc3.CommandType = adCmdText Adodc3.RecordSource = strSQL Adodc3.Refresh MSChart3.Enabled = False End Sub Private Sub Command5_Click() On Error GoTo errHandler MSChart3.EditCopy Printer.Print " " Printer.PaintPicture Clipboard.GetData(), 0, 0 Printer.EndDoc Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" End Sub Private Sub Command6_Click() On Error GoTo errHandler MSChart4.EditCopy Printer.Print " " Printer.PaintPicture Clipboard.GetData(), 0, 0 Printer.EndDoc Exit Sub errHandler: MsgBox Err.Description, vbCritical, "错误" End Sub Private Sub Form_Load() MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & Me.Caption Me.Left = 0: Me.Top = 0 Adodc3.ConnectionString = strConn strSQL = "select distinct officeName from office" Adodc3.RecordSource = strSQL Adodc3.CommandType = adCmdText Adodc3.Refresh '将所查到的的内容来填充combo1 Combo1.Clear Combo1.AddItem "全部" While Not Adodc3.Recordset.EOF Combo1.AddItem Adodc3.Recordset("officeName") Adodc3.Recordset.MoveNext Wend Combo1.ListIndex = 0 Adodc3.Recordset.Close strSQL = "select doctor.doctorName as 医师姓名,count(doctor.doctorId) as 被投诉 次数 from doctor,patient,office where doctor.doctorId=patient.hDoctorid and office.Id=doctor.officeId " strSQL = strSQL + "group by doctor.doctorName" Adodc3.CursorLocation = adUseClient Adodc3.CommandType = adCmdText Adodc3.RecordSource = strSQL Adodc3.Refresh MSChart3.Enabled = False strSQL = "" Adodc1.ConnectionString = strConn strSQL = "select office.officeName as 科室名,count(doctor.officeID) as 科室人数 from doctor,patient,office where doctor.doctorID=patient.hDoctorID and office.Id=doctor.officeId group by office.officeName" Adodc1.CursorLocation = adUseClient Adodc1.CommandType = adCmdText Adodc1.RecordSource = strSQL Adodc1.Refresh Adodc2.ConnectionString = strConn strSQL = "select patient.pDate as 年,count(doctor.officeId) as 年次数 from doctor,patient,office where doctor.doctorId=patient.hDoctorid and office.Id=doctor.officeId group by patient.pDate" Adodc2.CursorLocation = adUseClient Adodc2.CommandType = adCmdText Adodc2.RecordSource = strSQL Adodc2.Refresh Adodc4.ConnectionString = strConn strSQL = "select patient.pClass as 投诉等级,count(doctor.officeId) as 等级次数 from doctor,patient,office where doctor.doctorId=patient.hDoctorid and office.Id=doctor.officeId group by patient.pClass" Adodc4.CursorLocation = adUseClient Adodc4.CommandType = adCmdText Adodc4.RecordSource = strSQL Adodc4.Refresh End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Unload Me MDIForm1.StatusBar1.Panels(2).Text = "当前操作: " & MDIForm1.Loading End Sub Chapter I of Volume II MISS Bingley's letter arrived, and put an end to doubt. The very first sentence conveyed the assurance of their being all settled in London for the winter, and concluded with her brother's regret at not having had time to pay his respects to his friends in Hertfordshire before he left the country. Hope was over, entirely over; and when Jane could attend to the rest of the letter, she found little, except the professed affection of the writer, that could give her any comfort. Miss Darcy's praise occupied the chief of it. Her many attractions were again dwelt on, and Caroline boasted joyfully of their increasing intimacy, and ventured to predict the accomplishment of the wishes which had been unfolded in her former letter. She wrote also with great pleasure of her brother's being an inmate of Mr. Darcy's house, and mentioned with raptures some plans of the latter with regard to new furniture. Elizabeth, to whom Jane very soon communicated the chief of all this, heard it in silent indignation. Her heart was divided between concern for her sister, and resentment against all the others. To Caroline's assertion of her brother's being partial to Miss Darcy she paid no credit. That he was really fond of Jane, she doubted no more than she had ever done; and much as she had always been disposed to like him, she could not think without anger, hardly without contempt, on that easiness of temper, that want of proper resolution which now made him the slave of his designing friends, and led him to sacrifice his own happiness to the caprice of their inclinations. Had his own happiness, however, been the only sacrifice, he might have been allowed to sport with it in what ever manner he thought best; but her sister's was involved in it, as, she thought, he must be sensible himself. It was a subject, in short, on which reflection would be long indulged, and must be unavailing. She could think of nothing else, and yet whether Bingley's regard had really died away, or were suppressed by his friends' interference; whether he had been aware of Jane's attachment, or whether it had escaped his observation; whichever were the case, though her opinion of him must be materially affected by the difference, her sister's situation remained the same, her peace equally wounded. A day or two passed before Jane had courage to speak of her feelings to Elizabeth; but at last on Mrs. Bennet's leaving them together, after a longer irritation than usual about Netherfield and its master, she could not help saying, ``Oh! that my dear mother had more command over herself; she can have no idea of the pain she gives me by her continual reflections on him. But I will not repine. It cannot last long. He will be forgot, and we shall all be as we were before.'' Elizabeth looked at her sister with incredulous solicitude, but said nothing. ``You doubt me,'' cried Jane, slightly colouring; ``indeed you have no reason. He may live in my memory as the most amiable man of my acquaintance, but that is all. I have nothing either to hope or fear, and nothing to reproach him with. Thank God! I have not that pain. A little time therefore. -- I shall certainly try to get the better.'' With a stronger voice she soon added, ``I have this comfort immediately, that it has not been more than an error of fancy on my side, and that it has done no harm to any one but myself.'' ``My dear Jane!'' exclaimed Elizabeth, ``you are too good. Your sweetness and disinterestedness are really angelic; I do not know what to say to you. I feel as if I had never done you justice, or loved you as you deserve.'' Miss Bennet eagerly disclaimed all extraordinary merit, and threw back the praise on her sister's warm affection. ``Nay,'' said Elizabeth, ``this is not fair. You wish to think all the world respectable, and are hurt if I speak ill of any body. I only want to think you perfect, and you set yourself against it. Do not be afraid of my running into any excess, of my encroaching on your privilege of universal good will. You need not. There are few people whom I really love, and still fewer of whom I think well. The more I see of the world, the more am I dissatisfied with it; and every day confirms my belief of the inconsistency of all human characters, and of the little dependence that can be placed on the appearance of either merit or sense. I have met with two instances lately; one I will not mention; the other is Charlotte's marriage. It is unaccountable! in every view it is unaccountable!'' ``My dear Lizzy, do not give way to such feelings as these. They will ruin your happiness. You do not make allowance enough for difference of situation and temper. Consider Mr. Collins's respectability, and Charlotte's prudent, steady character. Remember that she is one of a large family; that as to fortune, it is a most eligible match; and be ready to believe, for every body's sake, that she may feel something like regard and esteem for our cousin.'' ``To oblige you, I would try to believe almost any thing, but no one else could be benefited by such a belief as this; for were I persuaded that Charlotte had any regard for him, I should only think worse of her understanding, than I now do of her heart. My dear Jane, Mr. Collins is a conceited, pompous, narrow-minded, silly man; you know he is, as well as I do; and you must feel, as well as I do, that the woman who marries him, cannot have a proper way of thinking. You shall not defend her, though it is Charlotte Lucas. You shall not, for the sake of one individual, change the meaning of principle and integrity, nor endeavour to persuade yourself or me that selfishness is prudence, and insensibility of danger, security for happiness.'' ``I must think your language too strong in speaking of both,'' replied Jane, ``and I hope you will be convinced of it, by seeing them happy together. But enough of this. You alluded to something else. You mentioned two instances. I cannot misunderstand you, but I intreat you, dear Lizzy, not to pain me by thinking that person to blame, and saying your opinion of him is sunk. We must not be so ready to fancy ourselves intentionally injured. We must not expect a lively young man to be always so guarded and circumspect. It is very often nothing but our own vanity that deceives us. Women fancy admiration means more than it does.'' ``And men take care that they should.'' ``If it is designedly done, they cannot be justified; but I have no idea of there being so much design in the world as some persons imagine.'' ``I am far from attributing any part of Mr. Bingley's conduct to design,'' said Elizabeth; ``but without scheming to do wrong, or to make others unhappy, there may be error, and there may be misery. Thoughtlessness, want of attention to other people's feelings, and want of resolution, will do the business.'' ``And do you impute it to either of those?'' ``Yes; to the last. But if I go on, I shall displease you by saying what I think of persons you esteem. Stop me whilst you can.'' ``You persist, then, in supposing his sisters influence him.'' ``Yes, in conjunction with his friend.'' ``I cannot believe it. Why should they try to influence him? They can only wish his happiness, and if he is attached to me, no other woman can secure it.'' ``Your first position is false. They may wish many things besides his happiness; they may wish his increase of wealth and consequence; they may wish him to marry a girl who has all the importance of money, great connections, and pride.'' ``Beyond a doubt, they do wish him to chuse Miss Darcy,'' replied Jane; ``but this may be from better feelings than you are supposing. They have known her much longer than they have known me; no wonder if they love her better. But, whatever may be their own wishes, it is very unlikely they should have opposed their brother's. What sister would think herself at liberty to do it, unless there were something very objectionable? If they believed him attached to me, they would not try to part us; if he were so, they could not succeed. By supposing such an affection, you make every body acting unnaturally and wrong, and me most unhappy. Do not distress me by the idea. I am not ashamed of having been mistaken -- or, at least, it is slight, it is nothing in comparison of what I should feel in thinking ill of him or his sisters. Let me take it in the best light, in the light in which it may be understood.'' Elizabeth could not oppose such a wish; and from this time Mr. Bingley's name was scarcely ever mentioned between them. Mrs. Bennet still continued to wonder and repine at his returning no more, and though a day seldom passed in which Elizabeth did not account for it clearly, there seemed little chance of her ever considering it with less perplexity. Her daughter endeavoured to convince her of what she did not believe herself, that his attentions to Jane had been merely the effect of a common and transient liking, which ceased when he saw her no more; but though the probability of the statement was admitted at the time, she had the same story to repeat every day. Mrs. Bennet's best comfort was that Mr. Bingley must be down again in the summer. Mr. Bennet treated the matter differently. ``So, Lizzy,'' said he one day, ``your sister is crossed in love I find. I congratulate her. Next to being married, a girl likes to be crossed in love a little now and then. It is something to think of, and gives her a sort of distinction among her companions. When is your turn to come? You will hardly bear to be long outdone by Jane. Now is your time. Here are officers enough at Meryton to disappoint all the young ladies in the country. Let Wickham be your man. He is a pleasant fellow, and would jilt you creditably.'' ``Thank you, Sir, but a less agreeable man would satisfy me. We must not all expect Jane's good fortune.'' ``True,'' said Mr. Bennet, ``but it is a comfort to think that, whatever of that kind may befall you, you have an affectionate mother who will always make the most of it.'' Mr. Wickham's society was of material service in dispelling the gloom, which the late perverse occurrences had thrown on many of the Longbourn family. They saw him often, and to his other recommendations was now added that of general unreserve. The whole of what Elizabeth had already heard, his claims on Mr. Darcy, and all that he had suffered from him, was now openly acknowledged and publicly canvassed; and every body was pleased to think how much they had always disliked Mr. Darcy before they had known any thing of the matter. Miss Bennet was the only creature who could suppose there might be any extenuating circumstances in the case, unknown to the society of Hertfordshire; her mild and steady candour always pleaded for BOOK II Atheni Ath. Then he who is well educated will be able to sing and dancewell? Cle. I suppose that he will. Ath. Let us see; what are we saying? Cle. What? Ath. He sings well and dances well; now must we add that he singswhat is good and dances what is good? Cle. Let us make the addition. Ath. We will suppose that he knows the good to be good, and thebad to be bad, and makes use of them accordingly: which now is thebetter trained in dancing and music-he who is able to move his bodyand to use his voice in what is understood to be the right manner, buthas no delight in good or hatred of evil; or he who is incorrect ingesture and voice, but is right in his sense of pleasure and pain, andwelcomes what is good, and is offended at what is evil? Cle. There is a great difference, Stranger, in the two kinds ofeducation. Ath. If we three know what is good in song and dance, then wetruly knouropinion of them? For no one will admit that forms of vice in the danceare more beautiful than forms of virtue, or that he himself delightsin the forms of vice, and others in a muse of another character. Andyet most persons say, that the excellence of music is toTo thisday, no alteration is allowed either in these arts, or in music atall. And you will find that their works of art are painted ormoulded in the same forms which they had ten thousand yearsago;-this is literally true and no exaggeration-their ancientpaintings and sculptures are not a whit better or worse than thework of to-day, but are made with just the same skill. Cle. How extraordinary! Ath. I should rather say, How statesmanlike, how worthy of alegislator! I know that other things in Egypt are nat so well. Butwhat I am telling you about music is true and deserving ofconsideration, because showing that a lawgiver may institutemelodies which have a natural truth and correctness without any fearof failure. To do this, however, must be the work of God, or of adivine person; in Egypt they have a tradition that their ancientchants which have been preserved for so many ages are thecomposition of the Goddess Isis. And therefore, as I was saying, ifa person can only find in any way the natural melodies, he mayconfidently embody them in a fixed and legal form. For the love ofnovelty which arises out of pleasure in the new and weariness of theold, has not strength enough to corrupt the consecrated song anddance, under the plea that they have become antiquated. At any rate,they are far from being corrupted in Egypt. Cle. Your arguments seem to prove your point. Ath. May we not confidently say that the true use of music and ofchoral festivities is as follows: We rejoice when we think that weprosper, and again we think that we prosper when we rejoice? Cle. Exactly. Ath. And when rejoicing in our good fortune, we are unable to bestill? Cle. True. Ath. Our young men break forth into dancing and singing, and wewho are their elders deem that we are fulfilling our part in life whenwe look on at them. Having lost our agility, we delight in theirsports and merry-making, because we love to think of our formerselves; and gladly institute contests for those who are able to awakenin us the memory of our youth. Cle. Very true. Ath. Is it altogether unmeaning to say, as the common people doabout festivals, that he should be adjudged the wisest of men, and thewinner of the palm, who gives us the greatest amount of pleasure andmirth? For on such occasions, and when mirth is the order of theday, ought not he to be honoured most, and, as I was saying, bearthe palm, who gives most mirth to the greatest number? Now is this atrue way of speaking or of acting? Cle. Possibly. Ath. But, my dear friend, let us distinguish between differentcases, and not be hasty in forming a judgment: One way ofconsidering the question will be to imagine a festival at whichthere are entertainments of all sorts, including gymnastic, musical,and equestrian contests: the citizens are assembled; prizes areoffered, and proclamation is made that any one who likes may enter thelists, and that he is to bear the palm who gives the most pleasureto the spectators-there is to be no regulation about the manner how;but he who is most successful in giving pleasure is to be crownedvictor, and deemed to be the pleasantest of the candidates: What islikely to be the result of such a proclamation? Cle. In what respect? Ath. There would be various exhibitions: one man, like Homer, willexhibit a rhapsody, another a performance on the lute; one will have atragedy, and another a comedy. Nor would there be anything astonishingin some one imagining that he could gain the prize by exhibiting apuppet-show. Suppose these competitors to meet, and not these only,but innumerable others as well can you tell me who ought to be thevictor? Cle. I do not see how any one can answer you, or pretend to know,unless he has heard with his own ears the several competitors; thequestion is absurd. Ath. Well, then, if neither of you can answer, shall I answer thisquestion which you deem so absurd? Cle. By all means. Ath. If very small children are to determine the question, they willdecide for the puppet show. Cle. Of course. Ath. The older children will be advocates of comedy; educated women,and young men, and people in general, will favour tragedy. Cle. Very likely. EXT. BURNHAM HOUSE - CONTINUOUS ON VIDEO: We're across from Jane's window, peering in. Jane tries to shut the drapes, but Angela won't let her. Irritated, Jane retreats into the room. We ZOOM toward her, even as Angela poses in the window, waving, but we're clearly not interested in Angela. The ZOOM continues, searching for Jane, who has disappeared. Finally, we settle on the full-length MIRROR on the open closet door, where we see a REFLECTION of Jane, back at her computer. She's smiling. INT. FITTS HOUSE - RICKY'S BEDROOM - CONTINUOUS RICKY sits IN darkness with his VIDEO camera, videotapingthrough the open window. He lowers his camera and smiles... then something below catches his attention. He leans out the window to get better look at: EXT. BURNHAM HOUSE -GARAGE - CONTINUOUS Ricky's POV: Through a WINDOW on the front of the Burnham's GARAGE DOOR, we see Lester, still in his suit, digging through shelves against the back wall. INT. BURNHAM HOUSE - GARAGE - CONTINUOUS LESTER pulls aside old board games, badminton racquets, andstrings of Christmas lights, searching for something as if his very life depended on it. LESTERShit. Shit! Then He yanks aside a box OF wallpaper scrap, and his facelights up at what he finds: A pair OF DUMBBELLS, obviously unused FOR many years. LESTER rips off his jacket and tie and unbuttons his shirt.He glances around, finding his REFLECTION in the WINDOW as he pulls off his shirt, then the T-shirt underneath. He eyes himself critically: Angela was right, he's not in bad shape. Naturally broad-shouldered, with just a few extra pounds around his middle that wouldn't be hard to shed. He kicks off his shoes and begins to step out of his pants. INT. FITTS HOUSE - RICKY'S BEDROOM - CONTINUOUS RICKY holds his camera UP and starts to videotape. EXT. BURNHAM HOUSE - GARAGE - CONTINUOUS Ricky's POV, on VIDEO: Through the GARAGE DOOR WINDOW, we see Lester stepping out of his pants. He then pulls off his briefs, and stands there naked, except for black socks. He grabs the dumbbells and starts lifting them over his head; although he's watching his reflection in the window, it looks like he's watching us as we're watching him... INT. FITTS HOUSE - RICKY'S BEDROOM - CONTINUOUS RICKY stands at the open window, videotaping. RICKYWelcome to America's Weirdest Home Videos. Suddenly we HEAR someone trying to open the door from theother side - it's locked. COLONEL (O.C.)Ricky! MOVING swiftly, RICKY pulls the drapes shut and switches on alight. His room is a haven of high-tech. A state-of-the-art multimedia COMPUTER crowds his desk, and high-end STEREO and VIDEO EQUIPMENT line the shelves, as well as HUNDREDS OF CDs. There is easily twenty thousand dollars worth of equipment in this room. RICKYComing, Dad. COLONEL (O.C.)You know I don't like locked doors in my house, boy. RICKY grabs a REMOTE and switches on his wide-screen TV justbefore he opens the door. RICKYI must have locked it by accident, sorry. So what's up? The COLONEL holds out a small PLASTIC CUP with a CAP. COLONELI need a urine sample. RICKYWow. Is it six months already? Can I give it to you in the morning? I just took a whiz. The Colonel doesn't respond. His eyes are focused on: On the TV: the shower scene from Top Gun plays. Seminudeyoung MALE BODIES, artfully lit. COLONELWhat the hell is that? RICKY turns to the TV. RICKYTop Gun. It's about pilot training in the Air Force. You never saw it? The COLONEL shakes his head, eyes glued to the screen. RICKY (cont'd)Oh, you would love this movie, Dad. Want to watch it with me? The COLONEL looks at him sharply, then: COLONELNo. He quickly walks down the hall. RICKY smiles, shuts andlocks his door. He puts the plastic cup on the shelf, then crosses to a MINI REFRIGERATOR in the corner of his room and opens it. He takes out a cup-sized TUPPERWARE CONTAINER from the freezer, already filled with urine, albeit frozen, and places it on a saucer to thaw overnight. INT. BURNHAM HOUSE - MASTER BEDROOM - LATER THAT NIGHT Carolyn lies sleeping; Lester is awake, staring at the ceiling. After a moment, he gets up taking care not to disturb Carolyn, and walks toward the bathroom. INT. BURNHAM HOUSE - MASTER BATH - CONTINUOUS LESTER enters and switches on the LIGHT. the ROOM is filledwith STEAM. Lester looks around, confused, then focuses on: His POV: across from us, IN a PEDESTAL BATHTUB, is Angela.She smiles and beckons us, and we MOVE CLOSER. ROSE PETALS float on the surface of the water, obscuring her naked body. ANGELAI've been waiting for you. LESTER kneels By the BATHTUB like a MAN IN church. ANGELAreaches out and feels his biceps. ANGELA (cont'd)Oh! You've been working out, haven't you? I can tell. She arches her BACK, and her breasts protrude Through thesurface of the water. She looks up at Lester. ANGELA (cont'd)I was hoping you'd give me a bath... I'm very, very dirty. LESTER gives her a hard look, then slowly slips his hand intothe water between her legs. Her eyes widen and she throws her head back... and we SMASH CUT TO: INT. BURNHAM HOUSE 0- MASTER BEDROOM - CONTINUOUS CLOSE on Carolyn, her eyes wide, listening to the rhythmicBRUSH of Lester's hand as he masturbates under the covers. She flips over and faces him. CAROLYNWhat are you doing? A beat. LESTERWhat does it look like I'm doing? I'm whacking off. CAROLYNWhat?! She switches on the bedside light and gets out OF bed.Lester LAUGHS. LESTERSpanking the monkey. Flogging the bishop. Choking the chicken. Jerking the gherkin. CAROLYNHow disgusting. LESTEROh. Well, forgive me, but I still have blood pumping through my veins! A beat. Carolyn sits IN a chair across the ROOM from him. CAROLYNLester. I refuse to live like this. This is not a marriage. LESTERThis hasn't been a marriage for years. But you were perfectly happy as long as I kept my mouth shut. Well, guess what? I've changed. And the new me whacks off when he feels horny, because you're obviously not going to help me out in that department. CAROLYN(furious)Don't mess with me, mister, or I will divorce you so fast it'll make your head spin!LESTEROn what grounds? I'm not a drunk, I don't fuck other women, I've never hit you, or mistreated you, or even tried to touch you since you made it clear just how unnecessary you consider me to be. But. I did support you while you got your license. And some people might think that entitles me to half of what's yours. She's stunned - it's clear he knows where she's most vulnerable. He sees this, and likes it; it feels good to win for a change. He curls up under the covers contentedly. LESTER (cont'd)Turn the light off when you come to bed, okay? Carolyn just sits there, staring at him with absolute hatred. FADE to BLACK. FADE IN: 14 Of Nobility We will speak of nobility, first as a portion of an estate; then as a condition of particular persons. A monarchy, where there is no nobility at all, is ever a pure and absolute tyranny; as that of the Turks. For nobility attempers sovereignty, and draws the eyes of me people somewhat aside from the line royal. But for democracies, they need it not; and they are commonly more quiet, and less subject to sedition, then where there are stirps of nobles. For men\'s eyes are upon the business, and not upon the persons: or if upon the persons, it is for the business\' sake, as fittest, and not for flags and pedigree. We see the Switzers last well, notwithstanding their diversity of religion, and of cantons. For utility is their bond, and not respects. The united provinces of the Low Countries, in their government, excel: for where there is an equality, the consultations are more indifferent, and the payments and tributes more cheerful. A great and potent nobility addeth majesty to a monarch, but diminisheth power, and putteth life and spirit into the people, but presseth their fortune. It is well, when nobles are not too great for sovereignty, nor for justice; and yet maintained in that height, as the insolence of inferiors may be broken upon them, before it come on too fast upon the majesty of kings. A numerous nobility causeth poverty and inconvenience in a state: for it is a surcharge of expense; and besides, it being of necessity, that many of the nobility fall in time to be weak in fortune, it maketh a kind of dre, to behold an ancient noble family, which hath stood against me waves and weathers of time.
本文档为【医疗纠纷检索系统—免费毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_260251
暂无简介~
格式:doc
大小:406KB
软件:Word
页数:89
分类:工学
上传时间:2017-11-18
浏览量:84