当前位置: 首页 > news >正文

基于springboot+vue的药物咨询平台

基于springboot+vue的药物咨询平台

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

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


一、项目背景介绍:

1.1 研究目的及意义
随着新药品越来越丰富,不同药物间相互作用的不确定性以及患者健康安全理念的逐步建立,患者越来越重视药品的安全性,渴望了解药物相互作用及不良反应。通过开展药物咨询服务平台,最大限度地避免了医疗纠纷的发生以及潜在的用药隐患,对用药安全、康复治疗,以及解决医患纠纷的发生,发挥着积极的重要性[1]。
专业的用药服务使中国患者明白药师的重要性,以此提升中国药师的社会地位,同时也能方便出院患者咨询药物[2]。在中国互联网医疗发展的步伐中建立和其他医疗服务不一样的服务方向。
由此可见,在中国还未成型的互联网医疗市场上打下基础,以待中国互联网医疗大潮涌来时趁势而上。

二、项目技术简介:

  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-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  6. Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

五、功能模块:

  1. 注册登录:当用户输入访问网页的网址后就会进入到平台的登录注册中,如果是新用户可以选择自己专属账号的注册,注册号账号后就可以进行登录
    注册账号时会对密码进行确认验证,如果两次输入的密码不一致,系统将会给予提示

    注册登录

  2. 药物问题咨询:该模块主要是介绍用户对于相关药品不熟悉,需要通过资讯平台向药师进行提问的介绍

    药物问题咨询

  3. 药物基本信息查询:该模块主要是介绍系统中的所有药品基本信息,如药品的编码、名称、服用要求、禁忌症等情况。

    药物基本信息查询

  4. 咨询评论页面:该模块主要是用户对于药品的了解程度不够,需要向药师进行提问的记录,当药师收到用户的提问留言后,会第一时间进行回复。

    咨询评论页面

  5. 管理员后台:该模块主要是管理员(药师)登录系统后,可以对系统进行的相关操作,具体有用户信息管理、通知公告管理、药品维护、咨询问题解答等。

    管理员后台

  6. 通知公告管理:该模块主要是管理员发布每日的通知,更新每天系统中的药品信息通知,同时也可以进行通知公告分类的选择。

    通知公告管理

六、代码示例:

