DCMTK开发笔记(二):模拟PACS调试(Win10环境)

前言

本文是对 PACS Debugging with DCMTKDICOM医学图像处理:DCMTK的wiki资料学习之PACS调试 的学习笔记,记录了使用DCMTK提供的命令行工具来模拟客户机和PACS系统(服务器)交互的过程。

前置条件

为了方便地在windows环境下使用DCMTK命令行工具,首先将 DCMTK\bin 添加到系统的环境变量中。
在这里插入图片描述
然后在 E:\DCMTK\PACS 目录下创建文件夹(这个位置可以自由设置):

  • E:\DCMTK\PACS\SCU 用来模拟DICOM网络通讯中的客户端(Service Class User),并在其目录下创建文件夹database,用来存放数据。
  • E:\DCMTK\PACS\SCP 用来模拟服务端(Service Class Provider),同样创建文件夹database。

实验过程

  1. 将dcmqrscp.cfg配置文件拷贝到 E:\DCMTK\PACS\SCP 目录下,并做如下修改:
    在这里插入图片描述
    该文件存放在 DCMTK\etc\dcmtk\ 目录下,也可以从 Dcmtk Wiki 处下载得到。改动的地方有:
  • NetworkTCPPort,改为SCP开放的端口号
  • acme1 = (ACME1, acmehost1, 5678) 中间的 acmehost1 改为你的计算机的主机名(hostname),也可以是IP地址。
  • ACME_STORE /home/dicom/db/ACME_STORE RW (9, 1024mb) acmeCTcompany 中间的路径改为你希望SCP存放数据的位置
  1. 打开一个命令行窗口,输入以下命令:
e:
cd E:\DCMTK\PACS\SCP
dcmqrscp --config dcmqrscp.cfg

在这里插入图片描述
没有出现错误信息表明模拟PACS程序启动。

C-ECHO操作

打开另一个命令行窗口:输入

e:
cd E:\DCMTK\PACS\SCU
echoscu -d localhost 11112 -aec ACME_STORE -aet ACME1

在这里插入图片描述
出现一大段网络通讯Log,结尾处 Received Echo Response (Success) 表明客户机(SCU)已经与服务端(SCP)通信成功。
在这里插入图片描述

C-STORE 操作

Dcmtk Wiki 下载示例图片 ct.dcm 存放到E:\DCMTK\PACS\SCU 目录下
继续在SCU命令行窗口输入:

storescu.exe -d localhost 11112 ct.dcm -aec ACME_STORE -aet ACME1

在这里插入图片描述
命令行快速滚动,最后几行为:
在这里插入图片描述
表明 C-STORE 命令运行成功。此时 E:\DCMTK\PACS\SCP\database 目录下出现重命名后的CT文件和 index.dat 文件。
在这里插入图片描述

C-FIND 操作

在SCU命令行窗口输入:

findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate -k StudyDescription -k StudyInstanceUID

在这里插入图片描述
上述结果表明 C-FIND 操作成功。从中我们可以看到,示例CT图像的StudyDate为20140101,StudyInstanceUID为2.16.840.1.113662.2.1.1519.11582.1990505.1105152,我们可以进一步使用这些信息进行查询:

findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate=20140101

findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyInstanceUID=2.16.840.1.113662.2.1.1519.11582.1990505.1105152

C-MOVE

在SCU命令行窗口输入:

movescu.exe -v -S -aec ACME_STORE -aet ACME1 -aem ACME1 --port 1234 -od E:\DCMTK\PACS\SCU\database localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate=20140101

在这里插入图片描述
表明 C-MOVE 命令运行成功。此时 E:\DCMTK\PACS\SCU\database 目录下出现重命名后的CT文件 在这里插入图片描述

常见问题和解决方案

所有问题可以根据SCP(PACS)输出的日志查明原因,下面列出根据客户端反馈信息定位问题:

  1. TCP Initialization Error
    在这里插入图片描述
    请确保你的主机到服务器的网络连接正常,其次请检查 IP/hostname 和端口号 设置是否正确。
  2. Called AE Title Not Recongnized
    在这里插入图片描述
    TCP连接可以建立,但连接使用的 AEC 或 AET 不正确,或者你的AET没有添加到dcmqrscp.cfg 的配置中。

用到的命令总结

SCP命令

SCP命令行用到的命令有:

e:
cd E:\DCMTK\PACS\SCP
dcmqrscp --config dcmqrscp.cfg
dcmqrscp --config dcmqrscp.cfg --prefer-lossless
dcmqrscp -d -c dcmqrscp.cfg +xs -xs

SCU命令

SCU命令行用到的命令有:

e:
cd E:\DCMTK\PACS\SCU
echoscu -d localhost 11112 -aec ACME_STORE -aet ACME1
storescu.exe -d localhost 11112 ct.dcm -aec ACME_STORE -aet ACME1
storescu localhost 11112 ct-compressed.dcm -aec ACME_STORE -aet ACME1 -d --required --propose-lossless
findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate -k StudyDescription -k StudyInstanceUID
findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate=20140101
findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyInstanceUID=2.16.840.1.113662.2.1.1519.11582.1990505.1105152
movescu.exe -v -S -aec ACME_STORE -aet ACME1 -aem ACME1 --port 1234 -od E:\DCMTK\PACS\SCU\database localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate=20140101
movescu.exe -v -S -aec ACME_STORE -aet ACME1 -aem ACME1 --port 1234 -od E:\DCMTK\PACS\SCU\database localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyInstanceUID=2.16.840.1.113662.2.1.1519.11582.1990505.1105152
movescu -v -S -aec ACME_STORE -aet ACME1 -aem ACME1 --port 1234 -od E:\DCMTK\PACS\SCU\database localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyInstanceUID=1.2.276.0.7230010.3.1.2.8323329.4723.1404318646.59559 +xs

