0

HL7 v2 ファイルを使用した後、それらを HAPI HL7 オブジェクトにマーシャリングしようとしています。ルートのサンプルは次のようになります。

from("file:C:\\routes\\in").unmarshal(new HL7DataFormat()).log("Success!");

残念ながら、私は例外を取得します:

ca.uhn.hl7v2.parser.EncodingNotSupportedException: Determine encoding for message. The following is the first 50 chars of the message for reference, although this may not be where the issue is: MSH|^~\&|...

解析される各メッセージの先頭に \u000B 記号があることがわかりました。これにより、パーサーは "MSH" ヘッダーを見つけられません。

もちろん、次のような単純な文字列操作で修正できます。

from("file:C:\\routes\\in")
            .convertBodyTo(String.class)
            .transform().simple("${in.body.trim()}")
            .unmarshal(new HL7DataFormat())
            .log("Success!");

しかし、これは最善の解決策ではないように思えます。MLLP プロトコルが使用されている場合、同じシンボルがメッセージの前にあり、HL7 コーデックがそれを処理する必要があることがわかりました。http://camel.apache.org/hl7.html

質問: HL7Codec for File または FTP コンポーネントを使用して、文字列/解析への変換を処理することは可能ですか?

4

1 に答える 1

0

\u000Bは、標準 HL7 メッセージ Minimal Lower Layer Protocol の開始バイト (マーカー) です。メッセージは通常、バイト\u001Cおよび\u000D (終了マーカー) で終了する必要があります。

ファイルで MLLP の必要性について議論することはできますが、Apache Camel のドキュメントに従って、HL7MLLPCodec クラスを使用して純粋な HL7 メッセージ文字列を取得できるはずです。

于 2014-06-16T13:12:12.793 に答える