python 实现dcmtk关联pacs功能 推送下拉影像

这篇具有很好参考价值的文章主要介绍了python 实现dcmtk关联pacs功能 推送下拉影像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python 实现pacs功能 推送下拉影像

dcmtk关联pacs技术笔记:

简介

  • 1、dcmtk关联pacs的参数介绍
  • 2、dcmtk命令介绍
  • 3、演示工具的功能
  • 4、说明使用的技术
  • 5、遇到的问题
  • 6、工具目前存在的缺点

dcmtk关联pacs的参数介绍:远程pacs说明参数如何添加

需关联的PACS系统信息参数
  • [被呼叫主机ip] 192.168.10.19
  • [被呼叫主机pacs系统AE] ebm-pacs
  • [被呼叫主机pacs系统port] 105
  • [pacs系统电脑账号] dn
  • [pacs系统电脑密码] ZAQ12wsxCDE3

1、dcmtk命令介绍,ehoscu,findscu,movescu,storescu

命令参数说明参考实例文档
  • [dcmtk命令参数文档] https://support.dcmtk.org/docs/echoscu.html
  • [DICOM医学图像处理:DCMTK的wiki资料学习之PACS调试文档] https://www.pianshen.com/article/97151392057
  • [DCMTK开发笔记模拟PACS调试(Win10环境)文档] https://blog.csdn.net/Qinyimin001/article/details/103512575
DCMTK 常用参数介绍
参数 说明
-v 详细模式,打印处理细节
-d 调试模式,打印调试信息
ip 被呼叫主机ip,如(192.168.10.19)
port 被呼叫主机port,如(105)
-aet 设置我的呼叫(本机)AE标题,pacs给本机添加的AE title,如(zs-find-scu)
-aec 设置称为对等方(被呼叫主机) 的AE标题,pacs系统的AE title,如(ebm-pacs)
-P 使用患者根信息模型(默认)
-S 使用研究根信息模型
-k 指定检索条件(key=value)
-od 指定输出目录
QueryRetrieveLevel 指定检索级别
-aem 设置移动目的地AE标题(movescu时使用),如(zs-move-scu)
+f 输入文件格式(默认单个dcm文件路径),推送影像时使用
+sd 支持目录路径下所有文件输入,推送影像时使用
-su study 指按studyinstanceuid命名目的文件夹,本机接收远程服务器影像时使用
-fe .dcm 是指收到的文件以.dcm为文件后缀,本机接收远程服务器影像时使用
1.1:echoscu.exe 连接,接收答复回应(相当于ping),测试本机与pacs是否关联成功
  • 参数介绍
  • pacs系统ip,端口(192.168.10.19 105) # 所有的服务都需添加该参数
    echoscu.exe -v -d -aet zs-move-scu -aec ebm-pacs 192.168.10.19 105
1.2:findscu.exe 查询
  • 参数介绍
  • 本机AE(-aet zs-find-scu)
  • 被呼叫机AE(-aec ebm-pacs)
  • 研究信息模型(-S)
  • 查询条件=(key=value)
  • 检索级别(-k QueryRetrieveLevel=STUDY)
  • 查询字段(-k PatientName)
  • 打印处理详情(-v)
  • 打印debug日志(-d)
    findscu.exe -v -d -S 192.168.10.19 105 -aet zs-find-scu -aec ebm-pacs -k QueryRetrieveLevel=STUDY -k StudyDate=20170918 -k PatientName -k PatientID -k StudyTime -k StudyID
