首页 > 编程语言 >医院门诊预约挂号系统 JAVA开源项目 毕业设计

医院门诊预约挂号系统 JAVA开源项目 毕业设计

时间:2023-10-31 11:01:22浏览次数:42  
标签:JAVA 毕业设计 doctor 预约 医生 开源 挂号 模块 ds

医院门诊预约挂号系统 JAVA开源项目 毕业设计_管理系统



一、摘要

基于JAVA+Vue+SpringBoot+MySQL 的医院门诊预约挂号系统,包含了科室管理模块、医生管理模块、预约挂号模块、医院新闻模块和留言板模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,医院门诊预约挂号系统基于角色的访问控制,给患者、医院管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

医院门诊预约挂号系统 JAVA开源项目 毕业设计_医院预约_02

https://gf.bilibili.com/item/detail/1104216029

为了帮助小白入门 Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。


二、功能模块

为了能让开发出来的预约挂号真正投入使用,所以需要对系统的需求加以分析设计,以下分别对功能性需求和可行性两方面分别对预约挂号进行需求分析。

医院门诊预约挂号系统 JAVA开源项目 毕业设计_vue.js_03

2.1 功能性需求

本文设计的预约挂号系统的包括了系统数据中心模块,用来存放管理系统通用的模块,另外分别设计了科室/医生档案、预约挂号、医院时政这三大模块,用于存放系统的核心业务逻辑。

2.1.1 数据中心模块

数据中心模块包含了对医院门诊预约挂号系统的基础模块,比如管理谁可以登陆这套系统,记录这些人登陆系统做了什么,不同的人拥有不同权限的管理。

医院门诊预约挂号系统 JAVA开源项目 毕业设计_预约挂号_04

2.1.2 科室医生档案模块

科室医生档案模块是对医院科室、医生的信息进行管理,其中包括医院所有科室、及科室下医生的档案,包含了科室名称、科室代码,医生姓名、医生年龄、医生学历学位、开始工作时间、毕业院校、职称、专业、医生简介等,可以通过此模块对科室、医生进行添加、编辑更新、删除、查询操作。

医院门诊预约挂号系统 JAVA开源项目 毕业设计_医院预约_05

2.1.3 预约挂号模块

医院门诊预约挂号管理系统录入了各大医院医生的放号信息,包括不同职称医生的挂号费用,管理员在这个模块进行挂号费用的设置和医生的排班。

医院门诊预约挂号系统 JAVA开源项目 毕业设计_管理系统_06

2.1.4 医院时政模块

医院时政模块是医院的门面,模块上放置了医院发布的重要通知、医生坐诊停诊信息和就诊患者的留言信息。患者可以查询管理员发布的时政新闻,也可以对医院进行评价留言,做到和医院的数据交互。

医院门诊预约挂号系统 JAVA开源项目 毕业设计_预约挂号_07

2.2 可行性分析

2.2.1 可靠性

医院门诊预约挂号的数据真实性非常重要。所以为了保证预约挂号系统的数据准确,要定时清除系统的冗余数据,以便于对挂号数据进行数据分析。

2.2.2 易用性

易用性是任何管理系统必须要遵循的原则,对于预约挂号系统也是如此。系统必须要易于就诊患者使用,因为系统的开发就是为了简化患者的就医流程,不能因为系统的出现而让就医流程更复杂。

2.2.3 维护性

医院门诊要有自我保护机制,需要拥有抛出异常的机制,不能陷入无限循环判断而让系统崩溃,造成患者挂号失败的情况。


三、数据库设计

3.1 用户表

医院门诊预约挂号系统 JAVA开源项目 毕业设计_医院预约_08

3.2 科室档案表

医院门诊预约挂号系统 JAVA开源项目 毕业设计_管理系统_09

3.3 医生档案表

医院门诊预约挂号系统 JAVA开源项目 毕业设计_预约挂号_10

3.4 医生放号表

医院门诊预约挂号系统 JAVA开源项目 毕业设计_医院预约_11

3.5 患者挂号预约表

医院门诊预约挂号系统 JAVA开源项目 毕业设计_vue.js_12

3.6 医院时政表

医院门诊预约挂号系统 JAVA开源项目 毕业设计_医院预约_13

3.7 医院留言表

医院门诊预约挂号系统 JAVA开源项目 毕业设计_vue.js_14


四、系统展示

医院门诊预约挂号系统 JAVA开源项目 毕业设计_vue.js_15

医院门诊预约挂号系统 JAVA开源项目 毕业设计_预约挂号_16

医院门诊预约挂号系统 JAVA开源项目 毕业设计_医院预约_17

医院门诊预约挂号系统 JAVA开源项目 毕业设计_预约挂号_18

