71.4. HL7 DataFormat
camel-hl7
JAR には、HL7 モデルオブジェクトのマーシャリングまたはアンマーシャリングに使用できる HL7 データ形式が同梱されています。
HL7 データ形式は、以下にリストされている 1 つのオプションをサポートしています。
名前 | デフォルト | Java タイプ | 説明 |
---|---|---|---|
validate |
| HL7 メッセージを検証するかどうかデフォルトでは true です。 |
-
marshal
= メッセージからバイトストリームへ (HL7 MLLP コーデックを使用して応答するときに使用できます) -
unmarshal
= バイトストリームからメッセージへ (HL7 MLLP からストリーミングデータを受信するときに使用できます)
データ形式を使用するには、単にインスタンスをインスタンス化し、ルートビルダーで整列化または非整列化操作を呼び出します。
DataFormat hl7 = new HL7DataFormat(); from("direct:hl7in") .marshal(hl7) .to("jms:queue:hl7out");
DataFormat hl7 = new HL7DataFormat();
from("direct:hl7in")
.marshal(hl7)
.to("jms:queue:hl7out");
上記のサンプルでは、HL7 が HAPI メッセージオブジェクトからバイトストリームにマーシャリングされ、JMS キューに配置されます。
次の例は逆です。
DataFormat hl7 = new HL7DataFormat(); from("jms:queue:hl7out") .unmarshal(hl7) .to("patientLookupService");
DataFormat hl7 = new HL7DataFormat();
from("jms:queue:hl7out")
.unmarshal(hl7)
.to("patientLookupService");
ここでは、患者の検索サービスに渡される HAPI メッセージオブジェクトにバイトストリームを非整列化します。
71.4.1. セグメント区切り リンクのコピーリンクがクリップボードにコピーされました!
アンマーシャリングは、\n
を \r
に変換することによってセグメント区切りを自動的に修正しなくなりました。
この変換が必要な場合には、org.apache.camel.component.hl7.HL7#convertLFToCR
は、この目的向けに便利な Expression
を提供します。
71.4.2. Charset リンクのコピーリンクがクリップボードにコピーされました!
marshal と unmarshal
の両方が、フィールド MSH-18
で提供される文字セットを評価します。このフィールドが空の場合には、デフォルトで、対応する Camel 文字セットプロパティー/ヘッダーに含まれる文字セットが想定されます。HL7DataFormat
クラスから継承するときに、guessCharsetName
メソッドをオーバーライドして、このデフォルトの動作を変更することもできます。
Camel には、一般的に使用される既知のデータ形式の簡略構文があります。HL7DataFormat
オブジェクトのインスタンスを作成する必要はありません。