149.5. Spring Boot Auto-Configuration
组件支持 5 个选项,如下所列。
| Name | 描述 | 默认值 | 类型 |
|---|---|---|---|
| camel.dataformat.hl7.content-type-header | 如果数据格式可以这样做,则数据格式是否应使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式的 application/xml 放入 XML 或用于数据格式的 application/json,如 JSon 等。 | false | 布尔值 |
| camel.dataformat.hl7.enabled | 启用 hl7 dataformat | true | 布尔值 |
| camel.dataformat.hl7.validate | 是否默认验证 HL7 消息是否默认为 true。 | true | 布尔值 |
| camel.language.terser.enabled | 启用 terser 语言 | true | 布尔值 |
| camel.language.terser.trim | 是否修剪值以移除前导和结尾的空格和换行符 | true | 布尔值 |
ND
-
marshal= 从 Message 到字节流(在使用 HL7 MLLP codec 时可以使用) -
unmarshal= 从字节流到消息(可在从 HL7 MLLP 接收流数据时使用
要使用数据格式,只需实例化实例并在路由构建器中调用 marshal 或 unmarshal 操作:
DataFormat hl7 = new HL7DataFormat();
from("direct:hl7in")
.marshal(hl7)
.to("jms:queue:hl7out");
在上例中,HL7 从 HAPI Message 对象放入字节流并放入 JMS 队列。
下一个示例是相反:
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 failingconvertLFToCR 为这个目的提供了一个方便的 Expression。
149.5.3. charset 复制链接链接已复制到粘贴板!
自 Camel 2.14.1 起,marshal 和 unmarshal 都评估字段 MSH-18 中提供的 charset。如果此字段为空,则默认假定对应的 Camel charset property/header 中包含的 charset。在继承 HL7DataFormat 类时,您也可以通过覆盖 guessCharsetName 方法来更改此默认行为。
Camel 中有一个简写的语法,用于常用数据格式。然后,您不需要创建 HL7DataFormat 对象的实例:
from("direct:hl7in")
.marshal().hl7()
.to("jms:queue:hl7out");
from("jms:queue:hl7out")
.unmarshal().hl7()
.to("patientLookupService");