基于JAVA+SpringBoot的线上智能问诊就医平台

发布时间:2023年12月18日

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

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


一、项目背景介绍:

智慧医药系统(smart-medicine)是一个基于 SpringBoot 开发的标准 Java Web 项目。整体页面非常的简约大气,整合了目前非常火爆的 AIGC 生成式 AI(选用的阿里的通义千问大语言模型)技术充当智能医生,以此提升系统的 B 格,整体来看是一个偏向百科查询类的系统,功能设计的较为简单,便于初学者理解和学习,也适合学校中的项目答辩或者毕业设计。
系统共设计了三个角色:游客、用户、管理员。
游客:尚未进行注册和登录。具备登录注册、疾病、药品的搜索、查询详情等权限。
用户:除了游客的功能权限外,还具备登录、个人资料的修改、登录密码修改、意见反馈、智能医生咨询等权限。
管理员:除了用户的功能权限外,还具备疾病管理、药品管理、反馈管理等权限。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  3. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  4. Thymeleaf:thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。

Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
5. Bootstrap:Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:feedback(feedback)

字段名类型默认值列注释
idintNULL主键ID
namevarcharNULL反馈用户
emailvarcharNULL邮箱地址
titlevarcharNULL反馈标题
contenttextNULL反馈内容
create_timedatetimeNULL创建时间
update_timedatetimeNULL更新时间

2:history(history)

字段名类型默认值列注释
idintNULL用户搜索历史主键id
user_idintNULL用户ID
keywordvarcharNULL搜索关键字
operate_typeintNULL类型:1搜索,2科目,3药品
create_timedatetimeNULL创建时间
update_timedatetimeNULL更新时间

3:illness(illness)

字段名类型默认值列注释
idintNULL疾病id
kind_idintNULL疾病分类ID
illness_namevarcharNULL疾病名字
include_reasonmediumtextNULL诱发因素
illness_symptommediumtextNULL疾病症状
special_symptommediumtextNULL特殊症状
create_timedatetimeNULL创建时间
update_timedatetimeNULL更新时间

4:illness_kind(illness_kind)

字段名类型默认值列注释
idintNULL主键ID
namevarcharNULL分类名称
infovarcharNULL描述
create_timedatetimeNULL创建时间
update_timedatetimeNULL更新时间

5:illness_medicine(illness_medicine)

字段名类型默认值列注释
idintNULL病和药品关联id
illness_idintNULL病id
medicine_idintNULL药品id
create_timedatetimeNULL创建时间
update_timedatetimeNULL更新时间

6:medicine(medicine)

字段名类型默认值列注释
idintNULL药品主键ID
medicine_namevarcharNULL药的名字
keywordvarcharNULL关键字搜索
medicine_effectmediumtextNULL药的功效
medicine_brandvarcharNULL药的品牌
interactionmediumtextNULL药的相互作用
taboomediumtextNULL禁忌
us_agemediumtextNULL用法用量
medicine_typeintNULL药的类型,0西药,1中药,2中成药
img_pathvarcharNULL相关图片路径
medicine_pricedecimalNULL药的价格
create_timedatetimeNULL创建时间
update_timedatetimeNULL更新时间

7:pageview(pageview)

字段名类型默认值列注释
idintNULL主键id
pageviewsintNULL浏览量
illness_idintNULL病的id

8:user(user)

字段名类型默认值列注释
idintNULL用户主键id
user_accountvarcharNULL用户账号
user_namevarcharNULL用户的真实名字
user_pwdvarcharNULL用户密码
user_ageintNULL用户年龄
user_sexvarcharNULL用户性别
user_emailvarcharNULL用户邮箱
user_telvarcharNULL手机号
role_statusintNULL角色状态,1管理员,0普通用户
img_pathvarcharNULL用户头像
create_timedatetimeNULL创建时间
update_timedatetimeNULL更新时间

五、功能模块:

  1. 系统主页:

    系统主页

  2. 搜索一下:

    搜索一下

  3. 疾病百科:

    疾病百科

  4. 疾病信息:

    疾病信息

  5. 查找药品:

    查找药品

  6. 我的资料:

    我的资料

  7. 疾病管理:

    疾病管理

  8. 药品管理:

    药品管理

  9. 智能医生:与智能医生进行交流聊天

    智能医生

