61.4. HL7 DataFormat
camel-hl7
JAR 附带了 HL7 数据格式,可用于 marshal 或 unmarshal HL7 模型对象。
HL7 数据格式支持 1 选项,如下所列。
名称 | 默认 | Java 类型 | 描述 |
---|---|---|---|
validate |
| 默认情况下,是否验证 HL7 消息为 true。 |
-
marshal
= from Message to byte stream (可以使用 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 Message 对象,后者将传递给我们的病人查找服务。
61.4.1. 片段分隔符 复制链接链接已复制到粘贴板!
unmarshalling 无法通过将 \n
转换为 \r
来自动修复片段分隔符。如果
需要此转换,org.apache.camel.component.hl7.HL7#convertLFToCR
提供此目的的手动 表达式
。
61.4.2. charset 复制链接链接已复制到粘贴板!
marshal 和 unmarshal
均评估字段 MSH-18
中提供的字符集。如果此字段为空,则默认情况下,假定对应的 Camel charset 属性/header 中包含的 charset。在从 HL7DataFormat
类中继承时,您甚至可以通过覆盖 guessCharsetName
方法来更改此默认行为。
Camel 中适用于知名数据格式的简写语法,通常使用它们。然后,您不需要创建 HL7DataFormat
对象的实例: