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 コンポーネントを使用して、文字列/解析への変換を処理することは可能ですか?