存储承诺服务(推送模型):我如何将结果返回到我的 SCU?

Storage Commitment Service (push model): how i get the result back to my SCU?

我计划实施 存储承诺服务 以验证之前发送到存储的文件是否已安全存储。

我的架构非常简单明了,我的 SCU 将一些二次捕获图像发送到存储器,我想确保它们在删除之前已安全存储。

我打算采用推送模型,我想知道steps/features我需要实施什么才能完成服务

我理解的是

可能会出现三种不同的事件顺序。我可以在这里描述它们,但这篇文章真的很棒:Roni's DICOM blog

我没有什么要补充的了。

看看下面从 here 复制的图片:

现在,关于您的问题,以下是解释假设整个通信将使用相同的关联。关于多个关联的通信,请参考以上来自 Roni 的文章。

But when?

马上。同样 connection/association。收到 NAction 响应后,您应该等待应用程序中配置的超时。在超时到期之前,您应该获得 NEventReport。

How the storage give me back the N-EVENT-REPORT along with the results?

当你收​​到来自 SCP 的 NAction 响应时,这意味着 SCP 说 "Ok; I understood what you want. Now wait while I fetch your data..."。所以,你等等。当 SCP 准备好所有必要的数据(检查列表)时,它只是通过 NEventReport 将其发送回相同的关联。你解析报告并做你的事情并向 SCP 发送回复说 "Fine; I am done with you." 并关闭关联。

Does my SCP AE implements some SCP features?

否(在大多数情况下);您不需要在这两种情况下(单个 association/multiple 关联)实施任何 SCP 功能。您应该在与上述相同的关联上获得 NEventReport。 DICOM 在 TCPIP 上工作。 Client/Server TCP 中的概念仅限于谁建立连接和谁监听连接。建立连接后,任何人都可以 read/write 套接字上的数据。

在极少数情况下,SCP 通过自己发起新的关联来发送 NEventReport。在这种情况下,SCU 需要实现 SCP 功能。据我所知,这个模型没有被使用。很难同时为 SCP 和 SCU 实施此模型。它还需要每个人都倾向于避免的多种配置。所以,这个可以忽略不计。 我之所以称之为罕见,是因为我从未(至少到目前为止)遇到过这样的实现。但是,是的;这是有正当理由的有效案例。

Or I need to issue a N-EVENT request to get a N-EVENT-REPORT?

没有;如上所述。参考 this.

J.3.3 Notifications
The DICOM AEs that claim conformance to this SOP Class as an SCP shall invoke the N-EVENT-REPORT request. The DICOM AEs that claim conformance to this SOP Class as an SCU shall be capable of receiving the N-EVENT-REPORT request.

也就是说,SCU 应该能够处理 NEventReport。它不会发出它。