作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
该项目是用springboot+layui+shiro写的医院管理系统,该系统的业务比较复杂,数据库一共有36张表。
项目分2种角色:超级管理员与门诊管理;超级管理员拥有所有菜单权限,门诊管理拥有门诊管理的权限;
项目分为门诊管理、住院管理、系统管理、统计管理、数据中心、排班管理、仓库管理、药房管理
本系统重点是门诊和住院管理
填写患者的详细信息,如姓名,年龄、手机号、性别、身份证号、选择科室挂号类型医生、会出来相对的挂号费,点击提交的时候会判断你输入的各项信息是否正确,如果该手机号或者该身份证号正在就诊,则会提示该手机号或者该身份证号正在就诊。挂号页面会根据单选按钮来查询全部的挂号,当天的挂号和预约的挂号,并且可以针对当天的挂号去给用户进行一系列操作,如转入住院,如果该病人有正在进行的项目则不能转入住院,需要把相关费用交完后才能转入住院
门诊管理的功能:
用户挂号、处方划价、项目划价、项目缴费、项目检查、药品缴费、门诊患者库
住院管理的功能:
入院登记、缴费管理、药品记账、项目记账、出院结算
系统管理功能:
菜单管理、角色管理、用户管理、图标管理、数据源监控管理
统计管理:
门诊月度统计、住院月度统计、门诊年度统计、住院年度统计、医生统计、门诊当天统计
数据中心:
科室中心管理、医生列表管理、药品产地管理、项目大类管理、挂号类型管理、仓库管理、经办人管理、供货商管理、药品分类管理、药品字典管理
排班:
医生排班管理
仓库管理:
入库单管理、库存查询、出库单管理、操作记录管理等
药房管理:
药房详情管理、门诊取药管理、住院取药管理
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 8.0版本;
技术栈
1. 后端:SpringBoot+shiro
2. 前端:html+layui+echarts
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 将项目中application.properties配置文件中的数据库配置改为自己的配置
3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
4. 运行项目,输入localhost:8080 登录
运行截图
代码相关
科室管理控制器
@Controller
@RequestMapping("cao")
public class CreportController {
@Autowired
private CreportService creportService;
//查询所有数据
@RequestMapping("index")
public Object toreport(ReportVo reportVo, Model model, String params, Integer cc, HttpServletRequest request){
reportVo.setCc(cc);
HttpSession session = request.getSession();
//将数据存储到session中
session.setAttribute("ban",cc);
creportService.upddang();
String reportName=params;
reportVo.setReportName(reportName);
List<ReportVo> sel = creportService.sel(reportVo);
model.addAttribute("report",sel);
return "cao/report";
}
//查询所有的科室
@RequestMapping("seldep")
@ResponseBody
public Object seldep(){
List<CDepartments> seldep = creportService.seldep();
return seldep;
}
//查询所有的挂号类型
@RequestMapping("/selreg")
@ResponseBody
public Object selreg(){
List<CRegisteredtype> selreg = creportService.selreg();
return selreg;
}
//查询医生信息
@RequestMapping("seldoctor")
@ResponseBody
public Object seldoctor(CDoctor cDoctor){
Calendar calendar = Calendar.getInstance();
Integer data=calendar.get(Calendar.DAY_OF_WEEK)-1;//获取当前是星期几
if(data==1){
List<ReportVo> one = creportService.one(cDoctor);
return one;
}else if(data==2){
List<ReportVo> two = creportService.two(cDoctor);
return two;
}else if(data==3){
List<ReportVo> three = creportService.three(cDoctor);
return three;
}else if(data==4){
List<ReportVo> four = creportService.four(cDoctor);
return four;
}else if(data==5){
System.out.println(data);
List<ReportVo> five = creportService.five(cDoctor);
return five;
}else if(data==6){
List<ReportVo> six = creportService.six(cDoctor);
return six;
}else{
List<ReportVo> seven = creportService.seven(cDoctor);
return seven;
}
}
//根据挂号类型查找该类型的价格
@RequestMapping("seltymo")
@ResponseBody
public Object seltymo(CRegisteredtype cRegisteredtype){
Integer seltymo = creportService.seltymo(cRegisteredtype);
return seltymo;
}
//添加新的挂号
@RequestMapping("addre")
@ResponseBody
public Object addre(CReport cReport){
int addre = creportService.addre(cReport);
if(addre==1){
return "添加成功";
}else{
return "添加失败,请联系管理员";
}
}
//根据id删除某个患者信息
@RequestMapping("delre")
@ResponseBody
public Object delre(Integer id){
int delre = creportService.delre(id);
if(delre==1){
return "删除成功";
}else{
return "删除失败";
}
}
//根据id删除某个患者信息
@RequestMapping("selById")
@ResponseBody
public Object selById(Integer reportId){
List<ReportVo> reportVos = creportService.selById(reportId);
return reportVos;
}
//判断就诊用户电话身份证号唯一
@RequestMapping("phone")
@ResponseBody
public Object phone(CReport cReport){
int carid = creportService.carid(cReport);
int phone = creportService.phone(cReport);
if(carid>=1){
return 2;
}else if(phone>=1){
return 1;
}else{
return 3;
}
}
//转入住院部
@RequestMapping("zhuanyuan")
@ResponseBody
public Object zhuanyuan(Integer id,CReport cReport,String zhuan){
cReport.setReportId(id);
cReport.setZhuan(zhuan);
Integer zhuanyuan = creportService.zhuanyuan(cReport);
return zhuanyuan;
}
}
用户管理系统
@Controller
@RequestMapping("liao")
public class LadminController {
@Autowired
private LadminService ladminService;
@Autowired
private LleaveService lleaveService;
//跳转入院登记页面
@RequestMapping("/admin")
public String admin(){
return "liao/admin";
}
//查询患者信息
@RequestMapping("/selRegister")
@ResponseBody
public Object selRegister(Integer page, Integer limit,Register register){
//分页查询
PageHelper.startPage(page, limit);
//查询未出院的患者信息
List<Register> selreg=ladminService.selRegister(register);
//把查到的信息放入分页插件中
PageInfo pageInfo = new PageInfo(selreg);
Map<String, Object> tableData = new HashMap<String, Object>();
//这是layui要求返回的json数据格式
tableData.put("code", 0);
tableData.put("msg", "");
//将全部数据的条数作为count传给前台(一共多少条)
tableData.put("count", pageInfo.getTotal());
//将分页后的数据返回(每页要显示的数据)
tableData.put("data", pageInfo.getList());
//把数据返回到layui中
return tableData;
}
//页面请求查询科室信息
@RequestMapping("/selDepartment")
@ResponseBody
public Object selDepartment(){
//new一个实体类
Departments departments=new Departments();
//查询所有科室
List<Departments> Departments= ladminService.selDepartment(departments);
//把查到的科室返回前台下拉框中
return Departments;
}
//页面请求查询医生信息
@RequestMapping("/selDoctor")
@ResponseBody
public Object selDoctor(Integer departmentId){
//new一个实体类
Doctor doctor=new Doctor();
//把获取过来的科室编号放入实体类中
doctor.setDepartmentId(departmentId);
//根据科室查询旗下所有医生
List<Doctor> doctors = ladminService.selDoctor(doctor);
//把查到的医生返回前台下拉框中
return doctors;
}
//查询床位
@RequestMapping("/selBed")
@ResponseBody
public Object selBed(Integer departmentId){
Bed bed= new Bed();
bed.setDepartmentId(departmentId);
//查询没有人入住的床位
bed.setState(0);
List<Bed> beds = ladminService.selBed(bed);
return beds;
}
//添加患者
@RequestMapping("/addRegister")
@ResponseBody
public Object addRegister(Register register,HttpServletRequest request){
Register register1=new Register();
register1.setIdcard(register.getIdcard());
//把患者的身份证号查询一下看看是否已经办理入住
List<Register> registers = ladminService.selRegister(register1);
if(registers.size()==0){
//如果是门诊转过来的用户删除门诊患者信息
if(register.getReportid()!=0){
ladminService.updZ(register);
}
//获取管理人员姓名
String yonghu = (String)request.getSession().getAttribute("yonghu");
register.setOperator(yonghu);
//添加患者信息
int i = ladminService.addRegister(register);
if(i==1){
//修改床位状态
int j = ladminService.updBed(register);
if(j==1){
return "添加成功";
}else{
return "添加失败";
}
}else{
return "添加失败";
}
}else{
return "该患者已存在,请不要重复添加!";
}
}
//查询折扣
@RequestMapping("/selDis")
@ResponseBody
public Object selDis(){
List<Moneytype> moneytypes = ladminService.selDis();
return moneytypes;
}
//查询门诊过来的患者
@RequestMapping("/selDoor")
@ResponseBody
public Object selDoor(Integer page, Integer limit){
PageHelper.startPage(page, limit);
List<Register> selDoor=ladminService.selDoor();
PageInfo pageInfo = new PageInfo(selDoor);
Map<String, Object> tableData = new HashMap<String, Object>();
//这是layui要求返回的json数据格式
tableData.put("code", 0);
tableData.put("msg", "");
//将全部数据的条数作为count传给前台(一共多少条)
tableData.put("count", pageInfo.getTotal());
//将分页后的数据返回(每页要显示的数据)
tableData.put("data", pageInfo.getList());
return tableData;
}
//转科室
@RequestMapping("/updKe")
@ResponseBody
public Object updKe(Register register){
//把用户要住的床改成已住
ladminService.updBed(register);
//把用户的曾经床位改成空床
lleaveService.updBstate(register);
//把用户的信息进行更改
int i = ladminService.updKe(register);
if(i==1){
return "变更成功";
}else{
return "变更失败";
}
}
}
如果也想学习本系统,下面领取。回复:045springboot