基于SpringBoot+微信小程序的医院预约叫号小程序

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

该项目是基于uniapp+WeUI+colorUI开发设计的一个多平台网上挂号系统;该系统主要通过使用uniapp进行微信小程序、 支付宝小程序以及H5页面的兼容性开发,实现一套代码多个平台使用,当然部分内容依然得分开的处理;该系统主要是 进行一家总医院及多家分院的进行挂号处理,可以通过从医院、从科室、从时间、搜医院四个方向出发进行预约挂号; 同时可以使用一个账号绑定多个人的身份证号进行获取独特的就诊卡ID,从而可以进行一个账号的帮助多个人挂号,可 方便家中有长辈不懂得通过互联网进行预约挂号;

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
    Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
  3. Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
  4. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  5. Mybatis:MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
  6. smart:微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
    全面开放申请后,主体类型为企业、政府、媒体、其他组织或个人的开发者,均可申请注册小程序。微信小程序、微信订阅号、微信服务号、微信企业号是并行的体系。
    微信小程序是一种不用下载就能使用的应用,也是一项创新,经过将近两年的发展,已经构造了新的微信小程序开发环境和开发者生态。微信小程序也是这么多年来中国IT行业里一个真正能够影响到普通程序员的创新成果,已经有超过150万的开发者加入到了微信小程序的开发,与我们一起共同发力推动微信小程序的发展,微信小程序应用数量超过了一百万,覆盖200多个细分的行业,日活用户达到两个亿,微信小程序还在许多城市实现了支持地铁、公交服务。微信小程序发展带来更多的就业机会,2017年小程序带动就业104万人,社会效应不断提升。
  7. Redis:redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
    Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

三、系统功能模块介绍:

功能模块图

四、功能模块:

  1. 医生,管理员登录:医生管理员都通过同一个界面进行登录,登录之后有不同的菜单

    医生,管理员登录

  2. 管理员后台管理:医院信息添加,医院信息修改,医院图片上传,科室信息,科室排班,门诊信息,诊室信息管理,医生的个人信息管理,医生账号分配,对医生和科室进行一个就诊的排班

    管理员后台管理

  3. 医生就诊:查看小程序端患者预约信息,对预约的患者进行排队叫号,对就诊完成之后的患者进行病历单编写,查看医生个人的出诊排班情况

    医生就诊

  4. 医院信息查看:查看医院详细信息

    医院信息查看

  5. 医生就诊挂号预约:选择科室诊室对以及自己想要的医生进行挂号预约

    医生就诊挂号预约

  6. 登录注册:新用户进行登录注册

    登录注册

  7. 个人信息:个人详细信息

    个人信息

  8. 就诊记录:历史就诊记录查询

    就诊记录

  9. 家人就诊卡:用户可以给自己的家人朋友建立就诊卡

    家人就诊卡

  10. 挂号记录:历史挂号记录查看

    挂号记录

  11. 信用详情:挂号之后是否即使就诊等会影响用户的信用

    信用详情

五、代码示例:

 @ApiOperation(value = "更新医生信息", notes = "传入 医生编号、医生信息参数(姓名,性别,职称,专长,所属专科,所属门诊)")
    @ApiImplicitParam(name = "id", value = "医生编号", paramType = "path", dataType = "Long", required = true)
    @RequestMapping(value = "/doctor/{id}", method = RequestMethod.PUT)
    public CommonResult updateDoctor(@PathVariable Long id, @RequestBody HospitalDoctorParam param) {

        if (!doctorService.count(id)) {
            return CommonResult.validateFailed("不存在,该医生编号");
        }

        if (param.getGender() > GIRL || param.getGender() < BOY) {
            return CommonResult.validateFailed("性别参数错误!");
        }

        if (!outpatientService.count(param.getOutpatientId())) {
            return CommonResult.validateFailed("不存在,该门诊编号!");
        }

        if (!specialService.count(param.getSpecialId())) {
            return CommonResult.validateFailed("不存在,该专科编号!");
        }

        if (doctorService.update(id, param)) {
            return CommonResult.success();
        }

        return CommonResult.failed("服务器错误,请联系管理员!");
    }

    @ApiOperation(value = "删除医生信息", notes = "传入 医生编号")
    @ApiImplicitParam(name = "id", value = "医生编号", paramType = "path", dataType = "Long", required = true)
    @RequestMapping(value = "/doctor/{id}", method = RequestMethod.DELETE)
    public CommonResult deleteDoctor(@PathVariable Long id) {
        if (!doctorService.count(id)) {
            return CommonResult.validateFailed("不存在,该医生编号");
        }

        if (doctorService.delete(id)) {
            return CommonResult.success();
        }

        return CommonResult.failed("服务器错误,请联系管理员!");
    }

    @ApiOperation(value = "分页:通过姓名,搜索医生信息", notes = "传入 医生姓名")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "name", value = "医生姓名", paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "pageNum", value = "第几页", paramType = "query", dataType = "Integer",
                    required = true),
            @ApiImplicitParam(name = "pageSize", value = "页大小", paramType = "query", dataType = "Integer",
                    required = true),
    })
    @RequestMapping(value = "/doctor/list", method = RequestMethod.GET)
    public CommonResult<CommonPage<HospitalDoctorDTO>> searchDoctor(@RequestParam(required = false) String name,
                                                                    @RequestParam Integer pageNum,
                                                                    @RequestParam Integer pageSize) {

        return CommonResult.success(CommonPage.restPage(doctorService.list(name, pageNum, pageSize)));
    }

    @ApiOperation(value = "分页:通过专科、门诊,查找医生信息", notes = "传入 专科编号、门诊编号")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "specialId", value = "专科编号", paramType = "query", dataType = "Long"),
            @ApiImplicitParam(name = "outpatientId", value = "门诊编号", paramType = "query", dataType = "Long"),
            @ApiImplicitParam(name = "pageNum", value = "第几页", paramType = "query", dataType = "Integer",
                    required = true),
            @ApiImplicitParam(name = "pageSize", value = "页大小", paramType = "query", dataType = "Integer",
                    required = true),
    })
    @RequestMapping(value = "/doctor/list/special/outpatient", method = RequestMethod.GET)
    public CommonResult listDoctorBySpecialAndOutpatient(@RequestParam(required = false) Long specialId,
                                                         @RequestParam(required = false) Long outpatientId,
                                                         @RequestParam Integer pageNum,
                                                         @RequestParam Integer pageSize) {

        return CommonResult.success(CommonPage.restPage(doctorService.list(null, specialId, outpatientId, pageNum, pageSize)));

    }

六、项目总结:

通过对基于SpringBoot+微信小程序的医院预约叫号小程序的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个基于SpringBoot+微信小程序的医院预约叫号小程序的程序时,
我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,
程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,
借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的基于SpringBoot+微信小程序的医院预约叫号小程序得以正常运行。
基于SpringBoot+微信小程序的医院预约叫号小程序在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:
(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。
(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的基于SpringBoot+微信小程序的医院预约叫号小程序中的相关网站更贴合。
(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,
同时对服务器上资源占用的比例进行降低。
基于SpringBoot+微信小程序的医院预约叫号小程序的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。
基于SpringBoot+微信小程序的医院预约叫号小程序的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。

七、源码获取:

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

链接点击直达:下载链接

  • 11
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值