0

HL7 ADT テキスト ファイルを読み取り、MRN を抽出し、出力を SQLite テーブル (データベース ライター) に書き込むためのチャネルを構築しようとしています。

私の SQLite テーブルにはデータが含まれていますが、すべての患者 ID が 1 つの非常に幅の広い列に連結された文字列として表示されています。行/レコードごとの患者 ID とは対照的です。

HL7 ファイル (Meditech EMR に由来する) に不正な (?) 文字が含まれていることに気付きました。QuickViewHL7では、MSH-22 と MSH-30 に表示されます。

ここに画像の説明を入力

VIM エディタで -

ここに画像の説明を入力

私の質問は、これらは区切り文字であるはずですか? もしそうなら、それらは何ですか? キャリッジリターン?

この質問をMirth Connect フォーラムに投稿しましたが、タンブルウィード以外はほとんど見られませんでした。ここの誰かがこれを以前に見たことがあり、何が起こっているのか教えてくれることを願っています.

更新: 16 進ダンプは、それが 0x7f (0111 1111) であることを示唆しています。これはバックスペース文字のように見えます。単にそれを取り除くか、何かで置き換える必要がありますか?

4

1 に答える 1

1

この不正な文字は、次の HL7 セグメントの開始を区切るための改行キャリッジ リターンでなければなりません。

VIM を使用して、不正な文字を強調表示し、'ga' を押します。これにより、文字の 16 進値がわかります。私の場合は 0xfa (これはバック スペースのように見えます!?)。

再び Vim で、\r のグローバル置換を行います

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

次に、ファイルを保存します。

すべてがうまく解析されるようになりました。

于 2015-11-07T20:43:06.180 に答える