HL7 в SQLite с помощью Mirth Connect

Я пытаюсь создать канал для чтения текстового файла HL7 ADT, извлечения MRN и записи вывода в таблицу SQLite (программа записи базы данных).

Моя таблица SQLite содержит мои данные, но все мои идентификаторы PatientID отображаются в виде объединенной строки в одном очень широком столбце. В отличие от PatientID для каждой строки/записи.

Я заметил некоторые странные недопустимые (?) символы в моем файле HL7 (которые взяты из Meditech EMR). В QuickViewHL7 они появляются в MSH-22 и MSH-30.

введите здесь описание изображения

В редакторе ВИМ -

введите здесь описание изображения

Мой вопрос в том, должны ли они быть разделителями? Если так, то кто они? Возврат вагона?

Я разместил этот вопрос на форумах Mirth Connect, но видел мало, кроме перекати-поля. Я надеюсь, что кто-то здесь мог видеть это раньше и рассказать мне, что происходит.

ОБНОВЛЕНИЕ: шестнадцатеричный дамп предполагает, что это 0x7f (0111 1111). Это похоже на символ возврата. Должен ли я просто удалить его или заменить чем-то?


person Colin    schedule 02.11.2015    source источник
comment
hl7 v2 использует <cr> в качестве разделителя сегментов   -  person xmojmr    schedule 03.11.2015
comment
Какая версия HL7v2? Даже в последней v2.8.1 нет полей после МШ-25. Ваш MSH-22 на самом деле выглядит как сегмент EVN, а MSH-30 — это начало сегмента PID.   -  person Shamil    schedule 05.11.2015


Ответы (1)


Этот недопустимый символ должен быть символом перевода строки, чтобы разграничить начало следующего сегмента HL7.

Используя VIM, выделите недопустимый символ и нажмите «ga». Это скажет вам шестнадцатеричное значение символа. В моем случае 0xfa (что похоже на пробел!?).

Снова в Vim выполните глобальную замену \r

:%s/\%x7f/\r/g

Затем сохраните файл.

Теперь все прекрасно разбирается.

person Colin    schedule 07.11.2015