REDISANT 提供互联网与物联网开发测试套件 #
互联网与中间件:
HL7 消息结构 #
HL7 消息用于在不同的医疗保健系统之间传输电子数据,每个系统都发送有关特定事件(例如患者入院)的信息。HL7 消息采用人类可读的 (ASCII) 格式,但解读起来可能需要一些时间。
本节介绍 HL7 消息的内容及其组织方式。
HL7 消息由哪些组件组成? #
HL7 消息由一个或多个段组成。每个段显示在不同的文本行中。回车符(\r
,十六进制为 0D
)用于分隔各个段。
每个段由一个或多个复合体(也称为字段)组成。管道符 (|
) 用于分隔各个复合体。如果一个复合体包含其他复合体,则这些子复合体(或子字段)通常使用脱字符 (^
) 分隔。
MSH|^~\&|EPIC|EPICADT|iFW|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5|
PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC|||||||||||||||||||||||||||
PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^|||||||||| ||2688684|||||||||||||||||||||||||199912271408||||||002376853
以下各节进一步详细介绍了HL7消息的复杂性以及如何读取标准。有关不同HL7消息类型及其用途的更多信息,请参阅我们的HL7消息类型页面。
HL7 段(Segments) #
在 HL7 消息中,每个段包含一个特定类别的信息,例如患者信息或患者就诊数据。消息中每个段的名称由该段的第一个字段指定,该字段始终为三个字符。HL7 消息中可用的 HL7 段超过 120 个,本示例消息包含四个 HL7 段:MSH、PID、NK1 和 PV1。不同类型的 HL7 消息包含不同的 HL7 段。
HL7 消息示例 #
MSH|^~\&|EPIC|EPICADT|iFW|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5|
PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC|||||||||||||||||||||||||||
PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^|||||||||| ||2688684|||||||||||||||||||||||||199912271408||||||002376853
本例中的 HL7 段包含以下信息:
- MSH(消息头)段包含消息本身的信息。这些信息包括消息的发送者和接收者、消息类型以及发送日期和时间。每条 HL7 消息都将 MSH 指定为其第一个段。
- PID(患者信息)段包含患者的人口统计信息,例如姓名、患者 ID 和地址。
- NK1(近亲)段包含患者近亲的联系信息。
- PV1(患者就诊)段包含患者住院信息,例如指定地点和转诊医生。
由于 HL7 消息被用于将各种医疗保健相关信息传递给各种不同的系统,有时 HL7 消息需要包含自定义数据,而这些数据无法包含在其消息类型的任何已定义段中。为了解决这个问题,HL7 标准允许系统供应商创建带有自定义字段的 Z 段来传输这些数据。
按照惯例,所有自定义段都以字母 Z 开头。例如,可以创建一个 ZPD 段来包含自定义的患者人口统计信息。Z 段可以放置在 HL7 消息中的任何位置,但通常位于消息的最后一个段中。处理 HL7 消息的应用程序通常配置为忽略它们不知道如何处理的 HL7 Z 段。
HL7 字段(Fields) #
HL7 消息的每个段由一个或多个组合体(也称为字段)组成。默认情况下,使用 |
(竖线)字符分隔组合体。
组合体可以是原始数据类型(例如字符串或数字),也可以包含其他组合体。如果组合体包含其他组合体,则这些子组合体(或子字段)通常用 ^
字符分隔。如果子组合体也包含组合体,则这些子子组合体通常用 &
字符分隔。子子组合体必须是原始数据类型。
以下是典型组合体的示例,请参考上文示例消息的 PID 段:
PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
在此段中,第五个组合符是患者姓名,即 DOE^JOHN^^^^
。(此组合符末尾的四个 ^^^^
字符表示它总共包含六个子组合符,并且仅定义了前两个子组合符。)在此组合符中,DOE 代表患者的姓氏,JOHN 代表患者的名字。
为了尽可能灵活并达成共识,HL7 委员会被迫将许多字段定义为可选字段。此决定的缺点是,您无法确定特定信息是否会出现在给定消息中。这也是同一条消息在不同供应商之间可能存在显著差异的原因之一。
HL7 分隔符 #
在 HL7 消息中,某些特殊字符用于分隔段内的各个复合信息,或分隔子复合信息。这些特殊字符称为分隔符。
下表列出了 HL7 中使用的默认分隔符:
字符 | 描述 |
---|---|
0x0D | 标记每个段的结束 |
| |
复合分隔符 |
^ |
子复合分隔符 |
& |
子子复合分隔符 |
~ |
分隔重复字段 |
\ |
转义符 |
HL7 消息结构:挑战 #
从技术上讲,HL7 消息采用人类可读的 (ASCII) 格式,但解读起来却并不容易。然而,它们包含大量的段和字段,每个段和字段都包含重要的医疗保健信息。更复杂的是,许多消息因供应商而异,这使得医疗保健机构难以解码和解读。
HL7 Assistant 如何帮助解读 HL7 消息? #
如果您的 HL7 消息包含大量段,您可能需要一种简单的方法来解读这些信息。HL7 Assistant HL7 Assistant 还可以执行其他功能,让您轻松地过滤和转换 HL7 消息。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.redisant.cn/