返回列表 发帖

关于worklist传递部位的一点收获分享以及疑问

在本论坛发了不少worklist的帖子也回复了一些,从很头疼,到现在基本掌握,有了不少收获,感激论坛的帮助,特意共享一下。

传递患者基本信息,根据这几年的连接设备,可以做到遇到的所有设备,只要支持worklist,都能顺利地传递过去,只是调试时间的长短,一般GE三巨头的设备,配好后,利用以前收集的配置,直接就OK了,少数不太常见的设备可能需要开发人员调试一下代码,看下日志,主要是问下设备工程师对某些特殊元素的要求

现在随着厂家和医院增多,一些医院开始有了传递部位的需求,

这个需求,分成两类,一类是医生只想要个检查部位描述,在无纸化的情况下,不想看着检查单或者条码来输入部位。

这一类很容易,就和传递患者信息一样,只要找个支持中文的文本框传递过去,比如说锐柯DR设备,用0x0010,0x4000 patient comments来传递一个检查部位描述

另外一类就是真正的部位传递,也就是说从RIS系统中直接传递部位代码过去,设备上已经做好了代码映射,医生直接从列表中选择病人后,直接进入了检查界面,不需要手动再次选择部位,

这个过程涉及到较深的关联关系,比如说,每家医院的医嘱都是不太一样的,检查部位也是不同的,有的医院会几个部位合成一个部位来检查之类的,而更麻烦的是,作为大厂的设备,我见过的,不同设备上的检查部位也是不同的,比如富士的CR就是不分左手右手的,不同厂商设备的检查代码也截然不同,有的是简单的数字,有的则是可以自定义,有的则是英文字母组合,没找到一个标准去约束这些设备使用统一的检查部位描述,
这就给部位传递带来麻烦,和之前的患者信息传递不 同,几乎每个部位传递,都要单独做前期许多工作,主要是部位映射上面。
做好部位映射后,

就是利用设备上不同的dicom元素来进行传递,
就我做过的设备,
现在做到的是,单个部位,只要做好映射,然后利用字段0x0040,0x0007进行传递,就是shceduleProcedureStepDescription 进行传递,传递一个数字或者其他代码,就能让设备上直接显示出病人要做的部位
这是一个菲利普的拍片设备做的,但多部位,没有找到方法。

后来做了一个富士的Cr 设备,多部位传递采取了这种方式,
利用0x0032,0x1060,这个dicom元素序列来嵌套,
嵌套方法如下,
采用了
构造多个Item(0xfffe,0xe000),将这些Item插入到0x0032,0x1060这个序列中,
在Item中插入0x0008,0x0100 value
这样进行嵌套处理,

然后将整个序列传回去,这个富士设备就认这个多检查部位代码,同时能映射成设备上的检查部位,不需要医生手选。

还有类似的ScheduledProtocolCodeSequence 0040,0008利用这个序列,也可以嵌套处理。

但这种方案并非通行,
我在做一个锐柯DR设备的时候,他提供了三种映射方式,就是我上面描述的传递三种dicom元素,但他的设备上多部位是
一个资料文件夹下,可以放多个检查部位视图,我一次传递的资料文件夹再多,他也只认第一个,没有联系到开发工程师,无法确定他们
是不是还有更好的映射方式,反正从界面上看,医生自己手动选择多部位,也是一个资料文件夹下添加多个检查部位视图,
最终无疾而终,只能传递一个描述了事。使用部位组合成一个描述是不可能的,医院部位众多,组合太麻烦了,也不可能手动添加完

其实说白了这种问题的困难 ,只是一个接口实现的问题,就在于往往pacs开发工程师能在现场处理,而设备方的工程师只是安装设备,真正实现dicom协议的开发工程师
沟通不上,一句话的事情,往往要折腾PACS厂商和医院几周的时间。而dicom虽然有标准,但对这个部位传递强制性不高,
各个厂家实现都不统一,在界面上的映射也不一致。

philips的多部位解决办法
进入系统账户,这个向设备工程师问
Service

然后是system - setting
有个叫EVA的工具,启动后,
里面有调试部位映射代码的地方,
可以选择映射的方法,三种0040,0008,0040,0007,0032,1064
传递不同的代码进入,改成传递代码0040,0008,然后利用之前发帖的传递多部位方法,(可以利用 dcmtk源码实现),这个是关于多部位传递的,0040,0007,只能传递单部位,之前曾经纠结了一年,还是自己摸索到的,话说,找个真正的设备软件开发工程师问,联系的都是硬件维护工程师,半通不懂,太难了,这个还是啃了英文帮助文档找到的,这还是好的,GE那种连英文文档都找不到,大坑
分享到:
本文来自: HC3i中国数字医疗论坛(http://bbs.hc3i.cn/) 详细:http://bbs.hc3i.cn/thread-139171-1-1.html
0.jpg
1

评分人数

    • 归晚: 00金币 + 10 枚 声望 + 1 点
收藏 3

学习了。请教楼主Worklist配置完成后无法显示已登记病人列表这个问题要正常情况下怎么解决?非常感谢

TOP

先赞一下楼主感恩分享的精神,再请求管理员将本贴子移到论坛的精华区。

TOP

回复 2# andi861


  这个问题,后期我会总结一些各个厂家不同的dicom元素要求来的,一般来说,只要严格读懂dicom标准中关于各个元素的要求,就能做到大厂设备能够正常传递,比如说,GE的年龄要严格4字节,或者只传生日,不要传年龄过去,再比如,有的要求传递studyinstanceUID,要求有一定长度,不能简单的是流水号,我是在一个GE设备上测试出来的,要求一个比较长的,规范的UID,还有其他类似种种,比如accessNUm有的要求不能为空或者为0,或者比如admissID等,这个总之大部分都在标准中藏着,告诉你一个方法,通过DVTk来测试,看看能传递成功,然后对比自己的日志中,是否传递的不一样,或者jDicom查询一下,自己的返回值等

TOP

谢谢分享、、

TOP

顶一下 部位还是得有懂点的设备工程师配合才好搞

TOP

hto谢谢楼主共享。继续支持!

TOP

通过DVTk来测试,看看能传递成功,然后对比自己的日志中,是否传递的不一样,或者jDicom查询一下,自己的返回值等
本文来自: HC3i中国数字医疗论坛(http://bbs.hc3i.cn/) 详细:http://bbs.hc3i.cn/thread-138525-1-1.html


非常感谢,楼主!!!

TOP

谢谢,类似困惑也遇到过。

TOP

是不是说
DICOM设备传到PACS服务器上。
然后通过设备传过来的DICOM信息上的tag值,
然后给worklist相同的值,就能够给设备传值了?

TOP

回复 10# 夜神月


    你的问题还在worklist流程上,一般是说 设备方向PACS服务器请求,会发送一个dicom数据集,里面包含了要查询的各种dicom元素,以及某些条件,一般是modality和日期
pacs服务器中的worklistSCP服务会根据这个查询数据集,来从ris系统中搜寻相应条件,进行赋值,构造一个返回数据集,然后将这个数据集返回设备,设备只要认定这个 数据集符合dicom标准,就能识别,并且在相应的展示界面上展示,注意不同设备的展示界面稍微有些区别,刷新列表的方式也有些区别,但大体类似

TOP

谢谢楼主的分享,受用了...
一丹体检软件--招商:400-031-2053
官网:www.yidansoft.com

TOP

顶一下  学习学习。。

TOP

回复  夜神月


    你的问题还在worklist流程上,一般是说 设备方向PACS服务器请求,会发送一个dicom数据 ...
xiaoyilong19 发表于 2015-2-6 10:32
那部位如何传递呢?每家设备的都不一样么?
我在实施过程中好多医院都有提过这种要求,但是因为不会弄,只能让医生自己点了 。

TOP

回复 14# 夜神月


    你按照我在帖子中的回复,就可以弄了,先找一个简单的设备,比如飞利浦,他那个的操作流程,和我说的一样,

你先试试0040,0007,这个字段,只要传递一个数字,那边就显示相关部位了,在exam那个字段列表中,就是检查列表中显示,
这样就显示了一个单部位,将你们ris的业务流程整清楚,如何映射部位代码,

然后再弄多部位的,多部位的,就是0040,0008,这个可以嵌入,要了解清楚dicom 中序列的概念,推荐用下jdicom下载一样,查看清楚里面的嵌套方式,

来嵌套部位

这个我都是实证过的,

其他设备,也有富士的弄过,GE和西门子的尚没有实战过

TOP

路过学习

TOP

好贴,收藏

TOP

谢谢楼主的分享

TOP

呵呵,worklist里面坑太多,特别是一些老设备,调试是少不了的。一般都是由于返回的RSP,少了某项,或者值不合法,最好先看看对方的conformance statement,如果有的话,这样能少走不少弯路。否则,你就将所有交互全打出来,一步步调试吧,反正一般都能搞定,就比较费事。
很多小医院是不用procedure code的,他们说,自己手工选更方便,我也是醉了。
更多DICOM相关问题请关注微信公众号:DICOMQA

TOP

辛苦,能整理出这种文档,了不起。

TOP

返回列表