一、课程设计任务
本课程设计任务要求设计一个医院挂号系统,面向患者、医生、管理员这三类用户,要求实现基本的用户信息管理、各科室及医生的信息交互、挂号系统、问诊信息的写入与读出以及根据对医生的出诊数进行排序的功能。
二、方案设计
随着医院改革和建设的不断推进,医护人员规模的持续扩大,这一系列的变化加大了医院管理人员的日常工作量,也给医生及患者信息管理工作带来前所未有的挑战。本系统要实现的目标主要有:
-
管理员可以进行医护人员信息的管理,如增删医生信息、修改医生信息、医护人员以及各科室信息交互等功能。
-
医生可以浏览患者的信息以及对患者病情做出诊断等功能。
-
患者可以浏览自己信息、进行挂号、退挂号操作、查询医生信息以及查询自己问诊信息等功能。
根据系统的功能需求分析,本系统可分为三个模块,系统总功能模块图如图1所示。下面本章将分三部分具体介绍医院挂号系统的设计。
1. 患者端
本系统主要功能为挂号系统,而挂号系统应满足挂号功能与退挂号等功能,在挂号前应该查询医生信息来确定所选医生。参照图2所示,患者可根据相关需求选择按钮完成操作。
考虑到每一名患者的特点,本系统患者类设计了ID、姓名、年龄、性别、挂号医生、问诊信息、挂号号码七个变量以及他们的相关方法。
2. 医生端
对于已挂号的患者,医生首先要查询挂号病人的信息,然后要针对其具体病情进行诊断,得出最终的病情结论与治疗方案,再将其上传到系统中供患者查询。这就要求医生可以访问患者信息并进行更改。参照图4所示,医生可根据相关需求选择按钮完成操作。
考虑到每一名医生的特点,本系统医生类设计了ID、姓名、专业、所属科室、剩余挂号数五个变量,以及他们的相关方法。
3. 管理员端
对于管理员来说,医生难免会出现请假、辞职、新聘等情况,这就要求本系统能随时对可挂号的医生进行相应的更改操作,于是本系统增加了添加医生与辞退医生两大功能,以满足管理员的要求。参照图6所示,管理员可根据相关需求选择按钮完成操作。
考虑到所有用户的特点,本系统用户类设计了用户名、密码、权限三个变量,以及他们赋值与获取的相关方法。
三、关键技术
本系统在开发过程中,采用面向对象设计,大大简化了设计的复杂程度与难度,并且由于类之间的相互调用以及类良好的封装性,大大保证了本系统的安全性。借助NetBeans的图形界面开发工具,使图形界面的设计也变得十分简单。在数据库方面借助SQLyog软件也可以十分方便的对数据库进行操作。下面本章将分三个部分介绍在课题开发过程中的关键技术应用。
1. 面向对象程序设计及Eclipse的应用
在面向对象程序设计中,首先对患者、医生、用户三者进行抽象表示,然后编写相关的类与实现功能的方法。由于许多方法及功能具有很强的相似性,借助继承的概念,可以非常方便的设计类似功能的类,大大减少了开发过程中的代码量,提高了代码复用的效率。
Eclipse是一款很方便很实用的IDE,它可以十分方便的建立新的包与类。对不同包内文件允许直接进行复制粘贴、替换删除等。在开发过程中,遇到语法错误还可以自动进行提示并给出可行的解决方案。在导入库文件的时候只需要对项目属性进行设置即可,不需要其他复杂的操作。对于许多父类的引用可以很方便的借助快捷键自动生成相关语句,大大简化了开发流程。
2. 数据库及SQLyog的应用
对数据库的操作通常是应用相关语句来实现的,这就导致建立数据库的过程十分复杂且不易操作。但应用SQLyog进行数据库的操作就变得十分简单了。只需要输入用户名密码登录数据库、建立SQL文件、新建表文件就可以对其进行编辑操作。不但可以直接在表格中增删改查,还可以通过SQL语句进行控制,大大简便了开发过程,节约了开发时间。
3. 图形界面及NetBeans的应用
使用JAVA语句设计图形界面是十分复杂且耗费时间的工作,往往花费大量精力却无法设计出想要的图形界面。但这些问题NetBeans却可以很方便的解决。只需要在NetBeans创建JFrame文件,然后就可以借助不同的界面操作框对其进行设计,大大减少了开发的代码量。
4. 图形界面的开发
本系统利用NetBeans的图形界面开发功能进行了所有用户的可视界面设计,首先在NetBeans中创建JFrame文件,然后将所需要的图形置于界面上,最后将生成代码复制到Eclipse中进行相关功能的设计开发即可。限于代码过长,本章就不再赘述,具体代码参考JAVA文件:医院挂号系统。
下面列出本系统所用界面:
- 登录界面:LoginView
登录界面需要实现用户登录功能,即判定用户名与密码是否在数据库中匹配,当用户点击确认登录按钮时,即进行判定。
- 患者功能界面:FunctionView
患者功能界面具有五个按钮,四大功能和一个退出键,第一个按钮为查看问诊信息,第二个按钮为挂号,第三个按钮为解挂,第四个按钮为查询医生信息,第五个按钮为退出程序。当患者选定相应的操作时,即完成跳转界面,进入其他功能实现界面上,本界面也是患者的主界面。
- 查询问诊信息界面:InquiryInfoView
当患者挂号完成,医生给出病情诊断后,患者可登录账号查询自己的问诊信息,查询信息后,用户可以选择返回主界面或退出系统,出于为用户保密的原则,在查看问诊信息时,只能通过自己的账号查看自己的问诊信息。
- 挂号界面:PersonalInfoView
患者挂号需要详细填写本人信息,第一栏为姓名,第二栏为年龄,第三栏为性别,第四栏为下拉框,可以选择所挂的医生,系统将此信息反馈给在线医生,填写完成后,点击确认按钮即可完成挂号,用户也可随时选择返回主界面或退出系统按钮。
- 解挂界面:SignOutReView
当患者不需要进行挂号或重复挂号时,可以进行解挂号操作,减少医生的工作负担及压力,需要用户填写挂号医生与个人姓名两个信息,当信息不匹配时,则退挂号失败,系统会自动进行判断并提示用户,当填写信息完成后,即可点击确认退挂。用户也可以选择返回按钮退出当前界面,返回到主界面进行其他操作。
- 医生信息界面:DoctorSelectViewP
患者选择挂号前可以查询医生相关信息,有助于选择适合自己病情的医生,上方的文本框可填写医生姓名相关的文字来进行模糊搜索,有助于患者迅速找到匹配自己的医生,表界面还将显示医生当前的挂号人数,以便于告诉患者大概需要排队多久才能进行问诊。此界面同样可以返回主界面进行其他操作。
- 挂号详情界面:CheckView
当完成挂号时,患者可以查看所挂医生信息,同时显示所挂医生当前的挂号人数,即自己的挂号号码。
- 医生系统界面:DoctorSystemView
医生系统可以查询自己的信息,并选择对自己的患者做出查看、问诊功能。查看患者可以详细了解病人信息,问诊则可以给出病人治疗方案及病情的建议。
- 问诊界面:InquirySystemView
医生可以对自己的患者做出诊断,系统将自动把诊断信息反馈给患者端。在此界面可同时给多个患者给出建议,不必多次切换界面,点几下一位时界面将自动刷新,已问诊完的患者不再显示。
- 查看患者界面:PatientSelfView
医生可以登录自己的账号查看自己的患者信息,表界面中显示了当前所有患者的ID、姓名、性别、年龄、医生、挂号排数等信息。医生可以通过返回按钮进入医生主界面进行其他操作,也可选择退出程序。
- 管理员界面:ChooseView
管理员界面需要实现新增医生、辞退医生两大功能,选择新增医生按钮界面将跳转到新增医生的窗口,同样选择辞退按钮界面会跳转到辞退医生窗口。
- 新增医生界面:NewView
新增医生需要将其个人信息完善,故需要填写姓名、专业、所属科室等信息,第一行为姓名,第二行为专业,第三行为所属科室;管理员可选择确认添加按钮,即可添加医生,也可选择返回主界面进行其他操作。
- 辞退医生界面:DismissDoctorView
辞退医生界面只需要写入医生姓名即可,要求必须写入现有医生的全名,点击确认按钮即可完成辞退,对于系统中不存在的医生或错误的名称,系统将反馈查无此人的信息。同样管理员可以点击返回按钮返回主界面进行其他操作。
- 查看医生界面:DoctorSelectView
当增加医生成功后,管理员可以查询医生的信息。同样上方文本框可以填写医生姓名来进行精确查询。
四、总结
本次课程设计是首次使用JAVA完成的一套简易系统,接触了图形设计、数据库设计以及各个模块之间的连接关系,受益匪浅。