HISUI
获得三方cdss对象
2022年05月10日 19时15分

获得三方cdss对象

系统与不同CDSS友商做对接时,初始化cdss方式不同,为了统一初始化及统一获得cdss对象的方法,编写此说明。
首先需求拿到CDSS友商的服务信息,如服务器IP,应用路径,密钥。然后维护到临床决策支持服务配置界面
cdsspage

1. 引入CDSS厂商资源

// 根据院区,科室,用户的配置引入对应CDSS资源,
do ##class(CF.BSP.SYS.SRV.CDSSService).InitCDSSJS(CTLodId,UserId) //代码写到csp中

会生成引用js或div的代码

一般在框架界面引入即可
如果cdss功能只是诊疗使用,则诊疗界面引入即可
如果cdss功能只是病历使用,则病历界面引入即可

2. 初始化方法(initWebsysCDSS(type))

先找到引用资源对应的window对象,然后调用initWebsysCDSS(type)即可初始化对应类型的CDSS窗口,type为维护界面中代码

//如果是在头菜单引入CDSS情况, win示具体情况而定
var win = websys_getMenuWin();  // 获得顶层框架window对象
win.initWebsysCDSS('mediway');   // 会在顶层框架上初始化CDSS
// 诊疗界面引入cdss情况下,在诊疗界面调用js方法
initWebsysCDSS('mediway');

3. 获得cdss对象getWebsysCDSS(type)

初始化完成后与CDSS交互时,需要拿到CDSS对象,可以使用getWebsysCDSS(type)来获得对象CDSS对象,type为维护界面中代码

var mayson = getWebsysCDSS('mayson');
// 使用cdss来监听cdss消息,或发送消息给cdss

——– 医为示例 ———————–

/// 医为示例
var cdss = getWebsysCDSS('mediway');
// 根据交互操作服务编码和具体的消息流进行相应的交互操作 
// action为必填值,用于区分不同应用场景
// json 类型为标准消息请求流传给该参数
cdss.TriggerDHCDSS(action,json);
// 监听 dhcdss 开立医嘱/诊断数据
cdss.CopyDataForCDSS = function (Type,Data){
//Type 值为 ORDER、DIAG
}
//监听 dhcdss 写回病历数据
cdss.MonitorWriteData = function (Data){
    //Data 为 String 类型文本
}

——– 惠每示例 ———————–

 /// 惠每示例
 var cdss = getWebsysCDSS('mayson');
/**
* 请求智能推荐
* @param maysonBean(⾮必填)如果存在则重置智能推荐对象,区别于setMaysonBean⽅法,会影响所有已设置过的请求参数
* @param callback 推荐请求完成回调(⾮必填)
*/
cdss.ai(maysonBean, callback);

 /*
 监听cdss消息
 [{
     //当前数据类型(诊断,检查,药品,检查解读,治疗⽅案)
     type: '',
     items: [{
         id: '',  // 数据编号
         text: '' //数据⽂本
     }]
 }]
*/
cdss.listenViewData = function(currentEntity){
    // currentEntity 当前cdss窗口中点击数据对象
}

———- 同方知网 —————–

由于同方知网cdss监听消息与发送消息,不是同一对象,所以提供二个方法来获得不同的cdss对象

 // 发消息给【同方知网cdss】窗口
 var tocdss = getWebsysToCDSS('cnki');
 var objcase = { type: type, jsonData: json };
 tocdss.targets["CNKI_CDSS"].send(JSON.stringify(objcase));
// 监听【同方知网cdss】消息
var cdss = getWebsysCDSS('cnki');
cdss.listen(function (msg) {
  // 得到cdss消息
  if (msg != undefined && msg != "" && msg != "undefined"){
    msg = JSONparse(msg);
    var type = msg.type;
    var value = JSONstringify(msg.jsonData);
  }
});

———- 深圳智慧医学CDSS —————–
由于深圳智慧医学cdss监听消息与发送消息是通过本地 ws服务,所以提供二个方法来与cdss对象交互

 // 发消息给【智慧医学cdss】窗口
 var cdss = getWebsysToCDSS('zhyx');
 var loginParam = {
    //wsid不用传,平台已封装好
    //project:'CDSS-CHECK',默认为'CDSS-CHECK'表示业务接口决策校验,传'CDSS-JS'表示决策大框(静态知识库)
    funcCode:'SET_LOGIN_USER',
    msgJson:{
        doctor_num:"skys",
        doctor_name:"蛇口医生",
    }
};
 cdss.send(loginParam);  //登录cdss
 cdss.listen(function(msgJson){
    console.log(msgJson); // 监听CDSS的返回数据
 });
// 其它业务参数按友商入参传输

———– 嘉禾美康 ———–

 // 发消息给【嘉禾美康cdss】窗口
 var cdss = getWebsysCDSS('jhmk');
 var loginParam = {};
 cdss.cdssSendData("{业务场景json字符串}","");  //会自动登录
 // 业务场景参数按友商要求传入

————腾讯————

// 发消息给腾讯cdss
// send方法入参分别为:腾讯请求URL,data数据(不带header节点),请求回调方法
var cdss = getWebsysCDSS('tencent');
cdss.send(
    '/cgi-bin/v1/Diagnosis/RationalDrugServer/RationalDrugServant/PrescriptionReview', 
    {
        "request_case": {
            "case_type": 1,
            "patient_baseinfo": {
                "name": "张三",
                "sex": "female",
                "age": "24y",
                "birth_place": "",
                "live_place": "",
                "height": "",
                "weight": "",
                "patient_id": "",
                "id_card": "",
                "birth_day": "2020-01-01 00:00:00"
            }
        }
    },
    function(rtn){ console.log(rtn); }
)
// 监听腾讯cdss回写事件
cdss.listen(function(evt){
    console.log(evt);
})

initWebsysCDSS与getWebsysCDSS方法增加类型入参,以便处理同一界面引入多个CDSS服务。2020-06-22

initWebsysCDSS与getWebsysCDSS方法不传入参,则默认处理最后一次引入的CDSS服务 2020-06-22

4. 获得当前开启的CDSS服务信息

// 使用第1步引入CDSS资源后,可以使用以下方法获得所有CDSS服务配置
var CDSSConfig = getWebsysCDSSConfig();

cdssconfig

5. 后台获得CDSS服务信息

///未开启返回: 
///     -1^未发现CDSS科室配置接口
///     -2^该科室或用户未开启CDSS服务
///     -100^未开启CDSS服务
///开启则返回:
///  1^第一个服务信息^第二个服务信息^第三个服务信息
///  1^rowid,cdss服务代码,cdss服务描述,地址,服务版本,参数,启用时间^rowid,cdss服务代码,cdss服务描述,地址,服务版本,参数,启用时间
Set CDSSServerInfo = ##class(CF.BSP.SYS.SRV.CDSSService).GetEnableCDSS(CTLocId , UserId)
上一篇: 下一篇:

发表评论

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

访问量: 379612