function signOrder(){
// 01: IE下调用基础平台CA登录状态方法
// 如果需要认证,又没登录过CA证书,则会自动弹出CA登录界面
var rtn = dhcsys_getcacert();
// rtn={IsSucc:true,ContainerName:""}
if (!rtn.IsSucc){
// rtn.IsSucc==false
alert("需要CA证书登录,但没有CA登录。");
return ;
}
if (rtn.ContainerName==""){
alert("当前无需CA认证");
SaveOrder(); // 保存医嘱
}else{
var toSignData = "待签名数据";
// 03: 对签名原文做Hash操作
var hashData = rtn.ca_key.HashData(toSignData);
// 04: 签名
var signData=rtn.ca_key.SignedData(hashData,rtn.ContainerName,AdmId);
if (signData ==""){
alert("SignedData 方法失败 签名值为空!");
return ;
} else {
//调用 ##Class(CA.DigitalSignatureService).Sign()方法保存签名数据
}
}
}
dhcsys_getcacert方法存在websys.js中,主要用于通过当前科室或用户信息判断是否需求CA签名,如需要签名则判断是否已CA登录过,如果未登录过CA则弹出CA登录框登录,登录成功后返回签名证书信息及对象。
第一入参 Options
第二入参 logonType 登录类型, 默认””表示系统默认或上次登录签名方式,也可强制”UKEY”,”PHONE”,”FACE”,”SOUND”
第三入参singleLogon是否单登录方式,默认1表示弹签名方式,0表示弹出已配置的所有签名方式
第四入参forceOpen强制弹签名窗口,默认0表示没登录过则弹出,登录过不弹,1弹制每次都弹出。
使用IE浏览器可得到正确的返回值,如果使用非IE浏览器则需要使用回调方式使用,且返回值与回调方法的入参都是Object类型格式如下
s imageBase64 = ##class(CA.BICAService).GetImageByUserID(userID)
访问量: 510469