基于springboot的私人诊所管理系统【毕设包过】

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

4 系统设计

4.1 系统架构设计

整个系统采用B/S结构,用户可在浏览器中完成和整个系统的交互。

用户在私人诊所管理系统的浏览器界面进行的操作,浏览器操作传到服务器端,服务器端调用后台数据库,反馈给浏览器端。

系统架构如图4-1所示:

图4-1 系统架构图

4.2 系统整体设计

私人诊所管理系统实现患者,管理员和医生登录,查询信息,修改个人信息等。所有功能都通过与后台服务器的数据交互来完成的。具体的软件功能结构图如图4-2所示:

图4-2 系统功能结构图

4.3 系统数据库设计

对于私人诊所管理系统而言,数据库中最核心的数据就是私人诊所信息,并且有许多其他关联数据都储存于数据库中。随着时间推移,将发布大量信息于本系统中,届时数据库中也将蕴藏海量数据。一个优秀的数据库设计方案能在保证系统能够高效处理大量数据的同时保证系统的安全性。因此,在私人诊所管理系统设计方案中将数据库的设计摆在重要位置,将数据库设计视为系统设计的重要内容。

4.3.1 E-R模型设计

在私人诊所管理系统的数据库设计中,系统E-R模型的设计可以展示数据库中各种实体信息和他们之间的关系,将私人诊所管理系统的E-R模型研究好后,数据库中数据表的建立也会比较容易。

根据功能需求来对系统的e-r图来进行分解得到几种实体,以下为部分实体—关系模型。

4.3.2表设计

Mysql将数据保存在不同的表中,极大地提高了数据调取灵活性。私人诊所管理系统的具体表结构如以下表所示:

表4-1:处方开具

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

chufangbianhao

varchar

200

处方编号

huanzhezhanghao

varchar

200

患者账号

huanzhexingming

varchar

200

患者姓名

xingbie

varchar

200

性别

yaopinmingcheng

varchar

200

药品名称

danjia

float

单价

shuliang

int

数量

zongjine

float

总金额

chufangxiangqing

longtext

4294967295

处方详情

kaijushijian

datetime

开具时间

yishengzhanghao

varchar

200

医生账号

yishengxingming

varchar

200

医生姓名

ispay

varchar

200

是否支付

未支付

表4-2:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-3:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-4:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-5:公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-6:留言板

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

留言人id

username

varchar

200

用户名

avatarurl

longtext

4294967295

头像

content

longtext

4294967295

留言内容

cpicture

longtext

4294967295

留言图片

reply

longtext

4294967295

回复内容

rpicture

longtext

4294967295

回复图片

表4-7:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-8:预约挂号

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

yishengzhanghao

varchar

200

医生账号

yishengxingming

varchar

200

医生姓名

zhicheng

varchar

200

职称

keshi

varchar

200

科室

guahaoleixing

varchar

200

挂号类型

guahaofei

int

挂号费

guahaoshu

int

挂号数

chuzhenriqi

varchar

200

出诊日期

yuyueshijian

datetime

预约时间

huanzhezhanghao

varchar

200

患者账号

huanzhexingming

varchar

200

患者姓名

shoujihaoma

varchar

200

手机号码

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

ispay

varchar

200

是否支付

未支付

表4-9:出诊医生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yishengzhanghao

varchar

200

医生账号

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

yishengxingming

varchar

200

医生姓名

zhicheng

varchar

200

职称

keshi

varchar

200

科室

guahaoleixing

varchar

200

挂号类型

guahaoshu

int

挂号数

guahaofei

int

挂号费

shangbanshijian

varchar

200

上班时间

chuzhenriqi

date

出诊日期

clicktime

datetime

最近点击时间

表4-10:医生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yishengzhanghao

varchar

200

医生账号

mima

varchar

200

密码

touxiang

longtext

4294967295

头像

yishengxingming

varchar

200

医生姓名

xingbie

varchar

200

性别

shoujihaoma

varchar

200

手机号码

keshi

varchar

200

科室

zhicheng

varchar

200

职称

表4-11:药品信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yaopinmingcheng

varchar

200

药品名称

yaopintupian

longtext

4294967295

药品图片

baozhiqi

varchar

200

保质期

jixing

varchar

200

剂型

yaopinshuoming

longtext

4294967295

药品说明

shengchanchangjia

varchar

200

生产厂家

guige

varchar

200

规格

danjia

float

单价

shuliang

int

数量

表4-12:病历信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

