菜单

目录

Administrator
发布于 2023-05-22 / 14 阅读 / 0 评论 / 0 点赞

门户API接口文档

第三方系统单点登录集成

单点登录实施流程

第三方系统接入类别说明

程序类别

接入方式

说明

B/S

API改造

参照1.3接口函数说明

传参

参照1.4第三方应用传参方式

C/S

API改造

参照1.3接口函数说明

传参

参照1.4第三方应用传参方式

说明:

  1. 第三方系统接入到平台是通过http地址注册

  2. C/S程序没有对应的http注册,需要通过注册表配置生成一个http地址提供给平台方进行注册

接口函数说明

第三方应用传参方式

1、加密

token=#token# #token#是(账号|密码|时间)三个参数通过|分割进行base64编码后的值

2、非加密

用户名值用#account#

密码值用#password#

各方集成工作

接入系统厂家

API接口改造

业务流程
单点登录

说明:

  1. 第三方应用程序在登录窗口中的Open事件中调用SSO服务接口(getUserInfo)获取登录信息;

  2. 如果已经单点登录信息,则通过返回的用户、密码进行模拟登录;

  3. 如果返回信息中功能编码(funid)不为空,则还需要进行患者同步设置,详细见单点登录同时患者同步章节;

  4. 如果没有单点登录信息,则弹出登录窗口,进行正常登录。

单点登录同时患者同步

说明:

  1. 第三方应用程序在登录窗口中的Open事件中调用SSO服务接口(getUserInfo)获取登录信息;除返回当前系统编码、当前系统用户名、当前系统密码外,还会返回功能模块编码(也就是说登录后需要打开的模块);

  2. 第三方应用程序在获取登录信息后,模拟登录进入主窗口后,根据获得的功能模块编码直接进入此模块,在此模块中窗口激活事件(不是Open事件与窗口置顶事件,这样可以实现患者同步功能的复用)中,调用获取SSO服务接口(getPatient)获取当前病人,在获得当前病人后,定位病人同时触发改变病人事件(原有模块功能的调用)。

  3. 在此事件中需要由各应用程序进行当前病人与原病人的判断,如果是不同的病人需要程序提示操作者是否进行病人同步功能实现,如果操作者选择是则同步,选择否不进行同步(避免有些录入数据切换时数据丢失)。

患者同步

注:

当操作员某个系统切换到别的系统(在操作系统工具栏中进行系统选择时),窗口被激活,调用获取SSO服务接口(getPatient)获取当前病人,在获得当前病人后,定位病人同时触发改变病人事件(原有模块功能的调用),此事件在单点登录同时患者同步功能中已经实现好(所以不要再进行程序改造)。

程序改造说明
  1. 在第三方应用程序打开登录窗口时调用getUserInfo接口获取账号信息,获取账号信息模拟登录;

  2. 患者同步可选:在选择病人的时候设置病人信息到sso服务中,调用setPatient接口;在打开病人窗口的时候获取病人信息调用getPatient接口。

接口改造例子

JavaScript参考:

//第三方系统直接调用getUserInfo接口获取系统用户信息  
function getUserInfo(appid) {
	$.ajax({
		url: "http://127.0.0.1:8088/datacenter/setting/ssoAction.do?reqCode=getUserInfo",
		type: "get",
		data: {
			"appid": appid
		},
		dataType: "jsonp",
		success: function(data) {
			if (data.success == false) { //没有获取到单点登录信息
				//弹出登录界面让用户自行输入登录
			} else {
				//获取到参数data信息示例
				{
					"result": "{\"bindPassword\":\"e10adc3949ba59abbe56e057f20f883e\",\"bindAccount\":\"sa\",\"bindAppID\":\"2160\",\"deptCode\":\"0014\",\"funID\":\"\"}",
					"success": true
				}
				解析json后获取到bindAccount和bindPassword模拟登录
			}
		},
		timeout: 20000,
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			//单点登录接口异常处理
			console.log(XMLHttpRequest)
		}
	});
}

Http地址提供给平台

Web程序地址

Web程序地址为Web程序入口的Http地址。

C/S程序地址

C/S程序没有Http地址,需要通过注册表方式生成Http地址。

  1. 注册流程如下:

    • 新增注册表;

    • 通过调用注册表并传参,启动exe程序;

    • exe程序打开时获取参数(账号account,密码password)内部处理登录。

  2. 注册表文件配置参考

  3. 注册文件参考

平台方(IT管理员)

分配接入系统账号

参考文档:《门户统一授权操作手册》。

第三方系统平台注册

  1. 给第三方系统分配appid

    说明:

    • 功能编码(appid):范围2000-3000;

    • 功能名称:第三方系统名称;

    • 多视图模式:默认否;

    • 功能级别:设置成2;

    • 父级编码:设置成0;

    • 功能序号:显示顺序,建议设置成功能编码;

    • SSO标志:是否为单点登录系统,设置成是;

    • SSO密码类型:第三方系统获取单点登录服务时密码的加密类型。

 

  1. 第三方系统服务地址注册

    • BS程序配置访问网页地址

    • CS客户端程序需要配置生成注册文件的后的访问地址

第三方系统服务地址配置

说明:将第三方系统的服务地址配置到对应的【功能与视图配置】中的链接地址中,程序类别根据实际程序类型选择。

  1. Web程序Http地址配置:

  1. C/S程序注册表配置完成后Http地址配置:

