【开源】SpringBoot框架开发就医保险管理系统

在这里插入图片描述



一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的就医保险管理系统,包含了科室档案模块、医生档案模块、预约挂号模块、我的挂号模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,就医保险管理系统基于角色的访问控制,给挂号管理员、患者角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 科室档案模块

就医保险管理系统的科室档案模块是指系统中用于管理医疗机构的科室信息的功能模块。该模块主要用于记录和管理医疗机构内各个科室的相关信息,包括科室名称、科室编号、科室负责人、科室描述等。

系统管理员或具有相应权限的用户可以在系统中录入医疗机构的各个科室信息,包括科室名称、科室编号、科室负责人、科室描述等。用户可以通过科室编号或名称等关键字在系统中进行科室信息的查询,查看科室的详细信息和相关统计数据。系统管理员或具有相应权限的用户可以对科室信息进行编辑和更新,包括修改科室名称、科室负责人、科室描述等内容。系统管理员或具有相应权限的用户可以删除不需要的科室信息,确保系统中的科室信息保持最新和有效。系统可以对科室信息进行统计分析,生成科室数量、科室负责人统计等相关报表或图表,为管理决策提供依据。科室档案模块在就医保险管理系统中的作用是方便管理者对医疗机构内各个科室的信息进行维护和查询,提高工作效率,确保科室信息的准确性和完整性。

2.2 医生档案模块

就医保险管理系统的医生档案模块是指系统中用于管理医疗机构的医生信息的功能模块。该模块主要用于记录和管理医疗机构内医生的相关信息,包括医生姓名、医生编号、职称、专业领域、所属科室、联系方式等。

系统管理员或具有相应权限的用户可以在系统中录入医生的基本信息,包括姓名、编号、职称、专业领域等。用户可以通过医生姓名或编号等关键字在系统中进行医生信息的查询,查看医生的详细信息和相关统计数据。系统管理员或具有相应权限的用户可以对医生信息进行编辑和更新,包括修改姓名、职称、专业领域等内容。系统管理员或具有相应权限的用户可以删除不需要的医生信息,确保系统中的医生信息保持最新和有效。系统可以对医生信息进行统计分析,生成医生数量、职称统计等相关报表或图表,为管理决策提供依据。医生档案模块在就医保险管理系统中的作用是方便管理者对医疗机构内医生的信息进行维护和查询,提高工作效率,确保医生信息的准确性和完整性。

2.3 预约挂号模块

就医保险管理系统的预约挂号模块是系统中的一个重要功能模块,主要用于方便患者进行医院就诊的预约挂号操作,并且能够实现医院资源的合理分配和排班管理。

患者可以通过系统选择医院、科室和医生,并选择适合的就诊时间进行预约挂号。系统会根据医生的排班情况和患者的需求,提供可用的预约时间段供患者选择。医院可以通过系统设置医生的排班信息,包括工作时间、休息日、号源数量等。系统会根据医生的排班信息,在预约挂号时提供可用的时间段供患者选择。系统会记录每个医生的号源信息,并根据患者的预约挂号情况进行号源的管理和分配。在患者成功预约挂号后,系统会相应地减少医生的可用号源数量。系统会记录患者的预约信息,包括医院、科室、医生、就诊时间等。医院可以通过系统查看和管理患者的预约记录,包括确认、取消、修改预约等操作。系统可以根据医院的规定计算和管理挂号费用。患者可以通过系统支付挂号费用,同时系统也会记录患者的缴费信息。系统可以向患者发送预约挂号的提醒通知,包括预约成功通知、预约变更通知等,以确保患者及时了解就诊信息。通过预约挂号模块,就医保险管理系统能够提高医院的预约挂号效率,方便患者进行预约操作,并且能够更好地管理医生的排班和号源资源。

2.4 我的挂号模块

医保险管理系统的"我的挂号"模块是为患者提供个人就诊信息管理和查询的功能模块。患者可以通过"我的挂号"模块查询自己的就诊记录,包括已完成的就诊、待就诊的预约以及历史就诊记录等。这样患者可以方便地查看自己的就诊记录和相关信息。

患者可以通过该模块进行就诊预约的管理,包括查看已预约的就诊、取消预约、修改预约等操作。患者可以根据自己的需求对预约进行灵活管理。该模块还提供了就诊报告的查看功能,患者可以在线查看自己的就诊报告,如检验报告、影像报告等。这样可以方便患者及时查看自己的就诊结果。患者可以在"我的挂号"模块查看自己的就诊费用情况,包括已支付的费用、待支付的费用等。患者可以通过系统进行费用的支付和管理,提高就诊费用的透明度和便利性。系统可以向患者发送就诊提醒通知,包括就诊时间、就诊地点、医生信息等。这样可以帮助患者及时了解自己的就诊信息,提醒患者按时就诊。通过我的挂号模块,就医保险管理系统能够提供方便快捷的个人就诊信息管理和查询服务,帮助患者更好地管理自己的就诊记录和费用,提高就医体验和满意度。

