目 录
摘 要 I
ABSTRACT II
目 录 III
1 绪论 1
1.1 研究背景及意义 1
1.1.1 研究背景 1
1.1.2 研究意义 1
1.2 技术栈的选择 1
1.3 论文的主要工作内容 1
1.4 本章小结 2
2 相关技术分析 3
2.1 MongoDB数据库 3
2.1.1 数据库简介 3
2.1.2 BSON存储格式 3
2.1.3 Gridfs存储格式 3
2.2 传统图像存储方法介绍 3
2.3 性能对比分析 4
2.4 node.js对MongoDB的支持 4
2.5 python对MongoDB的支持 4
2.6 加密介绍 4
2.7 本章小结 4
3 系统需求分析 6
3.1 系统可行性分析 6
3.1.1 经济可行性 6
3.1.2 技术可行性 6
3.1.3 运行可行性 6
3.1.4 操作可行性 6
3.2 系统需求分析 6
3.3 本章小结 7
4 系统设计 8
4.1 模块结构 8
4.1.1 node.js模块结构 8
4.1.2 python模块结构 8
4.2功能设计与分析 8
4.3 系统开发方法 24
4.4 定义规范 24
4.4.1 代码注释规范 24
4.4.2 命名规范 25
4.4 本章小结 25
5 系统测试 26
5.1 程序调试 26
5.2 工具的测试 26
5.2.1 测试的目的及意义 26
5.2.2 测试框架 26
5.2.3 测试步骤 26
5.3 测试用例设计 27
5.4 测试数据 33
5.5 本章小结 34
6 结论 35
7 参考文献 36
8 致 谢 37
3 系统需求分析
3.1 系统可行性分析
对于每个软件项目中的问题并不都有明显的解决办法,有时候很难在预定的时间和费用之内解决这些问题,也无法用现有的技术圆满完成。如果贸然去开发,会造成时间、人力、资源和经费的不必要浪费,或者还会带来一些意料不到的问题。所以本系统在开发之前分别在经济可行、技术可行性、运行可行性、操作可行性几个方面进行了分析。
3.1.1 经济可行性
开发该软件所需的相关资料可以通过文献资料和网络进行调查采集,所需的软件系统、硬件平台等都易于获得,无需特殊工具,开发成本低,简单易实现,从经济角度来看,开发该软件经济可行。
3.1.2 技术可行性
系统涉及的任务主要有各种图像存储方案性能对比分析、数据库设计、接口设计与实现。
性能分析方面我准备采用C++编写,实现各种存储方案的接口,然后线程的个数为参数,时间为结果,并且将结果通过图形化界面展示出来,所涉及的东西目前都是我自身具备的,所以在这方面可行。
数据库设计方面,数据库用到的是mongodb,虽然之前并没接触过,不过网上有大量的资料和书籍以及用到的知识知识mongodb中的基础部分,而且数据库设计大学里已经学过,所以在这方面也技术可行。
接口设计与实现,实现主要采用node.js、python两种语言,这两种语言之前并没有接触过,不过我有大量的时间去学习,所以在这方面也技术可行。
3.1.3 运行可行性
该系统是通过python、node.js、mongodb开发而成,如果要运行只要具备python运行环境、node.js执行环境、mongodb数据库即可。所以在运行上可行的。
3.1.4 操作可行性
由于该系统不是被用户直接操作的,系统所面向的用户是其他模块的开发人员,而其他模块的程序开发人员,都具备扎实的node.js、python知识,所以在操作上是绝对可行的。
综上所述,该系统在经济、技术、运行、操作上完全可行。
3.2 系统需求分析
该系统身为医疗图像识别系统中的一个模块,主要是为其他模块提供数据支持,也就是说,其他模块通过此模块进行数据读写。通过各种需求获取手段包括向用户反复咨询、咨询老师、跟其他成员讨论,本文转载自http://www.biyezuopin.vip/onews.asp?id=14554最终得出系统的需求如下:
功能需求:
• 系统可以分别满足node.js、python两种语言的接口需要。
• 针对python可满足图像以及隐私信息增、删、改、查的需要。
• 针对node.js可满足图像增、删、改以及xml的增、删、改、查的需要。
性能需求:
• 响应时间不超过1秒
• 支持2万用户同时操作数据库,保证性能不受影响
安全性需求:
• 系统对病人隐私数据进行加密
• 系统自动进行数据备份,防止数据丢失造成危机
• 本系统应该能够记录系统运行时所发生的所有错误,这些错误记录便于查找错误的原因。
可靠性和可用性需求:
• 系统提供的接口尽可能满足方便其他模块的操作
• 系统具有一定的容错和抗干扰能力,在非硬件故障和非通讯故障时,系统能够保证正常运行,并有足够的提示信息帮助用户有效正确的完成任务。

from lib.image import *
from lib.useInfo import *
from lib.db import *
from etc.config import *
from gridfs import *
from bson import ObjectIddef InsertImage(path, filename, process_times, origin_fileid):image = Image(path, filename, process_times, origin_fileid)mongo = MongoDB(configs['DB']['HOST'], configs['DB']['PORT'], configs['DB']['NAME'])db = mongo.GetDB()gfs = GridFS(db)#打开文件,并读取数据img = open(image.GetPath() + image.GetFilename(), 'rb')data = img.read()#存放数据到mongodb数据库gfs.put(data, filename = image.GetFilename(), process_times = image.GetProcessTimes(), origin_fileid = image.GetOriginFileid())#关闭数据库连接mongo.Close()def DeleteImage(dict):mongo = MongoDB(configs['DB']['HOST'], configs['DB']['PORT'], configs['DB']['NAME'])db = mongo.GetDB()if dict == None:db.fs.files.remove()db.fs.chunks.remove()returngfs = GridFS(db)files = db['fs.files']fileList = files.find(dict)for file in fileList:id = file['_id']gfs.delete(ObjectId(id))mongo.Close()#删除所有的图像
def DeleteAllImage():DeleteImage(None)def FindImage(dict):mongo = MongoDB(configs['DB']['HOST'], configs['DB']['PORT'], configs['DB']['NAME'])db = mongo.GetDB()gfs = GridFS(db)files = db.fs.filesfileList = files.find(dict)for file in fileList:id = file['_id']data = gfs.get(ObjectId(id))f = open(configs['IMAGE']['FIND_RESULT_PATH'] + str(id) + configs['IMAGE']['EXT_NAME'], 'wb')f.write(data.read())f.close()mongo.Close()def FindImageById(id):dict = {}dict['_id'] = idFindImage(dict)def FindImageByFilename(filename):dict = {}dict['filename'] = filenameFindImage(dict)def InsertPatientInfo(origin_image_id, patientId, patientName = "", patientBirthDate = "",patientSex = "", studyId = "", studyTime = "",studyDate = "",institutionName = "", maufacturer = "", numberOfFrames = ""):patient = Patient(patientId, patientName, patientBirthDate, patientSex, studyId, studyTime,studyDate,institutionName, maufacturer, numberOfFrames)mongo = MongoDB(configs['DB']['HOST'], configs['DB']['PORT'], configs['DB']['NAME'])db = mongo.GetDB()collection = db[configs['PATIENT_COLLECTION_NAME']]  #如果集合不存在,插入第一文档时会自动生成# 用dic类型存放病人信息patientInfo = {}patientInfo['patientId'] = patient.GetPatientId()patientInfo['patientName'] = patient.GetPatientName()patientInfo['patientBirthDate'] = patient.GetPatientBirthDate()patientInfo['patientSex'] = patient.GetPatientSex()patientInfo['studyId'] = patient.GetStudyId()patientInfo['stduyTime'] = patient.GetStudyTime()patientInfo['institutionName'] = patient.GetInstitutionName()patientInfo['maufacturer'] = patient.GetMaufacturer()patientInfo['numberOfFrames'] = patient.GetNumberOfFrames()patientInfo['studyDate'] = patient.GetStudyDate()patientInfo['origin_image_id'] = origin_image_id# 插入collection.insert(patientInfo)mongo.Close()def FindPatientInfo(dict):mongo = MongoDB(configs['DB']['HOST'], configs['DB']['PORT'], configs['DB']['NAME'])db = mongo.GetDB()collection = db[configs['PATIENT_COLLECTION_NAME']]res = collection.find(dict)mongo.Close()return resdef UpdataPatientInfo(dict1, dict2):mongo = MongoDB(configs['DB']['HOST'], configs['DB']['PORT'], configs['DB']['NAME'])db = mongo.GetDB()collection = db[configs['PATIENT_COLLECTION_NAME']]tmp = {}tmp['$set'] = dict2collection.update(dict1, tmp)mongo.Close()def DeletePatientInfo(dict):mongo = MongoDB(configs['DB']['HOST'], configs['DB']['PORT'], configs['DB']['NAME'])db = mongo.GetDB()collection = db[configs['PATIENT_COLLECTION_NAME']]if dict == None:collection.remove()returncollection.remove(dict)mongo.Close()def DeleteAllPatientInfo():DeletePatientInfo(None)













