dicom - 如何使用 DCMTK 二进制文件将模态工作列表发送到模态而不接收来自模态的查询?

标签 dicom dcmtk

我正在使用 DCMTKstorescp.exe 从 CR 模式接收图像,然后处理/将它们保存在我的数据库中。

是否可以在患者前往 CR 模式之前使用其他 DCMTK 二进制文件手动将 PatientNamePatientId 发送到 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/

相关文章:

c# - 如何在 dicom 中绘制侦察线/引用线

dicom - wado-rs 与 Dicom 服务类用户/提供商的目的是什么

java - 如何在 java 中加载 DICOM 图像?

c++ - 使用 memcpy 时出现内存错误?

standards - 存储 promise 服务 : why I really need a what is the real purpose?

windows - DCMTK movescu 错误 : response suceed but no file received

c++ - Mac 中带有 qt 的 DCMTK 库

dicom - DCMTK movescu 不适用于文件检索

image-processing - dcm2pnm、dcmj2pnm和dcml2pnm之间的区别