[疑难杂症2023-005]dcmtk-movescu访问dcm4chee模拟PACS Server报错问题解析

news2024/11/23 2:23:49

本文由Markdown语法编辑器编辑完成。

1. 背景

由于要在医院上线一个服务,用来定时从医院的PACS Server上面拉取dicom图像并进行分发。因此,需要首先在公司的内网环境上进行开发,测试和验证。

目前比较流行和开源的PACS Server模拟是基于dcm4chee的开源镜像。通过docker启动dcm4chee的镜像后,便在内网环境下,启动了一个类似于医院的PACS服务器。而且它支持上传图像(storescu),查询图像(query- findscu)和拉取图像(retrivev- getsuc, movescu)。

storescu, findscu, getscu, movescu, 是dcmtk提供的几个工具,用来实现以上提到的,与dicom的传输有关的功能。

指令功能
storescu模拟CT机或其他影像设备,向PACS Server推送dicom图像.
findscu根据一定的条件,从PACS Server中检索query符合要求的图像信息.
getscu根据传入的条件,从PACS Server中直接获取retrieve图像.
movescu根据传入的条件和目标AETitle,让PACS Server将图像发送到目标地址.

这四个指令常用的例子如下:

这里做一些预设:
这几个单词中,比如关键的单词.
客户端的AETitle: -aet
服务端的AETitle: -aec (被客户端叫到的aetitle.)
目标端的AETitle: -aem (需要将图像move移动到的目标的aetitle.)
在这里插入图片描述
图片来自官网: https://support.dcmtk.org/docs/movescu.html

这里给的假设的值:

AETitleValue
-aetTEST
-aecDCM4CHEE
-aemTEST

1.1 storescu

storescu -aet TEST -aec DCM4CHEE +sd +r -d 127.0.0.1 11112 /dicom/path/dir
# +sd: scan directory 扫描文件夹
# +r reverse 递归发送文件夹内的所有图像.
# -d debug模式,发送过程中会输出详细信息.

1.2 findscu

# 该指令的作用是,向DCM4CHEE,按照STUDY级别进行检索。根据传入的StudyInstanceUID的uuid的具体值,查询该检查对应的AccessionNumber的值。将要回传的信息,存储到指定的路径下面的临时dicom文件内,如/path/rsp.dcm.
findscu -v -X --study -aet TEST -aec DCM4CHEE 127.0.0.1 11112 -d -K 08,52=STUDY -to 300 -ta 300 -td 300 -od /path/rsp0001.dcm -k "StudyInstanceUID=xxxxxx" -k AccessionNumber=
# --study QueryRoot
# -K 08,52=STUDY, QueryLevel
# -od 将需要检索的dicom tag信息,存储到rsp.dcm内。如果不指定,则会默认在该指令运行的当前目录下,生成一张rsp0001.dcm.

该指令运行后,可以看到在rsp.dcm中,包含了想要检索的,该检查的检查号信息。
通过dcmdump rsp0001.dcm, 可以看到:
在这里插入图片描述

1.3 getscu

getscu, 不是所有的PACS Server都支持。幸运的是,dcm4chee开源PACS支持了通过getscu来直接拉取图像。
getscu能够实现拉图的前提,一定是提前在PACS Server已经注册了本地的AETitle. 这样当PACS Server需要传送图像的时候,才知道将图像推送到哪里。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 该指令的作用,向DCM4CHEE请求将特定检查号的检查,拉取到本地的AETitle为TEST的服务中。
getscu -v --study -aet TEST -aec DCM4CHEE 127.0.0.1 11112 -k 08,52=STUDY -d -to 300 -ta 300 -td 300 -k AccessionNumber="JSCT20200xxxxx"

执行该命令后,会运行失败。给出的错误原因是:
在这里插入图片描述
通过查找dicom的官方文档:
https://dicom.nema.org/dicom/2013/output/chtml/part04/sect_C.4.html
在这里插入图片描述

1.4 movescu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/749786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python 面向对象编程(2)

文章目录 前言封装多态类属性和实例属性定义以及访问类属性修改类属性实例属性 类方法静态方法 前言 前面我们介绍了 python 类和对象以及继承、私有权限,那么今天我们将来介绍 python面向对象 剩下的两大特性封装、多态,以及如何访问、修改类属性、类方…

机器学习李宏毅学习笔记37

文章目录 前言一、ChatGPT做的事情二、ChatGPT基础介绍三、ChatGPT带来的研究问题总结 前言 ChatGPT简单原理介绍 一、ChatGPT做的事情 Chatgpt以句子为输入,输出这个句子后面接的词汇的概率分布,给每一个可能的符号一个概率,根据这个分布进…

【雕爷学编程】Arduino动手做(160)---HLK-V20离线语音模块2

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&#x…

RabbitMQ知识掌握 【进阶篇】

一、如何保证消息的可靠性 🍉 1.保证消息的可靠性投递 🥝 在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是&#xff0…

微信小程序活动抽奖简单实现,包教包会

问题: 针对用户使用活动抽奖,获得抽奖得到商品的成就以及满足感,那么我们应该怎么去实现小程序去转盘抽奖活动呢 例如:项目需要抽奖实现相应的奖品奖励 实现方法 实现的效果如下: 实现的主要代码: Page…

