基于Spring+SpringMVC+Mybatis+React+Ant Design+UML建模的医院管理系统详细设计实现
UML建模 SSM框架 React实战 Ant Design实例 数据库设计
文章目录
业务现状调查:
1、业务背景
随着社会的发展,人口数量逐年递增,靠人力来开设业务窗口的传统的就诊方式已经满足不了如此庞大病患群体,医生也无法单纯的靠记忆记住各种药材的位置以及信息。科技进步将人类带到了信息时代,计算机已成为各行各业在业务处理与管理工作中必不可少的辅助工具,并对各行业的发展起到越来越大的推动作用。所以将计算机技术应用到医院的日常管理中已经是迫在眉睫。医院各级以及广大医患群体使用该系统,可以快速实现挂号看病;准确且有效地开药方,抓药材;迅速地申请手术室或者需要的医疗设备;实现医院体系的整体管理,从而节省更多时间,给出治疗方案。大大地降低了人力,财力以及物资的空闲浪费,提高了各级的工作效率以及设备的使用率,降低了医院人员的工作强度,大大提高医疗质量,从而更好地管理医院以及治疗病患
2、业务概况
医院管理中,大致可以分为五个部门:分别是医疗部,管理部,后勤部,财务部,网络部。其中医疗部可下分各个科室,包括眼科,脑科,骨科等等,是医院的中坚治疗力量,主要负责的是对病患进行一个治疗以及护工对病患的照顾。管理部主要是负责医院人员的职位变动,对医院的一些事情进行人员调动管理,合理地进行人员分配。后勤部主要负责对药材的收购,对器材的保护以及对手术室等租用业务的办理。财务部主要负责医院收入与支出的管理,对每笔金额的流动情况需要做细致的记录。网络部则是负责医院管理系统的日常维护以及更新换代,保护医院信息不被泄露,维护好系统的安全性。医院管理中的主要问题是人员过多导致难以合理分配物资,管理部在调动人员安排的时候,需要了解各医护人员的空闲情况,后勤部在办理医疗器材以及空闲手术室的申请使用时,需要了解各个器材以及手术室的使用情况,财务部也需要靠医院管理系统来对每笔资金的流向做一个详细的记录
3、业务目标
本医院管理系统主要是为了解决医院的各种人力物力财力的合理分配,以达到最大效率地利用资源。使用医院管理系统,可以对病患分配合适的护工以及对口地医生。患者看病的流程,只需要在网上进行注册,然后预约医生,缴纳医生的出诊费,在获得相应诊单后,缴纳医药费,只需要等待片刻后就可以去药房拿药,极大程度地缩短了看病时间。医生在病人预约医生后,就可以收到信息,可以根据系统对药材进行查询,开药单,然后自动生成药单传递到药房。在医生申请手术室或者医疗器材的使用时,就不需要找各种管理人员签名来获取对手术室以及医疗器材的使用许可,只需要查询到空闲的手术室,进而填写申请,提交之后等待管理员审核
4、可行性分析
- 技术可行性:本平台是使用统一的建模语言uml通过rose这个软件进行系统分析;使用Spring Tool Suite4以及vscode进行系统的开发与实现,以SSM框架进行系统开发,数据库使用的是MySQL,前端界面使用的是react框架,并使用了UI组件库Ant Design以及状态管理库redux,较大程度的美观了页面。并且实现了前后端的分离,已经测试过在技术方面来说是可行的,是在不同的端口开发前后端的内容,使用的是axios以及代理端口的技术进行前后端交互,已经大致掌握了开发系统方法和开发工具,并且在调查过程中,已经了解和熟悉了医院管理的业务流程。综上所述本系统开发从技术上是可行的。
- 资金方面:在开发系统阶段,使用的软件均是开源的免费软件,只存在开发人员方面的支出。在运营阶段,挂号看病,开处方,缴费,申请使用医疗器械等都可以在网络系统中完成,可以节约线下的租金、人力等支出。所以在资金方面是可行的
- 管理方面:网上的信息化管理相比于以前的传统的人工管理,大大提高了管理的效率,比如调动人员安排,职位变动等,都可在网上系统中完成
业务需求分析
1、业务边界
- 预约挂号的业务边界
- 医疗资源的申请的业务边界
- 医疗资源的管理的业务边界
2、业务用例场景实现
- 预约挂号的用例场景实现
- 医疗资源的申请的用例场景实现
- 医疗资源的管理-更正医疗资源信息的用例场景实现
- 医疗资源的管理-处理损坏废弃资源的用例场景实现
- 医疗资源的管理-进货办理的用例场景实现
3、业务对象交互模型
-
预约挂号业务对象交互模型
解释:在时序图中,消息是主要的内容,表达了业主主角或业务工人相互传递了些什么来完成用例的目标。在这个场景中,患者本身就是业务主角。场景中描述的是患者通过浏览医生信息,选择医生进行预约挂号的过程 -
医疗资源申请业务对象交互模型
解释:在这个场景中,医生就是业务主角。场景中描述的是医生通过填写申请单,由医疗部主管审核后返回结果的过程
- 医疗资源管理业务交互模型
解释:在这个场景中,后勤部员工就是业务主角。场景中描述的是后勤部员工通过医疗资源的状态,进行的增删改查的过程
数据库的实现
1、数据库表的整体展示
2、数据库表
apply_equipment 申请_医疗资源表
applymentstatus 申请状态表
doctor 医生表
doctor_workinfo 医生工作信息表
employee_basicinfo 员工基本信息表
medicalequipment 医疗资源表
medicine 药物表
patient 病人表
prescription 病历单表
prescription_medicine 病历单_药物表
sortsubject 科室分类表
3、数据库对象关系图
功能截图
1、用户登录
说明:用户登录,类型分为三种:游客,医生,后勤部,囊括了三大业务的业务主角,记住密码使用了本地的storage存储,这个是和cookie类似的功能
2、用户注册
说明:注册仅支持游客注册,表单输入时使用了正则表达式验证规范,图片上传使用的是antd的Upload组件,也实现了图片上传回显。注册成功会展示用户的账号密码。
3、预约挂号
说明:预约挂号业务,可以根据医生或者是专科的搜索找到医生进行预约,确定预约信息后即可预约,如果有重复的预约,或者有尚未支付的订单都不能预约成功
4、医生就诊
就诊完成后,患者的视角
说明:登录医生账户后,首先有病人就诊的优先级,点击后可以对患者进行药物配置,最后生成就诊单,填写医嘱。然后在病人页面上就能看到缴费单信息。
5、医疗资源的申请
说明:医疗资源的申请,医生提交申请之后,由本医科的科长进行审核,最后还可以查看个人的申请。其中医疗资源的查询也由antd的Table组件进行多关键词的筛选
6、医疗资源的归还
说明:医疗资源的归还,需要由后勤部成员来归还,确定状态后,如有损坏或者丢失,需要拍照以及确定损失金额
7、医疗资源的管理-增删改查
- 新增
说明:新增医疗资源,填好信息后即可,有新增回显
- 删除
说明:删除医疗资源,跳出提示框确认后即可删除
- 查询
说明:查询支持多列查询
- 修改
说明:点击修改后,直接在显示出的输入框进行修改即可
8、找回密码
说明:找回密码操作仅针对患者群体,需要通过身份证验证后,重新设置密码即可
主要功能核心代码实现
1、数据库连接
2、文件上传
3、Redux状态管理库
4、storage存储
项目总结
在这次的系统开发过程中,个人认为除了页面美观度不够之外其余做的还是不错的。这次的系统使用了很多新奇的技术,比如前端使用的是react框架,内置的diff算法大大地提高了代码运行时,页面渲染的效率,相比于传统的jsp,我觉得我的系统无论是性能上还是算法优化上都有很大的提高。这次的系统开发也让我体会到了前后端分离的技术体验,让我了解了对Ajax轻量级的封装库axios的使用以及前后端交互时用到的promise的使用,这些都对我以后的系统开发有了更好地铺垫。整个系统的开发中,我也学会了组件模块,功能模块的封装技术,大大地减少了代码的复用性以及运行时的效率问题。为成为一个优秀的全栈工程师打下了坚实的基础。在前端,我也使用了相对流行的UI组件库:ant design。使用组件库也让我学到了很多高阶的封装技术,也大大地美化了页面,增加交互的趣味性。
在后端,我使用的是SSM框架,当然我觉得我的后端水平还有所欠缺,仅使用了过滤器设置CORS请求头方便跨域请求。还有很多比如SpringSecret等对用户权限进行管理的技术没有学习使用。
系统的完成度还是很高的,基本上描述的业务都实现了功能,包括预约挂号,医疗资源的申请,医疗资源的管理等,也有严格的代码逻辑把控着。系统开发的过程就像是一个了解自己知识储备,学习成长的过程,通过系统开发这件实操我清楚了解到自己对哪块知识的掌握不充分,还需要更加深入详细地学习