当前位置:   article > 正文

基于springboot+vue的医院预约系统(前后端分离)_基于前后端分离技术开发的医疗预约系统

基于前后端分离技术开发的医疗预约系统

技术详情:

 

系统使用技术:springboot+mybatis

前端技术:ElementUI、ajax、node.js、js、css

开发工具:idea

数据库:mysql5.7

项目介绍:

本系统采用springboot+vue整合开发,前端主要使用了Vue框架、Element UI和AJAX技术。项目后端主要使用了springboot等一系列框架和MyBatis以及Maven。这一套技术易于学习、操作和管理。数据库方面则是使用了MySQL数据库以及Navicat数据库管理工具,轻量,易于管理。

功能概述:

本系统基本实现了项目需求中提出的各项内容,主要实现了前台部分、门诊医生部分、医技医生部分、药房部分和系统管理部分五个子系统,还有一个最高权限的超级管理员,所以分为6个角色。其中前台部分包含了现场挂号、退号、费用查询三个子模块;门诊医生部分包含了病历首页、检验申请、门诊确诊、药物处方、费用查询五个子模块;医技医生部分包含了患者检验、医技管理两个子模块;药房管理部分包含出药和药品管理两个子模块;系统管理部分包含科室管理、医生排班管理、用户管理三个子模块;超级管理员包含以上所有功能。

文档详情:

部分功能:

由于角色较多,每个角色仅截图部分,下面我们来看看相关功能。

系统登录:

超级管理员-系统首页

查看系统首页

超级管理员-门诊管理

查看门诊信息,并进行操作

超级管理员-排班

对各个科室的医生进行排班,当天挂号只能预约当天的医生

超级管理员-用户管理

查看用户信息

前台-挂号

对病人进行挂号操作

医生-诊断

对病人进行诊断

医生-开方

开立处方

药师-出药

药师根据医生开具的药方就行出药

药师-药品管理

对药品进行维护

医技-医技维护

对医技进行操作

后台部分代码:

  1. /*
  2. * 加载挂号科室的信息*/
  3. @RequestMapping("/reception/regloaddep")
  4. public Map<String,Object> loading(){
  5. Map<String,Object> res=new HashMap<>();
  6. List<Departoptions> list = loadingS.sitRegDep();
  7. res.put("deps",list);
  8. return res;
  9. }
  10. /*
  11. * 获取并加载当前科室和号别的医生(有余号的)
  12. * */
  13. @RequestMapping("/reception/selbydoc")
  14. public Map<String,Object> SelBydoc(@RequestBody RegDepart regDepart){
  15. Map<String,Object> res=new HashMap<>();
  16. if(regDepart.getValue()==null||regDepart.getRegType()==null){//如果没有科室或号别就直接返回null
  17. return res;
  18. }
  19. //根据科室和号别获取医生(有问题,需要动态查询挂号信息,目前是静态)
  20. List<User> list = regService.getByDeReg(regDepart.getValue(), regDepart.getRegType());
  21. List<SelectK> list2= new ArrayList<>();
  22. for(User user1:list){
  23. list2.add(new SelectK(user1.getName(),user1.getId()));
  24. }
  25. res.put("doc",list2);
  26. if(regDepart.getRegType().equals("专家号")){
  27. res.put("type","50");
  28. }else if(regDepart.getRegType().equals("普通号")){
  29. res.put("type","20");
  30. }else res.put("type","");
  31. return res;
  32. }
  33. /**
  34. * 获取当前医生的余号,已经是实时的,已经判断了上下午
  35. * @param regDepart
  36. * @return
  37. */
  38. @PostMapping("/reception/getRgeNumber")
  39. public int getNumber(@RequestBody RegDepart regDepart){
  40. String docID=regDepart.getOptDoc();
  41. return regService.getRegNumber(docID)-regService.getNowNum(docID);
  42. }