医院门诊预约挂号系统 JAVA开源项目 毕业设计_医院预约_19

医院门诊预约挂号系统 JAVA开源项目 毕业设计_预约挂号_20

医院门诊预约挂号系统 JAVA开源项目 毕业设计_预约挂号_21

医院门诊预约挂号系统 JAVA开源项目 毕业设计_管理系统_22

医院门诊预约挂号系统 JAVA开源项目 毕业设计_管理系统_23


五、核心代码

5.1 查询医生

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询医生")
public Result<IPage<Doctor>> getByPage(@ModelAttribute Doctor doctor,@ModelAttribute PageVo page){
    QueryWrapper<Doctor> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(doctor.getDoctorName())) {
        qw.like("doctor_name",doctor.getDoctorName());
    }
    if(!ZwzNullUtils.isNull(doctor.getPostLevel())) {
        qw.eq("post_level",doctor.getPostLevel());
    }
    if(!ZwzNullUtils.isNull(doctor.getSubjectId())) {
        qw.eq("subject_id",doctor.getSubjectId());
    }
    if(!ZwzNullUtils.isNull(doctor.getNoeDate()) && Objects.equals(doctor.getNoeDate(),"是")) {
        qw.inSql("id","SELECT id FROM t_doctor WHERE id IN(SELECT DISTINCT doctor_id FROM t_doctor_scheduling WHERE DATE = '" + DateUtil.today() + "')");
    }
    return new ResultUtil<IPage<Doctor>>().setData(iDoctorService.page(PageUtil.initMpPage(page),qw));
}

5.2 医生放号

@RequestMapping(value = "/addNumber", method = RequestMethod.POST)
@ApiOperation(value = "医生放号")
public Result<Object> addNumber(@RequestParam String doctorId,@RequestParam String date,@RequestParam int step,@RequestParam int number){
    Doctor doctor = iDoctorService.getById(doctorId);
    if(doctor == null) {
        return ResultUtil.error("医生不存在");
    }
    if(number < 1) {
        return ResultUtil.error("放号数必须大于0");
    }
    for(int i = 1 ; i <= number; i ++) {
        DoctorScheduling ds = new DoctorScheduling();
        ds.setDoctorId(doctor.getId());
        ds.setDoctorName(doctor.getDoctorName());
        ds.setNumber(i + "");
        ds.setStep(step + "");
        ds.setDate(date);
        ds.setOrderFlag(0);
        iDoctorSchedulingService.saveOrUpdate(ds);
    }
    return ResultUtil.success("放号成功");
}

5.3 置顶医院新闻

@RequestMapping(value = "/set_top_by_id", method = RequestMethod.POST)
@ApiOperation(value = "置顶医院新闻")
public Result<Boolean> setTopById(@RequestParam String id){
    HospitalNews appDynamicNew=iHospitalNewsService.getById(id);
    if(appDynamicNew==null) {
        return ResultUtil.error("该动态信息不存在");
    }
    if(appDynamicNew.getIsTop().equals("yes")) {
        appDynamicNew.setIsTop("no");
    }
    else {
        appDynamicNew.setIsTop("yes");
    }
    if(!iHospitalNewsService.saveOrUpdate(appDynamicNew)) {
        return ResultUtil.error("设置失败");
    }
    return ResultUtil.success("设置成功");
}

5.4 查询我的挂号数据

@RequestMapping(value = "/getMyOrderList", method = RequestMethod.POST)
@ApiOperation(value = "查询我的挂号")
public Result<IPage<HospitalOrder>> getMyOrderList(@ModelAttribute HospitalOrder order,@ModelAttribute PageVo page){
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<HospitalOrder> qw = new QueryWrapper<>();
    qw.eq("user_id",currUser.getId());
    qw.orderByDesc("create_time");
    if(!ZwzNullUtils.isNull(order.getDateTime())) {
        qw.eq("date_time",order.getDateTime());
    }
    if(!ZwzNullUtils.isNull(order.getDoctorName())) {
        qw.like("doctor_name",order.getDoctorName());
    }
    return new ResultUtil<IPage<HospitalOrder>>().setData(iHospitalOrderService.page(PageUtil.initMpPage(page),qw));
}

5.5 预约挂号

