在本论坛发了不少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那种连英文文档都找不到,大坑 |