业务用户

其他接口

病人360全景视图

接口

Http地址:

http://192.168.100.98:8080/cdss/patientview/grid.html

方法说明

直接在地址后面拼接参数

入参

参数值说明

patientid

病人ID

clinicsn

就诊流水号

viewcode

固定视图编码:10101010

accountcode

门户登录人员编码(可选项)

org_code

医疗机构代码

clinic_class

就诊类别

示例

示例地址(ip地址根据实际情况修改):

http://192.168.100.98:8080/cdss/patientview/grid.html?patientid=12345&clinicsn=54321&viewcode=10101010&accountcode=sa

病历夹

接口

Http地址:

http://192.168.100.98:8080/cdss/patientview/dossier.html

方法说明

直接在地址后面拼接参数

入参

参数值说明

patientid

病人ID

clinicsn

就诊流水号

viewcode

固定视图编码:10101020

accountcode

门户登录人员编码(可选项)

org_code

医疗机构代码

clinic_class

就诊类别

示例

示例地址(ip地址根据实际情况修改):

http://192.168.100.98:8080/cdss/patientview/dossier.html?patientid=12345&clinicsn=54321&viewcode=10101020&accountcode=sa

爱答

全文检索

Http地址:

http://127.0.0.1:9888/ds/search/query?index=&keyword=&offset=&limit

方法说明

Post传json参数

入参

参数值说明

index

index索引名称 值有三种:cdr(数据中心);manager(行政管理);repository(知识库)

keyword

查询关键字

offset

分页查询参数,如果为每页10行,则第一页传入0,第二页传入10;

limit

分页查询参数,每页多少行

接口说明

Http地址:

http://192.168.100.98:8080/cdss/elasticsearch.html

方法说明

直接在地址后面拼接参数

入参

参数值说明

deptname

科室名称(用于对当前科室相关文档的快速检索)

TOP10关键字

Http地址:

http://127.0.0.1:9888/ds/search/top10

方法说明

不需要传参数,直接调用

入参

参数值说明

科室相关临床路径信息

Http地址:

http://127.0.0.1:9888/ds/search/cpDept

方法说明

POST传参

入参

参数值说明

deptname

科室名称(可选项)

示例

示例地址(ip地址根据实际情况修改):

http://192.168.100.98:8080/cdss/elasticsearch.html?deptname=儿童抚触水疗室

二级页面

Http地址:

http://192.168.100.98:8080/cdss/documentView.html

方法说明

直接在地址后面拼接参数

入参

参数值说明

accountcode

门户登录编码(可选项)

url

文档地址(传入参数需要用进行编码encodeURIComponent() )

title

文档标题

示例地址(ip地址根据实际情况修改):

http://192.168.100.98:8080/cdss/documentView.html?accountcode=sa&url=http://192.168.100.98:8080/cdr/ftp/2018-11-30/bchao.pdf&title=检查报告【姓名:张三%20文档日期:2018-09-11】

爱答资料外部索引

文档注册

Http地址:

http://127.0.0.1:9888/ds/search/addDoc?

方法说明

elasticsearch索引(Post传入Json参数)

入参

参数值说明

index

index索引名称 值有三种:cdr(数据中心);cp临床路径;manager(行政管理);repository(知识库)

type

文档类别

docCode

文档编码(文档唯一号)

docTitie

文档标题

docSummary

文档摘要

docKeyword

文档关键字

docContent

文档内容

docUrl

文档可访问地址

imageUrl

影像文件地址

出参

参数说明

外部资料分享

接口说明

Http地址:

http://127.0.0.1:8080/cdss/share.html?accountcode=sa&contentype=2&content=1&title=12

方法说明

外部调用分享接口

入参

参数值说明(所有参数都是必填)

accountcode

门户登录账号(可选项)

contentype

分享内容类型 值有三种:1(文档http地址);2(字符串文本);3(http超链接);

title

分享内容标题

content

分享内容(传入参数需要用进行编码encodeURIComponent() )

出参

参数说明

示例

报表外部调用

参数说明

Http地址:

http://192.168.100.98:6060/report/ureport/preview?_u=file:

方法说明

直接在地址后面拼接参数

入参

参数值说明

文件名称

已经定义好的报表名称

org_code

组织机构代码

doccode

文档编码

调用示例

示例地址(ip地址根据实际情况修改):

http://192.168.100.98:8080/report/ureport/preview?_u=file:laboratory.ureport.xml&doccode=20180925

日程安排

Http地址:

192.168.100.98:8080/cdss/fullcalendar.html?accountcode=sa&stratime=2019-07-12%2008:00:00&endtime=2019-07-12%2008:00:00&title=手术排班&place=手术室&content=手术安排&epmlist=000026,000043&deptlist=0&out=1

方法说明

消息流转详情

入参

参数值说明

accountcode

门户登录账号

stratime

日程开始时间

endtime

日程结束时间

title

日程标题

place

地点

content

日程内容

epmlist

人员编码(多个用逗号“,”分割,例:000026,000043)

deptlist

群组列表(对应科室编码,多个用逗号“,”分割,0表示全院)

out

外部调用标志(第三方调用必填项 值为1)

示例:

表单外部调用

同报表调用

消息流转

列表查询

示例:

消息流转查询

示例:

流程查询

示例: