资源描述
医院信息平台接口规范
新奥博为技术有限公司
2015-04
更改页
序号
版本号
更改内容描述
更改人
更改日期
1
2.0.0
创建文档,定义WS交互点,基础字典同步下载接口
李长松
2015-04-21
2
2.0.1
平台服务部分接口请求参数结构中添加服务版本参数
李长松
2015-05-13
3
2.0.2
添加A00、A02、A03、A04部分交换服务说明
李长松、李峥、王立新
2015-05-19
4
2.0.3
添加消息发布HTTP接口方式,修改A0000参数结构,添加了SERVICE_TYPE参数
李长松
2015-06-25
5
2.0.4
添加C2406,C2407,C2408及物资申领信息发布服务接口说明
李长松
2015-07-01
表单流程:①项目负责人编制→ ②立项部门审核 →③上一级部门批准→ ④研发中心存档
本表单为一份,由研发中心留存
目 录
1 文档说明 4
2 引用标准 4
3 接口方式 4
3.1 WS消息方式 5
3.2 业务协同与数据交换流程 6
3.3 安全访问机制 7
4 平台服务接口 7
4.1 获取令牌服务接口 7
4.1.1 接口说明 7
4.1.2 场景说明 8
4.1.3 调用地址 8
4.1.4 WS接口定义 8
4.2 消息发布服务接口 10
4.2.1 接口说明 10
4.2.2 场景说明 10
4.2.3 调用地址 11
4.2.4 WS接口定义 11
4.3 业务交换服务接口 12
4.3.1 接口说明 12
4.3.2 场景说明 13
4.3.3 调用地址 13
4.3.4 WS接口定义 13
5 业务交换服务 15
5.1 业务交互服务概述 15
5.2 基础交换服务(A) 15
5.2.1 消息订阅服务(A00) 15
5.2.2 患者服务(A01) 17
5.2.3 医疗卫生人员服务(A02) 17
5.2.4 医疗卫生机构(科室)服务(A03) 33
5.2.5 术语和字典服务(A04) 38
5.3 临床业务交换服务(B) 38
5.4 医院管理交换服务(C) 38
6 服务异常编码 38
1 文档说明
本文档定义了医院信息平台(后续简称平台)和院内业务系统(HIS、LIS、PACS、EMR)的接口方式、接口规范。
2 引用标准
ü 基于电子病历的医院信息平台建设技术解决方案(1.0 版)2011-03;
ü 河南省数字化医院建设指南(2014版)2014-05;
ü 《电子病历基本架构与数据标准(试行)》,2009-12;
ü 《基于电子病历的医院信息平台技术规范》,2014-10-01
ü 《电子病历基本数据集》,2014-5-30;
ü 河南省基于健康档案的卫生信息平台接口库说明(医疗服务V1.7.1)试行
ü 河南省基于健康档案的卫生信息平台接口库说明(卫生资源V1.0.1)试行
3 接口方式
医院信息集成平台业务协同与数据交换采用SOA架构设计,需要ESB企业总线支持实现医院业务系统业务协同和数据的交换。数据交换总线功能主要包括:
SOA支持,遵循SOA设计原则和技术标准,提供松耦合模式,实现业务逻辑和应用逻辑、数据逻辑等分离;
智能路由支持,采用灵活的消息路由方式,支持基于消息内容的处理和路由;
XML支持,支持标准XML数据的格式转换,可以通过图形化映射组件、XSLT、客户化Java程序等多种方式实现转换功能;
消息发布/订阅功能,支持队列和主题两种订阅模式;
3.1 WS消息方式
Web service是一个跨语言的,松耦合、平台独立的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
医院信息平台定义的WS消息交换接口满足SOAP 1.1 SOAP 1.2、WSDL1.1 WSDL2.0标准规范。WS接口定义说明性描述主要由以下几部分组成:
ü 接口说明:定义和说明接口的作用和适用范围
ü 场景说明:定义和描述WS服务接口的调用和使用场景、说明业务处理流程;
ü 服务地址:描述WS服务的调用URL地址;
ü 请求数据结构:定义和描述WS服务的请求数据结构和参数说明;
ü 响应数据结构:定义和描述WS服务的响应数据结构和参数说明;
3.2 业务协同与数据交换流程
说明:
1、 业务系统A(入LIS)订阅相关业务消息,医院信息平台接收消息订阅,并存储订阅信息;
2、 业务系统B(如HIS)处理业务过程中生成业务关键数据(如医生工作站生成实验室化验申请单),然后业务系统B生成业务关键数据后,把业务关键数据调用医院信息平台相关接口发送到医院信息平台。
3、 医院信息平台接收业务系统B发送的关键业务数据(实验室化验单申请),将数据存储入医院信息平台数据中心,同时将新增或更新业务关键数据的信息生成消息(实验室化验申请单消息)通知推送给已经订阅了相关内容消息的业务系统A(如LIS)
4、 业务系统A(LIS)接收通知消息,消息内容中包括消息关联业务数据ID(实验室化验申请单ID)、消息类型(实验室化验申请单类型消息)、获取业务数据所需要的服务接口地址、获取业务数据所需要的服务编码(实验室化验申请单查询服务编码);
5、 业务系统A(LIS)根据消息内容调用消息中包含的服务接口地址,调用相关接口服务(实验室化验申请单查询服务)获取指定ID业务数据;
6、 医院信息平台根据业务系统A(LIS)传递的服务编码和业务数据ID,从医院信息平台数据中心获取指定数据;
7、 医院信息平台将查询到的业务数据封装为标准接口数据结构(XML)结构数据,返回业务系统A(LIS);
8、 业务系统A(LIS)获取指定业务数据后进行后续业务处理。
3.3 安全访问机制
满足数字化医院信息安全要求,建立健全的信息安全保障体系是保障院内系统安全的基础。可靠有效的安全访问机制,是保证医院信息平台接口库和各业务系统WS服务的安全,通过身份验证防止非法用户、匿名用户和恶意用户的非法访问。
WS接口方式安全访问机制依赖医院信息平台的令牌动态口令算法,平台定义令牌加密算法,每次产生的令牌在设置时间内是有效的,超过令牌的有效期这个令牌就失效了,必须重新产生一个令牌。
4 平台服务接口
4.1 获取令牌服务接口
4.1.1 接口说明
医院信息平台在每次调用接口时需要带上accessToken参数,accessToken参数由systemCode和systemPassword换取。
systemCode是第三方系统编码,每个第三方应用系统拥有一个唯一的systemCode,systemPassword是系统凭证密码。
医院信息平台系统管理员可以通过管理端的权限分配给第三方系统一个唯一的systemPassword。
当第三方系统调用医院信息平台接口时,医院信息平台会根据此次访问的accessToken,校验访问的合法权限以返回相应的结果。
accessToken令牌有时效性,医院信息平台默认设置为7200秒,平台管理员可以通过系统参数修改时效参数。如果第三方系统调用本接口时accessToken未过期,医院信息平台会自动延长accessToken到期时间。如果调用本接口时accessToken过期,则医院信息平台会生成新的accessToken令牌并返回。
4.1.2 场景说明
第三方系统调用医院信息平台业务交换服务接口前,先需要通过本接口获取accessToken,然后使用accessToken再调用平台其他业务服务接口。
4.1.3 调用地址
http://ip:port//hipService/GetTokenPort
4.1.4 WS接口定义
WSDL文档:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http:/" targetNamespace="http:/">
<wsdl:types>
<xs:schema targetNamespace="" elementFormDefault="qualified"/>
</wsdl:types>
<wsdl:message name="GetTokenRequest">
<wsdl:part name="requestId" type="xs:string"/>
<wsdl:part name="requestIP" type="xs:string"/>
<wsdl:part name="systemCode" type="xs:string"/>
<wsdl:part name="systemPassword" type="xs:string"/>
</wsdl:message>
<wsdl:message name="GetTokenResponse">
<wsdl:part name="requestId" type="xs:string"/>
<wsdl:part name="msgCode" type="xs:string"/>
<wsdl:part name="msgDesc" type="xs:string"/>
<wsdl:part name="accessToken" type="xs:string"/>
</wsdl:message>
<wsdl:portType name="GetTokenPortType">
<wsdl:operation name="getToken">
<wsdl:input message="tns:GetTokenRequest"/>
<wsdl:output message="tns:GetTokenResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="GetTokenBinding" type="tns:GetTokenPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getToken">
<soap:operation soapAction=" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="GetTokenService">
<wsdl:port name="GetTokenPort" binding="tns:GetTokenBinding">
<soap:address location="http://ip:port/hipService/GetTokenService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
参数说明
请求参数(GetTokenRequest):
参数
数据类型
是否必须
说明
requestId
字符串
是
UUID
requestIP
字符串
是
第三方系统所在服务器的IP地址
systemCode
字符串
是
第三方系统编码
systemPassword
字符串
是
第三方系统请求密码
响应参数(GetTokenResponse):
参数
数据类型
是否必须
说明
requestId
字符串
是
请求是携带的参数requestId
msgCode
字符串
是
请求消息编码(0000为请求正常,其他为处理异常,具体异常编码参考平台服务消息编码部分)
msgDesc
字符串
是
请求消息描述
accessToken
字符串
是
返回的第三方系统调用接口令牌
4.2 消息发布服务接口
4.2.1 接口说明
本接口主要提供消息通知服务,当医院信息平台数据中心相关业务数据发生变化,本接口会生成相关消息,然后推送到已经订阅了本消息的三方系统。
本接口推送消息如果失败,医院信息平台5分钟第二次推送消息,如果第二次推送消息失败,在过30分钟第三次推送消息,如果第三次推送消息失败,再过90分钟第四次推送消息,依次类推。医院信息平台在七次推送消息都失败后,平台停止消息推送。平台管理员可以设置每次消息推送失败间隔时间。
七次推送失败的消息医院信息平台提供推送消息失败日志查询。
4.2.2 场景说明
当医院信息平台数据中心相应业务数据发生变化时,通过本接口发布给已经订阅了相关消息的第三方系统。
4.2.3 调用地址
业务系统提供
4.2.4 接口定义
4.2.4.1 Web Service接口方式
说明
Web Service方式指业务系统作为Web Service服务端,医院平台作为Web Service客户端,业务系统在消息订阅时提供服务端调用地址(参见A0000服务的RECEIVE_URL参数说明)。当有消息需要发布时,医院平台根据订阅信息,将信息数据通过消息发布接口推送至业务系统。
WSDL定义
WSDL文档:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 被2012 () 使用XMLSpy v编辑的 () by -->
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="" targetNamespace="">
<wsdl:types>
<xs:schema targetNamespace="http://new.webservice.namespace" elementFormDefault="qualified"/>
</wsdl:types>
<wsdl:message name="NotifyRequest">
<wsdl:part name="notifyCode" type="xs:string"/>
<wsdl:part name="callBackServiceVersion" type="xs:string"/>
<wsdl:part name="callBackServiceCode" type="xs:string"/>
<wsdl:part name="callBackWsUrl" type="xs:string"/>
<wsdl:part name="data" type="xs:string"/>
<wsdl:part name="pubCount" type="xs:int"/>
</wsdl:message>
<wsdl:portType name="NotifyPortType">
<wsdl:operation name="Notify">
<wsdl:input message="tns:NotifyRequest"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NotifyBinding" type="tns:NotifyPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Notify">
<soap:operation soapAction=" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="NotifyService">
<wsdl:port name="NotifyPort" binding="tns:NotifyBinding">
<soap:address location="http://localhost/hipService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
参数说明
请求参数:
参数
数据类型
是否必须
说明
notifyCode
字符串
是
消息编码,具体编码参考各个信息发布接口定义
callBackServiceVersion
字符串
是
回调服务版本号
callBackServiceCode
字符串
是
回调服务编码,具体编码参考业务交换服务编码定义
callBackWsUrl
字符串
是
回调服务地址
data
字符串
是
消息附带业务数据,多个数据用^^^分隔,例如:abc^^^123456^^^admin
pubCount
整型
是
消息推送次数
响应参数:
无响应参数,消息发布服务接口负责发布相关业务数据新增、更新消息,消息发布未返回异常医院信息平台即认为消息发送成功
4.2.4.2 HTTP接口方式
说明
HTTP方式指业务系统作为服务端提供HTTP服务,医院平台作为调用HTTP服务的客户端,业务系统在消息订阅时提供服务端调用地址(参见A0000服务的RECEIVE_URL参数说明)。当有消息需要发布时,医院平台根据订阅信息,将信息数据通过消息发布接口推送至业务系统。参数以POST方式作为HTTP请求参数传递到服务端。
参数说明
请求参数:
参数
数据类型
是否必须
说明
notifyCode
字符串
是
消息编码,具体编码参考各个信息发布接口定义
callBackServiceVersion
字符串
是
回调服务版本号
callBackServiceCode
字符串
是
回调服务编码,具体编码参考业务交换服务编码定义
callBackWsUrl
字符串
是
回调服务地址
data
字符串
是
消息附带业务数据,多个数据用^^^分隔,例如:abc^^^123456^^^admin
pubCount
整型
是
消息推送次数
响应参数:
无响应参数,消息发布服务接口负责发布相关业务数据新增、更新消息,消息发布未返回异常医院信息平台即认为消息发送成功
4.3 业务交换服务接口
4.3.1 接口说明
业务交换服务接口主要完成各类业务交换过程中的功能接口,每个不同的业务功能由服务编码区分(具体编码见业务交换服务部分的服务编码说明)。
4.3.2 场景说明
当业务系统需要进行数据交换时,首先需要获取令牌,然后使用令牌调用本接口调用指定服务编码服务,完成数据交换过程。
4.3.3 调用地址
http://ip:port//hipService/CommonPort
4.3.4 WS接口定义
WSDL文档:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 被2012 () 使用XMLSpy v编辑的 () by -->
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="" targetNamespace="">
<wsdl:types>
<xsi:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema" targetNamespace="" elementFormDefault="qualified"/>
</wsdl:types>
<wsdl:message name="CommonRequest">
<wsdl:part name="requestId" type="xs:string"/>
<wsdl:part name="accessToken" type="xs:string"/>
<wsdl:part name="requestIP" type="xs:string"/>
<wsdl:part name="requestUserAccount" type="xs:string"/>
<wsdl:part name="serviceVersion" type="xs:string"/>
<wsdl:part name="serviceCode" type="xs:string"/>
<wsdl:part name="requestData" type="xs:string"/>
</wsdl:message>
<wsdl:message name="CommonResponse">
<wsdl:part name="requestId" type="xs:string"/>
<wsdl:part name="msgCode" type="xs:string"/>
<wsdl:part name="msgDesc" type="xs:string"/>
<wsdl:part name="responseData" type="xs:string"/>
</wsdl:message>
<wsdl:portType name="CommonPortType">
<wsdl:operation name="Common">
<wsdl:input message="tns:CommonRequest"/>
<wsdl:output message="tns:CommonResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CommonBinding" type="tns:CommonPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Common">
<soap:operation soapAction=" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CommonService">
<wsdl:port name="CommonPort" binding="tns:CommonBinding">
<soap:address location="http://localhost/HipService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
参数说明
请求参数
参数
数据类型
是否必须
说明
requestId
字符串
是
UUID
accessToken
字符串
是
第三方系统调用接口令牌,参考获取令牌服务接口定义
requestIP
字符串
是
第三方系统中相应用户所在客户端的IP地址
requestUserAccount
字符串
是
第三方系统中相应用户账户
serviceVersion
字符串
是
调用的服务版本号
serviceCode
字符串
是
调用的服务编码,具体编码参考业务交换服务中的定义
requestData
字符串
是
调用服务需要的请求数据,具体定义参考相应服务定义
响应参数
参数
数据类型
是否必须
说明
requestId
字符串
是
消息编码,具体编码参考各个信息发布接口定义
msgCode
字符串
是
请求消息编码(0000为请求正常,其他为处理异常,具体异常编码参考平台服务消息编码部分)
msgDesc
字符串
是
请求消息描述
responseData
字符串
否
服务返回的响应数据,具体定义参考相应服务定义
5 业务交换服务
5.1 业务交互服务概述
约定:
ü 所有日期时间转成字符串
ü 请求和返回的xml信息的标签均为大写
5.2 基础交换服务(A)
5.2.1 消息订阅服务(A00)
5.2.1.1 订阅消息服务(A0000)
Ø 服务编码
服务编码:A0000
Ø 服务说明
本服务提供业务系统订阅平台各种消息通知,订阅消息通知后,平台根据订阅主题会推送相关消息到订阅制定通知地址
Ø 请求参数
参数说明
序号
参数名称
参数类型
是否必需
参数说明
1
OPERATION_TYPE
Int
是
操作类型 0-订阅消息 1-取消订阅
2
TOPICS
String
是
消息主题序列,多个消息主题需要用半角逗号分隔。
3
SERVICE_TYPE
Int
否
接口服务方式 0-WS方式 1-HTTP方式
4
RECEIVE_URL
String
否
接收消息URL,如果OPERATION_TYPE为0,则此参数必需,此URL提供的接收消息的服务方式,具体定义参照本文档【4.2 消息发布服务接口】定义。
XML示例:
<REQUEST>
<OPERATION_TYPE>0</OPERATION_TYPE>
<TOPICS>String</TOPICS>
<SERVICE_TYPE>0</SERVICE_TYPE>
<RECEIVE_URL>String</RECEIVE_URL>
</REQUEST>
Ø 响应参数
无
5.2.2 患者服务(A01)
暂未定
5.2.3 医疗卫生人员服务(A02)
5.2.3.1 医护人员业务系统编码上传(A0201)
Ø 服务编码
服务编码:A0201
Ø 服务说明
本服务主要实现各个业务系统对医疗服务人员进行自定义编码后,将自定义编码上传平台,平台对医疗服务人员在不同业务系统的编码形成对照索引。
Ø 请求参数
参数说明
序号
参数名称
参数类型
是否必需
取值范围
参数说明
1
HIP_STAFF_CODE
String
是
32
平台对医疗服务人员的编码(工号)
2
OPERATION_STAFF_CODE
String
是
32
请求的业务系统对医疗服务人员的编码(工号)
XML示例:
<REQUEST>
<HIP_STAFF_CODE>String</HIP_STAFF_CODE>
<OPERATION_STAFF_CODE>String</OPERATION_STAFF_CODE>
</REQUEST>
Ø 响应参数
参数说明:无
5.2.3.2 医护人员信息查询(A0202)
Ø 服务编码
服务编码:A0202
Ø 服务说明
本服务主要实现对平台中维护的医疗服务人员信息的查询功能。
Ø 请求参数
参数说明:
序号
参数名称
参数类型
是否必需
取值范围
参数说明
1
HIP_DEPT_CODES
String
否
平台科室编码序列,多个科室编码之间用半角逗号分隔。
2
HIP_STAFF_CODES
String
否
平台医疗服务人员编码序列,多个医疗服务人员编码之间用半角逗号分隔。
3
OPERATION_DEPT_CODES
String
否
业务系统科室编码序列,多个科室编码之间用半角逗号分隔。
4
OPERATION_STAFF_CODES
String
否
业务系统医疗服务人员编码序列,多个医疗服务人员编码之间用半角逗号分隔。
5
NAME_KEY
String
否
医疗服务人员姓名关键字
注意:5个参数中,在一次请求中只能包含一个参数,如果有多个参数,则以第一个参数为准进行医疗服务人员相关信息查询。
XML示例:
<REQUEST>
<HIP_DEPT_CODES>String</HIP_DEPT_CODES>
<HIP_STAFF_CODES>String</HIP_STAFF_CODES>
<OPERATION_DEPT_CODES>String</OPERATION_DEPT_CODES>
<OPERATION_STAFF_CODES>String</OPERATION_STAFF_CODES>
<NAME_KEY>String</NAME_KEY>
</REQUEST>
Ø 响应参数
参数说明:
序号
参数名称
参数类型
是否必需
取值范围
参数说明
1
HIP_STAFF_CODE
String
是
平台人员编码
2
STAFF_NAME
String
否
人员姓名
3
GENDER
String
否
人员性别编码
4
LOGINNAME
String
否
人员登录名(与平台人员编码相同)
5
CA_ID
String
否
集成CA身份验证证书唯一标识
6
CERTIFICATE_NO
String
否
身份证号
7
BRITHDATE
String
否
出生日期 yyyy-MM-dd
8
NATIONALS
String
否
民族
9
INHOSPITAL_DATE
String
否
来院时间 yyyy-MM-dd
10
STAFFSORT
String
否
人员类别编码
11
MARITAL_STATUS
String
否
婚姻状态
12
GRADUATE_COLLEGE
String
否
毕业院校
13
MAJOR
String
否
所学专业
14
EDUCATION
String
否
最高学历编码
15
DEGREE
String
否
最高学位编码
16
GRADUATION_DATE
String
否
毕业时间 yyyy-MM-dd
17
MOBILE
String
否
手机号码
18
TELEPHONE
String
否
联系电话
19
ADDRESS
String
否
家庭住址
20
POSTCODE
String
否
邮政编码
21
EMAI
展开阅读全文