基于python的医学图像以辅助医疗系统相关推荐

  1. python实现将深度学习应用于医学图像以辅助医疗

    转自fc013,仅做学习用 问题导读: 1.怎样利用python处理图像? 2.什么是卷积? 3.什么是Keras? 运用深度学习技术进行图像和视频分析,并将它们用于自动驾驶汽车.无人机等多种应用场景 ...

  2. python篮球-基于Python/Java的人工智能篮球训练系统的制作方法

    本发明涉及信息技术领域,尤其涉及一种基于Python/Java的人工智能篮球训练系统. 背景技术: 人工智能的发展已经开始渗透到各行各业.经过发明人的研究和检索,发现作为篮球训练,已经有专利申请.其中 ...

  3. 基于Python+django的 医院排队叫号系统-计算机毕业设计

    项目介绍 随着时代发展,越来越多的人需要到医院进行挂号检查等操作,如果全部都到医院现场挂号,一方面的浪费大量的时间和精力,另一方面是浪费大量的医疗资源,为了能够让患者更加方便的进行挂号,我们通过pyt ...

  4. 26个数据分析案例——第一站:基于Python的HBase冠字号查询系统

    26个数据分析案例--第一站:基于Python的HBase冠字号查询系统 实验所需环境 • Python: Python 3.x: • Hadoop 2.7.7环境: • HBase 1.3.5: 数 ...

  5. 基于眨眼识别的渐冻人辅助打字系统

    基于眨眼识别的渐冻人辅助打字系统 开坑在此,先把效果放出来,代码要整理一下下再放出来.编程语言是Python,硬件是树莓派,镜头是淘宝买的,20块钱左右,显示屏用自己电脑上的. 后续会讲讲树莓派编译. ...

  6. 基于Python Unet的医学影像分割系统源码,含皮肤病的数据及皮肤病分割的模型,用户输入图像,模型可以自动分割去皮肤病的区域

    手把手教你用Unet做医学图像分割 我们用Unet来做医学图像分割.我们将会以皮肤病的数据作为示范,训练一个皮肤病分割的模型出来,用户输入图像,模型可以自动分割去皮肤病的区域和正常的区域.废话不多说, ...

  7. 毕业设计-基于Python爬虫的疫情数据可视化系统

    基于Python爬虫的疫情数据可视化系统 采用ECharts+Flask+Requests架构: 源码加3105088663

  8. python上传文件到onedrive_基于Python的onedrive文件本地化浏览系统–PyOne

    基于Python的onedrive文件本地化浏览系统–PyOne PyOne是一款基于Python-Flask的onedrive文件本地化浏览系统,使用MongoDB储存文件列表,使用redis缓存数 ...

  9. django开源电子文档管理系统_基于 Python 开发的在线文档系统

    MarkDown 编辑,快速书写:类 Gitbook,简洁阅读:后台管理. 州的先生(zmister.com)自用并完全开源.基于 Python 编写的文档写作系统. MrDoc 拥有以下特点: 站点 ...

最新文章

  1. 从零开始单排学设计模式「UML类图」定级赛
  2. 缓存和web缓存分别是什么?
  3. Spring源码系列:BeanDefinition源码解析
  4. 1043 输出PATest (20分)_23行代码满分
  5. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
  6. BroadcastChannel页面间通讯
  7. 无人机rtmp推流直播解决方案
  8. 游标中的static参数
  9. 子图同构算法系列(1)
  10. ffmpeg -acodec列表
  11. debugfs查看文件块号,dd命令读指定块号的内容
  12. java.lang.IllegalStateException: Unable to read meta-data for class 问题的解决
  13. html标签之间去掉空白,html – 减少两个标签之间的空白差距
  14. ASP.NET中使用System.Net.Mail发邮件
  15. 如何取消html中页眉的下划线,Word文档页眉的横线怎么去掉?页脚的横线怎么去掉?...
  16. html图片幻灯片效果,使用CSS3实现的超酷幻灯图片效果
  17. hash_map C++
  18. mediawiki php7,centos7搭建mediawiki
  19. 金彩教育:怎么布局人群标签
  20. Linux系统基础命令详细总结,不定期更新,建议收藏

热门文章

  1. Z-Score如何计算
  2. android 极光 环信,环信、容联云通讯、极光推送和网易云信IM即时通讯功能接入方式_部署方式_企业服务汇...
  3. 蓝桥杯十届年号字串 JAVA暴解
  4. shell的循环运用
  5. 贺志理:红树林湿地沉积物中微生物驱动的碳氮硫磷循环及其耦合机制
  6. 基于BiLSTM的回归预测方法
  7. 制作android布局模板,Android Studio自定义模板 写页面竟然可以如此轻松
  8. 怎样才算是婚姻般配?
  9. 基于微信小程序的毕业设计题目(20)php校园二手交易小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  10. java期末_Java期末总结