六、代码示例:

 /**
     * 注册
     *
     * @date 下午1:16 2022/5/1
     * @author azhou
     */
    @PostMapping("/register")
    public RespResult register(User user, String code) {
        String email = user.getUserEmail();
        if (Assert.isEmpty(email)) {
            return RespResult.fail("邮箱不能为空");
        }
        Map<String, Object> codeData = (Map<String, Object>) session.getAttribute("EMAIL_CODE" + email);
        if (codeData == null) {
            return RespResult.fail("尚未发送验证码");
        }
        String sentCode = (String) codeData.get("code");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime((Date) codeData.get("time"));
        calendar.add(Calendar.MINUTE, 5);
        if (System.currentTimeMillis() > calendar.getTime().getTime()) {
            session.removeAttribute("EMAIL_CODE" + email);
            return RespResult.fail("验证码已经超时");
        }
        if (!sentCode.equals(code)) {
            return RespResult.fail("验证码错误");
        }
        List<User> query = userService.query(User.builder().userAccount(user.getUserAccount()).build());
        if (Assert.notEmpty(query)) {
            return RespResult.fail("账户已被注册");
        }
        user.setRoleStatus(0);
        user.setImgPath("https://moti-cloud-v2.oss-cn-beijing.aliyuncs.com/Snipaste_2022-05-01_15-37-01.png");
        user = userService.save(user);
        session.setAttribute("loginUser", user);
        return RespResult.success("注册成功", user);
    }

    /**
     * 登录
     *
     * @date 下午1:16 2022/5/1
     * @author azhou
     */
    @PostMapping("/login")
    public RespResult login(User user) {
        List<User> users = userService.query(user);
        if (Assert.notEmpty(users)) {
            session.setAttribute("loginUser", users.get(0));
            return RespResult.success("登录成功");
        }
        if (Assert.isEmpty(userService.query(User.builder().userAccount(user.getUserAccount()).build()))) {
            return RespResult.fail("账户尚未注册");
        }
        return RespResult.fail("密码错误");
    }

七、项目总结:

之前在教材内容读书过程中开发设计技术专业知识,对研究过程的认知,对开发设计设计课程学习,及其如何有效开展系统的市场分析和设计。老师还选了更具有标志性管理方案系统来解读教学过程,课下安排工作使们进行练习。在这段时间,老师还应当掌握系统地完成和测试。应对餐厅点餐管理系统的开发,的脑海里的确有一个清晰的认知。在系统制做及配套文本文件撰写中,按照软件开发流程一步步做好本职工作。

从系统的角度看,依据餐厅点餐管理系统生产,其艰难在于功能清楚、系统构造设计、设计使用性能数据库系统、挑选核心技术进行系统功能等,这种都是自己的难题。针对这一艰难,实行了一些防范措施。当也不知道系统的功能时,在网上找到很多相似的系统,做好记录了一些系统的一般功能,并用了这一系统的高效功能的一部分。除此之外,在在网络上得到了很多关于系统设计的前提知识,包含系统模块划分、设计规范、数据库表的设计和创建,及其程序流程编码的专业技能知识,包含撰写与使用数据和信息加上、删掉和变更编码控制器。在系统序号进行相关功能后,认真的试了系统中所有功能,最后发现自己研发的系统符合规定,能接受。系统功能与系统剖析设计高度一致,系统质量稳定。为应对客户的实际操作不正确,还设有不恰当反馈机制,系统性能稳定。唯一的最大的缺点是系统数据报表的设计不健全,字段名称相匹配的引用类型不正确,一部分系统编码很多地方并没有注解,编码不足简易。

从文本文件的角度看,依据基于JAVA+SpringBoot的线上智能问诊就医平台生产后,应叙述生产过程的需求,包含怎样进行数据分析报告、怎样进行系统设计及其系统功能的具体运作实际效果。在这期间,用了接近一个月的时间来做。要实现院校标准化的文档排版标准,多次在老师的建议下学习办公软件使用和排版设计设计。坚持就是收益。经过长时间的的撰写和优化,的文档终于完成。

总而言之,尽管制做经历了太多阶段,但如果认真完成这件事情,们将在每一个环节得到许多知识,在每一个环节的操作过程中锻练们自己的实践技能。根据该项目的制做,开始明白,许多知识不但来源于书籍,来源于教师在课堂教学中讲的知识,还来源于各种网络学习平台和社会实践。到现在为止,将继续努力,维持新知识的深入学习习惯性

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻

总而言之,尽管制做经历了太多阶段,但如果认真完成这件事情,们将在每一个环节得到许多知识,在每一个环节的操作过程中锻练们自己的实践技能。根据该项目的制做,开始明白,许多知识不但来源于书籍,来源于教师在课堂教学中讲的知识,还来源于各种网络学习平台和社会实践。到现在为止,将继续努力,维持新知识的深入学习习惯性

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

文章来源:https://blog.csdn.net/weixin_46228112/article/details/135066321
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。