第 226 章 MLLP 组件


从 Camel 版本 2.17 开始提供

MLLP 组件旨在处理 MLLP 协议的细微,并提供 Healthcare 供应商使用 MLLP 协议与其他系统通信所需的功能。MLLP 组件提供一个简单的配置 URI,自动化 HL7 确认生成和自动确认。

MLLP 协议通常不使用大量并发 TCP 连接 - 单个活跃的 TCP 连接是正常情况。因此,MLLP 组件使用基于标准 Java 套接字的简单线程每个连接模型。这会保持实施简单,并消除了 Camel 本身以外的依赖项。

组件支持以下内容:

  • 使用 TCP 服务器的 Camel 使用者
  • 使用 TCP 客户端的 Camel producer

MLLP 组件使用 byte[] 有效负载,并依赖于 Camel Type Conversion 将 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>

226.1. MLLP 选项

MLLP 组件支持 5 个选项,如下所列。

Name描述默认值类型

logPhi (advanced)

将组件设置为 log PHI 数据。

true

布尔值

logPhiMaxBytes (advanced)

设置在日志条目中登录的最大 PHI 字节数。

5120

整数

defaultCharset (advanced)

设置默认的字符集,用于字节/来自字符串转换。

ISO-8859-1

字符串

configuration (common)

设置创建 MLLP 端点时要使用的默认配置。

 

MllpConfiguration

resolveProperty Placeholders (advanced)

组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。

true

布尔值

MLLP 端点使用 URI 语法进行配置:

mllp:hostname:port

使用以下路径和查询参数:

226.1.1. 路径参数(2 参数):

Name描述默认值类型

hostname

必需 TCP 连接的连接的主机名或 IP。默认值为 null,这意味着任何本地 IP 地址

 

字符串

port

TCP 连接所需的端口号

 

int

226.1.2. 查询参数(27 参数):

Name描述默认值类型

autoAck (common)

仅启用/禁用 MLLP Acknowledgement MLLP Consumers 的自动生成

true

布尔值

bufferWrites (common)

在写入套接字前,弃用了 HL7 有效负载的 Enable/Disable 缓冲。

false

布尔值

hl7Headers (common)

仅启用/禁用 HL7 Message MLLP Consumers 自动生成消息标头

true

布尔值

requireEndOfData (common)

启用/禁用对 MLLP 标准的严格合规性。MLLP 标准指定 START_OF_BLOCKhl7 payloadEND_OF_BLOCKEND_OF_DATA,但有些系统不会发送最终 END_OF_DATA 字节。此设置控制最终 END_OF_DATA 字节是否需要或可选。

true

布尔值

stringPayload (common)

启用/禁用将有效负载转换为 String。如果启用,从外部系统接收的 HL7 Payloads 将转换为 String。如果设置了 charsetName 属性,则该字符集将用于转换。如果没有设置 charsetName 属性,则会使用 MSH-18 的值来确定适当的字符集。如果没有设置 MSH-18,则将使用默认 ISO-8859-1 字符集。

true

布尔值

validatePayload (common)

启用/禁用 HL7 Payloads 验证(如果已启用),则验证从外部系统接收的 HL7 Payloadloads (有关验证的详情,请参阅 Hl7Util.generateInvalidPayloadExceptionMessage)。如果检测到无效有效负载,则会抛出一个 MllpInvalidMessageException (用于消费者)或 MllpInvalidAcknowledgementException。

false

布尔值

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由 Error Handler,这意味着当消费者试图接收传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。如果禁用,使用者将使用 org.apache.camel.spi.ExceptionHandler 在 WARN 或 ERROR 级别记录它们来处理例外情况,并忽略它们。

true

布尔值

ExceptionHandler ( consumer)

要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。

 

ExceptionHandler

exchangePattern (consumer)

在消费者创建交换时设置交换模式。

InOut

ExchangePattern

同步 (高级)

设置是否应严格使用同步处理(此组件只支持同步操作)。

true

布尔值

积压 (tcp)

传入连接的最大队列长度(要连接的请求)设置为 backlog 参数。如果连接表示队列已满时到达,则拒绝连接。

5

整数

lenientBind (tcp)

仅 TCP 服务器 - 允许端点在绑定 TCP 服务器Socket 之前启动。在某些环境中,可能需要允许端点在绑定 TCP 服务器Socket 之前启动。

false

布尔值

maxConcurrentConsumers (tcp)

允许的最大 MLLP Consumer 连接数。如果收到新连接并且已经建立最大数,新的连接将立即重置。

5

int

reuseAddress (tcp)

启用/禁用 SO_REUSEADDR 套接字选项。

false

布尔值

acceptTimeout (timeout)

仅在等待 TCP 连接 TCP 服务器时超时(以毫秒为单位)

60000

int

bindRetryInterval (timeout)

仅 TCP 服务器 - 绑定尝试之间等待的毫秒数

5000

int

bindTimeout (timeout)

仅 TCP 服务器 - 重试绑定到服务器端口的毫秒数

30000

int

connectTimeout (timeout)

只为 TCP 连接 TCP 客户端建立超时(以毫秒为单位)

30000

int

idletimeout ( timeout)

重置客户端 TCP 连接前允许的大约空闲时间。null 值或小于或等于 0 的值将禁用闲置超时。

 

整数

maxReceiveTimeouts (timeout)

弃用 在重置 TCP 连接前允许的最大超时数(由 receiveTimeout 指定)。

 

整数

keepalive ( tcp)

启用/禁用 SO_KEEPALIVE 套接字选项。

true

布尔值

receiveBufferSize (tcp)

将 SO_RCVBUF 选项设置为指定的值(以字节为单位)

8192

整数

sendBufferSize (tcp)

将 SO_SNDBUF 选项设置为指定的值(以字节为单位)

8192

整数

tcpNoDelay (tcp)

启用/禁用 TCP_NODELAY 套接字选项。

true

布尔值

readTimeout (timeout)

接收 MLLP 帧后使用的 SO_TIMEOUT 值(以毫秒为单位)

5000

int

receiveTimeout (timeout)

等待 MLLP 帧的开始时使用的 SO_TIMEOUT 值(以毫秒为单位)

15000

int

charsetName (codec)

在交换上设置 CamelCharsetName 属性

 

字符串

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.