HISUI
iMedical中挂MCP不良事件头菜单
2022年10月09日 20时06分

准备工作

  1. 不良事件提供加密服务链接
  2. 不良事件提供界面链接
  3. 然后按照以下方式维护菜单

一、维护HTTP加密服务

使用管理员进入iMedical的侧菜单HTTP接口配置界面
(如果没有这个菜单,请联系基础平台组部署,查看步骤五)
新增加服务,配置信息如下:
代码:MCPAdverseDrugEvent
名称:MCP不良事件
服务IP/域名:对应的加密服务IP(项目部署的不良事件的服务器ip)
端口:对应的加密服务端口
服务URL:/api/portal/syncUrl
HTTP方法:POST(请不良事件组先部署http的,https的不行)
数据类型:json
测试参数:随便写一些字母
http加密服务

配置完,点击整行数据,最后一列有测试按钮。点测试有返回密文,说明上面的配置正确,否则检查配置,联系不良事件组的同事查看报错。

二、实现加密M类方法

在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
}

三、不良事件挂入头菜单

3.1 his8.4及以上版本:

使用管理员进入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

挂菜单

3.2 his8.4以下版本:

描述: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);
}

四、更新类 BSP.SYS.BL.Param

1、studio 备份 BSP.SYS.BL.Param.cls
点击下载
解压导入类
没有这个类的不用备份。8.3以下的没有这个类的,可能还缺少其他类,都在附件里面有,新增导入。
2、terminal 执行类方法:
d ##class(BSP.SYS.BL.Param).InitData()

五、授权后进入界面查看效果

六、联系我们部署HTTP配置界面

第一步没有菜单的才执行,第一步成功执行了的,不要执行!
告诉我们没有,我发一个xml给你,导入studio。(注意8.2和8.2以下的his需要特别注意,告诉我his版本,让我给文件的时候注意给8.2以下的更新文件。
然后挂菜单,看下面配置:

bsp.sys.request
HTTP接口配置
bsp.sys.request.csp
系统配置


完成后回到第一步继续配置。

上一篇: 下一篇:

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

访问量: 379477