基于PHP的医院预约挂号管理系统

🍅 作者主页:Selina .a

🍅 简介:Java领域优质创作者🏆、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。

主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。

🍅文末获取源码联系🍅  

目录

课题的提出

数据库设计

系统功能设计

关键代码

 专栏推荐

推荐项目

源码获取


课题的提出

随着信息时代的来临,过去的管理方式缺点逐渐暴露,对过去的医院预约挂号管理方式的缺点进行分析,采取计算机方式构建医院预约挂号系统。本文通过阅读相关文献,研究国内外相关技术,开发并设计一款医院预约挂号系统的构建方案。

本文通过采用B/S架构, MySQL数据库以及php技术,结合国内管理现状,开发了一个医院预约挂号系统。系统主要有个人中心、用户管理、医生管理、医院概况管理、科室信息管理、就诊信息管理、挂号信息管理、诊断信息管理、取消挂号管理、健康档案管理、系统管理等功能模块。通过系统测试,本系统实现了系统设计目标,相对于人工管理方式,本系统有效的减少了医院预约挂号管理的经济投入,并且大幅度提升了医院预约挂号管理的效率。

 


数据库设计

系统有一个内部数据库。对于数据库系统设计一般基于对我国现有企业数据库系统进行优化管理的操作系统。通常广泛采用的企业数据库资源管理软件系统主要类型包括mysqlserver、mysql、oracle等。该医院预约挂号系统主要采用了mysql大型数据库资源管理软件。

下表将详细列出系统的数据库中所有列表。每一份量表的设计成果列出数据库的表信息属于设计的一部分,下面介绍数据库中的各个表的详细信息。

表4-1就诊信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

gonghao

varchar

200

工号

yishengxingming

varchar

200

医生姓名

xingbie

varchar

200

性别

touxiang

longtext

4294967295

头像

zhicheng

varchar

200

职称

guahaofei

int

挂号费

keshimingcheng

varchar

200

科室名称

jiuzhenshijian

varchar

200

就诊时间

shanzhanglingyu

varchar

200

擅长领域

yishengjianjie

longtext

4294967295

医生简介

表4-2健康档案

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

danganbianhao

varchar

200

档案编号

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

nianling

int

年龄

xuetang

varchar

200

血糖

maibo

varchar

200

脉搏

manxingjibing

varchar

200

慢性急病

jiazubingshi

varchar

200

家族病史

yaowuguomin

varchar

200

药物过敏

jiwangbingshi

varchar

200

既往病史

jiankangzhuangkuang

varchar

200

健康状况

xiangxishuoming

longtext

4294967295

详细说明

gonghao

varchar

200

工号

yishengxingming

varchar

200

医生姓名

jiandangriqi

date

建档日期

表4-3挂号信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

gonghao

varchar

200

工号

yishengxingming

varchar

200

医生姓名

xingbie

varchar

200

性别

zhicheng

varchar

200

职称

guahaofei

int

挂号费

keshimingcheng

varchar

200

科室名称

jiuzhenshijian

varchar

200

就诊时间

yuyueshijian

datetime

预约时间

beizhu

varchar

200

备注

zhanghao

varchar

200

账号

xingming

varchar

200

姓名

shoujihaoma

varchar

200

手机号码

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

ispay

varchar

200

是否支付

未支付


系统功能设计

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到医院预约挂号系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:

 系统注册:在系统注册页面的输入栏中输入用户注册信息进行注册操作,系统注册界面如图5-2所示:

 医院概况:在医院概况页面的输入栏中输入医院名称、选择类型和详细地址进行查询,可以查看到医院概况详细信息,并根据需要进行收藏或评论等操作;如图5-3所示:

 就诊信息:在就诊信息页面的输入栏中输入医生姓名、选择职称和科室名称进行查询,可以查看到就诊详细信息,并根据需要进行收藏或挂号等操作;如图5-4所示:

 个人中心:在个人中心页面通过填写个人详细信息进行更新信息操作;还可以对我的收藏等进行详细操作;如图5-5所示:

 后台用户登录,在登录页面选择需要登录的角色,再正确输入用户名和密码后,点击登录进入操作系统进行操作;如图5-6所示。         

 管理员进入主界面,主要功能包括对个人中心、用户管理、医生管理、医院概况管理、科室信息管理、就诊信息管理、挂号信息管理、诊断信息管理、取消挂号管理、健康档案管理、系统管理等进行操作。管理员主界面如图5-7所示:

 管理员点击用户管理。在用户页面输入账号和姓名进行查询、新增或删除用户列表,并根据需要对用户详情信息进行详情、修改或删除操作;如图5-8所示:

 管理员点击医生管理。在医生页面输入工号和医生姓名进行查询、新增或删除医生列表,并根据需要对医生详情信息进行详情、排班、修改或删除操作;如图5-9所示:

 管理员点击医院概况管理。在医院概况页面输入医院名称、选择类型和详细地址进行查询、新增、删除或医院类型统计医院概况列表,并根据需要对医院概况详情信息进行详情、修改、查看评论或删除操作;如图5-10所示:

 管理员点击科室信息管理。在科室信息页面输入科室名称和科室地址进行查询、新增或删除科室信息列表,并根据需要对科室详情信息进行详情、修改或删除操作;如图5-11所示:

 管理员点击就诊信息管理。在就诊信息页面输入医生姓名、选择职称和科室名称进行查询或删除就诊信息列表,并根据需要对就诊详情信息进行详情、修改或删除操作;如图5-12所示:

 管理员点击诊断信息管理。在诊断信息页面输入医生姓名、职称、科室名称和姓名进行查询、删除或诊断时间统计诊断信息列表,并根据需要对诊断详情信息进行详情或删除操作;如图5-13所示:

 管理员点击健康档案管理。在健康档案页面输入档案编号、账号和姓名进行查询或删除健康档案列表,并根据需要对健康档案详情信息进行详情或删除操作;如图5-14所示:

 管理员点击系统管理。在公告信息页面输入标题进行查询、新增或删除公告信息列表,并根据需要对公告详情信息进行详情、修改或删除操作;还可以对关于我们、系统简介和轮播图管理进行详细操作;如图5-15所示:

 医生进入主界面,主要功能包括对个人中心、挂号信息管理、诊断信息管理、取消挂号管理、健康档案管理等功能进行操作。如图5-16所示:

 医生点击挂号信息管理。在挂号信息页面输入医生姓名、职称、科室名称、姓名和选择是否通过进行查询挂号信息列表,并根据需要对挂号详情信息进行审核、详情或诊断操作;如图5-17所示:

 医生点击诊断信息管理。在诊断信息页面输入医生姓名、职称、科室名称和姓名进行查询或删除诊断信息列表,并根据需要对诊断详情信息进行详情、健康档案、修改或删除操作;如图5-18所示:

 用户进入系统后台,主要功能包括对个人中心、挂号信息管理、诊断信息管理、取消挂号管理、健康档案管理等功能进行操作。如图5-19所示:

 


关键代码


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
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;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

 专栏推荐

Spring Boot+Vue+CSS+JavaScript+HTML等技术项目专栏推荐

项目汇总专栏推荐


推荐项目

基于Node.js+Vue+MySQL的小型企业工资管理系统

基于SSM+Android+MySQL的校园考研论坛 

基于Spring Boot+Android+MySQL的记录生活管理系统 

基于微信小程序的农业电商服务管理系统 

基于微信小程序的智慧物流小程序的设计与实现 


源码获取

 大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