文章目录

  • HL7知识梳理
    • 写在前面
    • 1.介绍
    • 2.HL7结构介绍
      • 2.1 段(Segments)
        • 2.1.1 段名称: MSH (消息头)
        • 2.1.2 段名称: PID (患者信息)
        • 2.1.3 段名称: NK1 (近亲信息)
        • 2.1.4 段名称: PV1 (患者就诊信息)
        • 2.1.5 段名称: PV2(患者就诊附加信息)
        • 2.2.6 段名称: ORC(医嘱命令所做的检查项目)
        • 2.2.7 段名称: OBR
        • 2.2.8 段名称: OBX(用于记录观察的结果)
        • 2.2.9 段名称: QRD
        • 2.2.10 段名称: QRF
        • 2.2.11 段名称: DSP
        • 备注
      • 2.2 域(fields)
        • 2.2.1 域分隔符举例说明
    • 3. HL7数据类型
    • 4.HL7 message type消息类型

HL7知识梳理

写在前面

  1. 从去年开始,从事医疗行业,然后接触到HL7协议,刚入门的时候没有大佬带,全靠自己混百度、google,发现网上关于HL7的文章真的很少,而且很零散,特别是刚入门的小伙伴,看到内容就已经觉得比较头疼,自己总结了些经验,希望对大家有帮助,相互学习交流!开发语言为Java + Hapi v24 + Netty + Mllp,后续也会介绍,通过Apache Camel的Mllp,来进行Hl7的解析,东西比较多,可能写着写着自己都乱了哈哈哈哈

1.介绍

  1. HL7 缩写于Health Level Seven,是创建于1987年,用来发展独立卫生保健行业的电子交换交换标准,经过多年的发展,HL7已经有多个版本(这个介绍网上资料有很多,大家可以自行查找)
  2. 简单的理解其实就像XML,JSON格式一样,HL7也是一种数据格式,可以理解为一个包含很多行字符串的消息体,这一整个就是一个HL7消息内容
  3. 那么我们就结合实际的案例来看下HL7到底是个什么东西
  4. HL7官网 http://www.hl7.org/,可下载对应版本文档
  5. Hapi官网 https://hapifhir.github.io/hapi-hl7v2/

2.HL7结构介绍

例如:下面就是一个ADT_A09类型下的A10的消息,查阅官方文档中,A10是 Patient arriving—> 患者到达 的消息,当然大部分情况下,我们都是根据厂商提供的文档来进行解析,而厂商也是参考HL7官方的文档,来确定他们的消息内容,我这里的A10,代表的是入院消息。好了,接下来我们把它一层层分解来看

MSH|^~\&|MediII|MediInfo|WXXD|YX|20200720151947||ADT^A10^ADT_A09|cc492d953bb14b7991f73391e3775ec8|P|2.4
EVN|A10|20210720151947||||20210720151947
PID||357778999^0|357778999^^^JG01~155484212^^^JG02~5484213565^^^JG03~~~326632365516^^^JG06~78554215^^^JG07~212545wwe^^^JG08~~4581584^^^JG10~|0|ZhangSan^张三||19440426000000|1|||北京市朝阳区xxxx街道^260005^260005^260005^260005^^H^^260005~^^^^-^^W^-~北京市朝阳区xxxx街道^260005^260005^260005^^^R||^^01^^^^18365655555~^^02|||||330227194404267517|3325626262688888|||01^汉族|北京/朝阳/xx街道|||||156^中国||0
PV1|2|I|06^06^06481^0505055&胸外科一&0^^胸外科(1)病区|R|||10178^^梁三^^^^^^^^^^^0402&胸外一D组|||||||||||150|10107360||YKT301||||20210720|||||||||||||||||0505055^^^1||20200720151947||||||2|V|10178^^梁三~16388^^曹四
OBX|0|NM|25^年龄||77|岁|||||F|||20200720151947
DG1|1|E11.900||2型糖尿病||A

2.1 段(Segments)

