我正在使用 DCMTKstorescp.exe 从 CR 模式接收图像,然后处理/将它们保存在我的数据库中。
是否可以在患者前往 CR 模式之前使用其他 DCMTK 二进制文件手动将 PatientName
和 PatientId
发送到 CR 模式?
我在某处读到,模态进行查询以获取模态工作列表。我想扭转这种趋势。我想随时将模态工作列表直接发送到模态,而不接收来自模态的查询。
这可能吗?如果是;我怎样才能用 DCMTK 做到这一点?
请注意,这不是场外工具请求。我只想知道实现所需 DICOM 服务/命令的 DCMTK 二进制文件。
最佳答案
您正在寻找实现 C-FIND
的模态工作列表或 MWL 服务命令。
SOP类:1.2.840.10008.5.1.4.31
[模态工作列表信息模型 - FIND]。
但是它并没有按照你期望的方式工作;它不应该 - 永远。
MWL SCU(在您的情况下 - CR)使用它适合的(可选)过滤器启动查询。像往常一样,关联发生并且 MWL SCP 收到 MWL 请求。然后,它从数据库中获取与过滤器匹配的数据(如果有)。然后,它为从数据库获取的每一行发送一个 MWL 响应,每个响应的状态为 PENDING
。当所有行都传输完毕后,最终SUCCESS
响应已发送。如果没有找到与过滤器匹配的行,则仅发送最终响应。如果出现问题,则会发送正确的故障响应。然后,SCU 发送释放请求,并在收到释放响应后关闭关联。
现在,为什么您预期的工作流程无法实现?
一般 MWL SCP是由RIS系统实现的。这些系统具有在患者入院期间/之前登记患者人口统计数据的工具/功能。它们还具有安排由模态执行的订单的功能。给定的 DICOM 网络(医院)可能有多种模式。虽然 RIS 有办法决定哪个订单应该进入哪个模态(如果配置和使用正确,则基于 AE 标题),但它们无法推送它,因为它们充当 SCP 即服务器。与任何网络协议(protocol)中的任何其他服务器一样,它们必须等待来自客户端(即 SCU)的请求。
此外,虽然 SCP可能知道应该将哪个命令发送到哪个模态,但由于多种原因,模态可能不期望该命令。所以,MWL 的一般流程就是我上面解释的方式。您无法使用任何 DICOM 服务/命令来实现反向工作流程。
为了清楚起见:
这一切与您使用storescp.exe接收并存储在数据库中的数据无关。我的意思是,您通常不会将该数据作为模态工作列表发送到模态。
MWL 首先发生。当模态获得 MWL 工作列表项时,它会进行研究并使用 MWL 工作列表项中收到的人口统计数据获取图像。这样,就可以避免错误,避免冗余输入,并且流程可以实现自动化。完成后,模态将 ( C-STORE
) 实例(在您的情况下为 CR 图像)推送到 C-STORE
SCP 在你的例子中是storescp.exe。
关于dicom - 如何使用 DCMTK 二进制文件将模态工作列表发送到模态而不接收来自模态的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60763252/