病理切片智能辅助诊断系统需求分析和设计

青春苦瓜 2021-12-24 21:54:43

 

  • 项目背景

    现在,随着社会的不断发展,医疗水平也在不断的提高,与此同时,人们的生活质量也一直在改善。就在大家将更多注意力投向胃癌、肝癌等严重危害人们身心健康疾病的同时,前列腺癌正逐渐成为威胁中老年男性健康的头号杀手。

    病理医生在这种高强度、长时间的阅片过程中,容易出现判断错误的情况。另外,这种高度过度依赖人为因素的诊断过程具有主观差异性。这些因素都增加了医患纠纷的发生几率。

    设计一个病理切片智能辅助诊断系统,可以减少病理医生的出错率,给病理医生阅片过程中提供高价值参考性。

    需求分析

    前端具体需求:

    上传一张病理切片图片,用户可以缩放和拖拽,当鼠标悬浮在癌化区域时,鼠标变成可点击样式,然后点击可以显示该区域,并且有左右箭头,点击左右箭头可以显示其他癌化区域。

    支持搜索图片,后台存放已上传图片及处理结果,用户可通过搜索查看指定图片及处理结果,也可通过浏览列表选择文件。

     

    后端数据库需求:

    保存已上传图片及其处理结果

     

    后端模型需求:

    输入一张前列腺病理切片图片,得出癌化等级,并且分割出大致区域,给出局部区域癌化等级。

     

    后端web服务器需求:

    协同控制各部分模块运行工作。

     

    1.系统用例图

     

     

    系统流程分析

    本系统医生账号不对外开放注册功能,新增加账户需通过管理员注册。

    登录后首先系统进行权限认证判断是管理员还是医生。

    管理员可以增加和删除医生账号。

    医生可以查看病理切片图像列表,上传病理切片。

    系统流程图如下图所示:

     

    系统概要设计

    系统层级设计采用传统的MVC模型,如图:

     

    View就是前端界面,这里view通过http协议与后端进行通信。Controller接收到请求后进行处理,如果请求带有数据将会对收到的数据进行校验。Service会对来自Controller的数据进行处理然后通过Model写入数据库或者通过Redis层写入缓存中。同时Service也会负责协调MySQL和Redis之间的关系。

    处理完请求之后,Service将通过Model或者Redis从MySQL或缓存冲获取数据,经过业务处理然后通过Controller发送给View。

     

    系统框图

  •  

    ngnix:做反向代理

  • UserController:用户信息相关功能

  • ImageController图像相关功能

    CommentController评语相关功能

    ResultController切片处理结果集

    MySQL:数据库

    Redis:缓存数据库

    数据库设计

    数据库结构图如下图:

     

     

    对于本系统需要存储用户信息,图片信息评语信息,结果集数据库能实现配置管理系统的数据持久化,系统的重要组成部分。系统将选用MySQL数据库进行后台数据库开发、建立各部分数据表。

    各个表的功能与结构设计如下:

     

    user表用来存储用户的信息,在本系统中,用户是指管理员和医生,医生是主体。user表数据如下

    字段

    类型

    内容

    id

     

    varchar

    医生id

     

    username

     

    varchar

    用户名

     

    password

     

    varchar

    密码

     

    name

     

    varchar

    姓名

     

    deleted

     

    tinyint

    逻辑删除 1(true)已删除, 0(false)未删除

     

    gmt_modified

     

    datetime

    创建时间

     

    gmt_create

     

    datetime

    更新时间

     

    1 user字段

     

    image表用来存储当前上传的图片信息,包括图片链接和状态,以及对应的上传用户信息,image表如下表:

    字段

    类型

    内容

    id

     

    varchar

    图片id

     

    doctor_id

    varchar

    医生id

    url

     

    varchar

    图片地址

    deleted

     

    tinyint

    逻辑删除 1(true)已删除, 0(false)未删除

     

    gmt_modified

     

    datetime

    创建时间

     

    gmt_create

     

    datetime

    更新时间

     

                                  2  image数据库字段

     

       comment表用来存储医生对当前区域的格里森评级评级与评语,包括当前区域号,格里森评级以及相应的评语,comment表如下表:

      

    字段

    类型

    内容

    id

     

    varchar

    评语id

     

    image_id

    varchar

    图片id

    doctor_id

    varchar

    医生id

    url

     

    varchar

    图片地址

    area_number

     

    int

    区域编号

    content

     

    text

    批注文本内容

    grade

     

    int

    格里森评级

    deleted

     

    tinyint

    逻辑删除 1(true)已删除, 0(false)未删除

     

    gmt_modified

     

    datetime

    创建时间

     

    gmt_create

     

    datetime

    更新时间

     

                                  3 comment数据库字段

     

    result表用来存储机器模型对相应图片的处理结果,其为一个对应的json数组,包含点坐标,格里森评级,区域宽高的信息,result表内容如下:

     

    字段

    类型

    内容

    id

     

    varchar

    结果集id

     

    image_id

     

    varchar

    图片id

    content

     

    text

    处理结果json数组

    deleted

     

    tinyint

    逻辑删除 1(true)已删除, 0(false)未删除

     

    gmt_modified

     

    datetime

    创建时间

     

    gmt_create

     

    datetime

    更新时间

     

    4 result数据库字段

     

    系统所涉及的设计模式

     

    1.单例设计模式

     

    在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池、缓存、对话框、注册表、日志对象、充当打印机、显卡等设备驱动程序的对象。事实上,这一类对象只能有一个实例,如果制造出多个实例就可能会导致一些问题的产生,比如:程序的行为异常、资源使用过量、或者不一致性的结果。

    使用单例模式的好处:

  • 对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销;
  • 由于 new 操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻 GC 压力,缩短 GC 停顿时间。

Spring 中 bean 的默认作用域就是 singleton(单例)的。 因此本系统中后端各种bean都是单例的

2.代理设计模式

AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码降低模块间的耦合度,并有利于未来的可拓展性和可维护性

Spring AOP 就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了。

本系统使用AOP实现了记录日志的功能,故涉及了代理模式。

作者:480

...全文
5205 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
码农孟宁 2022-01-11
  • 打赏
  • 举报
回复

用例图画的不规范

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