1.3:movescu.exe 影像拉取
  • 参数介绍
  • 打印处理详情(-v)
  • 打印debug日志(-d)
  • 本机AE(-aet zs-move-scu)
  • 被呼叫机AE(-aec ebm-pacs)
  • 设置移动目的地AE以及端口(-aem zs-move-scu --port 8090(此端口在pacs给本机设置AE时一起添加)
  • 患者信息模型(-P(默认))
  • 输出目录(-od)
  • 检索级别(-k QueryRetrieveLevel=PATIENT)
  • 筛选条件(-k PatientID=0017063006)
    movescu.exe -v -d -aet zs-move-scu -aec ebm-pacs -aem zs-move-scu --port 8090 -od D:\image_test\dcmtk_scp_storage\CHEN_XIA_DI 192.168.10.19 105 -k QueryRetrieveLevel=PATIENT -k PatientID=0017063006
1.4:storescu.exe 影像推送
  • 参数介绍
  • 打印处理详情(-v)
  • 打印debug日志(-d)
  • 本机AE(-aet zs-move-scu)
  • 被呼叫机AE(-aec ebm-pacs)
  • 单个文件路径输入(D:\image_test\dcmtk_test\1.2.dcm)
  • 目录下所有文件输入(D:\image_test\dcmtk_test\1.2.dcm +sd)
1.4.1:单个dcm文件推送
    storescu.exe -d 192.168.10.19 105 D:\image_test\dcmtk_test\1.2.dcm -aet zs-move-scu -aec ebm-pacs
1.4.2、目录下所有文件推送
     storescu.exe -v -d 192.168.10.19 105 D:\image_test\dcmtk_input\138 -aet zs-move-scu -aec ebm-pacs +sd  
1.5、storescp.exe 接收pacs系统发送的影像
  • 参数介绍
  • 打印处理详情(-v)
  • 打印debug日志(-d)
  • 本机scp的AE,端口(-aet zs-store-scp 8090)
  • 输出目录(-od)
  • 保存格式(-su study)
  • 文件后缀(-fe.dcm))
    storescp.exe -d -v 8090 -aet zs-store-scp -od D:\image_test\dcmtk_scp_storage -su study -fe .dcm --fork

2、演示工具的功能:关联测试,查询,拉取,推送

2.1:影像上传路径:D:\image_test\dcmtk_input\test_0000915367
2.2:影像存储路径:D:\image_test\dcmtk_scp_storage
2.3:本机-AET:zs-movescu
2.4:PACS-AEC:ebm-pacs
2.5:PACS系统IP:192.168.10.19
2.6:PACS系统PORT:105
2.7:本机PORT:8090
2.8:注意事项:
    1.路径中不允许出现中文
    2.PACS-AEC,PACS系统IP,PACS系统PORT,为关联pacs系统固定参数
    3.本机-AET,本机PORT,需要在远程pacs脚本中添加本机ip,端口,设置AE
    4.影像拉取功能需要添加本机端口参数
    5.目前影像拉取不支持PatientName检索条件,仅支持PatientID

3、说明使用的技术:

  • dcmtk命令拼接
  • subprocess(执行命令)
  • tkinter(Gui工具设计)
  • ctypes(隐藏控制台)
  • sys(访问pyinstaller打包的临时资源)
  • pyinstaller(程序打包)

4、遇到的问题:

  • 1.pyinstaller:如何打包本地资源
    解决方法一:pyinstaller -F --add-data dcmtk-3.6.6-win64-dynamic;dcmtk-3.6.6-win64-dynamic dcmtk_gui.py
    解决方法二:修改pyinstaller生成的spec文件,修改datas=[("本地资源路径","打包后生成的临时资源目录")]
  • 2.pyinstaller:-w 去除控制台,无法执行cmd命令:
    解决方法一:设置subprocess.Popen(stdout, stderr, stdin)
    解决方法二:隐藏控制台, ctypes.windll.user32.ShowWindow(whnd, 0)
  • 3.sys:如何访问临时资源:
    解决方法:通过getattr(sys, 'frozen', False)判断是否为打包环境,获取资源的相对路径:sys._MEIPASS 
  • 4.使用资源:
    相对路径(dcmtk../bin) + dcmtk服务的exe + dcmtk命令即可 使用subprocess.Popen(),使用subprocess.getoutput()
  • 5.tkinter 组件切换电脑打开则组件布局位置不一致:
    解决方法:添加容器对象,frame
  • 6.tkinter Entry输入框与选择路径按钮同时支持:
    如果选择路径按钮,entry组件=选择路径
  • 7.tkinter Text实时显示 dcmtk命令产生的日志:
    代码介绍

5、工具目前存在的缺点:

  • 不能根据患者的name进行影像拉取
  • 运行时占用的内存比较大
  • 上传,存储,不支持选择文件(仅支持目录),手动输入都支持

6、收获:

  • dcmtk的命令基本配置
  • subprocess的常用方法
  • tkinter的组件布局,日志打印
  • pyinstaller本地资源打包
  • 打包后的资源如何访问

前存在的缺点:

  • 不能根据患者的name进行影像拉取
  • 运行时占用的内存比较大添加链接描述
  • 上传,存储,不支持选择文件(仅支持目录),手动输入都支持

6、收获:

  • dcmtk的命令基本配置
  • subprocess的常用方法
  • tkinter的组件布局,日志打印
  • pyinstaller本地资源打包
  • 打包后的资源如何访问

dcmtk下载地址:https://download.csdn.net/download/EXIxiaozhou/86724433文章来源地址https://www.toymoban.com/news/detail-414455.html

