第 225 章 MLLP 组件


作为 Camel 2.17 版提供

MLLP 组件专门设计为处理 MLLP 协议的 nuances,并提供医疗提供商使用 MLLP 协议与其他系统通信所需的功能。 MLLP 组件提供简单的配置 URI,自动化 HL7 确认生成和自动确认间。

MLLP 协议通常不使用大量并发 TCP 连接 - 一个活跃的 TCP 连接是正常情况。 因此,MLLP 组件使用基于标准的 JavaSockets 的简单线程-per-connection 模型。这将使实施保持简单,并消除了 Camel 本身之外的其他依赖项。

组件支持以下内容:

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

MLLP 组件使用字节[] 有效负载,并依赖 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

布尔值

logPhiMaxBytes (advanced)

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

5120

整数

defaultCharset (advanced)

将默认字符设置为用于字节/从字符串转换中用于 /。

ISO-8859-1

字符串

configuration (common)

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

 

MllpConfiguration

resolveProperty Placeholders (advanced)

启动时,组件是否应自行解析属性占位符。只有 String 类型的属性才能使用属性占位符。

true

布尔值

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

mllp:hostname:port

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

225.1.1. 路径名(2 参数):

名称描述默认类型

hostname

为 TCP 连接连接所需的主机名或 IP。默认值为 null,即任何本地 IP 地址

 

字符串

port

TCP 连接所需的端口号

 

int

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

名称描述默认类型

autoAck (common)

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

true

布尔值

bufferWrites (common)

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

false

布尔值

hl7Headers (通用)

仅在 HL7 Message MLLP Consumers 中自动生成消息标头

true

布尔值

requireEndOfData (common)

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

true

布尔值

stringPayload (common)

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

true

布尔值

validatePayload (common)

启用/禁用 HL7 Payloads If enabled,则会验证从外部系统接收的 HL7 Payloads 将验证(请参阅 Hl7Util.generateInvalidPayloadExceptionMessage)。如果检测到无效的有效负载,则会抛出 MllpInvalidMessageException(针对使用者)或 MllpInvalidAcknowledgementException。

false

布尔值

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由 Error Handler,这意味着在消费者尝试接收传入的消息时发生任何异常,或像这样一样处理,由路由 Error Handler 处理的消息和由路由 Error Handler 处理。如果禁用,消费者将使用 org.apache.camel.spi.ExceptionHandler 通过在 WARN 或 ERROR 级别中记录它们来处理异常,并忽略它们。

true

布尔值

exceptionHandler (consumer)

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

 

ExceptionHandler

exchangePattern (consumer)

在使用者创建交换时设置交换模式。

InOut

ExchangePattern

同步 (高级)

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

true

布尔值

backlog (tcp)

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

5

整数

lenientBind (tcp)

仅限 TCP Server - 允许端点在 TCP 服务器套接字绑定前启动。在某些环境中,可能需要允许端点在 TCP 服务器套接字绑定前启动。

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 值或小于零的值将禁用闲置超时。

 

整数

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.