# 系统集成
# 应用系统提供系统信息
应用系统需要向医为项目部提供系统信息,由医为项目组完成系统注册,应用系统需要提供:
- 系统名称
- 系统编码
- 系统架构(CS)
- CS系统的exe打开路径
- 单点退出地址(非必须)
注意:
- CS系统的exe打开路径为绝对路径,打开路径示例:D:\app.exe。
- CS系统的exe打开路径中不能有中文、空格等。
- 如CS系统因项目部署等原因导致医院存在多个exe打开路径,需要提供多个打开路径。
# 提供应用系统注册信息和测试账号
应用系统提供系统信息给医为项目组后,项目组会分别在统一用户平台和门户中注册该应用系统,并提供如下信息:
- AppId(客户端注册的AppId,对应接口参数中的client_id)
- AppSecret(客户端注册的AppSecret,对应接口参数中的client_secret)
- 门户系统登录地址
- 门户系统登录测试账号和密码
提供信息示例如下:
- AppId:B8270EB95xU9
- AppSecret:105w43q5v3X44L2c
- 门户登录地址:https://192.168.1.101:8000(项目组会提供实际的ip信息)
- 测试账号和密码:ys01/123456(以项目组实际提供的测试账号密码为准)
# 门户中点击应用系统图标
应用系统开发人员使用本文提供应用系统注册信息和测试账号中提供的测试账号密码,登录门户系统,进入单点登录页面,找到应用系统(本文以oa协同办公系统为例),鼠标左键点击图标,门户系统会打开应用系统提供系统信息中提供的exe程序(如提供多个exe打开路径,会轮循查找打开),如下图所示:
门户系统打开CS系统的exe程序时,会携带token参数,按照CS系统标准传参格式,以空格隔开,打开示例如下: D:\app.exe dfaqgdfagfdhadsfahgafdadf34 其中空格后的字符串就是token参数。
# 测试token参数获取示例
如应用系统想使用测试token调试接口,可以在门户系统中获取测试token参数,首先使用提供应用系统注册信息和测试账号提供的测试账号登录门户,F12打开调试工具,进入Network,点击cs应用系统,可在调试工具调用的接口中找到token参数,如下图所示:
# 应用系统获取用户信息
CS应用系统通过上一步骤中获取到token参数后,需要使用该token参数调用统一认证接口,获取当前登录的用户信息。需要注意的是,token参数只能使用一次,调用完【通过token获取用户信息接口】之后,不管是否成功,token参数都会失效。下边为接口具体信息。
# 【通过token获取用户信息】接口
基本信息 用途说明:应用系统调用该接口请求获取用户信息 请求方式:POST 接口地址:https://统一认证服务ip:port/api/security/oauth2/cs/userinfo
请求方式 Query参数
参数字段 | 必填 | 字段信息 |
---|---|---|
clientId | 是 | 应用注册时生成的AppId信息 |
secret | 是 | 应用注册时生成的AppSecret信息 |
token | 是 | 门户访问cs系统传递的token值,即【3.2.3】中生成的token |
- 请求结构示例
- 返回参数
参数字段 | 上级编码 | 字段类型 | 字段名称 |
---|---|---|---|
code | String | 状态编码 成功时返回200 | |
msg | String | 提示信息 | |
data | String | 具体返回的数据 | |
accountCode | data | String | 账号code |
accountId | data | String | 账号id |
accountName | data | String | 账号名 |
phoneNumber | data | String | 手机号 |
caInfo | data | Object | CA认证结果,使用CA登录时会返回,包含以下属性。 |
-CAToken | caInfo | String | 手机票据 signToken |
-CASTypeCode | caInfo | String | 登录类型(BJCA-UKEY) |
-CALogonType | caInfo | String | 登录类型 |
-CACertNo | caInfo | String | 证书唯一编号 certNo |
-CAUserCertCode | caInfo | String | 用户证书唯一标识 userCertCode |
-ContainerName | caInfo | String | 容器名(UKEY名称) certContainer |
-ContainerPin | caInfo | String | UEKY密码 caUkeyPin |
postOneVO | data | Object | 当前选择的岗位单元对象 |
-id | postOneVO | String | 岗位单元id |
-type | postOneVO | String | unit代表岗位单元,post代表业务岗位 |
-name | postOneVO | String | 岗位单元名称 |
-postRecords | postOneVO | list | 业务岗位集合 |
--id | postRecords | String | 统一认证平台业务岗位id |
--name | postRecords | String | 业务岗位名称 |
--postSourceId | postRecords | String | 上游业务岗位id |
--postCode | postRecords | String | 业务岗位编码 |
--postName | postRecords | String | 业务岗位名称 |
--buSourceId | postRecords | String | 上游业务单元id |
--buCode | postRecords | String | 业务单元编码 |
--buName | postRecords | String | 业务单元编码 |
--startTime | postRecords | String | 排班开始时间 |
--endTime | postRecords | String | 排班结束时间 |
--ip | postRecords | String | 资源计划里配的绑定ip |
- 返回结构示例
{
"code": "200",
"msg": "成功",
"data": {
"accountCode": "admin",
"accountId": "42ba0988866e43e9a3086ef19ebe6806",
"accountName": "超级管理员",
"grantType": null,
"initLoginTime": null,
"phoneNumber": null,
"postFirstPage": null,
"tenantId": "000000",
"password": "",
"userName": "超级管理员",
"activity": true,
"locked": false,
"unlockDate": null,
"lastLoginDate": 1717052475000,
"lastUpdatePassword": 1664767346000,
"createTime": null,
"needRestPassword": false,
"loginDate": 1717057309762,
"globalUniqueID": "dd7afd8ba50b4f7e901f7274e841606e",
"startDate": 1715529600000,
"endDate": 1796054400000,
"caInfo": {
"CAToken": "1324vnfvjvvc",
"CASTypeCode": "BJCA-UKEY",
"CALogonType": "UKEY",
"CACertNo": "22ccvvvvvscz",
"CAUserCertCode": "csaddefe",
"ContainerName": "jihsjbxhsdb",
"ContainerPin": "3rgvbgb"
},
"postOneVO": {
"id": "1f983808872ce3f446259ceb91207211",
"type": "unit",
"name": "急诊护士岗位单元",
"postNames": "急诊护士岗",
"buNames": "急诊普通诊疗",
"postRecords": [{
"id": "318f3eaebc92a9612e8b03ae4509d28d",
"name": "急诊护士岗",
"postSourceId": "6ec7a946e4536b2f163715097d5ac89c",
"postCode": "P-00032-BP-0008",
"postName": "急诊护士岗",
"buSourceId": "1b0af2f3e93b46c7843d85bb97ac69ed",
"buCode": "bu-00021",
"buName": "急诊普通诊疗",
"startTime": "2024-05-30",
"endTime": "2025-05-25",
"ip": "192.168.1.101,192.168.1.102"
}]
}
},
"uri": null
}
# 应用系统进行登录
在本文上一步骤中接口中获取到当前登录的用户信息之后,应用系统就可以使用该用户信息登录进入本系统。 如果应用系统需要使用ca信息,且门户系统是使用ca扫码登录,则应用系统获取用户信返回的用户信息中会携带ca相关信息,直接使用即可。至此单点登录对接完成。
← 流程介绍 基于HOS开发的系统 →