配置 HL7 DFDL 模型,以验证接收到的消息所使用的 HL7 版本。
准备工作:
- 将其中一个 HL7 DFDL 库导入到工作空间中。可以从
Healthcare:从 HL7 到 HL7 DFDL 模式中导入库,请参阅与 HL7 应用程序集成以获取更多信息。
共有三个版本的 HL7 DFDL 模型,分别用于
HL7 V2.7、HL7 V2.6 和 HL7 V2.5.1
及之前版本。建议您使用与处理的消息所使用的 HL7 版本匹配的
DFDL 模型。但是,在缺省情况下,这些模型不检查入局 HL7
消息所使用的 HL7 版本。如果您想确保处理使用了所期望的 HL7
版本的消息,那么可以通过以下过程在模型中启用版本验证。
- 在“应用程序开发”透视图中,找到 HL7 DFDL 库(HL7v251DFDLLibrary、HL7v26DFDLLibrary 或 HL7v27DFDLLibrary)。
- 单击库名,然后单击。
- 右键单击 GenericHL7.xsd,然后单击。 这将打开 DFDL 编辑器窗口。
- 在 DFDL 编辑器窗口中,单击 ,然后选择 MSH.12.VersionID。 这将打开“断言和鉴别器”选项卡。
- 单击断言和鉴别器选项卡,然后单击添加断言链接。 这将在“断言”表中添加一个新行。
- 确保测试类型列中的值为表达式。
- 在测试条件列中单击,然后添加所需的表达式以验证 HL7 版本。 例如:
- 如果您想检查消息所使用的 HL7 版本是否为特定的 HL7 版本,请输入以下内容。
{./VID.1 eq '<value>'}
其中
<value> 是您期望消息使用的 HL7
版本。例如,2.7、2.6 或 2.5。
- 如果您想检查消息所使用的 HL7 版本是否低于特定的 HL7 版本,请输入以下内容。
{./VID.1 lt '<value>'}
其中
<value> 是您期望消息使用的 HL7
版本。例如,2.7、2.6 或 2.5。
有关创建有效断言表达式的更多信息,请参阅 DFDL 规范。
- 在消息列中单击,然后添加条件不满足时要在跟踪输出中显示的相应消息。 例如,Incompatible HL7 version。
- 然后,保存 DFDL 模式,单击并关闭 DFDL 编辑器。
更新
DFDL 模式完成。
如果使用更新后的 DFDL 模式定义时接收到任何与所需 HL7
版本不匹配的消息,那么表明 DFDL 解析在 MSH.12
字段处停止,并且断言中定义的错误消息将显示在工具箱和跟踪输出中。例如:
A
DFDL assert with condition '{./VID.1 eq '2.7'}' evaluated to false
with message 'Incompatible HL7 version' during the parsing of 'MSH.12.VersionID'