ANSYS Workbench项目分析与案例实操详解

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言准备工作创建项目导…

盘点5款Cesium三维GIS渲染引擎

目前,以Cesium为核心的各类产品繁多,本文将挑选一些以Cesium为核心的软件案例,为大家进行介绍。 1. CesiumJS CesiumJS相信凡是GIS行业相关人员都特别熟悉了,CesiumJS是一款开源的JavaScript库,用于创建高性能的地球…

以太网(Ethernet)入门了解

以太网(Ethernet)是一种常见的局域网(LAN)通信协议,它是由Xerox公司于1970年代中期开发的。以太网是一种基于广播技术的开放式网络协议,它允许设备在共享通信介质上进行通信。以下是关于以太网的基本概念、…

如何做到有效的项目质量管理?这三点很关键

“项目管理中,大家都遇到过的哪些绊脚石?” 近期看到了这样一个话题,大家纷纷吐槽了在项目中遇到的各种困难。除了常见的范围无限蔓延、进度不停延误、成本严重超支、内部沟通困难等一系列问题;其中提到次数较多的还有项目的质量…

QOwnNotes Mac版-QOwnNotes for Mac(事务笔记管理)

QOwnNotes for Mac是一款Mac平台上的笔记记录和待办事项软件,可以将你的笔记保存为纯文本文件,它支持 MarkDown 支持,并与 ownCloud 云服务紧密集成。 QOwnNotes 的亮点就是它集成了 ownCloud 云服务(当然是可选的)。…

JavaWeb 速通XML

目录 一、XML快速入门 1.基本介绍 : 2.入门案例 : 二、XML语法 0.文件结构 : 1.文档声明 : 2. 元素 : 3.属性 : 4.注释 : 5.CDATA节 : PS : XML转义符 : 三、Dom4j 1.关于XML解析技术 : 2 Dom4j介绍 : 3.Dom4j使用 : 1 获取Document对象的三种方式 2 …

ROS:Gazebo详解

目录 一、前言二、URDF与Gazebo基本集成流程2.1创建功能包2.2编写URDF文件2.3启动Gazebo并显示模型 三、URDF集成Gazebo相关设置3.1collision3.2inertial3.3颜色设置 四、URDF集成Gazebo实操4.1需求4.2流程4.3编写封装惯性矩阵算法的 xacro 文件4.4底盘 Xacro 文件4.5摄像头 Xa…

5个值得收藏字体网站,优秀字体不用再找

如何在大量的字体网站中选择安全可靠的字体呢?这里本文收集整理了5个好用的字体网站,一起来看看吧! 1、即时设计 对于设计师来说,一个好的字体网站要具备两个基本要素:美观和免费。如果你对字体有同样的要求,那么即时…

给测试开发工程师的5条建议——你一定要知道

目录 前言 质量心态 获取其他测试领域的知识 探索性测试 数据测试 可视化测试 可访问性测试 安全测试 混沌测试 获得正确的帮助 自动化不仅仅是执行测试脚本 分享也是学习的一种途径 最后 前言 近些年可以看出测试开发工程师是热度比较高的测试职位,除…

【深度学习】多任务学习

多任务学习是一个很火的话题,在自动驾驶领域以及其他对存储资源要求较高的端侧任务,都会考虑这种方式。之前面试的时候也有被问题多任务学习。前几天看到一个写得很好的例子,在此记录一下,也好久没有写博客了。 1.参考 论文是20…

samba服务

samba服务 1. samba诞生背景2. samba简介3. samba配置文件详解3.1 配置文件中参数的作用3.1.1 security参数的四种验证方式3.1.2 passdb backend定义用户后台的类型 4. samba服务部署与配置windos共享linux挂载共享 1. samba诞生背景 1987 年,微软公司和英特尔公司…

fastapi初使用,构建自己的api

文章目录 1、安装2、api实现2.1、 app.get("/1")2.2、app.get("/{a}")2.3、app.get("/{a}{b}")2.4、函数和api分离 3、运行 原文链接:https://wangguo.site/posts/d98bb3c9.html fastapi 是一个基于 Python 的 API 构建框架&#xff…

C国演义 [第八章]

第八章 买卖股票的最佳时机题目理解步骤dp含义递推公式初始化遍历方向 代码 买卖股票的最佳时机II题目理解步骤dp含义递推公式初始化遍历方向 代码 买卖股票的最佳时机 力扣链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格 …

IDEA使用方式

1.翻译 1.Plugins插件:Chinese中文插件 文件F 编辑E 视图V 导航N 代码C 分析Z 重构R 构建B 运行U 工具T VCSS 窗口W 帮助H文件N 新建N 打开 打开最近 关闭项目 设置T 项目结构 文件属性 保存全部S 从磁盘全部重新加载 作废缓存/重启 导出/导入操作 其他设置 导出 打…

路径规划算法:基于协作搜索优化的路径规划算法- 附代码

路径规划算法:基于协作搜索优化的路径规划算法- 附代码 文章目录 路径规划算法:基于协作搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…