标准理解
目的
互联互通 实现人识别同时机器识别
技术实现
关注协议与数据标准
不关注技术实现
版本分类
2014年(评测)
32个
23个医院内部使用
9个区域使用
2016年(内部版本)
2020年(内部版本)
69个消息
消息类别
注册类(10)
业务类(34)
查询类(25个)
消息构成
信息段构成
节点信息构建
信息段类别
消息头
消息ID
创建时间
事件标识
发送者标识
接收者标识
其它
消息体(多个信息段构成)
业务类详细信息
数据类型(4个大类11个小类)
ST:String
标识
root:标识编码
extension:标识值
例子:<item root="2.16.156.10011.1.26" extension="0059"/>
时间
时间(06):130624
日期(05):20070803
日期时间(04):20070803130624
日期时间(DT15):20070803T130624
代码表
代码表(03)
codeSystem:代码系统
codeSystemName:代码系统名称
code:代码值
displayName:代码值名称
例子:<administrativeGenderCode code="1" codeSystem="2.16.156.10011.2.3.3.4" displayName="男性"/>
代码表2(09)
codeSystem:代码系统
codeSystemName:代码系统名称
code:代码值
displayName:代码值名称
例子:<code code="1" codeSystem="2.16.156.10011.2.3.1.248" codeSystemName="医疗保险类别代码"> <displayName value="城镇职工基本医疗保险"/> </code>
代码表CD(07)
xsi:type
code
codeSystem
codeSystemName
displayName
例子: <code xsi:type="CD" code="1" codeSystem="2.16.156.10011.2.3.1.248" codeSystemName="医疗保险类别代码" displayName="城镇职工基本医疗保险"/>
代码表CD2(10)
xsi:type
code
codeSystem
codeSystemName
displayName
例子: <code xsi:type="CD" code="1" codeSystem="2.16.156.10011.2.3.1.248" codeSystemName="医疗保险类别代码" > <displayName value="城镇职工基本医疗保险"/\> </code>
代码表ST
xsi:type
值
节点分析法
术语
HL7V3解析:把HL7V3消息解析成数据集结构的数据
HL7V3构建:把数据集结构的数据构建成HL7V3消息
目的
HL7V3消息的解析和构建
定义
任何一个叶子节点可以通过XML唯一的路径可以找到
任何一个叶子节点可以有多个属性和最多有一个节点值
假设一个叶子节点有多个节点属性值的时候,通过值元素值对节点进行构建实现,多个值元素值时用分号分隔,元素值对应元素的节点设置非独立存在
原因:消息中业务数据节点与数据集中的数据元只能一一对应
目的:当消息中业务数据节点有多个属性和节点值的时候,需要扩充非独立节点以满足消息节点的构建与解析需要
举例:
消息类型: 新增个人身份注册请求消息模型
患者标识
属性说明 本地系统(患者类型):非独立存在节点 患者ID:元素值对应元素设置为本地系统的元素键值
节点属性
元素健值:具有唯一性,是节点的唯一标识,系统通过这个标识识别节点中的属性与值
元素名称:人识别名称
数据元类型:元素数据类型
元素路径:XML节点XML文件中完整的路径
元素序号:节点在XML文件的顺序,很重的属性(间隔建议为100为单位)
业务数据结点:如果是业务数据节点,则是末级节点;如果维护非末级节点主要是实现XML特殊的构建(或解析),用来区分节点路径
对应的标准数据元:
如果XML节点有与数据元关联,在这个地方需要维护,以减少后面配置工作
如果是标识类型,并且标识编码需要与数据元进行转换,则这个务必进行数据元维护
属性编码:如果维护这个,表示从XML节点中取值是对应这个属性的值,不维护从XML文件中取值是取节点值
固定属性:XML节点有些是固定的属性编码与属性值,此时通过这个进行维护,在构建XML节点时会自动把这个固定属性带入节点,用于XML构建
元素不独立存在:独立存在是要形成树中的节点或树干,构建时如果不是独立存在,则辅助独立的节点形成相关的属性与值;解析时,获取业务属性值
元素值对应元素:
因为对元素与数据元匹配时是一对一的匹配,如果出现节点出现多个数据属性值或多个数据属性值与值时,通过这个属性的配置实现节点获取其它属性值
多个对应元素:采用逗号分隔
对应元素:不独立存在
代码转换标志:root编码需要作转换时,需要维护对应的数据元,也可以用于非RootID转换
值依赖属性:节点路径一样,这时无法区分节点唯一路径,可以定义值依赖属性来识别路径,用于XML解析
代码名称编码:代码名称不维护则名称displayName显示,如果协议规则特别的名称需要维护 代码表名称
脱敏表达式:信息脱敏,把数据信息变成类似的*号,如*{1,6},把1位到6位用*代替
卫生部数据元:与互联互通HL7V3消息规范一致
节点属性分类
解析
元素键值
节点值获取:根据节点的完整的节点路径获取元素键值
节点属性值:节点的完整路径加上属性编码
元素路径
帮助找到元素键值,在解析hl7倒树的时候,对解析的节点进行拼接的路径与元素路径对比,如果一致的时候就可以找到元素键值
业务数据节点
配置的时候只显示业务数据节点
在解析的时候只对元素属性为业务数据节点的节点进行数据解析
数据元
自动化生成数据集中的数据元与消息中的元素对应的关系
属性编码
节点路径与属性编码组合找出节点属性值
元素不独立存在
节点路径与属性编码组合找出节点属性值
代码转换标志
把HL7V3的代码表或root标识转成数据集标准中的代码表
值依赖属性
消息中节点路径重复的情况下,增加值依赖属性来区分节点路径
构建
元素键值
节点值获取:根据节点的完整的节点路径获取元素键值
节点属性值:节点的完整路径加上属性编码
数据元类型
根据数据元类型生成节点信息
元素路径
根据元素路径生成消息节点信息
元素序号
消息节点的顺序
业务数据结点
生成消息的时候从数据集中获取数据生成节点数据
对应的标准数据元
自动化生成消息中的元素与数据集中的数据元对应的关系
属性编码
生成节点属性
固定属性
生成节点属性
元素值对应元素
构建一个具有多个节点属性或者多个节点属性与节点值的节点
元素不独立存在
作为元素值对应元素配置时用到的元素
代码转换标志
把数据集标准中的代码表转成HL7V3的代码表或root标识
代码名称编码
代码表名称不采用标准的displayName命名的时候,需要维护代码表名称
脱敏表达式
隐私安全
其他
卫生部数据元
与互联互通评测
协议实现
约定与假设
每个消息段第一个业务数据对应的节点路径具有唯一标识,如果节点不能构成唯一标识,需要加上值依赖属性来区分
如果节点路径一样,在消息定义所有的节点要么是数据节点,要么是非数据节点
交换消息与数据集是一一对应
标准扩充方式(节点分析方法)
节点值或节点属性值与数据元一一对应
节点类型Root
extension
标识编码是代码表
功能
消息定义
消息分类定义
消息段定义
消息段如果重复次数{0,1}可以不建消息段,采用默认消息段
出现标志
根据V3消息定义中的设置
消息定义
actionname
消息唯一性的确定,也是v3消息交互接口的参数
固定属性
HL7V3消息根节点的属性
匹配
消息与数据集匹配
解析匹配
构建匹配
查询请求匹配
查询返回匹配
数据元与节点
代码转换标志
值
RootOid
对应到标识编码而不是标识值,如就诊类型
值转换标志
普通列:元素与数据元是一对一的关系
RootOid
如果root编码需要作代码转换前提条件
数据元是值域代码
rootOidi对应数据元是值域代码
常量
自定义的常量
固定常量
sysDate:系统时间
msgID:消息ID
pubCode:发布者编码
subCode:订阅者编码
errMsg:返回错误信息
empiID:返回empiID
基础数据转换
参照适配端文档:31-信息集成平台之适配端用户操作手册
计算公式
说明
参照JS语法编写
通过js编写一个计算函数
构建时参数
数据元作为参数需要把.转换成_
多个值作为参数用,分隔
例子:DE05_01_081_01,DE05_01_081_00
解析时传参
消息元素键值作为参数,多个用逗号分割
例子:M201000680,M201000660,M201000670
函数体实现
返回一个值
构建例子:
if(DE05_01_081_00 =="1"){ return DE05_01_081_01 }else{ return ''; }
解析例子:
if(M201000680 =="1"){ return M201000660; }else if(M201000680 =="2"){ return M201000670; }else { return M201000660; }
工具
格式化工具
两个文件比较
UE
查找重复节点
P_Find_RepetitionNodeV3在plsql执行
验证步骤
准备工作
确定交换点
找到相应的数据集
V3订阅验证
定义测试发布者
定义发布者
定义发布者采用协议(JSON、XML)
发布发布数据集
定义测试订阅者
订阅订阅者
定义订阅者协议为V3
订阅者订阅数据集
用发布工具进行发布
用订阅工具订阅V3
V3发布验证
用订阅回来的V3进行消息发布
完善数据集与V3消息
在测试数据集中删除一个数据元
在测试的消息中删除与数据元对应的消息节点
用修改后的数据集与消息进行发布与订阅
在测试的数据集增加一个删除的数据元
在测试的消息中增加删除的消息节点
在发布匹配与保存匹配中对数据元与消息节点进行匹配
用发布与订阅方法测试完善后的数据集与消息
流程角度
数据标准化
数据集数据项导出
整理到标准模板中
增加新增数据项(标准模板)
平台核对新增数据元
有
无
新增数据元
值域代码
有
无 新增数据元
在数据集模板中增加数据元
在数据集中增加数据元
发布物理表
协议标准化
订阅一个V3消息,作为例子
在例子中增加要设计的节点
导出V3消息,新增、修改、查询请求与查询结果
节点设计,在导出模板中增加节点
V3定义中增加节点
V3与数据集匹配
构建匹配
解析匹配
查询请求配置
查询返回匹配
验证
参照上面方法