什么是段?

  • 在HL7消息中,消息的每个部分都包含一类特定的信息,例如患者信息或患者就诊数据。这里提到的部分就是段,也就是每一行后都会有一个回车符 < CR >

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

2.1.1 段名称: MSH (消息头)

段包含有关消息本身的信息。该信息包括消息的发送者和接收者、消息的类型以及发送的日期和时间。每个HL7消息都将MSH指定为其第一段。

2.1.2 段名称: PID (患者信息)

段包含有关患者的人口统计信息,例如姓名、患者ID和地址

2.1.3 段名称: NK1 (近亲信息)

细分包含患者近亲的联系信息

2.1.4 段名称: PV1 (患者就诊信息)

部分包含有关患者住院时的信息,例如分配的位置和推荐医生。

2.1.5 段名称: PV2(患者就诊附加信息)

2.2.6 段名称: ORC(医嘱命令所做的检查项目)

2.2.7 段名称: OBR

关于诊断以及观察的请求信息,用于记录医嘱信息

2.2.8 段名称: OBX(用于记录观察的结果)

2.2.9 段名称: QRD

查询定义段,用来定义查询的内容查询时间、编码格式、优先等级、ID号、请求数据的最大值、请求方的信息、所要请求的内容、数据编码的部门信息

2.2.10 段名称: QRF

进一步定义查询内容

2.2.11 段名称: DSP

重复消息段 装载LIS返回的报告结果,需要用循环的方式把数据取出

备注

  • 由于HL7消息用于将各种与医疗保健相关的信息传递到各种不同的系统,因此有时HL7消息需要包含自定义数据。为了适应这种情况,HL7标准使系统供应商可以创建带有自定义字段的Z段,以传输此数据。

  • 按照惯例,所有自定义段都以字母Z开头。例如,可以创建ZPD段以包含自定义的患者人口统计信息。Z段可以放置在HL7消息中的任何位置,但是通常位于消息中的最后一段。

  • 通常,处理HL7消息的应用程序配置为忽略不知道将如何处理的HL7 Z段。这个后续是个大坑!!

2.2 域(fields)

分隔符 “|”

  • HL7消息的每个段都包含一个或多个域(也称为fields)。默认情况下,竖线(|)字符用于将一个域与另一个域分开。

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

  1. "|"分隔符中可以包含其他的分隔符:
  2. “^” 成分分隔符,表示该位置有多个属性,例如:|101761^熊婷| 该位置是患者信息,101761是患者编号 熊婷是患者名字
  3. “~” 子成分分隔符,成分的下一分级
  4. “&” 表示该位置是数组结构,类型相同可以循环 例如:|&张三|&李四

2.2.1 域分隔符举例说明

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委员会被迫将许多细分段定义为可选段,该决定的不利之处是您不能确定特定的信息会出现在给定的消息中,这也造成了同一消息可能因供应商而异。


3. HL7数据类型

类型编码 类型说明
ST 字符串
TX 文本数据
FT 格式化文本
NM 数字
SI 序列id
SN 结构化数据
ID HL7表的编码值
IS 用户定义表的编码
EI 实体标识符
DT 日期
TM 时间
CE 编码要素
CX 具有校验数位的扩展符合ID
XCN 扩展符合ID号和ID名
XAD 扩展地址
XPN 扩展姓名
XTN 扩展通讯号码

4.HL7 message type消息类型

1. ADT admit disCharge transfer 入院、出院、转院
2. ACK acknowledgement message 应答消息
3. BAR biling account record 账单账户记录
4. DFT detailed financial transactions 详细的金融交易
5. MDM Medical document management 医疗文件管理
6. ORM order entry 订单录入
7. ORU Observation result (unsolicited) 观察结果 非请求观察
8. RDS pharmacy/treatment dispense 药房/治疗 配药
9. RDE pharmacy/treatment encoded order 药房/治疗 编码顺序
10. SIU schedlued information unsolicited 调度信息 非请求观察

