关于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那种连英文文档都找不到,大坑 

Leave a Reply