基于java+springboot+vue的中小型医院网站

本文详细介绍了使用SpringBoot框架、Java技术和MySQL数据库开发的中小型医院网站,旨在实现用户网络预约挂号和提升医院管理效率。系统包括用户、医师和管理员三大功能模块,涵盖了预约挂号、药品信息、体检报告等多个管理功能,并确保系统的安全性和稳定性。同时,文章提到了系统的需求分析、结构设计、功能实现和测试,展示了关键界面和代码片段。
摘要由CSDN通过智能技术生成

项目介绍

本基于Spring Boot的中小型医院网站设计目标是实现用户网络预约挂号的功能,同时提高医院管理效率,更好的为广大用户服务。

本文重点阐述了中小型医院网站的开发过程,以实际运用为开发背景,基于Spring Boot框架,运用了Java技术和MYSQL数据库进行开发设计,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了预约挂号管理、医师开药管理、药库信息管理、用户取药管理以及缴费清单管理等重要功能。

本基于Spring Boot的中小型医院网站运行效果稳定,操作方便、快捷,界面友好,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的医院网站。

4.2 系统结构设计
在结构设计过程中,首先对系统进行需求分析,然后进行系统初步设计,将系统功能模块细化,具体分析每一个功能模块具体应该首先哪些功能,最后将各个模块进行整合,实现系统结构的最终设计。本基于Spring Boot的中小型医院网站主要实现了用户功能模块、医师功能模块和管理员功能模块三大部分,系统的功能结构设计如图4-2所示。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SpringBoot
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net

系统实现

5.1 用户功能模块的实现
用户进入本系统可查看系统信息,包括首页、门诊信息、药库信息以及系统公告信息等,系统前台主界面展示如图5-1所示。
在这里插入图片描述

图5-1系统前台主界面图

5.1.1用户登录界面
用户要想实现预约挂号功能,必须登录系统,在登录界面输入正确的登录账号和密码点击登录按钮进行登录,系统会对用户输入的登录信息进行验证,信息正确则登录成功,反之登录失败,用户登录界面展示如图5-2所示。
在这里插入图片描述

图5-2 用户登录界面图

5.1.2用户注册界面
没有账号的用户可进行注册操作,用户注册界面展示如图5-3所示。
在这里插入图片描述

图5-3 用户注册界面图

5.1.3门诊信息详情界面
用户可选择门诊查看详情信息,登录后可进行预约挂号操作,门诊信息详情界面展示如图5-4所示。
在这里插入图片描述

图5-4 门诊信息详情界面图

5.1.4预约挂号界面
用户在预约挂号时需要填写相关数据,预约挂号界面展示如图5-5所示。
在这里插入图片描述

图5-5 预约挂号界面图

5.1.5药品详情界面
用户可选择药品查看详情信息,登录后可进行取药操作,药品详情展示如图5-6所示。
在这里插入图片描述

图5-6 药品详情界面图

5.1.6体检报告界面
用户可查看个人体检报告信息,体检报告界面展示如图5-7所示。
在这里插入图片描述

图5-7 体检报告界面图

5.2 管理员功能模块的实现
5.2.1管理员登录界面
管理员要想进入系统后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图5-8所示。
在这里插入图片描述

图5-8 管理员登录界面图

5.2.2用户管理界面
管理员可增删改查用户信息,用户管理界面展示如图5-9所示。
在这里插入图片描述

图5-9 用户管理界面图

5.2.3医师管理界面
管理员可查看医师信息,并可对其进行修改和删除操作,同时也可添加医师信息,医师管理界面展示如图5-10所示。
在这里插入图片描述

图5-10 医师管理界面图

5.2.4科室类型管理界面
管理员可增删改查科室类型信息,科室类型管理界面展示如图5-11所示。
在这里插入图片描述

图5-11 科室类型管理界面图

5.2.5门诊信息管理界面
管理员可查看所有门诊信息,并可对其进行修改和删除操作,也可添加门诊信息,门诊信息管理界面展示如图5-12所示。
在这里插入图片描述

图5-12 门诊信息管理界面图

5.2.6药库信息管理界面
管理员能够增删改查药库信息,药库信息管理界面展示如图5-13所示。
在这里插入图片描述

图5-13 药库信息管理界面图

5.3 医师功能模块的实现
5.3.1预约挂号管理界面
医师登录后可查看用户预约挂号信息,并可对其进审核和查看结果操作,预约挂号管理界面展示如图5-14所示。
在这里插入图片描述

图5-14 预约挂号管理界面图

5.3.2体检报告管理界面
医师可增删改查体检报告信息,并可进行添加药方信息,体检报告管理界面展示如图5-15所示。
在这里插入图片描述

