HL7消息结构

HL7消息用于在不同的医疗保健系统之间传输电子数据,每个消息发送相关特定事件(例如患者入院)的信息。HL7消息采用人类可读格式,本节介绍HL7消息的内容以及HL7消息的组织方式。 

HL7消息由一个或多个段(segment)组成。每个段显示在不同的文本行上。回车符(\ r,十六进制为0D)将一个段与另一个段分隔。 

每个段由一个或多个域(fields)组成。竖线(|)字符用于将一个域与另一个域分开。如果某个域包含多个元素(Component),则这些元素通常以脱字符(^)字符分隔。 

 

以下各节将进一步详细介绍HL7消息的复杂性以及如何阅读该标准。有关不同的HL7消息类型及其用途的更多信息,请参见我们的HL7消息类型页面。

HL7 段 (Segments)

在HL7消息中,消息的每个部分都包含一类特定的信息,例如患者信息或患者就诊数据。

消息中每个段的名称由该段的第一个域(fields)指定,该域始终为三个字符。HL7消息中可使用超过120个不同的HL7段,此示例消息包含四个HL7段:MSH,PID,NK1和PV1。不同类型的HL7消息包含不同的HL7段。

MSH|^~\&|EPIC|EPICADT|SMS|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消息的每个段都包含一个或多个域(也称为fields)。默认情况下,竖线(|)字符用于将一个域与另一个域分开。

域可以是原始数据类型(例如字符串或数字),也可以包含多个元素(Component)。如果某个域(fields)包含多个元素,则这些元素(Component)通常以^字符分隔如果元素还包含子元素(Subcomponent),则这些子元素通常以字符分隔,子元素(Subcomponent)必须是原始数据类型(例如字符串或数字)。

对于典型组的示例,请考虑上一节中看到的示例消息的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中使用的默认定界符:

 

字符 目的
0x0D 标记每个段的结尾。
| 域(Fields)定界符。
^ 元素(Component)定界符。
& 子元素(Subcomponent)定界符。
分隔重复组。
\
转义符。

  

 



参考资料:

posted @   潤沁網路大學  阅读(2067)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
潤沁網路大學
点击右上角即可分享
微信分享提示