DicomTransfer
一个用于 DICOM 文件处理的命令行工具。
功能
-
DICOM 压缩
- 支持多种传输语法
- 支持批量处理
- 支持单文件处理
-
DICOM 匿名化
- 可选择保留病人ID
- 可选择保留病人姓名
- 可选择保留检查日期
- 支持批量处理
- 支持单文件处理
-
DICOM 转图片
- 支持输出 JPG/PNG/BMP 格式
- 保持原有的 DICOM 目录结构
- 支持批量处理
- 支持单文件处理
-
图片转 DICOM
- 支持 JPG/JPEG/PNG/BMP/GIF/TIF/TIFF 格式
- 自动生成 DICOM 标签
- 支持批量处理
- 支持单文件处理
-
C-GET 获取图像
- 支持通过检查号查询
- 支持通过检查实例UID查询
- 支持指定传输语法
- 自动保存到输出目录
-
C-MOVE 获取图像
- 支持通过检查号查询
- 支持通过检查实例UID查询
- 支持指定目标AE
- 支持指定QR服务器信息
-
STOW-RS 上传图像
- 支持单个文件上传
- 支持批量上传
- 自动转换为显式小端传输语法
- 支持 DICOMweb 标准
-
C-STORE 发送图像
- 支持单个文件发送
- 支持批量发送
- 自动转换为显式小端传输语法
- 支持多种 SOP Class
- 支持多种传输语法
-
C-FIND 查询检查
- 支持通过检查号查询
- 支持通过检查实例UID查询
- 支持通过病人ID查询
- 支持通过病人姓名查询
- 支持通过检查日期查询
- 显示检查的详细信息(模态、序列数等)
使用方式
DicomTransfer.exe <处理类型> <输入路径> [参数]
处理类型
- 1: DICOM 压缩
- 2: DICOM 匿名化
- 3: 图片转 DICOM
- 4: DICOM 转图片
- 5: C-GET 获取图像
- 6: C-MOVE 获取图像
- 7: STOW-RS 上传图像
- 8: C-STORE 发送图像
- 9: C-FIND 查询检查
示例
- DICOM 压缩
# 压缩单个文件
DicomTransfer.exe 1 input.dcm JPEGLossless
# 参数说明:
# 1 - 处理类型(DICOM压缩)
# input.dcm - 输入文件路径
# JPEGLossless - 目标传输语法
# 压缩文件夹下所有 DICOM 文件
DicomTransfer.exe 1 input_folder JPEGLossless
# 参数说明:
# 1 - 处理类型(DICOM压缩)
# input_folder - 输入文件夹路径
# JPEGLossless - 目标传输语法
- DICOM 匿名化
# 匿名化单个文件(保留ID 不保留姓名和日期)
DicomTransfer.exe 2 input.dcm true false false
# 参数说明:
# 2 - 处理类型(DICOM匿名化)
# input.dcm - 输入文件路径
# true - 是否保留病人ID(true=保留)
# false - 是否保留病人姓名(false=不保留)
# false - 是否保留检查日期(false=不保留)
# 匿名化文件夹下所有 DICOM 文件
DicomTransfer.exe 2 input_folder true false false
# 参数说明:
# 2 - 处理类型(DICOM匿名化)
# input_folder - 输入文件夹路径
# true - 是否保留病人ID(true=保留)
# false - 是否保留病人姓名(false=不保留)
# false - 是否保留检查日期(false=不保留)
- 图片转 DICOM
# 转换单个图片
DicomTransfer.exe 3 input.jpg
# 参数说明:
# 3 - 处理类型(图片转DICOM)
# input.jpg - 输入图片路径
# 转换文件夹下所有支持的图片
DicomTransfer.exe 3 input_folder
# 参数说明:
# 3 - 处理类型(图片转DICOM)
# input_folder - 输入文件夹路径
- DICOM 转图片
# 转换单个文件为 JPG
DicomTransfer.exe 4 input.dcm jpg
# 参数说明:
# 4 - 处理类型(DICOM转图片)
# input.dcm - 输入DICOM文件路径
# jpg - 输出图片格式
# 转换文件夹下所有 DICOM 文件为 PNG
DicomTransfer.exe 4 input_folder png
# 参数说明:
# 4 - 处理类型(DICOM转图片)
# input_folder - 输入文件夹路径
# png - 输出图片格式
- C-GET 获取图像
# 通过检查号获取
DicomTransfer.exe 5 accno 12345 REMOTE_AE 192.168.1.100 104
# 参数说明:
# 5 - 处理类型(C-GET获取)
# accno - 查询字段(检查号)
# 12345 - 检查号值
# REMOTE_AE - 远程设备的AE标题
# 192.168.1.100 - 远程设备的IP地址
# 104 - 远程设备的端口号
# 通过检查实例UID获取(指定传输语法)
DicomTransfer.exe 5 studyuid 1.2.3.4.5.6.7 REMOTE_AE 192.168.1.100 104 JPEGLossless
# 参数说明:
# 5 - 处理类型(C-GET获取)
# studyuid - 查询字段(检查实例UID)
# 1.2.3.4.5.6.7 - 检查实例UID值
# REMOTE_AE - 远程设备的AE标题
# 192.168.1.100 - 远程设备的IP地址
# 104 - 远程设备的端口号
# JPEGLossless - 可选的传输语法
- C-MOVE 获取图像
# 通过检查号获取
DicomTransfer.exe 6 accno 12345 DEST_AE QR_AE 192.168.1.100 104
# 参数说明:
# 6 - 处理类型(C-MOVE获取)
# accno - 查询字段(检查号)
# 12345 - 检查号值
# DEST_AE - 目标AE标题(接收图像的设备)
# QR_AE - QR服务器的AE标题
# 192.168.1.100 - QR服务器的IP地址
# 104 - QR服务器的端口号
# 通过检查实例UID获取
DicomTransfer.exe 6 studyuid 1.2.3.4.5.6.7 DEST_AE QR_AE 192.168.1.100 104
# 参数说明:
# 6 - 处理类型(C-MOVE获取)
# studyuid - 查询字段(检查实例UID)
# 1.2.3.4.5.6.7 - 检查实例UID值
# DEST_AE - 目标AE标题(接收图像的设备)
# QR_AE - QR服务器的AE标题
# 192.168.1.100 - QR服务器的IP地址
# 104 - QR服务器的端口号
- STOW-RS 上传图像
# 上传单个文件
DicomTransfer.exe 7 input.dcm https://server/dicom-web/studies
# 参数说明:
# 7 - 处理类型(STOW-RS上传)
# input.dcm - 输入DICOM文件路径
# https://server/dicom-web/studies - DICOMweb服务器的URL
# 上传整个目录
DicomTransfer.exe 7 input_folder https://server/dicom-web/studies
# 参数说明:
# 7 - 处理类型(STOW-RS上传)
# input_folder - 输入文件夹路径
# https://server/dicom-web/studies - DICOMweb服务器的URL
- C-STORE 发送图像
# 发送单个文件
DicomTransfer.exe 8 input.dcm REMOTE_AE 192.168.1.100 104
# 参数说明:
# 8 - 处理类型(C-STORE发送)
# input.dcm - 输入DICOM文件路径
# REMOTE_AE - 远程设备的AE标题
# 192.168.1.100 - 远程设备的IP地址
# 104 - 远程设备的端口号
# 发送整个目录
DicomTransfer.exe 8 input_folder REMOTE_AE 192.168.1.100 104
# 参数说明:
# 8 - 处理类型(C-STORE发送)
# input_folder - 输入文件夹路径
# REMOTE_AE - 远程设备的AE标题
# 192.168.1.100 - 远程设备的IP地址
# 104 - 远程设备的端口号
- C-FIND 查询检查
# 通过检查号查询
DicomTransfer.exe 9 accno 12345 REMOTE_AE 192.168.1.100 104
# 参数说明:
# 9 - 处理类型(C-FIND查询)
# accno - 查询字段(检查号)
# 12345 - 检查号值
# REMOTE_AE - 远程设备的AE标题
# 192.168.1.100 - 远程设备的IP地址
# 104 - 远程设备的端口号
# 通过检查实例UID查询
DicomTransfer.exe 9 studyuid 1.2.3.4.5.6.7 REMOTE_AE 192.168.1.100 104
# 通过病人ID查询
DicomTransfer.exe 9 pid 12345 REMOTE_AE 192.168.1.100 104
# 通过病人姓名查询
DicomTransfer.exe 9 pname "Zhang San" REMOTE_AE 192.168.1.100 104
# 通过检查日期查询
DicomTransfer.exe 9 date 20240101 REMOTE_AE 192.168.1.100 104
支持的传输语法
- ImplicitVRLittleEndian
- ExplicitVRLittleEndian
- JPEGBaseline
- JPEG2000Lossless
- JPEG2000Lossy
- JPEGLSLossless
- JPEGLSNearLossless
- JPEGExtended
- JPEGLossless
- RLELossless
输出目录结构
输出文件将保存在程序所在目录的 output 文件夹下,按功能分类:
output/
├─compress/ # 压缩输出
├─anonymize/ # 匿名化输出
├─image2dcm/ # 图片转DICOM输出
├─dcm2image/ # DICOM转图片输出
│ └─{format}/ # 按图片格式分类
├─cget/ # C-GET获取的图像
└─cmove/ # C-MOVE获取的图像
注意事项
- 输入路径可以是单个文件或文件夹
- 文件夹处理时会递归处理所有子文件夹
- 默认保持原有的目录结构
- 所有操作都是非破坏性的,原文件不会被修改
- C-GET 和 C-MOVE 需要远程服务器支持相应的服务
- STOW-RS 上传时会自动转换为显式小端传输语法
- C-STORE 发送时会自动转换为显式小端传输语法
传输语法处理
-
STOW-RS 上传
- 所有图像会自动转换为 ExplicitVRLittleEndian 传输语法
- 使用 DicomTranscoder 进行转换,确保正确处理像素数据
- 符合 DICOMweb 标准要求
-
C-STORE 发送
- 所有非 ExplicitVRLittleEndian 的图像会自动转换
- 使用 DicomTranscoder 进行转换,确保正确处理像素数据
- 提高与不同 PACS 系统的兼容性
-
支持的传输语法
- ExplicitVRLittleEndian(默认)
- ImplicitVRLittleEndian
- JPEGBaseline
- JPEG2000Lossless
- JPEG2000Lossy
- JPEGLSLossless
- JPEGLSNearLossless
- JPEGExtended
- JPEGLossless
- RLELossless
评论区