前 言
WS/T XXXXX《医院信息平台交互规范》分为以下十一部分:
第1部分:总则
第2部分:个人信息注册、查询服务;
第3部分:医疗卫生机构注册、查询服务;
第4部分:医疗卫生人员注册、查询服务;
第5部分:术语注册、查询服务;
第6部分:文档注册、查询服务;
第7部分:就诊信息交互服务;
第8部分:医嘱信息交互服务;
第9部分:申请单信息交互服务;
第10部分:预约信息交互服务;
第11部分:状态信息交互服务。
本部分为WS/T XXXXX的第1部分。
本部分按照GB/T 1.1—2009给出的规则起草。
本部分主要起草单位:国家卫生健康委统计信息中心、无锡市人民医院、上海市申康医院发展中心、中国医科大学附属第一医院、中国人民解放军总医院、浙江大学附属第一医院、四川大学华西医院、中国医学科学院北京协和医院、中国人民解放军空军军医大学、华中科技大学同济医学院、中国软件评测中心、国家计算机质量监督检验中心。
本部分主要起草人:张学高、胡建平、李岳峰、董方杰、沈崇德、何萍、邵尉、刘敏超、周敏、
黄勇、朱卫国、徐勇勇、沈丽宁、黄江平、边红丽、苏明亮、赵宇明、许德俊、孟晓、郑良。
医院信息平台交互规范
第1部分:总则
1. 范围
WS/T XXXXX的本部分规定了医院信息平台交互服务的分类体系、消息规范、消息头、消息体内容的记载要求、交互规范文档制定的基本规则以及交互规范文档的内容结构。
本部分适用于二、三级医院信息系统间的信息交互与共享。
2. 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 7408 数据元和交换格式 信息交换 日期和时间表示法
GB/T 11714 全国组织机构代码编制规则
GB/T 26231-2010 信息技术 开放系统互连 OID的国家编号体系和注册规程
WS 218 卫生机构(组织)分类与代码
WS 363-2011 卫生信息数据元目录
WS 364-2011 卫生信息数据元值域代码
WS 365-2011 城乡居民健康档案基本数据集
WS 445-2014(所有部分) 电子病历基本数据集
WS/T 500-2016(所有部分) 电子病历共享文档规范
3. 术语和定义
GB/T 7408、GB/T 11714、GB/T 26231-2010、WS 218、WS 363-2011、WS 364-2011、WS 365-2011、WS 445-2014(所有部分)、WS/T 500-2016(所有部分)中界定的术语和定义均适用于本文件。
3.1 角色
角色是指产生数据、管理数据或者按照数据动作的系统或者部分系统。
3.2 交易
交易是指角色对某个特定服务的调用过程。
3.3 可选项
描述节点在服务模型中是否为必填,R(Required)表示必填,O(Optional)表示可选。
4. 服务分类体系
医院信息平台交互服务分类体系如表1所示,共分为10个类别。
表1 医院信息平台交互服务分类体系
一级类目 | 二级类目 | |
服务名称 | 服务代码 | |
个人信息注册、查询服务 | 个人信息注册服务 | PatientInfoRegister |
个人信息更新服务 | PatientInfoUpdate | |
个人信息合并服务 | PatientInfoMerge | |
个人信息查询服务 | PatientInfoQuery | |
医疗卫生机构注册、查询服务 | 医疗卫生机构(科室)信息注册服务 | OrganizationInfoRegister |
医疗卫生机构(科室)信息更新服务 | OrganizationInfoUpdate | |
医疗卫生机构(科室)信息查询服务 | OrganizationInfoQuery | |
医疗卫生人员注册、查询服务 | 医疗卫生人员信息注册服务 | ProviderInfoRegister |
医疗卫生人员信息更新服务 | ProviderInfoUpdate | |
医疗卫生人员信息查询服务 | ProviderInfoQuery | |
术语注册、查询服务 | 术语注册服务 | TerminologyRegister |
术语更新服务 | TerminologyUpdate | |
术语查询服务 | TerminologyQuery | |
文档注册、查询服务 | 电子病历文档注册服务 | DocumentRegister |
电子病历文档调阅服务 | DocumentAccess | |
电子病历文档检索服务 | DocumentRetrieve | |
就诊信息交互服务 | 就诊卡信息新增服务 | EncounterCardInfoAdd |
就诊卡信息更新服务 | EncounterCardInfoUpdate | |
就诊卡信息查询服务 | EncounterCardInfoQuery | |
门诊挂号信息新增服务 | OutPatientInfoAdd | |
门诊挂号信息更新服务 | OutPatientInfoUpdate | |
门诊挂号信息查询服务 | OutPatientInfoQuery | |
住院就诊信息登记服务 | InPatientInfoAdd | |
住院就诊信息更新服务 | InPatientInfoUpdate | |
住院就诊信息查询服务 | InPatientInfoQuery | |
住院转科信息新增服务 | TransferInfoAdd | |
住院转科信息更新服务 | TransferInfoUpdate | |
住院转科信息查询服务 | TransferInfoQuery | |
出院登记信息新增服务 | DischargeInfoAdd | |
出院登记信息更新服务 | DischargeInfoUpdate | |
出院登记信息查询服务 | DischargeInfoQuery | |
医嘱信息交互服务 | 医嘱信息新增服务 | OrderInfoAdd |
医嘱信息更新服务 | OrderInfoUpdate | |
医嘱信息查询服务 | OrderInfoQuery | |
申请单信息交互服务 | 检验申请信息新增服务 | ExamAppInfoAdd |
一级类目 | 二级类目 | |
服务名称 | 服务代码 | |
申请单信息交互服务 | 检验申请信息更新服务 | ExamAppInfoUpdate |
检验申请信息查询服务 | ExamAppInfoQuery | |
检查申请信息新增服务 | CheckAppInfoAdd | |
检查申请信息更新服务 | CheckAppInfoUpdate | |
检查申请信息查询服务 | CheckAppInfoQuery | |
病理申请信息新增服务 | PathologyAppInfoAdd | |
病理申请信息更新服务 | PathologyAppInfoUpdate | |
病理申请信息查询服务 | PathologyAppInfoQuery | |
输血申请信息新增服务 | BloodTransAppInfoAdd | |
输血申请信息更新服务 | BloodTransAppInfoUpdate | |
输血申请信息查询服务 | BloodTransAppInfoQuery | |
手术申请信息新增服务 | OperationAppInfoAdd | |
手术申请信息更新服务 | OperationAppInfoUpdate | |
手术申请信息查询服务 | OperationAppInfoQuery | |
预约信息交互服务 | 号源排班信息新增服务 | SourceAndScheduleInfoAdd |
号源排班信息更新服务 | SourceAndScheduleInfoUpdate | |
号源排班信息查询服务 | SourceAndScheduleInfoQuery | |
门诊预约状态信息新增服务 | OutPatientAppointStatusInfoAdd | |
门诊预约状态信息更新服务 | OutPatientAppointStatusInfoUpdate | |
门诊预约状态信息查询服务 | OutPatientAppointStatusInfoQuery | |
检查预约状态信息新增服务 | CheckAppointStatusInfoAdd | |
检查预约状态信息更新服务 | CheckAppointStatusInfoUpdate | |
检查预约状态信息查询服务 | CheckAppointStatusInfoQuery | |
状态信息交互服务 | 医嘱执行状态信息更新服务 | OrderFillerStatusInfoUpdate |
医嘱执行状态信息查询服务 | OrderFillerStatusInfoQuery | |
检查状态信息更新服务 | CheckStatusInfoUpdate | |
检查状态信息查询服务 | CheckStatusInfoQuery | |
检验状态信息更新服务 | ExamStatusInfoUpdate | |
检验状态信息查询服务 | ExamStatusInfoQuery | |
手术排班信息新增服务 | OperationScheduleInfoAdd | |
手术排班信息更新服务 | OperationScheduleInfoUpdate | |
手术排班信息查询服务 | OperationScheduleInfoQuery | |
手术状态信息更新服务 | OperationStatusInfoUpdate | |
手术状态信息查询服务 | OperationStatusInfoQuery |
5. 内容结构
具体交互规范文档的内容结构要求如表2所示。
表2 交互规范文档内容结构
6. 交互接口定义
交互接口的定义如表3所示。
表3 交互接口定义
7. 消息规范
7.1 消息结构
消息结构是针对卫生行业消息交互需求而制定的一套文档标记语言及规范,目的是解决医疗卫生领域中异构系统之间消息的互联互通。
消息规范借鉴国际上已有的成熟消息标准ISO/HL7 V3,同时结合我国医疗卫生实际情况,对HL7 V3交互服务进行本土化约束和适当扩展,以制定适合我国医疗卫生环境下的卫生行业消息交互规范。
消息包括3部分,分别为传输包、控制行为包和消息体,其结构如图1所示。
图1 消息结构
7.2 消息传输包
所有消息应包含传输包,传输包中包含可选型元素以及一些必要元素,如表4所示。
表4 传输包元素列表
元素名称 | 元素描述 |
---|---|
id | 消息流水号 |
creationTime | 消息创建时间 |
interactionId | 消息的服务标识 |
processingCode | 处理代码。标识此消息是否是产品、训练、调试系统的一部分。P:产品;T:训练;D:调试。 |
processingModeCode | 处理模型代码。定义此消息是一个文档处理还是一个初始装载的一部分。A:存档;I:初始装载;R:从存档中恢复;T:当前处理,间隔传递。 |
acceptAckCode | 接收确认类型。 AL:总是确认;NE:从不确认;ER:仅在错误/或拒绝时确认;SU:仅在成功完成时确认。 |
receiver | 消息的接收者。 |
sender | 消息的发送者。 |
acknowledgement | 响应消息的结果代码(AA表示成功,AE表示失败)和请求消息的id。 |
7.3 消息控制行为包
控制行为包中包含作为一个消息交互传输的管理相关信息,用来传输系统之间进行协作的必要逻辑的状态或者命令。例如消息查询和查询响应之间的交互、注册行为之间的交互。可包含的元素如表5所示。
表5 控制行为包元素列表
元素名称 | 元素描述 |
---|---|
code | 事件代码 |
text | 事件文本描述 |
effectiveTime | 事件时间 |
priorityCode | 事件优先级代码 |
reasonCode | 原因代码 |
languageCode | 语言代码 |
overseer | 监督者 |
authorOrPerformer | 作者或执行者 |
dataEnterer | 录入者 |
informationRecipient | 信息接收者 |
reasonOf | 起因 |
subject | 消息主体根元素 |
queryByParameter | 查询类消息的特有消息主体根元素 |
extension | 消息扩展根元素 |
7.4 消息体
消息体在具体交的互服务中体现。
7.5 消息扩展
消息扩展中存放消息体未覆盖到的信息,扩展的消息模型如表6所示。
表6 扩展消息模型
节点 | 基数 | 可选项 | 节点说明 |
---|---|---|---|
extension | 0..* | O | 消息扩展根元素 |
extension/component | 0..* | O | 编码类型数据 |
extension/component/observation/code/@code | 1..1 | R | 描述数据的代码 |
extension/component/observation/code/originalText /@value | 1..1 | R | 数据的描述 |
extension/component/observation/value/@code | 1..1 | R | 数据结果代码 |
extension/component/observation/value/@codeSystem | 0..1 | O | 数据结果采用的编码OID |
extension/component/observation/value/@codeSystemName | 0..1 | O | 数据结果采用的编码OID描述 |
extension/component/observation/value/displayName/@value | 1..1 | R | 数据结果描述 |
extension/component | 0..* | O | 数值类型数据 |
extension/component/observation/code/@code | 1..1 | R | 描述数据的代码 |
extension/component/observation/code/originalText /@value | 1..1 | R | 数据的描述 |
extension/component/observation/value/@value | 1..1 | R | 数据结果取值 |
extension/component/observation/value/@unit | 1..1 | R | 数据结果单位 |
extension/component | 0..* | O | 字符串类型数据 |
extension/component/observation/code/@code | 1..1 | R | 描述数据的代码 |
extension/component/observation/code/originalText /@value | 1..1 | R | 数据的描述 |
extension/component/observation/value/@value | 1..1 | R | 数据结果 |
extension/component | 0..* | O | 布尔类型数据 |
extension/component/observation/code/@code | 1..1 | R | 描述数据的代码 |
extension/component/observation/code/originalText /@value | 1..1 | R | 数据的描述 |
extension/component/observation/value/@value | 1..1 | R | 数据结果(false/true) |
附录A(规范性附录) 消息示例
消息扩展示例
<QUMT_IN020040UV01 xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ITSVersion="XML_1.0" xsi:schemaLocation=" urn:hl7-org:v3 ../multicacheschemas/QUMT_IN020040UV01.xsd">
<!-- 消息ID -->
<id root="2.16.156.10011.2.5.1.1" extension="@BS004"/>
<!-- 消息创建时间 -->
<creationTime value="20120106110000"/>
<!-- 消息的服务标识-->
<interactionId root="2.16.156.10011.2.5.1.2" extension="QUMT_IN020040UV01"/>
<!--处理代码,标识此消息是否是产品、训练、调试系统的一部分。D:调试;P:产品;T:训练 -->
<processingCode code="P"/>
<!-- 消息处理模式: A(Archive); I(Initial load); R(Restore from archive); T(Current
processing) -->
<processingModeCode/>
<!-- 消息应答: AL(Always); ER(Error/reject only); NE(Never) -->
<acceptAckCode code="AL"/>
<!-- 接受者 -->
<receiver typeCode="RCV">
<device classCode="DEV" determinerCode="INSTANCE">
<!-- 接受者ID -->
<id>
<item root="2.16.156.10011.2.5.1.3" extension="@111"/>
</id>
</device>
</receiver>
<!-- 发送者 -->
<sender typeCode="SND">
<device classCode="DEV" determinerCode="INSTANCE">
<!-- 发送者ID -->
<id>
<item root="2.16.156.10011.2.5.1.3" extension="@222"/>
</id>
</device>
</sender>
<!--typeCode为处理结果,AA表示成功 AE表示失败-->
<acknowledgement typeCode="AE">
<targetMessage>
<id root="2.16.156.10011.2.5.1.1" extension="1ee83ff1-08ab-4fe7-b573-ea777e9bad51"/>
</targetMessage>
<acknowledgementDetail>
<text value="处理结果说明"/>
</acknowledgementDetail>
</acknowledgement>
<controlActProcess classCode="CACT" moodCode="APT">
<queryAck>
<queryResponseCode code="OK"/>
</queryAck>
<extension>
<component typeCode="COMP">
<observation classCode="OBS" moodCode="EVN">
<code code="01">
<originalText value="患者ABO血型"/>
</code>
<value xsi:type="CD" code="1" codeSystem="2.16.156.10011.2.3.1.85" codeSystemName="ABO血型代码表">
<displayName value="A型"/>
</value>
</observation>
</component>
<component typeCode="COMP">
<observation classCode="GEN" moodCode="EVN">
<code code="03">
<originalText value="身高"/>
</code>
<value xsi:type="PQ" value="180" unit="cm"/>
</observation>
</component>
<component typeCode="COMP">
<observation classCode="OBS" moodCode="EVN">
<code code="11">
<originalText value="采血标记"/>
</code>
<value xsi:type="BL" value="true"/>
</observation>
</component>
<component typeCode="COMP">
<observation classCode="OBS" moodCode="EVN">
<code code="12">
<originalText value="输血地点"/>
</code>
<value xsi:type="ST" value="输血地点"/>
</observation>
</component>
</extension>
</controlActProcess>
</QUMT_IN020040UV01>