使用 Mirth Connect 将 HL7 转换为 SQLite
HL7 to SQLite with Mirth Connect
我正在尝试建立一个通道来读取 HL7 ADT 文本文件、提取 MRN 并将输出写入 SQLite table(数据库编写器)。
我的 SQLite table 包含我的数据,但我所有的 PatientID 都显示为一个非常宽的列中的串联字符串。与每个 row/record.
的 PatientID 相反
我注意到我的 HL7 文件(来自 Meditech EMR)中有一些奇怪的非法(?)字符。 QuickViewHL7 它们出现在 MSH-22 和 MSH-30 中。
在VIM编辑器中-
我的问题是,这些应该是分隔符吗?如果有,它们是什么?马车 Returns?
我已经在 Mirth Connect forums 上发布了这个问题,但除了风滚草之外几乎看不到任何东西。我希望这里的人可能以前看过这个并告诉我发生了什么事。
更新:十六进制转储表明它是 0x7f (0111 1111)。这看起来像一个退格字符。我应该简单地剥离它还是用其他东西代替它?
这个非法字符应该是一个换行符 return 来分隔下一个 HL7 段的开始。
使用VIM,突出显示非法字符并按'ga'。这将告诉您字符的十六进制值。在我的例子中是 0xfa(这似乎是一个后退 space!?)。
再次在 Vim 中,对 \r
进行全局替换
:%s/\%x7f/\r/g
然后保存文件。
现在一切都很好地解析出来了。
我正在尝试建立一个通道来读取 HL7 ADT 文本文件、提取 MRN 并将输出写入 SQLite table(数据库编写器)。
我的 SQLite table 包含我的数据,但我所有的 PatientID 都显示为一个非常宽的列中的串联字符串。与每个 row/record.
的 PatientID 相反我注意到我的 HL7 文件(来自 Meditech EMR)中有一些奇怪的非法(?)字符。 QuickViewHL7 它们出现在 MSH-22 和 MSH-30 中。
在VIM编辑器中-
我的问题是,这些应该是分隔符吗?如果有,它们是什么?马车 Returns?
我已经在 Mirth Connect forums 上发布了这个问题,但除了风滚草之外几乎看不到任何东西。我希望这里的人可能以前看过这个并告诉我发生了什么事。
更新:十六进制转储表明它是 0x7f (0111 1111)。这看起来像一个退格字符。我应该简单地剥离它还是用其他东西代替它?
这个非法字符应该是一个换行符 return 来分隔下一个 HL7 段的开始。
使用VIM,突出显示非法字符并按'ga'。这将告诉您字符的十六进制值。在我的例子中是 0xfa(这似乎是一个后退 space!?)。
再次在 Vim 中,对 \r
进行全局替换:%s/\%x7f/\r/g
然后保存文件。
现在一切都很好地解析出来了。