在这里插入图片描述


三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 用户查询全部医生

@RequestMapping(value = "/getAllByDepartmentId", method = RequestMethod.GET)
@ApiOperation(value = "用户查询全部医生")
public Result<List<Doctor>> getAllByDepartmentId(@RequestParam String departmentId){
    QueryWrapper<Doctor> qw = new QueryWrapper<>();
    qw.eq("department_id",departmentId);
    List<Doctor> doctorList = iDoctorService.list(qw);
    for (Doctor doctor : doctorList) {
        QueryWrapper<DoctorNumber> numberQw = new QueryWrapper<>();
        numberQw.eq("doctor_id",doctor.getId());
        numberQw.eq("date", DateUtil.today());
        numberQw.eq("order_flag",false);
        long count = iDoctorNumberService.count(numberQw);
        doctor.setNumberStr(count);
    }
    return new ResultUtil<List<Doctor>>().setData(doctorList);
}

4.2 新增医生

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增医生")
public Result<Doctor> insert(Doctor doctor){
    if(ZwzNullUtils.isNull(doctor.getDepartmentId())) {
        return ResultUtil.error("科室不能为空");
    }
    HospitalDepartment hd = iHospitalDepartmentService.getById(doctor.getDepartmentId());
    if(hd == null) {
        return ResultUtil.error("科室不存在");
    }
    iDoctorService.saveOrUpdate(doctor);
    return new ResultUtil<Doctor>().setData(doctor);
}

4.3 查询科室

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询科室")
public Result<IPage<HospitalDepartment>> getByPage(@ModelAttribute HospitalDepartment hospitalDepartment ,@ModelAttribute PageVo page){
    QueryWrapper<HospitalDepartment> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(hospitalDepartment.getTitle())) {
        qw.like("title",hospitalDepartment.getTitle());
    }
    IPage<HospitalDepartment> data = iHospitalDepartmentService.page(PageUtil.initMpPage(page),qw);
    for (HospitalDepartment hd : data.getRecords()) {
        QueryWrapper<Doctor> doQw = new QueryWrapper<>();
        doQw.eq("department_id",hd.getId());
        hd.setUserNumber(iDoctorService.count(doQw));
    }
    return new ResultUtil<IPage<HospitalDepartment>>().setData(data);
}

4.4 新增号源

@RequestMapping(value = "/add", method = RequestMethod.GET)
@ApiOperation(value = "新增号源")
public Result<Object> add(@RequestParam String doctorId){
    Doctor doctor = iDoctorService.getById(doctorId);
    if(doctor == null) {
        return ResultUtil.error("医生不存在");
    }
    DoctorNumber d = new DoctorNumber();
    d.setDoctorId(doctorId);
    d.setDoctorName(doctor.getName());
    d.setDate(DateUtil.today());
    d.setDepartmentId(doctor.getDepartmentId());
    d.setDepartmentName(doctor.getDepartmentName());
    d.setOrderFlag(false);
    d.setOrderId("");
    d.setOrderName("");
    d.setOrderTime("");
    d.setPayFlag(false);
    d.setPayTime("");
    iDoctorNumberService.saveOrUpdate(d);
    return ResultUtil.success();
}

4.5 预约号源

@RequestMapping(value = "/addOrder", method = RequestMethod.POST)
@ApiOperation(value = "预约号源")
public Result<Object> addOrder(@RequestParam String doctorId){
    QueryWrapper<DoctorNumber> qw = new QueryWrapper<>();
    qw.eq("doctor_id",doctorId);
    qw.eq("date", DateUtil.today());
    List<DoctorNumber> numberList = iDoctorNumberService.list(qw);
    if(numberList.size() < 1) {
        return ResultUtil.error("您手速慢啦,号源没有了");
    }
    User currUser = securityUtil.getCurrUser();
    DoctorNumber dn = numberList.get(0);
    dn.setOrderFlag(true);
    dn.setOrderId(currUser.getId());
    dn.setOrderName(currUser.getNickname());
    dn.setOrderTime(DateUtil.now());
    iDoctorNumberService.saveOrUpdate(dn);
    return ResultUtil.success();
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述