到了这里,关于python 实现dcmtk关联pacs功能 推送下拉影像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于C++开发的医院医学影像PACS 可二次开发,三维重建

    医学影像PACS系统源码,集成三维影像后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大,代码完整。有演示。 本套PACS系统专门针对医院工作流程设计的,完全符合医院需要,配置

    2023年04月23日
    浏览(41)
  • 医学影像PACS系统源码: 三维重建基本后处理方法的介绍和说明

    多层面重建(MPR) 最大密度投影(MIP) 最小密度投影(MinIP) 表面阴影遮盖(SSD) 容积漫游技术(VRT) 曲面重建(CPR) 虚拟内镜技术(VE)   1、MPR MPR(Multi-Planar Reformatting),多平面重建,是将扫描范围内所有的轴位图像叠加起来再对某些标线标定的重组线所指定的组织进行

    2024年02月09日
    浏览(57)
  • 【C++医学影像PACS】CT检查中的三维重建是什么检查?

    三维重建是多层螺旋CT的一个最大的优点,也是影像工作多年来,从横断解剖到多平面,乃至立体的一次飞跃,让抽象变的形象,大大地提高了准确性,为临床工作的开展,注入了无限生机,从而解决许多临床上,无法开展的一些难题。   具体的三维重建有以下几种: 第一

    2024年02月16日
    浏览(52)
  • 医院影像图像科室工作站PACS系统 DICOM 三维图像后处理与重建

    PACS报告系统的主要任务是通过运用不断积累诊断常用语,减轻出报告的劳动强度,并且将报告保存成电子文档以便日后查阅。在PACS的报告系统中,有三种不同层次的方法输入文字—“高级模板”、“分类词条”和“短语词典”。这三种方法的内容都可以在运行时创建并加以

    2023年04月21日
    浏览(50)
  • 医院影像科PACS系统源码,医学影像系统,支持MPR、CPR、MIP、SSD、VR、VE三维图像处理

    PACS系统是医院影像科室中应用的一种系统,主要用于获取、传输、存档和处理医学影像。它通过各种接口,如模拟、DICOM和网络,以数字化的方式将各种医学影像,如核磁共振、CT扫描、超声波等保存起来,并在需要时能够快速调取和使用。 PACS系统还提供了辅助诊断和管理功

    2024年02月03日
    浏览(58)
  • C++医院影像科PACS源码:三维重建、检查预约、胶片打印、图像处理、测量分析等

    PACS连接DICOM接口的医疗器械(如CT、MRI、CR、DR、DSA、各种窥镜成像系统设备等),实现图像无损传输,实现DICOM胶片打印机回传打印功能,支持各种图像处理,可以进行窗技术调节,与登记台管理系统共享数据,提供智能化专家诊断知识库,提供图像相互转换功能(DICOM转换为

    2024年02月07日
    浏览(41)
  • 【script】15行Python代码实现免费发送手机短信推送消息功能(twilio)

    通过代码定时给手机推送短信,短信内容可以自定义文字,当然你也可以去别的网站爬取每日心灵鸡汤,天气预报或其它信息进行推送。 本文主要讲如何实现发送短信的功能,全部代码只用15行。 首先贴出实现的效果图,后面再分两步详细描述实现过程,第一步免费注册ap

    2023年04月09日
    浏览(88)
  • 开源医学影像存档与检索系统(PACS)之Dcm4che-arc-light安装部署详细教程(适用于windows平台)

    Dcm4che-arc-light是一个开源的医学影像存档和通信系统(PACS)解决方案。它是基于Dcm4che项目的一个子项目,专注于实现轻量级而功能强大的医学影像存档与检索(ARCHIVE)功能。 Dcm4che-arc-light具备以下主要特点: 总而言之,Dcm4che-arc-light是一个功能强大且易于使用的医学影像存

    2024年02月04日
    浏览(65)
  • fastadmin笔记,关联查询,下拉框,关联下拉框查询,编辑时下拉框默认值

    记录熟悉fastadmin框架时的笔记 在model中增加方法 在模型中调用 首先在模型中添加 在lang zh-cn 中添加 回到模型中,构造方法 _initialize() 中 在视图 view 中 在模型 model 中增加方法 随后的操作和下拉框的一样,在构造方法中 添加,在视图中添加下拉框即可 和添加的大同小异,区

    2024年02月06日
    浏览(43)
  • Java实现邮件推送功能

    java 实现邮件推送 一、引入依赖 二、邮件来源用户信息 三、线程池异步 四、异步发送 五 完整发送

    2024年03月21日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包