149.5. Spring Boot Auto-Configuration
コンポーネントは、以下に示す 5 個のオプションをサポートします。
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
camel.dataformat.hl7.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
camel.dataformat.hl7.enabled | hl7 データ形式を有効にする | true | Boolean |
camel.dataformat.hl7.validate | HL7 メッセージを検証するかどうかデフォルトでは true です。 | true | Boolean |
camel.language.terser.enabled | terser 言語を有効にする | true | Boolean |
camel.language.terser.trim | 値をトリミングして、先頭および末尾の空白と改行を削除するかどうか | true | Boolean |
ND
-
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 メッセージオブジェクトにバイトストリームを非整列化します。
149.5.1. シリアライズ可能なメッセージ
HAPI 2.0 (Camel 2.11 で使用) の時点で、HL7v2 モデルクラスは完全にシリアライズ可能です。したがって、HL7v2 メッセージを直接 JMS キューに入れ (つまり、marshal()
を呼び出さずに)、キューから直接 (つまり、unmarshal()
を呼び出さずに) 再度読み取ることができます。
149.5.2. セグメント区切り
Camel 2.11 の時点で、unmarshal
は \n
を \r
に変換することによってセグメントセパレーターを自動的に修正しなくなりました。
この変換が必要な場合には、org.apache.camel.component.hl7.HL7#convertLFToCR
は、この目的向けに便利な Expression
を提供します。
149.5.3. Charset
Camel 2.14.1 以降、marshal and unmarshal
の両方が、フィールド MSH-18
で提供される文字セットを評価します。このフィールドが空の場合には、デフォルトで、対応する Camel 文字セットプロパティー/ヘッダーに含まれる文字セットが想定されます。HL7DataFormat
クラスから継承するときに、guessCharsetName
メソッドをオーバーライドして、このデフォルトの動作を変更することもできます。
Camel には、一般的に使用される既知のデータ形式の簡略構文があります。HL7DataFormat
オブジェクトのインスタンスを作成する必要はありません。
from("direct:hl7in") .marshal().hl7() .to("jms:queue:hl7out"); from("jms:queue:hl7out") .unmarshal().hl7() .to("patientLookupService");
from("direct:hl7in")
.marshal().hl7()
.to("jms:queue:hl7out");
from("jms:queue:hl7out")
.unmarshal().hl7()
.to("patientLookupService");