HL7协议介绍(一)相关推荐

  1. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  2. open source license主流的开源软件协议介绍

    open source license主流的开源软件协议介绍(20190222) 文章目录: 一.开源软件的直观介绍 二.常用开源协议介绍 三.常用开源协议之间的对比 当Adobe.Microsoft ...

  3. SNMP协议介绍和操作截图

    第一章 SNMP协议介绍 SNMP协议 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的 ...

  4. VRRP协议介绍--转

    http://www.cnblogs.com/jony413/articles/2697404.html VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Rout ...

  5. Python教程之udp和tcp协议介绍

    UDP介绍 UDP - 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议.UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地.由于UDP在传输数据 ...

  6. (4)ZYNQ AXI4总线协议介绍

    1.1 ZYNQ AXI4总线协议介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)ZYNQ AXI4总线协议介绍: 5)结束语. 1.1.2 本节引言 " ...

  7. 音视频直播流程及常见视频流协议介绍

    音视频直播流程介绍 常见视频流协议介绍 HLS HLS是苹果公司实现的基于 HTTP 的流媒体传输协议,全称 HTTP Live Streaming,可支持流媒体的直播和点播,主要应用在 iOS 系统 ...

  8. SNMP 网络协议介绍

    这里填写标题 1. SNMP 网络协议介绍 1.1. 什么是 SNMP 1.1.1. 概述 1.1.2. SNMP 版本 1.2. OIDs 1.2.1. 什么是 OID 1.2.1.1. 可查询数量 ...

  9. AMBA协议介绍(1)——APB协议

    系列文章目录 AMBA协议介绍(1)--APB协议 AMBA协议介绍(2)--AHB协议 AMBA协议介绍(3)--AXI协议 目录 AMBA协议介绍 AMBA协议介绍(1)--APB协议 前言 一. ...

  10. Thingsboard 物联网平台 CoAP 协议介绍

    可复制:121202538 中文社区:http://thingsboard.org.cn TB的MQTT设备协议 TB官网: https://thingsboard.io/ TB GitHub: ht ...

最新文章

  1. flex module不编译的问题
  2. 李宏毅机器学习完整笔记发布,AI界「最热视频博主」中文课程笔记全开源
  3. Chrome 90 里更好的字符串处理机制
  4. linux开发板 杭州迈冲,杭州迈冲科技MC9G20-DK评估开发板
  5. 马哥Linux网络班作业(6)
  6. 世界上最成熟、功能最全的加密库HELib
  7. opencv_python学习笔记十三
  8. 【matlab安装】手把手图文并茂安装matlab2021(win10版)
  9. 大数据人工智能发展趋势与前景
  10. 基于Python的指数基金量化投资——估值数据的直接获取
  11. 流媒体弱网优化之路(FEC+mediasoup)——mediasoup的Nack优化以及FEC引入
  12. UVa 1586 Molar mass
  13. java.exe占用cpu高_Java进程cpu占用过高问题解决
  14. 微信小程序发现的一些小问题以及解决方案集合以及注意点
  15. 音视频开发之旅(67) - 变速不变调之sonic源码分析
  16. 小学生html教程,一个在加华人妈妈整理的30个小学生学习网站
  17. 叶飘落,诉说着冷寂与孤独
  18. 洛克人java下载_洛克人-威利博士末日
  19. 什么是常识?一个人独立生活所具备的能力
  20. php 微信分享功能_基于thinkPHP实现的微信自定义分享功能

热门文章

  1. 北京天通苑二房东、黑中介
  2. Idea Debug 时 JAVA对象转Json字符串 的操作
  3. linux模拟tcp测试工具,TCP测试小工具tcping for linux
  4. python qt5 安装
  5. Qt 车牌识别 (EasyPR)
  6. 基于FPGA的CNN算法移植(一)概述
  7. Xen调度分析-RT
  8. 阵列信号处理知识点合集
  9. 技巧积累篇--Dashboard使用技巧
  10. higtech软件的使用