【HL7】快速入门 HL7 协议

博主目前在实习,需要接触到 HL7 协议,本着快速入门好继续摸鱼的想法,现在赶快总结学习一下 HL7。部分资料来自网上收集!

HL7 基本介绍

HL7 全称卫生信息交换标准(Health Level 7),标准化的卫生信息传输协议,是医疗领域不同应用之间电子传输的协议。HL7 汇集了不同厂商用来设计应用软件之间接口的标准格式,它将允许各个医疗机构在异构系统之间,进行数据交互。
HL7 的主要应用领域是 HIS/RIS,主要是规范 HIS/RIS 系统及其设备之间的通信,它涉及到病房和病人信息管理、化验系统、药房系统、放射系统、收费系统等各个方面。
HL7的宗旨是开发和研制医院数据信息传输协议和标准,规范临床医学和管理信息格式,降低医院信息系统互连的成本,提高医院信息系统之间数据信息共享的程度。
通俗点讲,只要大家去医院办理事情,背后的数据协议肯定是 HL7,数据的格式也是 HL7,也是因为医院的信息系统业务复杂,间接导致了 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 消息结构

HL7 标准包含256个事件、116个消息类型、139个段、55种数据类型、408个数据字典,涉及79种编码系统。
在 HL7 中,有四个最基本的术语概念:

  • 触发事件(trigger events):当现实世界中发生的事件产生了系统间数据流动的需求,则称其为触发事件。也可以理解为一个数据请求
  • 消息(message):它是系统间传输数据的最小单位,由一组有规定次序的段组成。每个消息都是用一个消息类型来表示其用途
  • (segment):它是数据字段的一个逻辑组合。每个段都用一个唯一的三字符代码所标志,这个代码称作段标志。
  • 字段(field):它是一个字符串,是段的最小组成单位。

在 HL7 中,消息(Message)是数据在系统之间交换的基本单元,每条消息都有各自的消息类型,消息类型用于定义消息目的,包含了触发事件。一个消息由多个段(Segment)组成,每一个段都有相应的名称,用于界定其内容或者功能。
一个段又由多个字段(Field)组成。一个消息中的第一个段总是消息头段(Message head segment),它指明了发送和接收的程序名、消息类型、以及一个唯 一的消息ID号码等,接下去段的构成由消息的类型决定。
一个字段又有可能由多个组件(Component)组成。有些消息可进一步由事件码(event code)细分。

HL7 简单示例

MSH|^~\&|Mindray|Gateway|||||ORU^R01|2|P|2.3.1|  
PID|||M1015_00010||John^||20091112|M|||^^^^||| 
PV1||I|^^ICU&Bed5&3232241659&0&0|||||||||||||||A||||||||||||||||||||||||||20091201111211  
OBR||||Mindray Monitor|||20091203121631|  
OBX||NM|52^Height||169.0||||||F  
OBX||NM|51^Weight||59.0||||||F  
OBX||CE|2302^BloodType||1^A||||||F  
OBX||CE|2303^PACE_Switch||0^Off||||||F  
OBX||NM|101^HR|2101|60||||||F  
OBX||NM|151^RR|2102|20||||||F  
OBX||NM|200^T1|2104|37.00||||||F 

总的来说

  • 每个消息会包含多个段,如上述代码,表示一个消息,每个段之间通过分割回车
  • 每个段又会包含多个字段,消息头段定义了段的类型,比如 MSH 表示这个段是消息头,段中又会包含多个字段
  • 每个字段使用 | 分隔,如果对应的字段没有数据也不能省略 | ,这是因为每个字段在段中都有一个序号(SEQ),每个段有多少个字段、各个字段的序号和含义等都是在 HL7 协议中规定好的!
  • 每个字段会包含多个组件,字段中不同的组件使用 ^ 分隔,比如 2302^BloodType
  • 每个组件又可以包含多个子组件,子组件之间用 & 分隔,比如 ICU&Bed5&3232241659&0&0 (包含5个子组件)

那么,在上述 HL7 数据中,
MSH 表示消息头段,前面 5 个字符 |^~\& 是第一个字段,定义了分隔符。
Mindray 是第二个字段,Gateway 是第三个字段,后面四个字段没有用到,第八个字段是 ORU^R01(包含两个组件)

好了,先说到这里,让我缓缓,已经不认识 段 这个字了。。

部分参考自 https://www.jianshu.com/p/5993145c2818

你可能感兴趣的:(Java基础,网络协议)