我刚刚负责开发Dicom系统,该系统已经开发了几年(2009年开发)。并且用户现在想要使用之前从未在系统中使用的属性(Dicom-tag):“(0010,0021)IssuerOfPatientID”。
我们的系统只负责将患者数据从HIS / RIS传输到模态。
该模态使用此特定属性向SCP发送C-Find RQ。 SCP使用C-Find RSP响应C-find RQ,它包括来自RQ的所有属性,除了(0010,0021)。其他属性获取值,或者如果未找到任何信息,则它们按预期显示为“”。 (0010,0021)完全从SCP回应中删除。
以上内容已由Wireshark-logs确认。使用零长度属性请求属性,该属性应匹配任何内容。
由于无论如何我无法访问这些服务器,我无法用自己的眼睛确认任何事情。但是他们向我保证,(0010,0021)的值从他们的HIS / RIS发送到Worklist Collector并保存在Worklist数据库中。截至此,我也无法查看系统日志。
所以我开始阅读有关不受支持的属性的内容。看起来该属性是可选的和/或系统不支持某种方式。制造商告诉我们的普通客户,他们可以毫无问题地使用这个属性,但是......它没有用。
作为开发人员,我可以做些什么来支持这个属性?或者这是由设备一致性声明控制的吗?
我相信你已经注意到了,我是Dicom和我们系统的新手。
提前致谢!
[编辑] 据我所知,该属性是可选的。它不应该是必需的,但我们仍然希望它在RSP中以值或“”出现。我怎么能这样做?
[编辑关注] 此问题已得到解决。实际问题是Worklist Collector没有添加属性,因为它在“Taglist”(Tag类)中缺失。将属性添加到标记列表,并在Worklist收集器中添加对标记的支持时,它现在可以正常工作。
这可以通过数据库中的一个查询更容易解决,但正如我之前所说,我无法访问数据库,而且我的客户很难让IT团队查看。< / p>
答案 0 :(得分:2)
如果您无法访问SCP代码进行必要的更改,您可以创建一个代理SCP,将查询请求从Modality转发到工作列表SCP,并插入患者ID的发卡者(0010, 0021)在将其发送到模态之前,对匹配的查询响应(其中状态为挂起)没有值的标记。
然而,奇怪的是,Modality要求您返回一个可选键。 DICOM标准对此非常清楚。请参阅DICOM标准的PS3.4第C.2.2.1.3节“(SCP)不支持可选密钥的存在,那么该属性不应在C-FIND响应中返回”