3

我想知道人们使用哪种并发模型来处理入站 hl7 消息(adt,...)并将它们保存在规范化数据模型(关系或无 sql)中。

在从(java,.net,等等)转换/处理它们时,我正在努力考虑顺序消息处理(映射到 nosql db)和多线程:

示例:如果我处理由 clover Leaf 接收和转换的消息(转换为符合内部 web/rest api 预期有效负载),并设置为内部 web/rest api 服务器(多线程 java web 应用程序),那么我不能保证由于线程,我正在按顺序解析消息。

如果我按顺序处理消息,那么映射会很慢......

4

2 回答 2

3

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

  1. 你得到一个新病人的登记
  2. 你会得到一个针对患者的情节
  3. 您会收到一条合并消息,将新患者与其他患者合并

如果您在倒数第二条消息之前处理最后一条消息,会发生什么?您会因为合并患者有新的情节而将其视为错误吗?

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

于 2015-10-16T17:29:39.217 回答
1

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

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

规范化数据模型和 NoSQL 持久层在术语上通常是矛盾的。

于 2015-10-16T22:59:21.630 回答