N-EVENT-REPORT
约 632 字大约 2 分钟
PACSDICOMDIMSEN-EVENT-REPORT
2026-03-20
N-EVENT-REPORT 也是 Normalized DIMSE 服务的一部分,通常用于向另一方报告某个规范化对象上的事件结果。在 PACS 联调里,它最典型的用途是配合 12.N-ACTION 返回 Storage Commitment 的执行结果。
1. 它的角色是什么
可以把 N-EVENT-REPORT 理解为“动作执行后的通知回传”。常见流程是:
- 一方先通过 12.N-ACTION 发起动作请求。
- 另一方完成处理后,再通过 N-EVENT-REPORT 回报结果。
所以它本质上更像结果通知,而不是主动查询。
2. 在 Storage Commitment 里的典型流程
一个常见流程如下:
- 本地系统先上传对象。
- 本地系统发起 N-ACTION,请求 PACS 做存储承诺。
- PACS 完成校验后,向约定的接收端发送 N-EVENT-REPORT。
- 报文中返回成功或失败对象列表。
这一步做通以后,业务上才能较可靠地确认对象已经被对端正式接收并落盘。
3. 一个事件通知通常包含什么
N-EVENT-REPORT 通常需要明确:
- Affected SOP Class UID。
- Affected SOP Instance UID。
- Event Type ID。
- 事件结果 Dataset。
一个示意写法如下:
var request = new DicomNEventReportRequest(
affectedSopClassUid,
affectedSopInstanceUid,
eventTypeId);
request.Dataset = eventDataset;如果你是在本地实现接收端,更重要的是正确处理收到的事件报告,而不是主动构造它。
4. 接收端要重点处理什么
- 校验请求来源是否可信。
- 解析成功对象列表和失败对象列表。
- 把承诺结果回写到本地业务状态。
- 对失败对象保留可追踪日志。
如果只收到了事件但没有把结果和本地上传批次关联起来,业务上仍然很难用。
5. 使用建议
- 如果你的系统需要做 Storage Commitment,建议把 N-ACTION 和 N-EVENT-REPORT 作为一组完整流程来实现。
- 尽早设计好“事务号或批次号”与返回结果的关联方式。
- 如果对端只提供协议摘要,没有给事件 Dataset 示例,联调阶段要优先补齐这部分资料。
6. 实战延伸
如果你正在实现完整承诺链路,继续看 14.Storage Commitment 流程总览 和 16.接收承诺结果与状态回写.md。