第二章 HL7 架构和可用工具 - HL7 模式和消息概述
HL7 模式和消息概述
InterSystems
产品可以处理和传递 HL7
消息,而无需使用架构来解析它,但将架构与消息关联允许执行以下操作:
- 解析消息并访问以下字段值:
- 数据转换
- 路由规则
- 自定义
ObjectScript
代码
- 验证消息是否符合架构。
每个 HL7
消息均由消息类型标识,该消息类型在 MSH
段 MessageType
字段 (MSH:9
) 中指定。一些消息类型共享相同的消息结构。例如,在HL7
版本2.3.1
中,用于预先接纳患者的ADT_A05
消息具有与ADT_A01
接纳消息相同的结构。该架构指定 ADT_A05
消息具有结构类型 ADT_A01
。
为了解析 HL7
消息,需要两条信息:
- 架构类别 — 这是
HL7
版本号,例如2.3.1
或2.7
,或者它可能是InterSystems
产品中定义的自定义架构的类别。production
从业务服务消息模式类别设置或从数据转换设置获取模式类别。尽管HL7
消息在MSH
段VersionID
字段中包含模式版本号 (MSH:12
),但InterSystems
不使用此值,因为许多应用程序并未一致地设置此字段。 - 结构类型 -
production
从MSH: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:ACK
、2.3.1:ADT_A17
、2.3.1:BAR_P01
和 2.3.1:PEX_P07
。消息类型可以与结构类型不同,存储在 Name
属性中。
如果在 ObjectScript
代码中创建 EnsLib.HL7.Message
对象,则应根据 MSH:9
字段中的值设置 DocType
和 Name
属性。
HL7
标准允许本地扩展,例如尾部 Z
段。这些段未在基本架构类别中定义。如果要访问数据转换、路由规则或 ObjectScript
中自定义 Z
段中的字段,则需要定义指定扩展消息的自定义架构类别。
可以将自定义 HL7
架构置于源代码管理之下。启用源代码控制后,源代码控制选项(例如签出和签入)可从主 HL7
模式页面使用,但在用于处理自定义模式的其他页面(例如 HL7
模式消息类型页面)上不可用。在使用其他页面编辑架构之前,必须从 HL7
架构页面检查整个架构。 HL7
模式主页面提供了源代码控制输出窗口,该窗口捕获所有相关 HL7
模式页面的源代码控制活动。有关设置源代码控制的信息,请参阅将 IRIS
与源代码控制系统集成。
网友评论