dcmtk在PACS开发中的应用(基础篇) 第三章 工作列表(Work List)(一)( BY 冷家锋)

article/2025/9/16 16:10:08

 

觉得对您有帮助,欢迎打赏(打赏码在文末),欢迎切磋。

博客不常来,评论不一定都能看到,看到了我会尽力回复(更新于2019年7月26日)

第三章 工作列表(Work List)(一)

1 、目的

在工作站上登记患者,影像设备通过DICOM标准中的Work List获取登记的患者信息。

2 、实验平台

Windows XP Professional SP2,其他 Windows系统笔者未验证,希望验证过的朋友添加进来。

3 、前置条件

    在您的电脑上新建文件夹如下

C:/PACS,用于存放相关文档

C:/DCMTK,用于存放dcmtk工具包及源代码

C:/DICOM,

C:/DICOM/Worklist,用于存放工作列表测试所需的文件。

C:/DICOM/Worklist/wlistdb/OFFIS,用于存放工作列表文件数据库;

C:/DICOM/Worklist/wlistqry,用于存放工作列表查询文件。

4、所需工具

1)dcmtk中wlmscpfs.exe、findscu.exe、dcmdump.exe,dump2dcm.exe

      已编译的 dcmtk工具包下载链接:

ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/bin/dcmtk-3.5.4-win32-i386.zip

下载预编译的 Dcmtk工具包至 C:/DCMTK,并解压,解压后的目录为 C:/DCMTK/dcmtk-3.5.4-win32-i386。

将wlmscpfs.exe、findscu.exe、dcmdump.exe,dump2dcm.exe拷贝至%windir%,一般为C:/Windows,这样我们的命令行可以随时运行这些程序。

2)请至以下链接下载测试用的工作列表文件,不需积分:

       https://download.csdn.net/download/pachleng/2608448

解压后,将wlistqry.wl拷贝至C:/DICOM/Worklist/wlistqry;

将wklist.wl拷贝至C:/DICOM/Worklist/wlistdb/OFFIS。

5 、前置知识

    要完成本节的实验,您得具备Windows系列操作系统的使用经验,具备命令行方式程序的使用经验则更好。

6 、实验步骤

       1)启动wlmscpfs

    启动 cmd.exe,依次键入以下命令

C:>cd C:/DICOM/Worklist

C:/DICOM/Worklist>wlmscpfs.exe -dfr -dfp wlistdb 104 (命令到此结束,注意大小写),将出现类似如下的提示,否则,请检查您的操作步骤:

$dcmtk: wlmscpfs v3.5.4 2005-12-20$

 

(notice: dcmdata auto correction disabled.)   

2)查询患者信息

再启动一个cmd.exe,依次键入

C:/>cd C:/DICOM/Worklist

C:/DICOM/Worklist>findscu127.0.0.1 104 wlistqry/wlistqry.wl -aec OFFIS(命令到此结束,注意大小写)

如果一切正常,在将出现类似如下的提示

RESPONSE: 1 (Pending)

 

# Dicom-Data-Set

# Used TransferSyntax: LittleEndianExplicit

(0008,0050) SH [00009 ]                                 #   6, 1 AccessionNumber

 

(0010,0010) PN [MOZART^WOLFGANG^AMADEUS ]               #  24, 1 PatientsName

(0010,0020) LO [MWA484763 ]                             # 10, 1 PatientID

(0010,0030) DA [17911205]                               #   8, 1 PatientsBirthDa

te。

……

这些显示内容应该比较好懂,#号后的内容为注释。

比如(0010,0010) PN[MOZART^WOLFGANG^AMADEUS ]              #  24, 1 PatientsName

其中,(0010,0010) PN为DICOM标准中“患者姓名”字段的字段名,MOZART^WOLFGANG^AMADEUS为患者姓名。#  24, 1 PatientsName是这个字段的注释。

7、影像设备查询工作列表

1)按照 3和 4的描述,在您的电脑上部署好目录和工具,通过交换机或者HUB将您的电脑和相机进行连接,并将您电脑的IP设置为与相机在同一个网段,比如:

影像设备IP:192.168.1.10

则您电脑IP:192.168.1.11

具体如何设置可以上网查询,或者联系系统管理员。

2)咨询您的系统管理员或者设备维护厂商,在影像设备上添加Worklist节点,节点属性如下:

IP:192.168.1.11(根据您电脑的实际情况修改)

Port:104

AETitle:OFFIS

3)在您的电脑上启动 cmd.exe,依次键入命令

C:>cdC:/DICOM/Worklist

C:/DICOM/Worklist>wlmscpfs.exe -dfr -dfp  wlistdb 104(命令到此结束)

咨询系统管理员如何在影像设备上获取工作列表,如无意外,您的影像设备应获取到“姓名”为MOZART^WOLFGANG^AMADEUS的患者信息。如果还没有,仔细检查上述步骤。

