43.5. HL7 DataFormat
camel-hl7 JAR 附带 HL7 数据格式,可用于 marshal 或 unmarshal HL7 模型对象。
HL7 dataformat 支持 1 个选项,如下所列。
| Name | 默认值 | Java 类型 | 描述 |
|---|---|---|---|
| validate |
| 默认情况下,是否验证 HL7 消息 Is true。 |
-
marshal= 从消息到字节流(可以使用 HL7 MLLP codec 进行响应) -
unmarshal= 从字节流到消息(可以在从 HL7 MLLP 接收流数据时使用
要使用数据格式,只需实例化实例并在路由构建器中调用 marshal 或 unmarshal 操作:
DataFormat hl7 = new HL7DataFormat();
from("direct:hl7in")
.marshal(hl7)
.to("jms:queue:hl7out");
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");
DataFormat hl7 = new HL7DataFormat();
from("jms:queue:hl7out")
.unmarshal(hl7)
.to("patientLookupService");
在这里,我们将字节流传输到 HAPI 消息对象,该对象传递到我们的病人查找服务。
43.5.1. 片段分隔符 复制链接链接已复制到粘贴板!
unmarshalling 不再通过将 \n 转换为 \r 来自动修复网段分隔符。如果您
需要这个转换,org.apache.camel.component.hl7.HL7#convertLFToCR 为 这一目的 提供了方便的表达式。
43.5.2. charset 复制链接链接已复制到粘贴板!
marshal 和 unmarshal 评估在字段 MSH-18 中提供的 charset。如果此字段为空,则默认假定对应的 Camel charset 属性/header 中包含的 charset。从 HL7DataFormat 类继承时,您甚至可以通过覆盖 guessCharsetName 方法来更改此默认行为。
Camel 中有一个简写语法,用于常用数据格式。然后,您不需要创建 HL7DataFormat 对象的实例: