【项目】全栈开发医疗小程序
文章目录
第1章 课程介绍
1.1 神州医疗课程导学
1.1.1 为什么学习这门课
-
OCR扫描
扫描身份证提取信息检验真伪
-
活体检测
每天患者挂号前必须核验身份
-
私有云
搭建私有云存储保存诊断资料
-
大数据
使用大数据技术存储海量数据
-
在线问诊
利用(腾讯云) TRTC 实现在线视频问诊
-
微信支付
对接微信支持3.0 接口实现付款
1.1.2 项目演示
小程序端:
web 管理端
1.1.3 学习路径
step1 项目技术栈
- 构建后端项目
- SpringBoot
- SSM
- Spring
- SpringMVC
- Mybatis
- RBAC 权限模型
- SaToken
- Phoenix
- QuartZ
- RabbitMQ
- 通用功能
- 低于XSS 脚本注入攻击
- 全局处理异常
- 统一后端验证
- Cors跨域
- 大数据
- HBase
- Phoenix
- 小程序项目
- UNI-APP
- VUE2.0
- uView 组件库
- 通用功能
- 封装全局URL
- 封装Ajax
- 前端验证
- 前端项目
- Vue3.0
- ElementPlus 组件库
- Vite
- 通用功能
- 封装全局URL
- 封装Ajax
- 前端验证
- 权限验证
step2 医生管理模块
使用Hbase 作为数据库
- Minio私有云
- Docker 部署
- 创建Minio 容器
- chmod 设置目录权限
- 端口映射和目录映射
- Web 管理页面【后面会使用 el-upload 组件上传医生照片到 Minio 私有云替代云存储】
- 创建hospital 存储桶
- 上传医生照片
- Docker 部署
- 登陆MIS 系统
- 熟悉mis_user 数据表结构
- 利用Hash 加盐对密码加密【避免拖库攻击】
- 哈希加密
- 哈希字典反破解
- 多次哈希加密
- 原始数据加盐混淆
- 登陆系统
- 对登陆密码加盐加密,比对用户密码
- SaToken颁发Token 令牌
- Redis 缓存Token 令牌,过期自动更新
- 浏览器Storage 保存令牌和权限列表
- 医生信息管理
- 加载分页记录
- 折叠面板展示医生详细信息
- el-dialog添加医生信息
- el-upload组件上传医生照片到 Minio 私有云
- el-dialog 修改医生信息
- 逻辑删除医生记录
- 一扩删除不能含有出诊挂号的医生
- 逻辑删除隐藏医生信息,不破坏业务数据
step3 OCR与人脸识别
- 患者小程序
- 微信授权
- 获取临时授权字符串
- 把临时授权字符串转换成OPENID
- 注册新用户
- 判断数据库中是否含有OPENID
- 没有该OPENID说明是新患者
- UPSERT INTO向用户表保存注册记录
- SaToken颁发Token令牌
- 小程序Storage保存令牌
- 登陆系统
- 如果数据库含有OPENID说明是现存患者
- 使用SELECT语句核对登陆信息
- SaToken颁发Token令牌
- 小程序Storage保存令牌
- 微信授权
- 患者实名认证
- OCR身份证件扫描
- 验证身份证真伪
- 提取身份证信息
- 填写实名认证信息
- Camera采集患者面部信息
- 开通腾讯云服务
- 获得腾讯云APPID和密钥
- 面部信息保存在人员特征库
- 人脸面部识别和活体验证基础原理
- OCR身份证件扫描
step4 管理医生出诊
管理医生出诊
- 门诊日程表
- 自定义Flex布局和日历表格
- el-form动态查询门诊日程
- el-dialog添加医生出诊
- 加载科室/诊室二级列表
- 根据诊室查询医生列表
- 选择出诊日期和时间段
- 设置每个时间段接诊人数上限
- 智能筛选过期的出诊时间无法保存
- 更新Redis缓存
- 同诊室同天出诊医生自动合并
- 双击某个日程自动跳转到诊室医生出诊时间表
- 医生出诊时间表
- 自定义Flex布局和日历表格
- el-form动态查询门诊医生出诊时间表
- 后端整理医生出诊时间表SON数据格式
- 在出诊时间表显示医生的出诊时间段,并且标记不出诊时间段
- el-dialog添加医生出诊时间
- 添加出诊时间
- 更新Phoenix数据
- 更新Redis缓存
- el-dialog修改医生出诊时间
- 可以添加出诊时间
- 有挂号记录的时间段不能取消
- 没有挂号记录的时间段可以取消
- 更新Phoenix数据
- 更新Redis缓存
- 删除医生出诊记录
- 如果存在挂号记录则不能删除改天的医生出诊记录
- 没有挂号记录才可以删除医生出诊记录
- 更新诊室日程表
- 更新Redis缓存
- Redis 缓存【缓存数据】
- 缓存医生出诊计划
- 缓存接待患者数量上限
- 缓存剩余挂号数量
- 过期自动删除时间段缓存,避免患者挂到过期号源
step5 在线挂号并付款
- 人脸识别
- Camera采集面部信息,提交给后端Java项目
- 与人员库面部特征比对,核实患者身份
- 准确率高达99%
- 活体验证
- 防止对着照片采集面部信息,骗过面部识别
- 不需要摇头、眨眼、张嘴
- 通过摩尔纹和光线反射路径就就能判断出是否为活体
- 在线挂号
- 阅读挂号须知
- 显示科室与诊室列表
- 显示某天诊室医生列表
- 医生基本信息
- 挂号费价格
- 医生当天总接待患者上限
- 没有达到患者上限的医生可以挂号
- 显示某位医生出诊时间段
- 不出诊时间段禁止选中
- 智能筛选掉过期时间段
- 智能分析每个时间段是否达到挂号人数上限
- 没达到人数上限的时间段可以挂号
- 执行挂号
- 查询缓存该时间段是否可以挂号
- 缓存存在
- 实际挂号人数小于人数上限
- 利用Redis事务执行挂号
- 修改该医生当天实际挂号人数
- 修改该时间段实际挂号人数
- 如果达到挂号人数上限,就自动删除该时间段的缓存
- Phoenix中保存挂号记录
- 创建微信支付订单【调用微信支付接口】
- 查询缓存该时间段是否可以挂号
- 定时器【Quartz 定时器】
- 定时查询患者是否支付挂号费
- 如果未支付挂号费
- 恢复Redis.某医生当天实际挂号人数
- 恢复Redis?某是时间段挂号人数
- 如果Redis缓存已经被删除,就重建缓存
step6 基于TRTC的视频问诊
- Mino 私有云
- 文件加密存储
- 保存患者化验资料【资料】
- X光照片
- CT照片
- 诊断书
- 患者端小程序
- 查询在线医生列表
- 提交视频问诊申请
- 实际问诊人数小于上线人数
- 用Redis事务,避免超售
- 更新Redis缓存
- 创建微信支付订单
- 支付视频问诊费
- 如果2分钟内未支付,自动关闭订单
- 释放实际人数缓存
- 如果缓存销毁了就重建缓存
- 提交问诊材料,保存到Minio私有云
- 开启TRTC视频问诊,15分钟自动结束
- 医生Web端
- 创建视频问诊计划
- 设定日期、时间和人数
- Redis 缓存视频问诊计划
- Redis 缓存过期自动销毁
- 医生上线
- 开启视频问诊
- 结束时间倒计时
- 创建TRTC 音视频流
- 查阅Minio私有云存放的患者资料
- 利用ElementPlus组件允许幻灯片形式查阅资料
- 创建视频问诊计划
step7 电子处方模块
- RabbitMQ
- 使用消息队列把诊疗系统和医疗系统整合
- 消息队列的低耦合性可以在系统之间传输数据
- 创建Topic和Queue 接收诊疗系统的电子处方
- 医疗MIS 项目
- 使用非阻塞方式接收消息队列数据
- 异步线程技术和线程池
- 使用异步线程把电子处方保存到Phoenix数据表
- 实现电子处方CRUD管理
- 患者端小程序
- 利用Flex+Cell布局显示电子处方
- 可以导出PDF格式电子处方
step8 发布程序
- 注册域名与备案
- 申请数字证书
- 腾讯云CVM 云主机
- 安装Docker环境
- 搭建HBase+Phoenix
- 搭建Redis
- 搭建RabbitMQ
- 部署后端Java项目和Vue项目
- 腾讯云人脸识别服务
- 腾讯云TRTC 服务
- 发布微信小程序
step9 面试辅导与总结
- 总结课程技术栈
- 前端Vue项目
- 后端Spring Boot项目
- 移动端UniAPP项目
- 简历撰写辅导
- 个人信息概述
- 掌握技术栈
- 项目简介与核心模块介绍
- 面试技术辅导
- 常见技术问题
- 系统架构问题
End
1.1.4 学习价值
- 商业级医疗类项目
- 弥补项目经验不足
- 增添项目履历含金量
- 面试指导和简历撰写
1.1.5 适合人群
1.1.6 技术储备
- 具有SSM框架知识,掌握SpringBoot技术
- 掌握前端VUE3.0框架
- 掌握常用的SQL语句