@RequestMapping(value = "/addOrder", method = RequestMethod.POST)
@ApiOperation(value = "新增挂号")
public Result<Object> addOrder(@RequestParam String orderId){
    User currUser = securityUtil.getCurrUser();
    DoctorScheduling ds = iDoctorSchedulingService.getById(orderId);
    if(ds == null) {
        return ResultUtil.error("号源不存在");
    }
    if(ds.getOrderFlag() > 0) {
        return ResultUtil.error("您手慢拉,该号已被别人预约!");
    }
    Doctor doctor = iDoctorService.getById(ds.getDoctorId());
    if(doctor == null) {
        return ResultUtil.error("医生不存在");
    }
    ds.setOrderFlag(1);
    iDoctorSchedulingService.saveOrUpdate(ds);
    HospitalOrder ho = new HospitalOrder();
    ho.setUserId(currUser.getId());
    ho.setUserName(currUser.getNickname());
    ho.setOrderId(ds.getId());
    ho.setNumber(ds.getNumber());
    ho.setStep(ds.getStep());
    ho.setDateTime(ds.getDate());
    ho.setDoctorId(ds.getDoctorId());
    ho.setDoctorName(ds.getDoctorName());
    ho.setMoneyData(doctor.getOrderMoney());
    iHospitalOrderService.saveOrUpdate(ho);
    return ResultUtil.success("预约成功!");
}

六、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

医院门诊预约挂号系统 JAVA开源项目 毕业设计_vue.js_24

标签:JAVA,毕业设计,doctor,预约,医生,开源,挂号,模块,ds
From: https://blog.51cto.com/u_16322671/8102534

相关文章

  • 校园电商物流云平台 JAVA开源项目 毕业设计
    一、摘要基于JAVA+Vue+SpringBoot+MySQL的校园电商物流云平台,包含了商品管理模块、快递公司模块、物流订单模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,校园电商物流云平台基于角色的访问控制,给商家、物流......
  • 考研专业课程管理系统 JAVA开源项目 毕业设计
    一、摘要基于JAVA+Vue+SpringBoot+MySQL的考研专业课程管理系统,包含了考研课程、考研专业、考研注册、考研院校和高校教师模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,考研专业课程管理系统基于角色的访问......
  • java通过ssl连接mysql(linux)
    环境:Os:centos7mysql:5.7.29java运行客户端:windows10 1.查看服务器的证书文件mysql数据data目录下[root@localhostdata]#pwd/opt/mysql57/data[root@localhostdata]#ls-al*.pem-rw-------.1mysqlmysql1676Oct3005:22ca-key.pem-rw-r--r--.1mysqlmysq......
  • java怎么递归
    在Java中,递归(Recursion)是指一个方法在其内部调用自身的过程。递归通常用于解决可以被分解成相似子问题的问题。在编写递归函数时,需要定义递归的结束条件,以防止无限循环。下面是一个简单的递归示例,演示了如何使用递归计算一个数的阶乘:publicclassMain{publicstaticvoi......
  • Java配置工具:typesafe config使用文档超详解
    文章目录一、typesafeconfig概述1、官网2、优点3、JSON超集特性(HOCON)(1)实例4、版本概述二、typesafeconfig基本使用1、API示例2、更多示例3、不变性4、模式和验证5、配置文件加载6、合并配置树7、处理默认值8、理解Config和ConfigObject9、理解ConfigFactory一、typesafeconfig......
  • 明解Java第二章练习题答案
    练习2-1请对代码清单2-6的2处进行修改,将带有小数部分的实数值赋给x和y,查看结果如何?答案:编译器会报错,因为小数的默认类型double是比int更大的类型。如果给double类型的变量赋值整数,则编译器不会报错。练习2-2请编写一段程序,对三个int型变量进行赋值,并计算合计值和平均值。......
  • java 上传大文件
    Java上传大文件实现方法简介在开发过程中,我们经常会遇到需要上传大文件的需求。本文将教会你如何用Java实现上传大文件的功能。整体流程首先,让我们来看一下实现上传大文件的整体流程。下面是一个流程表格:步骤 描述1 创建一个文件上传表单2 在后端编写一个接收上传文件的控制器3 ......
  • CRMchat开源客服系统-界面版权去除与修改
    前端界面去除版权 修改界面进入template/admin目录安装依赖npminstall开发模式运行修改vue.config.js中的,此处反代线上网址```devServer:{proxy:'http://crmchat.v1kf.com'},```聊天页面版权template\admin\src\pages\kefu\externalConnection\pcCustomerServer.vu......
  • JAVA-EE手写ThreadLocal源码实现一个线程一个连接对象------Java-Web项目
    手写ThreadLocalpackagecom.bjpowernode.ThreadLocal;importjava.util.HashMap;importjava.util.Map;publicclassMyThreadLocal<T>{privateMap<Thread,T>map=newHashMap<>();publicvoidset(To){//向threadLocal中绑定......
  • Java 基础篇day03
    流程控制分支结构if和switchif分支根据条件(真或假)来决定执行某段代码点击查看代码if(条件表达式){代码}if(条件表达式){代码1;}else{代码2;}if(条件表达式1){代码1;}elseif(条件表达式2){代码2;}...else{代码n;}switch分支点击查看代码switch(条件......