欢乐中的聚合模式

时间:2016-02-04 07:00:40

标签: mirth

我在Mirth中收到大量相关的HL7消息。它们包含一个ID,对于所有相关消息,它始终是相同的,并且它们总是在一分钟之内。可以同时接收多个批次。很难说批次何时结束,但是当一分钟没有更多消息时,可以安全地假设批次已完成。

如何在Mirth中实现聚合器模式,该模式将继续读取和完成相关消息,并在未定义的时间间隔内未收到任何具有相同ID的新消息后发送已完成的消息?

2 个答案:

答案 0 :(得分:1)

您可以将所有传入的消息丢弃到文件夹,并将消息ID存储在全局映射中。一旦新消息开始到达且消息ID不同于存储在映射中的消息ID(意味着下一个序列已启动),则通过发送它需要查找的消息ID或以其他方式触发另一个通道。之后,将全局映射中的消息ID替换为新序列的消息ID。

如果这听起来太复杂,你也可以这样做,但是第二个频道将不断扫描文件夹(文件阅读器),只抓取具有相同消息ID的文件,并且从当前时间(在我的思绪太模糊了。)

答案 1 :(得分:0)

我通过使用消息中的ID(标识序列)保存文件夹中的所有消息作为文件名来实现此目的。每个新消息都会更新文件。几个序列在同一个文件夹中共存。

下一个频道使用的是一个简单的文件阅读器,它只提取一分钟或更长时间的文件。