基于SpinrgBoot+Vue的医院管理系统-026
一、项目技术栈
Java开发工具:JDK1.8
后端框架:SpringBoot
前端:Vue开发
数据库:MySQL5.7和Navicat管理工具结合
服务器:Tomcat8.5
开发软件:IDEA / Eclipse
是否Maven项目:是
二、功能介绍
(1)管理员:可对医生信息,患者信息,挂号信息,药物信息,检查项目信息进行增删改查操作,可根据日期对医生进行排班操作,同时还可以查看数据的统计信息。
(2)患者:可以预约当天以及往后七天的挂号,可以自助缴费,完成治疗后可浏览并打印病情报告单,同时也可对就诊医生进行评分。
医生:根据患者的挂号,可以诊断病因并开处方药以及检查项目,同时还有追加诊断功能,可以根据病人的病情需要申请当天入院。
三、项目视频
基于SpinrgBoot+Vue的医院管理系统-026
四、功能截图






五、代码实现
排班信息
package com.rabbiter.hospital.controller;import com.rabbiter.hospital.pojo.Arrange;
import com.rabbiter.hospital.service.ArrangeService;
import com.rabbiter.hospital.utils.ResponseData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;//源码需要+V:HadesTYT@RestController
@RequestMapping("/arrange")
public class ArrangeController {@Autowiredprivate ArrangeService arrangeService;/*** 根据日期查询排班信息*/@RequestMapping("findByTime")public ResponseData findByTime(@RequestParam(value = "arTime") String arTime, @RequestParam(value = "dSection") String dSection) {return ResponseData.success("根据日期查询排班信息成功", this.arrangeService.findByTime(arTime, dSection));}/*** 增加排班信息*/@RequestMapping("addArrange")public ResponseData addArrange(Arrange arrange){if (this.arrangeService.addArrange(arrange))return ResponseData.success("增加排班信息成功");return ResponseData.fail("该医生该日已排班");}/*** 删除排班信息*/@RequestMapping("deleteArrange")public ResponseData deleteArrange(String arId){if (this.arrangeService.deleteArrange(arId))return ResponseData.success("删除排班信息成功");return ResponseData.fail("排班信息不存在");}}
病房信息
package com.rabbiter.hospital.controller;import com.rabbiter.hospital.pojo.Bed;
import com.rabbiter.hospital.service.BedService;
import com.rabbiter.hospital.utils.ResponseData;
import com.rabbiter.hospital.utils.TodayUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;//源码需要+V:HadesTYT@RestController
@RequestMapping("bed")
public class BedController {@Autowiredprivate BedService bedService;/*** 查找所有空床位*/@RequestMapping("findNullBed")public ResponseData findNullBed(){return ResponseData.success("查找所有空床位成功", this.bedService.findNullBed());}/*** 增加床位信息*/@RequestMapping("updateBed")public ResponseData updateBed(Bed bed) {if (this.bedService.updateBed(bed))return ResponseData.success("增加床位成功!");return ResponseData.fail("增加床位失败!");}/*** 根据pId查询住院*/@RequestMapping("findBedByPid")public ResponseData findBedByPid(@RequestParam(value = "pId") int pId){return ResponseData.success("根据pId查询住院成功", this.bedService.findBedByPid(pId)) ;}/*** 分页模糊查询所有床位信息*/@RequestMapping("findAllBeds")public ResponseData findAllBeds(int pageNumber, int size, String query){return ResponseData.success("返回所有床位信息成功", this.bedService.findAllBeds(pageNumber, size, query));}/*** 根据id查找床位*/@RequestMapping("findBed")public ResponseData findBed(int bId){return ResponseData.success("根据id查找床位成功", this.bedService.findBed(bId));}/*** 增加床位信息*/@RequestMapping("addBed")@ResponseBodypublic ResponseData addBed(Bed bed) {Boolean bo = this.bedService.addBed(bed);if (bo) {return ResponseData.success("增加床位信息成功");}return ResponseData.fail("增加床位信息失败!床号或已被占用");}/*** 删除药物信息*/@RequestMapping("deleteBed")public ResponseData deleteBed(@RequestParam(value = "bId") int bId) {Boolean bo = this.bedService.deleteBed(bId);if (bo){return ResponseData.success("删除床位信息成功");}return ResponseData.fail("删除床位信息失败");}/*** 清空床位信息*/@RequestMapping("emptyBed")public ResponseData emptyBed(int bId){if(this.bedService.emptyBed(bId))return ResponseData.success("清空床位信息成功");return ResponseData.fail("清空床位信息失败");}/*** 统计今天挂号人数*/@RequestMapping("bedPeople")public ResponseData bedPeople(){String bStart = TodayUtil.getTodayYmd();return ResponseData.success("统计今天住院人数成功", this.bedService.bedPeople(bStart));}
}
医生信息
package com.rabbiter.hospital.controller;import com.rabbiter.hospital.pojo.Doctor;
import com.rabbiter.hospital.service.DoctorService;
import com.rabbiter.hospital.service.OrderService;
import com.rabbiter.hospital.service.PatientService;
import com.rabbiter.hospital.utils.JwtUtil;
import com.rabbiter.hospital.utils.ResponseData;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;//源码需要+V:HadesTYT@RestController
@RequestMapping("doctor")
public class DoctorController {@Autowiredprivate DoctorService doctorService;@Autowiredprivate OrderService orderService;@Autowiredprivate PatientService patientService;/*** 登录数据验证*/@RequestMapping(value = "login", method = RequestMethod.POST)@ResponseBodypublic ResponseData login(@RequestParam(value = "dId") int dId, @RequestParam(value = "dPassword") String dPassword) {Doctor doctor = this.doctorService.login(dId, dPassword);if (doctor != null) {Map<String,String> map = new HashMap<>();map.put("dName", doctor.getdName());map.put("dId", String.valueOf(doctor.getdId()));String token = JwtUtil.getToken(map);map.put("token", token);//response.setHeader("token", token);return ResponseData.success("登录成功", map);} else {return ResponseData.fail("登录失败,密码或账号错误");}}/*** 查看当天挂号列表*/@RequestMapping("findOrderByNull")public ResponseData findOrderByNull(@Param(value = "dId") int dId, @RequestParam(value = "oStart") String oStart){System.out.println("账号时间为"+dId+oStart);return ResponseData.success("返回当天挂号信息成功", this.orderService.findOrderByNull(dId,oStart));}/*** 根据患者id查询患者信息*/@RequestMapping("findPatientById")public ResponseData findPatientById(int pId){return ResponseData.success("返回患者信息成功!", this.patientService.findPatientById(pId));}/*** 分页根据科室查询所有医生信息*/@RequestMapping("findDoctorBySectionPage")public ResponseData findDoctorBySectionPage(int pageNumber, int size, String query, String arrangeDate, String dSection){return ResponseData.success("分页根据科室查询所有医生信息成功", this.doctorService.findDoctorBySectionPage(pageNumber, size, query, arrangeDate, dSection));}/*** 用户评价*/@RequestMapping("updateStar")public ResponseData updateStar(int dId, Double dStar){if(this.doctorService.updateStar(dId, dStar))return ResponseData.success("评价成功");return ResponseData.fail("评价失败");}/*** 上传Excel导入数据*/@RequestMapping(value = "uploadExcel", method = RequestMethod.POST)@ResponseBodypublic ResponseData uploadExcel(@RequestParam("file") MultipartFile multipartFile) throws Exception {if (this.doctorService.uploadExcel(multipartFile))return ResponseData.success("上传Excel导入数据成功");return ResponseData.fail("上传Excel导入数据失败");}/*** Excel导出数据*/@RequestMapping("downloadExcel")public ResponseData downloadExcel(HttpServletResponse response) throws IOException {if (this.doctorService.downloadExcel(response))return ResponseData.success("Excel导出数据成功");return ResponseData.fail("Excel导出数据失败");}
}
上万套源码,每日分享源码,谢谢你的关注和喜欢~
🛰️HadesTYT
相关文章:
基于SpinrgBoot+Vue的医院管理系统-026
一、项目技术栈 Java开发工具:JDK1.8 后端框架:SpringBoot 前端:Vue开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 二、功能介绍 (1)…...
Mujoco xml模型
Mujoco xml模型 一个例子compileroptionassetmesh default基本使用childclass与class多个class worldbodybody关系inertialjointgeom XML主要分为以下三个部分: < asset> : 用 tag导入STL文件;< worldbody>:用tag定义…...
LLM 为什么使用ID,每个单词不都是有编码的吗
LLM 为什么使用ID,每个单词不都是有编码的吗 在自然语言处理(NLP)里,把文本转换为整数 ID 来表示是一种常见的做法,以下为你详细阐述使用 ID 的原因,以及是否每个单词都有编码。 使用 ID 的原因 1. 计算机可处理性 计算机没办法直接处理文本数据,因为文本是人类使用的…...
vue专题1---vue中绑定的自定义事件对应的事件处理函数,如何在传递参数的同时接收事件对象 event
在 Vue 中,如果想在事件处理函数中传递参数,可以使用箭头函数或者 v-bind 来实现。下面是两种常见的方法: 方法1:使用箭头函数 你可以直接在事件监听中使用箭头函数来传递参数,同时接收事件对象 e。 <template&g…...
转行嵌入式,需要自学多久?
作为一个本硕都学机械,却阴差阳错进入嵌入式行业的老兵,这个问题我能聊一整天。十几年前我还在工厂车间穿着工装和机床打交道,偶然接触到单片机后就一发不可收拾。 转行这条路我走得异常艰辛,踩过的坑比写过的代码还多。去年我终…...
实现抗隐私泄漏的AI人工智能推理
目录 什么是私人AI? 什么是可信执行环境? TEE 如何在 AI 推理期间保护数据? 使用 TEE 是否存在风险? 有哪些风险? Atoma 如何应对这些风险 为什么去中心化网络是解决方案 人工智能推理过程中还有其他保护隐私的方法吗? 私人人工智能可以实现什么? 隐私驱动的应…...
SeaTunnel系列之:Apache SeaTunnel编译和安装
Apache SeaTunnel编译 Prepare编译克隆源代码本地安装子项目从源代码构建 SeaTunnel构建子模块安装 JetBrains IDEA Scala 插件安装 JetBrains IDEA Lombok 插件代码风格运行简单示例不仅如此 安装下载 SeaTunnel 发布包下载连接器插件从源代码构建 SeaTunnel 运行 SeaTunnel 在…...
数据结构刷题之贪心算法
贪心算法(Greedy Algorithm) 是一种在每个步骤中都选择当前最优解的算法设计策略。它通常用于解决优化问题,例如最小化成本或最大化收益。贪心算法的核心思想是:在每一步选择中,都做出局部最优的选择,希望…...
Spring进阶:掌控Bean的作用域与生命周期
在上一篇文章中,我们了解了Spring IoC容器如何接管对象的创建和依赖注入,实现了松耦合。容器创建并管理的对象,我们称之为Bean。 但是,容器仅仅是创建Bean就够了吗?显然不是。我们还需要关心: 这个Bean在容…...
【Leetcode-Hot100】移动零
题目 解答 首先,使用的解题思路是:使用两个指针,分别指向数组的第一个0元素位置,以该元素位置1为起始点寻找接下来第一个非0元素位置。二者确定后,对其进行交换。随后继续寻找下一个0元素位置。重复上述操作。 但第一…...
安装 Calico 的两种主流方式对比
本文对比了 Calico 的两种主流安装方式: 使用 calico.yaml 的 Manifest 安装方式使用 Tigera Operator(tigera-operator.yaml custom-resources.yaml)安装方式 ✅ 1. 使用 Manifest 方式安装(直接部署 calico.yaml) …...
leetcode_203. 移除链表元素_java
203. 移除链表元素https://leetcode.cn/problems/remove-linked-list-elements/ 1、题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head …...
常见算法模板总结
文章目录 一、二叉树1. DFS2. BFS 二、回溯模板三、记忆化搜索四、动态规划1. 01背包朴素版本滚动数组优化 2. 完全背包朴素版本滚动数组优化 3. 最长递增子序列LIS朴素版本贪心二分优化 4. 最长公共子序列5. 最长回文子串 五、滑动窗口六、二分查找七、单调栈八、单调队列九、…...
UE5学习笔记 FPS游戏制作44 统一UI大小 sizeBox
如果我们希望多个类似的UI大小一样,例如不同菜单的标题,可以使用sizeBox组件 我们在标题控件上,用sizeBox包裹所有子物体 然后指定他的最小宽高,或最大宽高 如果指定的是最小宽高,当子元素(如图片…...
# 基于BERT的文本分类
基于BERT的文本分类项目的实现 一、项目背景 该文本分类项目主要是情感分析,二分类问题,以下是大致流程及部分代码示例: 二、数据集介绍 2.1 数据集基本信息 数据集自定义类型二分类(正面/负面)样本量训练集 验证…...
C++学习之服务器EPOLL模型、处理客户端请求、向客户端回复数、向客户端发送文件
目录 1.启动epoll模型 2.和客户端建立新连接 3.接受客户端Http请求数据 4.代码回顾从接受的数据中读出请求行 5.请求行解析 6.正则表达式以及匹配 7.解析请求行以及后续处理 8.对path处理说明 9.如何回复响应数据 10.对文件对应content-type如何查询 11.服务器处理流…...
BUUCTF-web刷题篇(17)
26.BabyUpload 源码:https://github.com/imaginiso/GXY_CTF/tree/master/Web/babyupload 查看题目源码: 写着:SetHandler application/x-httpd-php 通过源码可以看出这道文件上传题目主要还是考察.htaccess配置文件的特性,倘若…...
国网B接口协议调阅实时视频接口流程详解以及检索失败原因(电网B接口)
文章目录 一、B接口协议调阅实时视频接口介绍B.6.1 接口描述B.6.2 接口流程B.6.3 接口参数B.6.3.1 SIP头字段B.6.3.2 SIP响应码B.6.3.3 SDP参数定义B.6.3.4 RTP动态Payload定义 B.6.4 消息示例B.6.4.1 调阅实时视频请求B.6.4.2 调阅实时视频请求响应 二、B接口调阅实时视频失败…...
windows11下pytorch(cpu)安装
先装anaconda 见最下方 Pytorch 官网:PyTorch 找到下图(不要求版本一样)(我的电脑是集显(有navdia的装gpu),装cpu) 查看已有环境列表 创建环境 conda create –n 虚拟环境名字(…...
NVR接入录像回放平台用EasyCVR打造地下车库安防:大型商居安全优选方案
一、背景分析 随着居民生活品质的提升,大型商业建筑和住宅小区纷纷配套建设地下停车库。但是地下车库盗窃、失火、恶意毁坏车辆、外部人员随意进出等事件频发,部署视频监控系统成为保障地下车库的安全关键举措。 目前,很多商业和住宅都会在…...
玻璃期货数据下载与分析:Python金融实战分享
期货数据下载与分析:Python实战分享 引言 在金融市场中,期货分析是一项重要的工作,而获取准确且及时的数据是进行有效分析的基础。今天,我们将深入探讨一段使用Python编写的代码,该代码用于从郑州商品交易所…...
excel常见错误包括(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL! )
目录 1. #N/A2. #VALUE!3. #REF!4. #DIV/0!5. #NUM!6. #NAME?7. #NULL!8.图表总结 在 Excel 中,可能会遇到以下常见的错误值,每个都有特定的含义和成因: 1. #N/A 含义: 表示“Not Available”(不可用)。…...
乾元通渠道商中标川藏铁路西藏救援队应急救援装备项目
乾元通渠道商中标川藏铁路西藏救援队应急救援装备项目,项目内通信指挥车基于最新一代应急指挥车解决方案打造,配合乾元通自研的车载多链路聚合路由及系统,主要用途为保障应急通讯,满足任务执行时指挥协调、通信联络及数据传输的要…...
数学知识——矩阵乘法
使用矩阵快速幂优化递推问题 对于一个递推问题,如递推式的每一项系数都为常数,我们可以使用矩阵快速幂来对算法进行优化。 一般形式为: F n F 1 A n − 1 F_nF_1A^{n-1} FnF1An−1 由于递推式的每一项系数都为常数,因此对…...
左右开弓策略思路
一、策略概述 本策略是一种基于多种技术指标的复杂交易策略,包括自定义指标计算、过滤平滑处理以及交易信号生成。 该策略通过不同的交易平台代码段实现,旨在通过分析历史价格数据来预测未来价格走势,并据此生成交易信号。 二、主要技术指标…...
将jar包制作成deb一键安装包
文章目录 准备环境准备deb包结构构建Deb包测试安装常用操作命令 本文介绍如何将java运行环境、jar程序一起打包成一个deb格式的安装包,创建桌面图标,通过点击图标可使用系统自带浏览器快捷访问web服务的URL,同时注册服务并配置好开机自启。 准…...
Java 常用安全框架的 授权模型 对比分析,涵盖 RBAC、ABAC、ACL、基于权限/角色 等模型,结合框架实现方式、适用场景和优缺点进行详细说明
以下是 Java 常用安全框架的 授权模型 对比分析,涵盖 RBAC、ABAC、ACL、基于权限/角色 等模型,结合框架实现方式、适用场景和优缺点进行详细说明: 1. 授权模型类型与定义 模型名称定义特点RBAC(基于角色的访问控制)通…...
aws平台练习
注册 AWS 账户 访问 AWS 官方网站,点击“免费注册”按钮,按照提示完成账户注册: 提供电子邮件地址、密码和电话号码。 验证身份(可能需要手机验证码)。 设置 billing 信息。 2. 登录 AWS 管理控制台 使用注册的邮箱和…...
力扣DAY40-45 | 热100 | 二叉树:直径、层次遍历、有序数组->二叉搜索树、验证二叉搜索树、二叉搜索树中第K小的元素、右视图
前言 简单、中等 √ 好久没更了,感觉二叉树来回就那些。有点变懒要警醒,不能止步于笨方法!! 二叉树的直径 我的题解 遍历每个节点,左节点最大深度右节点最大深度当前节点当前节点为中心的直径。如果左节点深度更大…...
【MYSQL从入门到精通】数据类型及建表
一些基础操作语句 1.使用客户端工具连接数据库服务器:mysql -uroot -p 2.查看所有数据库:show databases; 3.创建属于自己的数据库: create database 数据库名;create database if not exists 数据库名; 强烈建议大家在建立数据库时指定编…...
