医疗问答系统

一、前言

    随着医疗信息的爆炸式增长,人们在获取准确、有用的医疗知识时面临诸多困难。患者常常难以理解复杂的医学术语和大量的医疗资讯,在寻求医疗建议时往往需要花费大量时间和精力。同时,医疗工作者也需要一个高效的工具来分享知识、解答疑问。

    SpringBoot是一个用于构建Java应用的框架。它简化了配置过程,通过自动配置和起步依赖,快速搭建后端服务。其内置的Tomcat服务器方便部署。HTML是构建Web页面的标记语言,用于创建用户界面的结构和内容,能展现丰富的信息并实现简单交互。MySQL是关系型数据库,可高效存储数据。它具备数据完整性约束机制,能确保数据的准确性。三者结合,SpringBoot处理业务逻辑并与 MySQL 交互存储数据,HTML负责前端展示,共同构建功能完善的医疗问答系统。

二、技术环境

前端:HTML、CSS、JavaScript

后端:SpringBoot、SpringMVC、Mybatis、Redis

插件:Maven Helper、Lombok、MybatisLog

工具:IDEA、Postman、Maven、Git、Navicat

环境:Windows10、MySQL


三、功能设计

3.1 管理员用例图如下图所示:

3.2 用户用例图如下图所示:

四、数据库设计

数据库的 E-R 图(实体 - 关系图)是一种强大的工具,用于直观地表示数据库中的实体及其之间的关系。在数据库设计中,E-R 图可以帮助我们清晰地理解数据的结构和流向。限于篇幅要求,仅列出关键部分实体属性图和E-R图,如下所述。

五、部分效果展示

5.1 管理员登录界面有账号、密码输入框,账号框输入管理员身份标识,密码框输入加密后的密码。有登录按钮触发验证,下方含忘记密码链接跳转密码重置页面。

5.2 管理员管理用户列表界面,显示用户名、注册时间等用户信息。可对用户进行搜索筛选,方便查找目标用户。能对单个用户进行权限修改、封禁或解封操作,且有操作记录以便查看管理轨迹。

5.3 管理员管理内科界面中,设有疾病分类栏,如心血管疾病、呼吸系统疾病等。管理员可添加新病症、编辑已有病症详情(包括症状、治疗方案等),还能删除过时病症信息,确保内科知识的准确与更新。

5.4 管理员管理回答界面,以列表形式展示所有回答。能查看回答内容、发布者。可标记优质回答给予推荐,对违规回答进行删除操作。同时支持按关键词、发布时间等筛选回答,便于快速定位和管理。

5.5 用户首页界面包含用户基本信息展示区,显示头像、昵称等。有消息通知栏提示系统消息、互动消息。设有热门话题推荐区,展示热门的医疗话题,还提供搜索框,方便用户快速查找感兴趣的医疗资讯。

5.6 用户内科外科查询界面,有明确的内科、外科分类入口。在内科或外科区域,可输入疾病名称、症状等关键词查询。查询结果展示疾病详情、治疗手段、专家建议,还可按相关性或热门程度排序。

5.7 用户发布问题界面设有标题输入框,明确概括问题内容。主体内容输入区支持详细描述问题,可添加图片辅助说明。有疾病分类标签可供选择,方便归类。还有提交按钮,点击后将问题发送到系统等待解答。

六、部分功能代码

6.1 树形查询分类界面

public Result findTreeByModal(Subject subject) {
        List<Subject> list = subjectMapper.findOneList(subject);
        if (list != null && list.size() > 0){
            for (Subject d:list) {
                d.setChildrenList(subjectMapper.selectByParentId(d.getId()));
                if (d.getChildrenList() != null && d.getChildrenList().size() > 0){
                    for (Subject tow:d.getChildrenList()) {
                        tow.setChildrenList(subjectMapper.selectByParentId(tow.getId()));
                    }
                }
            }
        }
        return ResultGenerator.genSuccessResult(list);
    }

七、答辩可能出现的问题

🌟问题一
答辩老师:对于用户输入的特殊字符,在 HTML 页面中是如何处理的,以避免可能出现的显示问题或者安全漏洞?
同学可回答:在 HTML 页面处理用户输入特殊字符避免问题,主要通过以下方式。对于显示问题,采用实体编码,像将 “<” 编码为 “<”,“>” 编码为 “>” 等,后端在数据插入 HTML 前转换。对于非 ASCII 字符,利用 CSS 的 “white - space” 属性控制显示。安全方面,防范跨站脚本攻击(XSS)。对用户输入进行严格过滤与验证,去除恶意脚本标签。在服务器端,使用安全的编码库,将特殊字符转义。同时,设置内容安全策略(CSP),限制脚本来源,防止恶意脚本执行。

源码及文档获取

大家点赞、收藏、关注、评论啦 、需要源码及文档的可直接私信我即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕设定制辅导-无忧学长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值