使用管理员进入iMedical的侧菜单 – HTTP接口配置界面
(如果没有这个菜单,请联系基础平台组部署,查看步骤五)
新增加服务,配置信息如下:
代码:MCPAdverseDrugEvent
名称:MCP不良事件
服务IP/域名:对应的加密服务IP(项目部署的不良事件的服务器ip)
端口:对应的加密服务端口
服务URL:/api/portal/syncUrl
HTTP方法:POST(请不良事件组先部署http的,https的不行)
数据类型:json
测试参数:随便写一些字母
配置完,点击整行数据,最后一列有测试按钮。点测试有返回密文,说明上面的配置正确,否则检查配置,联系不良事件组的同事查看报错。
在BSP.PAT.SRV.MenuArg类中加入以下类方法(此类标准化,不允许项目修改;如果有这个方法,可以覆盖)。
没有类点击下载
ClassMethod GetMCPAdverseDrugEvent(Param)
{
Quit:Param="" ""
Set h = $h, d=+h, t = $p(h,",",2)
Set sd = $zdh("1970-01-01",3)
Set timestamp = (d-sd)*86400 + t - 28800
Set now = timestamp
Set Param = ##class(%CSP.Page).EscapeURL(Param_"|"_now)
s Param = "{""url"":"""_ Param _"""}"
Set JSONStr = ##class(CF.BSP.SYS.SRV.Request).Send("MCPAdverseDrugEvent",Param)
Set JSONStr = $zcvt(JSONStr, "I","JSON")
Set Code = $P($P(JSONStr,"""code"":""",2),"""")
;Set Code = ##class(BSP.SYS.COM.ProxyObject).%FromJSON(JSONStr).code
Set Code = ##class(%CSP.Page).EscapeURL(Code)
Quit "client_name=mcp&token="_Code
}
使用管理员进入iMedical的侧菜单 – 菜单管理 增加菜单
描述:MCP不良事件
代码:MCPAdverseDrugEvent
链接CSP:http://不良事件服务IP:不良事件服务端口/callback
菜单组:Nurse.BLXG.BLSJ
在新窗口打开:top=10,left=100
表达式:分两种,看不良事件的文档,是否要求送院区ID。
不需要的:
"##class(BSP.PAT.SRV.MenuArg).GetMCPAdverseDrugEvent("${SessUserCode}|${SessUserName}|${SessLocCode}|${SessLocDesc}|${SessGroupId}|${SessGroupDesc}|${EpisodeId}|${RegNo}|sy")"
需要的:
"##class(BSP.PAT.SRV.MenuArg).GetMCPAdverseDrugEvent("${SessUserCode}|${SessUserName}|${SessLocCode}|${SessLocDesc}|${SessGroupId}|${SessGroupDesc}|${EpisodeId}|${RegNo}|sy|${SessHospId}")"
注意:【表达式】的值,除了一头一尾有一个双引号外,里面的双引号,请替换为&空格quot。因为这个网页的问题,我无法打字出来,他会显示回双引号。这里用的是双引号在html里面的转义字符”
javascript函数:linkAdmExp
其中【链接CSP】不同项目提供具体地址。
表达式二边双引号不能省略,且为英文双引号
挂菜单中,可以写类方法是后面才加的功能。测试后不行,联系基础平台组更新类:BSP.SYS.BL.Param.cls
描述:MCP不良事件
代码:MCPAdverseDrugEvent
链接CSP:http://不良事件服务IP:不良事件服务端口/callback
菜单组:自己选
在新窗口打开:top=10,left=100
javascript函数:goToMCP
我们把方法 goToMCP 加到文件scripts/epr.menu.js的最后位置。
// 老系统访问不良事件的菜单方法。
function goToMCP(lnk,newwin) {
var frm = document.forms["fEPRMENU"];
var EID=frm.EpisodeID.value;
if(isNaN(EID)){
if ($.messager){
$.messager.alert('信息提示',t['NoEpisode'],"info");
}else{
alert(t['NoEpisode']);
}
return;
}
if (frm.EpisodeID.value == "") {
if ($.messager){
$.messager.alert('信息提示',t['NoEpisode'],"info");
}else{
alert(t['NoEpisode']);
}
return;
}
var valueExp = '##class(BSP.PAT.SRV.MenuArg).GetMCPAdverseDrugEvent("${SessUserCode}|${SessUserName}|${SessLocCode}|${SessLocDesc}|${SessGroupId}|${SessGroupDesc}|${EpisodeId}|${RegNo}|sy|${SessHospId}")'
var urlParam = tkMakeServerCall("BSP.SYS.BL.Param","Format",valueExp,"",EID);
window.open(lnk + "?" + urlParam);
}
1、studio 备份 BSP.SYS.BL.Param.cls
点击下载
解压导入类
没有这个类的不用备份。8.3以下的没有这个类的,可能还缺少其他类,都在附件里面有,新增导入。
2、terminal 执行类方法:
d ##class(BSP.SYS.BL.Param).InitData()
第一步没有菜单的才执行,第一步成功执行了的,不要执行!
告诉我们没有,我发一个xml给你,导入studio。(注意8.2和8.2以下的his需要特别注意,告诉我his版本,让我给文件的时候注意给8.2以下的更新文件。)
然后挂菜单,看下面配置:
bsp.sys.request
HTTP接口配置
bsp.sys.request.csp
系统配置
完成后回到第一步继续配置。
访问量: 510468