文章目录

  • 第二章 HL7 架构和可用工具 – HL7 模式和消息概述
    • HL7 模式和消息概述

第二章 HL7 架构和可用工具 – HL7 模式和消息概述

HL7 模式和消息概述

InterSystems 产品可以处理和传递 HL7 消息,而无需使用架构来解析它,但将架构与消息关联允许执行以下操作:

  • 解析消息并访问以下字段值:
    • 数据转换
    • 路由规则
    • 自定义 ObjectScript 代码
  • 验证消息是否符合架构。

每个 HL7 消息均由消息类型标识,该消息类型在 MSHMessageType 字段 (MSH:9) 中指定。一些消息类型共享相同的消息结构。例如,在HL7版本2.3.1中,用于预先接纳患者的ADT_A05消息具有与ADT_A01接纳消息相同的结构。该架构指定 ADT_A05 消息具有结构类型 ADT_A01

为了解析 HL7 消息,需要两条信息:

  • 架构类别 — 这是 HL7 版本号,例如 2.3.12.7,或者它可能是 InterSystems 产品中定义的自定义架构的类别。production 从业务服务消息模式类别设置或从数据转换设置获取模式类别。尽管 HL7 消息在 MSHVersionID 字段中包含模式版本号 (MSH:12),但 InterSystems 不使用此值,因为许多应用程序并未一致地设置此字段。
  • 结构类型 – productionMSH:9 字段获取消息类型,然后检查架构定义以获取该消息的结构类型。

在某些情况下,使用 MSH:9.3 子字段来限定消息类型。 MSH:9:3 子字段在 HL7 消息中以两种方式使用:1) 作为消息类型的修饰符,或 2) 指定结构类型。如果 MSH:9:3 修改消息类型(通常为数字),InterSystems 产品会将其作为消息类型的一部分。如果 MSH:9:3 指定结构类型(例如 ADT_A01),则 InterSystems 在确定消息类型和设置 Name 属性时都会忽略它。 InterSystems 产品不需要 MSH:9.3 子字段来确定结构类型,因为它们从架构中获取结构类型。

当业务服务或数据转换创建 EnsLib.HL7.Message 对象来存储 HL7 消息时,它会组合架构类别和结构类型,并使用以下语法将其存储在 DocType 属性中:

category:structureType

例如,类别 2.3.1 的有效 DocType 值包括 2.3.1:ACK2.3.1:ADT_A172.3.1:BAR_P012.3.1:PEX_P07。消息类型可以与结构类型不同,存储在 Name 属性中。

如果在 ObjectScript 代码中创建 EnsLib.HL7.Message 对象,则应根据 MSH:9 字段中的值设置 DocTypeName 属性。

HL7 标准允许本地扩展,例如尾部 Z 段。这些段未在基本架构类别中定义。如果要访问数据转换、路由规则或 ObjectScript 中自定义 Z 段中的字段,则需要定义指定扩展消息的自定义架构类别。

可以将自定义 HL7 架构置于源代码管理之下。启用源代码控制后,源代码控制选项(例如签出和签入)可从主 HL7 模式页面使用,但在用于处理自定义模式的其他页面(例如 HL7 模式消息类型页面)上不可用。在使用其他页面编辑架构之前,必须从 HL7 架构页面检查整个架构。 HL7 模式主页面提供了源代码控制输出窗口,该窗口捕获所有相关 HL7 模式页面的源代码控制活动。有关设置源代码控制的信息,请参阅将 IRIS 与源代码控制系统集成。