8、总结

       1、命令解释

       wlmscpfs.exe-dfr -dfp  wlistdb 104

       -dfr表示接受字段不完整的DICOM文件作为查询内容;

       -dfp wlistdb 表明wlmscpfs.exe搜索的文件夹的路径,可以为绝对路径;

       104  为工作列表程序的端口号;

       wlistdb文件夹下的OFFIS表示AETITLE。

       2、应用为王,如果过程中有不懂的地方,可以先跳过,实验成功就是胜利,如有不清楚,欢迎讨论,共同提高。

       3、评论中有网友提到lockfile的问题

           (1)这个文件的路径应为: wlistdb\OFFIS\lockfile  检查一下是否有这个文件,如果没有可以用记事本新建文件,注意不要扩展名。

           (2)怎么建没有扩展名的文件,首先要打开我的电脑(计算机或者任一个文件夹,然后 工具--文件夹选项--查看--隐藏已知文件类型的扩展名--去掉前面的勾

           (3)这个文件存在的必要性:dcmtk中提供的查询患者的“数据库”为文件型数据库,是为了通用性,不受具体数据库的约束。真正投入实用的PACS系统,需要生产型数据库,比如mysql、MS Sql Server、Oracle等。lockfile字面翻译就是文件锁,到了数据库中就对应数据库锁了。

 

     下一节将说明“如何自定义患者信息”,敬请期待:

http://blog.csdn.net/pachleng/archive/2010/08/20/5827232.aspx

==打赏码如下。感谢打赏,欢迎切磋。打赏前会让您多看几遍文章,有更多地思考===============================

有意向下一步推出基于dcmtk实现一个具体mini PACS,将分享编程工具和代码,具体看网友反馈吧,敬请期待。


http://chatgpt.dhexx.cn/article/XuwR9rNy.shtml

相关文章

WorkManager

WorkManager对比AsyncTask, ThreadPool的优势:WorkManager里面的任务在应用退出之后还可以继续执行。AsyncTask, ThreadPool里面的任务在应用退出之后不会执行。WorkManager自动选用JobScheduler, 或是AlarmManager来实现后台任务。 使用WorkManager的一些任务示例…

【SimpleList】

list_item.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:orientation"vertical"android:l…

java dcm4che findscu实现workList通讯——客户端SCU

全网实现workList服务的,要么是基于C的DCMTK、要么是基于C#的fo-dicom。想用dcm4che实现 找了好几个月都没有一个例子。无奈只能通过DCMTK和fo-dicom 实现方式并查看dcm4che源码自己实现了。经过不懈的努力总算是实现了并实际跟设备测试成功&#xff01; 首先得先了解 DICOM wo…

GE LIGHTSPEED VCT型CT机怎样修改WORKLIST参数

一、 打开维修界面&#xff1a;点击“Service”按钮。 在弹出的service desktop界面中选Utilities----点击Utilities----点击 Shell。 在弹出的界面中直接输入命令&#xff1a;installhisris 回车。 在弹出的界面中&#xff0c;修改完worklist的网络参数后&#xff0c;点击Acce…

DICOM获取worklist患者列表抓包分析

笔者刚学习DICOM协议&#xff0c;笔者比较喜欢从最基础的二进制数据去理解整个协议 这里用到了功能强大的wireshark抓包工具 wireshark下载地址&#xff1a;Wireshark中文版下载-Wireshark(网络抓包工具)下载v3.4.7 官方最新版-西西软件下载 基础知识&#xff1a; DICOM简述…

DICOM worklist工作原理?

文章转自&#xff1a;https://zhidao.baidu.com/question/254262863.html 一、关于Worklist 在RIS与PACS的系统集成中。Wordlist的连接为其主要工作之一。Wordlist成像设备工作列表&#xff0c;它是DICOM协议中众多服务类别中的一个.它的功能是实现设备操作台与登记台之间的通…

DICOM医学图像处理:基于DCMTK工具包学习和分析worklist

背景&#xff1a; DICOM3.0协议中有介绍关于worklist的部分。简而言之&#xff0c;worklist可以看做是放射科设备从医院RIS系统中自动读取患者信息的一种“通信协议”&#xff0c;可以指存储在RIS系统中的患者数据库&#xff0c;主要包括患者的基本信息&#xff08;如年龄、性别…

【转】DICOM医学图像处理:基于DCMTK工具包学习和分析worklist

转自&#xff1a;https://blog.csdn.net/zssureqh/article/details/38775315 背景&#xff1a; DICOM3.0协议中有介绍关于worklist的部分。简而言之&#xff0c;worklist可以看做是放射科设备从医院RIS系统中自动读取患者信息的一种“通信协议”&#xff0c;可以指存储在RIS系…

数学建模之MATLAB编程

EverydayOneCat 🌈 🐱🐱🐱 🍣🍣🍣🍣🍣✖️N 🌈📖📜 🥢 🐱 🐱 「Sushi shop!」 知识点 1.下载 链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw 提取码:75mz 2.基本数学运算 2.1变量与数据操作 变量定义注意事项: 变量名区分字母…

数学建模-如何用matlab画出漂亮的图(一)

1 画图基本指令 hold on :保持打开的命令关闭图形保持功能hold off: title ( xx)命名 xlabel (xx’ ) x轴标注 ylabel (xx’ ) y轴标注 figure (x) 创建图窗 hidden on 将网格设为不透明 hidden off 将网格设为透明 legend (xx)加图例 grid on加网格线 subplot (2,2.4).显示第4…

数学建模-数学规划(Matlab)

目录 一、线性规划求解 二、非线性规划问题 三、整数规划&#xff08;包括0-1规划&#xff09; 四、最大最小化模型 五、多目标规划模型 注意&#xff1a;代码文件仅供参考&#xff0c;一定不要直接用于自己的数模论文中国赛对于论文的查重要求非常严格&#xff0c;代码雷同…

【数学建模】MATLAB

MATLAB 一、基本介绍二、矩阵运算三、编程基础四、常见函数以及其他五、二维图形绘制六、三维图形绘制七、运算符八、流程控制语句九、自定义函数十、画图进阶 一、基本介绍 MATLAB 是美国MathWorks公司出品的商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及…

【数学建模】数学建模学习1---线性规划(例题+matlab代码实现)

1 线性规划 在人们的生产实践中&#xff0c;经常会遇到如何利用现有资源来安排生产&#xff0c;以取得最大经济效益的问题。此类问题构成了运筹学的一个重要分支—数学规划&#xff0c;而线性规划(Linear Programming 简记 LP)则是数学规划的一个重要分支。自从 1947 年 G. B. …

数学建模之matlab入门篇

随着美赛的推进&#xff0c;数学建模用到matlab的越来越多&#xff0c;然而对matlab不熟悉的还很多&#xff0c;在此写下matlab基础篇&#xff0c;一是帮助没有了解过matlab的同学入门&#xff0c;二是帮助自己巩固知识。 时间紧迫&#xff0c;直接开始&#xff01;此篇文章包…

数学建模-MATLAB三维作图

导出图片用无压缩tif会更清晰 帮助文档&#xff1a;doc 函数名 matlab代码导出为PDF 新建实时脚本或右键文件转换为实时脚本实时编辑器-全部运行-内嵌显示保存为PDF

数学建模专栏 | 开篇:如何备战数学建模竞赛之 MATLAB 编程

作 者 简 介 卓金武&#xff0c;MathWorks中国高级工程师&#xff0c;教育业务经理&#xff0c;在数据分析、数据挖掘、机器学习、数学建模、量化投资和优化等科学计算方面有多年工作经验&#xff0c;现主要负责MATLAB校园版业务。曾2次获全国大学生数学建模竞赛一等奖&#x…

MATLAB数学建模:常用建模函数

常用建模函数 本文将对常用于 MATLAB 建模的函数&#xff0c;如曲线拟合函数、参数估计函数、插值函数等&#xff0c;作详细介绍。 文章目录 常用建模函数1. 曲线拟合函数1.1 多项式拟合1.2 加权最小方差拟合1.3 非线性曲线拟合 2. 参数估计函数2.1 点估计2.1.1 最大似然法2.1…

【数学建模】数学建模学习2---整数规划(例题+matlab代码实现)

文章目录 1 概论1.1 定义1.2 整数规划的分类1.3 整数规划特点1.4 求解方法分类 2 分枝定界法3 0 −1型整数规划3.1 引入0 −1变量的实际问题3.1.1 投资场所的选定——相互排斥的计划3.1.2 相互排斥的约束条件3.1.3 关于固定费用的问题&#xff08;Fixed Cost Problem&#xff0…

Matlab数学建模(五):优化模型之标准模型

一、学习目标 &#xff08;1&#xff09;了解最优化模型。 &#xff08;2&#xff09;掌握线性规划的优化求解。 &#xff08;3&#xff09;掌握整数规划的优化求解。 &#xff08;4&#xff09;了解Matlab的图形化应用。 二、实例演练 1、谈谈你对最优化模型的了解。 最优…

Matlab 数学建模算法大全

Matlab 数学建模算法大全 第一章 线性规划…1 第二章 整数规划…16 第三章 非线性规划…32 第四章 动态规划…56 第五章 图与网络…68 第六章 排队论…118 第七章 对策论…154 第八章 层次分析法…167 第九章 插值与拟合…175 第十章 数据的统计描述和分析…201 第十一章 方差分…