По вашему вопросу, поле HL7, содержащее разрывы строк, равно OBX(5,1)
, в котором должно храниться значение наблюдения.
Значение наблюдения может содержать разрывы строк как часть данных. Разрыв строки (<CR>
или ASCII 13
) является разделителем сегментов по умолчанию. Если это получено как часть данных, будут проблемы при синтаксическом анализе сообщения. Это основная причина проблемы, о которой вы упоминали в вопросе.
Как упомянуто @AlonEitan в комментарии:
Разделитель сегментов не подлежит обсуждению. Это всегда возврат каретки .
В идеале, эти разрывы строк следует заменять их escape-последовательностью при создании сообщения HL7. Более подробная информация об этом уже дана в одном из моих предыдущих ответов здесь .
Итак, ваше входящее сообщение
OBX|68|FT|PT6663&IMP^PET/CT Imaging Whole Body||
||||||F|||202254836969552|||
должно быть на самом деле
OBX|68|FT|PT6663&IMP^PET/CT Imaging Whole Body||\X0D\\X0D\||||||F|||202254836969552|||
По поводу вашего фактического вопроса о том, как это сделать с помощью Mirth / Javascript, в вашем конкретном случае использования не должно быть необходимости. Это преобразование должно быть сделано до отправки сообщения в Mirth. Поэтому тот, кто отправляет вам это сообщение, должен создать его следующим образом.
Во время отображения значения наблюдения в пользовательском интерфейсе вам снова нужно выполнить обратный процесс.
Edit:
Если разрыв строки отличается от <CR>
(ASCII 13), то соответствующий HEX следует заменить на \X0D\
. Подробности указаны в моем связанном ответе; Я не повторяю это здесь.