注册登录
注册核心代码如下:
@RequestMapping(value = "/user/insert")
public ControllerResultData<User> insert(User user){ControllerResultData<User> controllerResultData = new ControllerResultData<>();try {int id = userService.insert(user);if (id == 0){controllerResultData.setDefaultFail();controllerResultData.setMsg(ResultConstant.USER_NAME_EXIST);return controllerResultData;}controllerResultData.setDefaultSuccess();controllerResultData.setData(user);}catch(Exception ex) {ex.printStackTrace();controllerResultData.setCode(ResultConstant.CONTROLLER_RES_CODE_V1);controllerResultData.setMsg(ResultConstant.DEFAULT_FAIL_MSG);}return controllerResultData;
}
@Override
public int insert(User user) throws Exception {//判断用户是否存在User user1 = new User();user1.setUserName(user.getUserName());List<User> list = userDao.findList(user1);if (list.size() > 0){return 0;}user.setUserHead(ResultConstant.IMAGE);user.setVip(0);user.setNickName("root");user.setTime(DateUtil.defaultFormatDate());user.setStatus(1);return userDao.insert(user);
}
登录核心代码如下:
@RequestMapping("/user/login")public ControllerResultData<User> login(User user){ControllerResultData<User> controllerResultData = new ControllerResultData<>();User login = userService.login(user);if(login != null){//把token存入redis中redisUtil.set(login.getToken(),login);controllerResultData.setDefaultSuccess();controllerResultData.setData(login);}else{controllerResultData.setDefaultFail();controllerResultData.setMsg(ResultConstant.USERINFO_NOT_EXISTS);}return controllerResultData;}
@Overridepublic User login(User user) {User userFind = userDao.find(user);if (userFind != null){if(!"0".equals(userFind.getStatus())){userFind.setToken(TokenUtil.getToken(userFind.getId()));return userFind;}}return userFind;}
药物问题咨询
/*** 查询药物问题咨询列表*/
@GetMapping("/list")
public TableDataInfo list(TDrugQuestion tDrugQuestion,String userName)
{startPage();if(StringUtils.isNotEmpty(userName)){SysUser sysUser = sysUserService.selectUserByUserName(userName);tDrugQuestion.setRemindWho(sysUser.getUserId());}List<TDrugQuestion> list = tDrugQuestionService.selectTDrugQuestionList(tDrugQuestion);return getDataTable(list);
}
药物基本信息查询
/*** 获取药物信息详细信息*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{return AjaxResult.success(tGrugsService.selectTGrugsById(id));
}
咨询评论页面
/*** 获取咨询评论详细信息*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{return AjaxResult.success(tQuestionCommentService.selectTQuestionCommentById(id));
}
管理员后台
@GetMapping("/list")
public TableDataInfo list(TDrugQuestion tDrugQuestion,String userName)
{startPage();if(StringUtils.isNotEmpty(userName)){SysUser sysUser = sysUserService.selectUserByUserName(userName);tDrugQuestion.setRemindWho(sysUser.getUserId());}List<TDrugQuestion> list = tDrugQuestionService.selectTDrugQuestionList(tDrugQuestion);return getDataTable(list);
}
通知公告管理
/*** 获取通知公告列表*/
@GetMapping("/list")
public TableDataInfo list(SysNotice notice)
{startPage();List<SysNotice> list = noticeService.selectNoticeList(notice);return getDataTable(list);
}

七、论文参考:

论文参考···论文参考图

八、项目总结:

在目前的咨询平台中主要是借助计算机系统,想要解决传统药物咨询不能够解决的问题,需要将WEB技术与现有的药物资源结合起来,这样就能够提高药物系统的服务质量和水平,在WEB开发的过程中能够综合的利用Java、springboot、CS等WEB相关技术,将多种技术能够有机的结合起来使用,使系统能够将诸多的因素相结合起来,相互作用的整体功能等。如何建立一个测试软件的过程,首先搭建基本框架,按照功能需求完善功能模块;如何完善硬件设施以及动态开发。
该系统总的来说没什么太大的Bug,但是在页面设计、业务流程上还需要更加精确。首先是数据的缓存问题,数据库的设计有些不合理,比如药物商品的规格应该存放在对应数据字典表中,但由于自己刚开始设计时没有考虑到,导致商品规格另外新建了一张表。之后的系统需要扩展方面,面向将会是更多的业务需求,表的字段需要适当进行添加,同时数据库处理批量数据时。如果自己能够将上述功能进行优化,相信系统的可用性会更强。
程序设计需要态度严谨、逻辑思维敏捷、良好的编程习惯和系统设计实力。通过这次做项目,也学习到许多宝贵的经验,如何更好的去设计实现系统的业务逻辑、完善界面、设计数据库,写代码也变得更严谨,对一些框架搭建和方法的使用也更加熟练。

九、源码获取:

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

链接点击直达:下载链接

相关文章:

基于springboot+vue的药物咨询平台

基于springbootvue的药物咨询平台 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&…...

第64章 SQL 主机教程

如果大神想要大神的网站存储数据在database并从database显示数据&#xff0c;大神的 Web server 必须能使用 SQL 语言访问database系统。 如果大神的 Web server 托管在互联网服务提供商&#xff08;ISP&#xff0c;全称 Internet Service Provider&#xff09;&#xff0c;大…...

【软件测试】python接口自动化测试编写脚本,资深测试总结方法,你的实用宝典......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 接口测试&#xff0…...

MathType公式编辑器过期(禁止联网)的解决方案

MathType公式编辑器过期&#xff08;禁止联网&#xff09;的解决方案 Mathtype公式编辑器无法使用解决方案 MathType联网后显示证书失效&#xff0c;需要重新认证或者购买。或者是MathType成了精简版&#xff0c;只剩两行了。 1. 打开控制面板 方法1 首先大家在电脑中打开W…...

电子技术——共栅和共源共栅放大器的高频响应

电子技术——共栅和共源共栅放大器的高频响应 我们在之前学过无论是是CS放大器还是CE放大器&#xff0c;都可以看做是一个带通&#xff08;IC低通&#xff09;滤波器。在高频处的响应收到输入电容 CinC_{in}Cin​ 的限制&#xff08;主要是米勒效应&#xff09;。因此&#xff…...

基于jsplumb构建的流程设计器

项目背景 最近在准备开发工作流引擎相关模块&#xff0c;完成表结构设计后开始着手流程设计器的技术选型&#xff0c;调研了众多开源项目后决定基于jsplumb.js开源库进行自研开发&#xff0c;保证定制化的便捷性&#xff0c;相关效果图及项目地址如下 项目地址&#xff1a;ht…...

解析从Linux零拷贝深入了解Linux-I/O(下)

接上文解析从Linux零拷贝深入了解Linux-I/O&#xff08;上&#xff09; 大文件传输场景 零拷贝还是最优选吗 在大文件传输的场景下&#xff0c;零拷贝技术并不是最优选择&#xff1b;因为在零拷贝的任何一种实现中&#xff0c;都会有「DMA 将数据从磁盘拷贝到内核缓存区——P…...

【学习笔记2.19】动态规划、MySQL、Linux、Redis(框架)

动态规划 343整数拆分 class Solution {public int integerBreak(int n) {int dp [] new int [n 1];//dp[i]:正整数i拆分后的最大乘积dp[2] 1;for(int i 2;i < n ;i ){for(int j 1;j < i;j ){dp[i] Math.max(dp[i],Math.max(j * (i - j),j * dp[i - j]));} …...

String intern方法理解

1、原理 参考学习视频&#xff1a; https://www.bilibili.com/video/BV1WK4y1M77t/?spm_id_from333.337.search-card.all.click&vd_source4dc3f886f5ce1d43363b603935f02bd1 String s1 “hello”; String s1 "hello"; 代码原理解释如下图String s1 new Str…...

解决 cocosjs与安卓原生集成 崩溃问题

版本:cocos2dx3.16 背景&#xff1a;公司需要把游戏整合到一个APP里面。于是打算通过activity切换的方式实现。但是游戏退出重进之后总会出现fatal 11线程报错。于是有了以下修改。我是底层小白。折腾了好久总算鼓捣出一个能用的版本。优化的地方应该有很多。不过就没去好好优…...

spring注解方式整合Dubbo

系列文章目录 文章目录系列文章目录一、创建一个父工程项目二、创建子模块(dubbo-api模块)二、创建子模块(dubbo-provider模块)三、创建子模块(dubbo-consumer模块)总结一、创建一个父工程项目 这里我们通过Spring Initializer 来帮我们构建一个spring-dubbo这个父项目,点击nex…...

Git详解

Git1.Git简介1.1 Git是什么1.2 Git的作用1.3 Git的简介1.4 Git的下载和安装1.5 Git的安装目录结构如下2.Git代码托管服务2.1 常用的Git代码托管服务1.Git简介 1.1 Git是什么 Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、x…...

003__JAVA模板方法-设计模式

模板方法 定义&#xff1a;定义了一个算法的骨架&#xff0c;并允许子类为一个或多个步骤提供实现 举个例子&#xff0c;把大象放进冰箱分几步&#xff0c;第一打开冰箱&#xff0c;第二打大象放进冰箱&#xff0c;第三把冰箱关闭。这三个步骤就可以用模板方法的设计模式。 …...

Springboot项目集成Netty组件

系列文章目录 Springboot项目集成Netty组件 Netty新增解析数据包指定长度功能 文章目录系列文章目录前言一、Netty是什么&#xff1f;二、使用步骤1. 项目引入依赖1.1 项目基础版本信息&#xff1a;1.2 Netty依赖2. 项目配置2.1 在 yml 配置文件中配置以下&#xff1a;2.2 创建…...

python 中的import cfg问题

pip install cfg 报错: ERROR: Could not find a version that satisfies the requirement cfg (from versions: none) ERROR: No matching distribution found for cfg 要使用pip install cfg2才行...

[oeasy]python0088_字节_Byte_存储单位_KB_MB_GB_TB

编码进化 回忆上次内容 上次 回顾了 字符大战的结果 ibm 曾经的 EBCDIC 由于字符不连续的隐患 导致后续 出现 无数问题无法补救 7-bit 的 ASA X3.4-1963 字母序号连续 比较字符时 效率高判断字符 是否是字母 也很容易 获得了 IBM以外公司的 支持 为什么 ASA X3.4-1963 是 7…...

vue3.0 生命周期

目录前言&#xff1a;vue3.0生命周期图例1.beforeCreate2.created3.beforeMount/onBeforeMount4.mounted/onMounted5.beforeUpdate/onBeforeUpdate6.updated/onUpdated7.beforeUnmount/onBeforeUnmount8.unmounted/onUnmounted案例&#xff1a;总结前言&#xff1a; 每个Vue组…...

CGAL 数字类型

文章目录 一、简介二、内置数字类型三、CGAL中的数字类型参考资料一、简介 在CGAL汇总,数字类型必须满足特定的语法和语义要求,这样它们才能在CGAL代码中成功使用。一般来说,它们往往是代数结构概念的模型,如果它们对实数的子集模型,那么它们就也是RealEmbeddable模型。 二…...

如何将Python打包后的exe还原成.py?

将python打包好的exe解压为py文件&#xff0c;步骤如下&#xff1a;下载pyinstxtractor.py文件下载地址&#xff1a;https://nchc.dl.sourceforge.net/project/pyinstallerextractor/dist/pyinstxtractor.py并将pyinstxtractor.py放到和exe相同的目录文件下打开命令控制台cd 进…...

CJSON简单介绍

json简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集&#xff0c;最新的定义可以参考ECMA-404_2nd_ed…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...