图5-15 体检报告管理界面图

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.JiaofeiqingdanEntity;
import com.entity.view.JiaofeiqingdanView;

import com.service.JiaofeiqingdanService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 缴费清单
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/jiaofeiqingdan")
public class JiaofeiqingdanController {
    @Autowired
    private JiaofeiqingdanService jiaofeiqingdanService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,JiaofeiqingdanEntity jiaofeiqingdan,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			jiaofeiqingdan.setZhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<JiaofeiqingdanEntity> ew = new EntityWrapper<JiaofeiqingdanEntity>();
		PageUtils page = jiaofeiqingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaofeiqingdan), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,JiaofeiqingdanEntity jiaofeiqingdan, HttpServletRequest request){
        EntityWrapper<JiaofeiqingdanEntity> ew = new EntityWrapper<JiaofeiqingdanEntity>();
		PageUtils page = jiaofeiqingdanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaofeiqingdan), params), params));
        return R.ok().put("data", page);
    }

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(JiaofeiqingdanEntity jiaofeiqingdan){
        EntityWrapper< JiaofeiqingdanEntity> ew = new EntityWrapper< JiaofeiqingdanEntity>();
 		ew.allEq(MPUtil.allEQMapPre( jiaofeiqingdan, "jiaofeiqingdan")); 
		JiaofeiqingdanView jiaofeiqingdanView =  jiaofeiqingdanService.selectView(ew);
		return R.ok("查询缴费清单成功").put("data", jiaofeiqingdanView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        JiaofeiqingdanEntity jiaofeiqingdan = jiaofeiqingdanService.selectById(id);
        return R.ok().put("data", jiaofeiqingdan);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        JiaofeiqingdanEntity jiaofeiqingdan = jiaofeiqingdanService.selectById(id);
        return R.ok().put("data", jiaofeiqingdan);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody JiaofeiqingdanEntity jiaofeiqingdan, HttpServletRequest request){
    	jiaofeiqingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiaofeiqingdan);
        jiaofeiqingdanService.insert(jiaofeiqingdan);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody JiaofeiqingdanEntity jiaofeiqingdan, HttpServletRequest request){
    	jiaofeiqingdan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiaofeiqingdan);
        jiaofeiqingdanService.insert(jiaofeiqingdan);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody JiaofeiqingdanEntity jiaofeiqingdan, HttpServletRequest request){
        //ValidatorUtils.validateEntity(jiaofeiqingdan);
        jiaofeiqingdanService.updateById(jiaofeiqingdan);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        jiaofeiqingdanService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<JiaofeiqingdanEntity> wrapper = new EntityWrapper<JiaofeiqingdanEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yonghu")) {
			wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = jiaofeiqingdanService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

论文参考

在这里插入图片描述

目 录
摘 要 I
Abstract II
1 绪论 1
1.1研究背景 1
1.2设计原则 1
1.3研究内容 2
2 相关技术简介 3
2.1 Java技术 3
2.2 B/S结构 3
2.3 MYSQL数据库 4
2.4 Spring Boot框架 4
3 系统分析 6
3.1 可行性分析 6
3.1.1 技术可行性 6
3.1.2 操作可行性 6
3.1.3 经济可行性 6
3.1.4 法律可行性 6
3.2 系统性能分析 7
3.3 角色功能分析 7
3.4 系统结构分析 9
3.4.1逻辑结构 9
3.4.2物理结构 9
3.5 系统流程分析 10
3.5.1注册流程 10
3.5.2登录流程 10
4 系统设计 12
4.1 系统概要设计 12
4.2 系统结构设计 12
4.3 数据库设计 13
4.3.1数据库实体(E-R图) 13
4.3.2数据库表设计 16
5 系统实现 20
5.1 用户功能模块的实现 20
5.1.1用户登录界面 20
5.1.2用户注册界面 21
5.1.3门诊信息详情界面 22
5.1.4预约挂号界面 22
5.1.5药品详情界面 23
5.1.6体检报告界面 24
5.2 管理员功能模块的实现 24
5.2.1管理员登录界面 24
5.2.2用户管理界面 25
5.2.3医师管理界面 25
5.2.4科室类型管理界面 26
5.2.5门诊信息管理界面 26
5.2.6药库信息管理界面 26
5.3 医师功能模块的实现 27
5.3.1预约挂号管理界面 27
5.3.2体检报告管理界面 28
6 系统测试 29
6.1 测试定义 29
6.2 测试方式 29
6.3 测试方案 30
6.4 测试分析 31
总结 32
参考文献 33
致 谢 34

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_3306428634

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值