一、HL7 卫生信息交换标准(Health Level 7)
标准化的卫生信息传输协议,是医疗领域不同应用之间电子传输的协议。HL7汇集了不同厂商用来设计应用软件之间接口的标准格式,它将允许各个医疗机构在异构系统之间,进行数据交互。
作为信息交换标准,HL7 自1987年发布V1.0版后相继发布了v2.0 v2.1 v2.2 v2.3 v2.3.1 ,
2000年发布了v2.4版,现已用 XML 开发了v3.0版,
但 HL7 v2.4 版本仍是 ANSI 正式发布的版本。所以我们学习 HL7 2.4 版本即可
二、HL7协议解析
消息结构
HL7标准包含256个事件、116个消息类型、139个段、55种数据类型、408个数据字典,涉及79种编码系统。
MSH|^~\&|Mindray|Gateway|||||ORU^R01|2|P|2.3.1| <CR>
PID|||M1015_00010||John^||20091112|M|||^^^^||| <CR>
PV1||I|^^ICU&Bed5&3232241659&0&0|||||||||||||||A||||||||||||||||||||||||||20091201111211 <CR>
OBR||||Mindray Monitor|||20091203121631| <CR>
OBX||NM|52^Height||169.0||||||F <CR>
OBX||NM|51^Weight||59.0||||||F <CR>
OBX||CE|2302^BloodType||1^A||||||F <CR>
OBX||CE|2303^PACE_Switch||0^Off||||||F <CR>
OBX||NM|101^HR|2101|60||||||F <CR>
OBX||NM|151^RR|2102|20||||||F <CR>
OBX||NM|200^T1|2104|37.00||||||F <CR>
每个HL7消息Message都有多个段Segment组成,每个段都以回车(<CR>)结尾
每个段最开始的3个大写字母表示段的唯一标识,如MSH(message header)表示消息头,PID(patient identity)标识病人唯一标识,PVI(patient visit)标识病人的一些基本信息如床号等。这些段的含义都是HL7标准里定义的。
每个段有包含多个域(Fileld),field之间用 | 分割。如果一个field没有被使用就什么都不用写,者就是很多两个域分隔符之间什么都没有的原因。每个field在段中都有一个序号(SEQ),各个field的序号和含义都是HL7标准中定义的,我们可以只使用其中一部分field。(有些field是必须出现的,不能省略,必须传值)
每个field又可以包含多个Component(组件),component之间用 ^ 分割
如 52^Height
一个component又可以包含多个Sub component(子组件),子组件之间用 &分割
如ICU&Bed5&3232241659&O&O
HL7自定义段 Z-段
https://www.jianshu.com/p/5993145c2818
三、HL7传输协议
HL7消息通过各种TCP/IP传输发送,其中一些包括:
- 下层协议(LLP)
- 文件传输协议(FTP)
- 简单对象访问协议(SOAP)
- 简单邮件传输协议(SMTP)
尽管HL7可以使用多种传输协议进行数据传输,但用于实时点对点接口的最常见传输方法是LLP;对于需要批量处理HL7的系统,通常使用FTP。