第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