Последовательная или одновременная обработка сообщений hl7

Мне было интересно, какие модели параллелизма делают люди, чтобы обрабатывать входящие сообщения hl7 (adt,...) и сохранять их в нормализованной модели данных (реляционной или нет-sql).

Я борюсь с мыслью о последовательной обработке сообщений (сопоставление с базой данных nosql) и многопоточности при преобразовании / обработке их из (java, .net, что угодно):

пример: если я обрабатываю сообщения, полученные и преобразованные с помощью листа клевера (преобразованного для совместимости с ожидаемой полезной нагрузкой внутреннего web/rest api), и задаю внутренний сервер api web / rest (многопоточное Java-приложение), то я не могу гарантия, что я анализирую сообщения последовательно из-за потока.

если я буду обрабатывать сообщения последовательно, то отображение будет медленным...

2 ответа

Возможность асинхронной обработки сообщений зависит от характеристик сообщений и логики обработки. Рассмотрим эту последовательность:

  1. Вы получаете регистрацию для нового пациента
  2. Вы получаете эпизод в списке против пациента
  3. вы получите сообщение о слиянии нового пациента с другим пациентом

Если вы обработаете последнее сообщение перед вторым последним, что произойдет? Будете ли вы рассматривать это как ошибку, потому что у вас есть новый эпизод на объединенном пациенте?

Вот почему нет простого ответа на вопрос. Это зависит

Если отправляющее приложение использует MLLP, у вас может не быть другого выбора, кроме как выполнить последовательную обработку. Большинство клиентов MLLP ждут подтверждения приема перед отправкой следующего сообщения.

Для многих случаев использования в здравоохранении последовательность имеет значение. Например, если отправляющее приложение генерирует сообщения ORU^R01, оно может сначала отправить предварительные результаты, а затем окончательные результаты. Если вы представляете эти данные пользователям, вы не хотите, чтобы предварительные результаты перезаписывали окончательные результаты только потому, что ваше приложение обрабатывало сообщения не по порядку.

Нормализованная модель данных и уровень персистентности NoSQL, как правило, противоречат друг другу.

Другие вопросы по тегам