医工互联

 找回密码
 注册[Register]

手机动态码快速登录

手机号快速登录

微信登录

微信扫一扫,快速登录

QQ登录

只需一步,快速开始

查看: 1086|回复: 0
收起左侧

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

[复制链接]

  在线 

发表于 2022-10-23 17:25:02 | 显示全部楼层 |阅读模式 <
前言

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

为了方便地在windows环境下使用DCMTK命令行工具,首先将 DCMTK\bin 添加到系统的环境变量中。
182516zanwawauvulwvm7o.png

然后在 E:\DCMTK\PACS 目录下创建文件夹(这个位置可以自由设置):


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


  • 将dcmqrscp.cfg配置文件拷贝到 E:\DCMTK\PACS\SCP 目录下,并做如下修改:
    182517y0uaylbttaw5t5bu.png

    该文件存放在 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:
  2. cd E:\DCMTK\PACS\SCP
  3. dcmqrscp --config dcmqrscp.cfg
复制代码
182517hhh6klh63mhdzp6j.png

没有出现错误信息表明模拟PACS程序启动。
C-ECHO操作

打开另一个命令行窗口:输入
  1. e:
  2. cd E:\DCMTK\PACS\SCU
  3. echoscu -d localhost 11112 -aec ACME_STORE -aet ACME1
复制代码
182518y153yyhna8bnyw7t.png

出现一大段网络通讯Log,结尾处 Received Echo Response (Success) 表明客户机(SCU)已经与服务端(SCP)通信成功。
182519rbd0o0xzbb3i2bcw.png

C-STORE 操作

从 Dcmtk Wiki 下载示例图片 ct.dcm 存放到E:\DCMTK\PACS\SCU 目录下
继续在SCU命令行窗口输入:
  1. storescu.exe -d localhost 11112 ct.dcm -aec ACME_STORE -aet ACME1
复制代码
182519gbj9vqlfv55986yx.png

命令行快速滚动,最后几行为:
182519minnl76va0zz7ul6.png

表明 C-STORE 命令运行成功。此时 E:\DCMTK\PACS\SCP\database 目录下出现重命名后的CT文件和 index.dat 文件。
182520rn2f4li3i3bbli32.png

C-FIND 操作

在SCU命令行窗口输入:
  1. findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate -k StudyDescription -k StudyInstanceUID
复制代码
182521vhf75hm97jjmh1mv.png

上述结果表明 C-FIND 操作成功。从中我们可以看到,示例CT图像的StudyDate为20140101,StudyInstanceUID为2.16.840.1.113662.2.1.1519.11582.1990505.1105152,我们可以进一步使用这些信息进行查询:
  1. findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate=20140101
复制代码

  1. 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命令行窗口输入:
  1. 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
复制代码
182521fbdakzdtmbm2iomq.png

表明 C-MOVE 命令运行成功。此时 E:\DCMTK\PACS\SCU\database 目录下出现重命名后的CT文件
182521hs9zx2j2jfj296w2.png

常见问题和解决方案

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

  • TCP Initialization Error
    182522nqzqspn1md1qkps1.png

    请确保你的主机到服务器的网络连接正常,其次请检查 IP/hostname 和端口号 设置是否正确。
  • Called AE Title Not Recongnized
    182522fh8hiio6ir0ah6ry.png

    TCP连接可以建立,但连接使用的 AEC 或 AET 不正确,或者你的AET没有添加到dcmqrscp.cfg 的配置中。
用到的命令总结

SCP命令

SCP命令行用到的命令有:
  1. e:
  2. cd E:\DCMTK\PACS\SCP
  3. dcmqrscp --config dcmqrscp.cfg
  4. dcmqrscp --config dcmqrscp.cfg --prefer-losslessdcmqrscp -d -c dcmqrscp.cfg +xs -xs
复制代码
SCU命令

SCU命令行用到的命令有:
  1. e:
  2. cd E:\DCMTK\PACS\SCU
  3. echoscu -d localhost 11112 -aec ACME_STORE -aet ACME1
  4. storescu.exe -d localhost 11112 ct.dcm -aec ACME_STORE -aet ACME1
  5. storescu localhost 11112 ct-compressed.dcm -aec ACME_STORE -aet ACME1 -d --required --propose-losslessfindscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate -k StudyDescription -k StudyInstanceUID
  6. findscu.exe -v -S -aec ACME_STORE -aet ACME1 localhost 11112 -k QueryRetrieveLevel=STUDY -k StudyDate=20140101
  7. 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
  8. 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
  9. 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.1105152movescu -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
复制代码
更多信息请参考本文开头提到的两篇文章。

来源:https://blog.csdn.net/Qinyimin001/article/details/103512575
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

提醒:禁止复制他人回复等『恶意灌水』行为,违者重罚!
您需要登录后才可以回帖 登录 | 注册[Register] 手机动态码快速登录 微信登录

本版积分规则

发布主题 快速回复 收藏帖子 返回列表 客服中心 搜索
简体中文 繁體中文 English 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

QQ|RSS订阅|小黑屋|处罚记录|手机版|联系我们|Archiver|医工互联 |粤ICP备2021178090号 |网站地图

GMT+8, 2024-10-18 20:19 , Processed in 0.288880 second(s), 65 queries .

Powered by Discuz!

Copyright © 2001-2023, Discuz! Team.

快速回复 返回顶部 返回列表