前端部分代码:

  1. <template>
  2. <div>
  3. <div style="overflow:hidden">
  4. <el-form ref="form" :model="form" label-width="80px" style="padding-top: 20px;">
  5. <div style="float: left; padding-left: 200px;">
  6. <el-form-item label="*科室名" class="kkk">
  7. <el-input v-model="form.depName" placeholder="请输入内容"></el-input>
  8. </el-form-item>
  9. <el-form-item label="*类别" class="kkk">
  10. <el-input v-model="form.depType" placeholder="请输入内容"></el-input>
  11. </el-form-item>
  12. <el-form-item label="*编号" class="kkk">
  13. <el-input v-model="form.depNum" placeholder="请输入内容"></el-input>
  14. </el-form-item>
  15. </div>
  16. </el-form>
  17. <el-button icon="el-icon-search" type="primary" v-on:click="onSubmit()" style="width:120px; height: 50px;" round>搜索</el-button>
  18. <el-button icon="el-icon-plus" type="success" @click="dialogVisible = true" style="width:120px; height: 50px;" round>新增科室</el-button>
  19. <el-dialog title="提示" :visible.sync="dialogVisible" width="40%" :append-to-body="true"
  20. :before-close="handleClose">
  21. <div style=" margin-left:100px ;">
  22. <el-form ref="form1" :model="childform" label-width="80px" style="padding-top: 20px;">
  23. <div style="">
  24. <el-form-item label="科室名称" class="kkk">
  25. <el-input v-model="childform.depName" placeholder="请输入内容"></el-input>
  26. </el-form-item>
  27. <el-form-item label="科室编号" class="kkk">
  28. <el-input v-model="childform.depNum" placeholder="请输入内容"></el-input>
  29. </el-form-item>
  30. </div>
  31. <div style="">
  32. <el-form-item label="科室类型" class="kkk">
  33. <el-input v-model="childform.depType" placeholder="请输入内容"></el-input>
  34. </el-form-item>
  35. </div>
  36. </el-form>
  37. </div>
  38. <span slot="footer" class="dialog-footer">
  39. <el-button @click="dialogVisible = false">取 消</el-button>
  40. <el-button type="primary" v-on:click="addDepart()">确 定</el-button>
  41. </span>
  42. </el-dialog>
  43. </div>
  44. <div style="padding-left: 0px; margin-left: 250px; margin-top:20px ;">
  45. <el-table ref="multipleTable" :data="tableData" height="300" tooltip-effect="dark" border="true"
  46. :header-cell-style="{'text-align':'center'}"
  47. style="width: 80%; padding-left: 20px;">
  48. <el-table-column prop="depNum" label="编号" align="center" width="240">
  49. </el-table-column>
  50. <el-table-column prop="depName" label="科室名" align="center" width="240">
  51. <template slot-scope="scope">
  52. <span v-if="scope.row.show">
  53. <el-input size="mini" v-model="scope.row.depName"></el-input>
  54. </span>
  55. <span v-else>{{ scope.row.depName }}</span>
  56. </template>
  57. </el-table-column>
  58. <el-table-column prop="depType" label="类别" align="center" width="240">
  59. <template slot-scope="scope">
  60. <span v-if="scope.row.show">
  61. <el-input size="mini" v-model="scope.row.depType"></el-input>
  62. </span>
  63. <span v-else>{{ scope.row.depType }}</span>
  64. </template>
  65. </el-table-column>
  66. <el-table-column prop="name" label="操作" align="center" width="340">
  67. <template slot-scope="scope">
  68. <span v-if="!scope.row.show">
  69. <el-button @click="editRow(scope.row)" type="text" size="small">编辑</el-button>
  70. </span>
  71. <span v-else><el-button @click="saveRow(scope.row)" type="text" size="small">保存</el-button></span>
  72. /<el-button @click="canRow(scope.row)" type="text" size="small">取消</el-button>
  73. <el-button v-on:click="deleteRow(scope.$index, tableData, scope.row)" type="text" size="small" style="width:100px; height: 50px;" round>删除</el-button>
  74. </template>
  75. </el-table-column>
  76. </el-table>
  77. </div>
  78. </div>
  79. </template>

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,而且也与当前的热点话题关联,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,比较适合毕业设计和课程设计的相关应用。


好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/137755
推荐阅读
相关标签
  

闽ICP备14008679号