binglibianhao

varchar

200

病历编号

huanzhezhanghao

varchar

200

患者账号

huanzhexingming

varchar

200

患者姓名

zhenduanneirong

longtext

4294967295

诊断内容

zhenduanjieguo

longtext

4294967295

诊断结果

binglimiaoshu

longtext

4294967295

病历描述

yizhuxinxi

longtext

4294967295

医嘱信息

binglibaogao

longtext

4294967295

病例报告

jiuzhenshijian

datetime

就诊时间

yishengzhanghao

varchar

200

医生账号

yishengxingming

varchar

200

医生姓名

表4-13:预约取消

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

yishengzhanghao

varchar

200

医生账号

yishengxingming

varchar

200

医生姓名

zhicheng

varchar

200

职称

keshi

varchar

200

科室

guahaofei

int

挂号费

chuzhenriqi

varchar

200

出诊日期

quxiaoyuanyin

varchar

200

取消原因

quxiaoshijian

datetime

取消时间

huanzhezhanghao

varchar

200

患者账号

huanzhexingming

varchar

200

患者姓名

shoujihaoma

varchar

200

手机号码

crossuserid

bigint

跨表用户id

crossrefid

bigint

跨表主键id

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-14:科室

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

keshi

varchar

200

科室

表4-15:患者

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

huanzhezhanghao

varchar

200

患者账号

mima

varchar

200

密码

huanzhexingming

varchar

200

患者姓名

touxiang

longtext

4294967295

头像

xingbie

varchar

200

性别

shoujihaoma

varchar

200

手机号码

shenfenzhenghao

varchar

200

身份证号

huanzhezhuzhi

varchar

200

患者住址

5 系统实现

5.1系统功能实现

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到私人诊所管理系统的导航条。系统首页界面如图5-1所示:

图5-1 系统首页界面

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

图5-2系统注册页面

出诊医生:在出诊医生页面的输入栏中输入医生姓名,选择挂号类型和出诊日期进行查询;可以查看出诊医生详细信息,还可以进行收藏或预约挂号操作;出诊医生页面如图5-3所示:

图5-3出诊医生详细页面

公告信息:在公告信息页面的输入栏中输入标题进行查询;可以查看公告详细信息;公告信息页面如图5-4所示:

图5-4公告详细页面

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

图5-5个人中心界面

5.2后台模块实现

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

图5-6后台登录界面

5.2.1管理员功能实现

管理员进入主页面,主要功能包括对个人中心,患者管理,医生管理,科室管理,出诊医生管理,预约挂号管理,预约取消管理,病历信息管理,药品信息管理,处方开具管理,留言板管理,系统管理等进行操作。管理员主页面如图5-7所示:

图5-7 管理员主界面

代码实现

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.MD5Util;
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();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

🔎千套JAVA实战项目持续更新中~

🔎上百套小程序实战项目持续更新中~

🔎上百套Python实战项目持续更新中

👇下方有我的微信名片👇

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
私人牙科诊所管理系统是一个基于Java编程语言开发的应用程序,旨在帮助私人牙科诊所提高管理效率和服务质量。该系统具有以下几个主要功能和特点。 首先,该系统提供了患者管理模块。通过该模块,牙科诊所可以方便地记录和管理每个患者的个人信息、就诊历史、诊断结果等。这有助于诊所提供个性化服务,并实时跟踪和管理患者的治疗进展。 其次,该系统具备预约管理功能。患者可以通过系统在线预约就诊,诊所可以根据预约情况合理安排医生和设备资源,提高诊疗效率。此外,诊所还可以通过系统向患者发送预约提醒和确认信息。 此外,该系统还包含电子病历管理模块。诊所可以通过该模块实现对患者的诊断、病历、药物处方等信息的电子化管理,提高信息的整理、存储和共享效率,减少传统纸质病历的使用。 同时,该系统支持财务管理功能。诊所可以通过该模块管理患者的费用信息、收入、支出等财务数据,方便进行财务分析和决策,并提供财务报表和统计分析功能。 除了以上功能外,该系统还具备权限管理、报表导出、数据备份等常见的管理系统功能,保障系统的安全性和稳定性。 总之,基于Java的私人牙科诊所管理系统提供了全面的功能以满足私人牙科诊所的需求。通过该系统诊所可以实现患者、预约、病历、财务等多个方面的集中管理,提高诊所的运营效率和服务质量。同时,该系统还具备灵活性和可扩展性,可以根据实际需要进行定制和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值