我在Mirth中收到了大量相关的HL7消息。它们包含一个ID,它对所有相关的消息都是相同的,并且总是在一分钟内到达。可以同时接收多个批次。很难判断批处理何时结束,但当一分钟内没有更多消息时,可以放心地假定批处理已经完成。
我如何在Mirth中实现聚合器模式,该模式将继续读取和完成相关消息,并在未在定义的时间间隔内接收到任何具有相同ID的新消息后发送已完成的消息?
发布于 2016-02-14 03:19:55
实现这一点的方法是使用消息中的ID (标识序列)将所有消息保存在文件夹中作为文件名。每个新消息都会更新该文件。几个序列位于同一个文件夹中。
下一个通道是使用一个简单的文件读取器,它只获取一分钟或更久的文件。
发布于 2016-02-04 17:12:29
您可以将所有传入的邮件放到文件夹中,并将消息ID存储在全局地图中。一旦新消息以与映射中存储的消息ID不同的方式到达(意味着下一个序列已经启动),则通过发送它需要查找的消息ID或以其他方式触发另一个通道。之后,将Global中的消息ID替换为新序列的消息ID。
如果这听起来太复杂,您可能也会这样做,但是第二个通道会不断地扫描文件夹( folder ),只抓取具有相同消息ID且比当前时间早于一分钟的文件(在我看来,这是一个过于模糊的限定符)。
https://stackoverflow.com/questions/35194511
复制相似问题