第225章 MLLP コンポーネント
Camel バージョン 2.17 以降で利用可能
MLLP コンポーネントは、MLLP プロトコルのニュアンスを処理し、医療機関が MLLP プロトコルを使用して他のシステムと通信するために必要な機能を提供するように特別に設計されています。 MLLP コンポーネントは、単純な設定 URI、自動化された HL7 確認応答生成、および自動確認応答問い合わせを提供します。
MLLP プロトコルは、通常、多数の同時 TCP 接続を使用しません。通常、1 つのアクティブな TCP 接続が使用されます。 したがって、MLLP コンポーネントは、標準の Java ソケットに基づく単純な接続ごとのスレッドモデルを使用します。これにより、実装がシンプルになり、Camel 自体以外の依存関係がなくなります。
コンポーネントは以下をサポートします。
- TCP サーバーを使用する Camel コンシューマー
- TCP クライアントを使用する Camel プロデューサー
MLLP コンポーネントは byte[] ペイロードを使用し、Camel 型変換に依存して byte[] を他の型に変換します。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-mllp</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
225.1. MLLP オプション
MLLP コンポーネントは、以下に示す 5 個のオプションをサポートしています。
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
logPhi (advanced) | PHI データをログに記録するようにコンポーネントを設定します。 | true | Boolean |
logPhiMaxBytes (advanced) | ログエントリーに記録される PHI の最大バイト数を設定します。 | 5120 | Integer |
defaultCharset (advanced) | バイトから文字列への変換に使用するデフォルトの文字セットを設定します。 | ISO-8859-1 | String |
configuration (common) | MLLP エンドポイントの作成時に使用する既定の設定を設定します。 | MllpConfiguration | |
resolveProperty Placeholders (advanced) | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | boolean |
MLLP エンドポイントは、URI 構文を使用して設定されます。
mllp:hostname:port
パスおよびクエリーパラメーターを使用します。
225.1.1. パスパラメーター (2 個のパラメーター):
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
hostname | TCP 接続の接続に 必要な ホスト名または IP。デフォルト値は null で、これは任意のローカル IP アドレスを意味します | String | |
port | 必須 TCP 接続のポート番号 | int |
225.1.2. クエリーパラメーター ( 27 パラメーター)
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
autoAck (Common) | MLLP 確認応答 MLLP コンシューマーのみの自動生成を有効または無効にします | true | boolean |
bufferWrites (Common) | 非推奨 ソケットに書き込む前の HL7 ペイロードのバッファーリングを有効/無効にします。 | false | boolean |
hl7Headers (Common) | HL7 メッセージ MLLP コンシューマーのみからのメッセージヘッダーの自動生成を有効または無効にします | true | boolean |
requireEndOfData (common) | MLLP 標準への厳密な準拠を有効/無効にします。MLLP 標準は START_OF_BLOCKhl7 ペイロード END_OF_BLOCKEND_OF_DATA を指定していますが、一部のシステムは最後の END_OF_DATA バイトを送信しません。この設定は、最後の END_OF_DATA バイトが必須かオプションかを制御します。 | true | boolean |
stringPayload (common) | ペイロードの文字列への変換を有効または無効にします。有効にすると、外部システムから受信した HL7 ペイロードが検証され、文字列に変換されます。charsetName プロパティーが設定されている場合、その文字セットが変換に使用されます。charsetName プロパティーが設定されていない場合、適切な文字セットを決定するために MSH-18 の値が使用されます。MSH-18 が設定されていない場合、デフォルトの ISO-8859-1 文字セットが使用されます。 | true | boolean |
validatePayload (Common) | HL7 ペイロードの検証を有効/無効にする 有効にすると、外部システムから受信した HL7 ペイロードが検証されます (検証の詳細については、Hl7Util.generateInvalidPayloadExceptionMessage を参照してください)。無効なペイロードが検出された場合、MllpInvalidMessageException (コンシューマーの場合) または MllpInvalidAcknowledgementException が出力されます。 | false | boolean |
bridgeErrorHandler (consumer) | コンシューマーの Camel ルーティングエラーハンドラーへのブリッジを許可します。よって、コンシューマーが受信メッセージなどの取得を試行している間に発生した例外は、メッセージとして処理され、ルーティングエラーハンドラーによって処理されます。無効にすると、コンシューマーは org.apache.camel.spi.ExceptionHandler を使用して例外を WARN または ERROR レベルでログに記録し、無視することで例外を処理します。 | true | boolean |
exceptionHandler (consumer) | コンシューマーによるカスタム ExceptionHandler の使用を許可します。bridgeErrorHandler オプションが有効な場合は、このオプションは使用されないことに注意してください。デフォルトでは、コンシューマーは例外に対応し、WARN または ERROR レベルでログに記録され、無視されます。 | ExceptionHandler | |
exchangePattern (consumer) | コンシューマーがエクスチェンジを作成する際に交換パターンを設定します。 | InOut | ExchangePattern |
synchronous (advanced) | 同期処理を厳密に使用するかどうかを設定します (このコンポーネントは同期操作のみをサポートします)。 | true | boolean |
backlog (tcp) | 着信接続指示 (接続要求) の最大キュー長は、backlog パラメーターに設定されます。キューがいっぱいのときに接続指示が到着すると、接続は拒否されます。 | 5 | Integer |
lenientBind (tcp) | TCP サーバーのみ - TCP ServerSocket がバインドされる前にエンドポイントを開始できるようにします。一部の環境では、TCP ServerSocket がバインドされる前にエンドポイントを開始できるようにすることが望ましい場合があります。 | false | boolean |
maxConcurrentConsumers (tcp) | 許可される同時 MLLP コンシューマー接続の最大数。新しい接続が受信され、最大数がすでに確立されている場合、新しい接続はすぐにリセットされます。 | 5 | int |
reuseAddress (tcp) | SO_REUSEADDR ソケットオプションを有効/無効にします。 | false | Boolean |
acceptTimeout (タイムアウト) | TCP 接続の待機中のタイムアウト (ミリ秒単位) TCP サーバーのみ | 60000 | int |
bindRetryInterval (timeout) | TCP サーバーのみ - バインド試行間で待機するミリ秒数 | 5000 | int |
bindTimeout (タイムアウト) | TCP サーバーのみ - サーバーポートへのバインドを再試行するミリ秒数 | 30000 | int |
connectTimeout (タイムアウト) | TCP 接続を確立するためのタイムアウト (ミリ秒単位)。TCP クライアントのみ | 30000 | int |
idleTimeout (タイムアウト) | クライアント TCP 接続がリセットされるまでに許容されるおおよそのアイドル時間。null 値またはゼロ以下の値は、アイドルタイムアウトを無効にします。 | Integer | |
maxReceiveTimeouts (タイムアウト) | 非推奨 TCP 接続がリセットされるまでに 許容される タイムアウト (receiveTimeout で指定) の最大数。 | Integer | |
keepAlive (tcp) | SO_KEEPALIVE ソケットオプションを有効/無効にします。 | true | Boolean |
receiveBufferSize (tcp) | SO_RCVBUF オプションを指定された値 (バイト単位) に設定します | 8192 | Integer |
sendBufferSize (tcp) | SO_SNDBUF オプションを指定された値 (バイト単位) に設定します | 8192 | Integer |
tcpNoDelay (tcp) | TCP_NODELAY ソケットオプションを有効/無効にします。 | true | Boolean |
readTimeout (タイムアウト) | MLLP フレームの開始後に使用される SO_TIMEOUT 値 (ミリ秒単位) が受信されました | 5000 | int |
receiveTimeout (タイムアウト) | MLLP フレームの開始を待機するときに使用される SO_TIMEOUT 値 (ミリ秒単位) | 15000 | int |
charsetName (codec) | エクスチェンジで CamelCharsetName プロパティーを設定します | String |