更多信息请参考本文开头提到的两篇文章。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DCMTK是一种开源的医学影像处理工具包,可以用于与医学图像存档和通信系统(PACS)进行通信,从PACS中拉取数据。PACS是一种用于存储、检索、传输和共享医学影像的系统,包括医学图像的获取、存储、显示和管理等功能。 要从PACS中拉取数据,首先需要使用DCMTK创建一个DICOM网络连接并进行身份验证。这可以通过指定PACS的地址、端口和相关的用户凭据来实现。一旦连接建立,就可以发送DICOM查询请求到PACS,以获取感兴趣的图像或患者数据。 DICOM查询请求可以基于不同的搜索标准,如患者姓名、ID、检查日期等。一旦查询请求发送到PACS,它将返回与查询条件匹配的图像或患者数据。 DCMTK提供了丰富的API和工具,可以处理从PACS返回的DICOM图像数据。可以使用DCMTK将DICOM图像保存到本地存储设备,或者将其加载到内存中进行进一步的处理和分析。 DCMTK还支持DICOM网络通信协议,用于与PACS进行图像传输。它可以将DICOM图像从PACS下载到本地计算机,以供离线分析或进一步处理。 总结来说,DCMTK可以作为一个功能强大的工具包,用于与PACS进行通信,从PACS中拉取医学影像数据。它提供了灵活的查询和图像传输功能,可以支持各种医学图像处理和分析任务。 ### 回答2: dcmtk是一个开源的医学影像处理工具包,它也可以用于从PACS(Picture Archiving and Communication System,影像存档与通信系统)中拉取数据。 在使用dcmtk进行PACS数据拉取时,首先我们需要了解PACS的基本工作原理。PACS是一种医学影像管理系统,它通过网络连接医疗设备、影像诊断工作站和存储服务器,实现医学影像的传输、存储和共享。PACS中的数据通常以DICOM(Digital Imaging and Communications in Medicine,医学数字成像与通信)格式进行存储。 接下来,我们可以使用dcmtk中的DcmSCP(DICOM Service Class Provider)工具来作为PACS服务的提供者,用于接收外部请求并提供DICOM数据。配置好DcmSCP后,它可以监听PACS的特定端口,并等待来自外部设备的请求。当有请求发生时,DcmSCP就可以将保存在PACS中的DICOM数据提供给请求方。 而作为数据拉取方,我们可以使用dcmtk中的DcmQR(DICOM Query/Retrieve)工具。通过DcmQR,我们可以向PACS发送特定的查询请求,以获取我们需要的DICOM数据。查询请求的信息可以包括患者ID、检查日期、检查类型等等。一旦查询请求被PACS接收并处理,PACS将会返回满足查询条件的DICOM数据给DcmQR工具。然后,DcmQR将会将这些数据保存到本地存储设备中,我们就可以在本地进行进一步的处理和分析。 使用dcmtkPACS拉取数据需要我们进行一定的配置和编程操作,确保与PACS的正确连接和数据传输。这里仅仅是对dcmtkPACS拉取数据的过程进行一个简单的介绍,具体的操作和细节还需要根据实际情况进行具体分析和实施。 ### 回答3: DCMTK是一个开源的医学影像和通信工具包,用于处理DICOM(医学影像和通信)文件。通过使用DCMTK,可以从PACS(医学图像和通信系统)拉取数据。 要从PACS拉取数据,首先需要建立与PACS的连接。可以使用DCMTK中的一些工具和库函数来完成这一操作。例如,可以使用DCMTK的`findscu`命令行工具来发送C-FIND请求,以找到特定患者、检查或图像的DICOM对象。使用命令行的方式,可以通过指定PACS的IP地址、端口号、查询条件等信息来发送请求。 使用DCMTK进行PACS数据检索的另一个选项是使用DCMTK库函数编写自定义的应用程序。通过编写代码,可以使用DCMTK提供的API来建立与PACS的连接并发送C-FIND请求。通过对返回的结果进行解析和处理,可以获取所需的DICOM文件。 一旦与PACS建立成功,并成功发送了相应的请求,PACS将返回DICOM对象的元数据。DCMTK提供了一些工具和库函数来处理和解析DICOM文件,例如`dcm2xml`可以将DICOM文件转换为XML格式,`dcm2jpg`可以将DICOM文件转换为JPEG格式的图像。这样,可以根据需要将DICOM文件保存到本地计算机或者进行进一步的分析和处理。 综上所述,通过使用DCMTK,可以方便地从PACS拉取DICOM数据。无论是通过命令行工具还是编写自定义应用程序,DCMTK提供了一些工具和库函数来建立与PACS的连接并发送请求,然后处理返回的数据。这样,我们可以获取所需的DICOM文件并进行后续的处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值