2015-10-16 119 views
2

我在想什么样的并发模型做人来处理入站hl7消息(adt,...)并将它们保存在规范化的数据模型(关系或非sql)中。序列或并发hl7消息处理

我正在与顺序的消息处理的思想(映射到nosql的分贝)和多线程转化时挣扎/从处理它们(无论的java,.NET,):

例如:如果我处理由三叶草叶子接收和转换的消息(转换为符合内部web/rest api期望的有效载荷),并设置为内部网络/休息api服务器(多线程Java Web应用程序),然后我不能保证我解析由于线程顺序的消息。

如果我处理邮件的顺序,然后映射将是缓慢的

...

+1

[IHE](http://www.ihe.net/Technical_Frameworks/)描述了使用UML序列图和主要同步消息的消息处理事务 – xmojmr

回答

3

是否可以处理异步地取决于消息的特性的消息,你的处理逻辑。考虑这个序列:

  1. 你得到一个注册为新患者
  2. 你对病人
  3. 你得到一个合并消息有不同的患者
合并新病人中列出的插曲

如果您在最后一条消息之前处理最后一条消息,会发生什么情况?你会把它当作一个错误吗?因为你在合并的病人身上有一个新的情节?

这就是为什么这个问题没有简单的答案。它取决于

1

如果发送应用程序使用MLLP,那么您可能没有任何选择,只能进行顺序处理。大多数MLLP客户端会在发送下一条消息之前等待接受确认。

对于许多医疗保健用例,顺序确实很重要。例如,如果发送应用程序正在生成ORU^R01消息,则它可以先发送初步结果,然后再发送最终结果。如果您将这些数据呈现给用户,您不希望仅因为您的应用程序碰巧无序处理消息而让初步结果覆盖最终结果。

归一化数据模型和NoSQL持久层通常是矛盾的。

+0

感谢您的反馈。 – Sbham