Skip to content

灵医智惠CDSS标准版C/S SDK开发指南v1——LIS系统

SDK初始化

客户端安装

在医生电脑上,下载灵医智惠CDSS程序01cdss.exe,按照提示安装即可。

动态库引用

在HIS/EMR等医疗信息系统代码中引入01cdss.dll动态库,以csharp为例,引入动态库代码如下:

[DllImport("01cdss.dll", EntryPoint = "SetReceiveHandle",
    CallingConvention = CallingConvention.Cdecl)]
public static extern void SetReceiveHandle(string systemType, int handleNum);

[DllImport("01cdss.dll", EntryPoint = "SetSecurityKeys",
    CallingConvention = CallingConvention.Cdecl)]
public static extern void SetSecurityKeys(string ak, string sk);

[DllImport("01cdss.dll", EntryPoint = "UserLogin",
    CallingConvention = CallingConvention.Cdecl)]
public static extern void UserLogin(string userInfo);

[DllImport("01cdss.dll", EntryPoint = "SendMessageToCDSS",
    CallingConvention = CallingConvention.Cdecl)]
public static extern int SendMessageToCDSS(string message, int handleNum, int trigger);

[DllImport("01cdss.dll", EntryPoint = "BroadcastMessageToCDSS",
    CallingConvention = CallingConvention.Cdecl)]
public static extern void BroadcastMessageToCDSS(string msg, int handleNum);

注册

// handleNum: 窗口句柄号
SetReceiveHandle("LIS", int handleNum);

// ak和sk请联系灵医智惠CDSS技术人员提供
SetSecurityKeys(string ak, string sk);

HIS/EMR等信息系统程序启动后: * 1)调用DLL提供的SetReceiveHandle("LIS", int handleNum)方法注册程序信息,用于告知接收Windows消息(医嘱回填数据)的窗体,若接受回传数据的界面在同一个窗体内,则只需要注册一次即可。 * 2)调用DLL提供的SetSecurityKeys(string ak, string sk)方法注册密钥信息,ak和sk请联系灵医智惠CDSS技术人员提供。

用户登录

// userInfo: 用户信息,值为JSON字符串,用户包括医生/护士/药师等
//  {
//    "name": "医生/护士/药师姓名",
//    "id": "医生/护士/药师ID",
//    "department": "科室",
//    "hospital": "医院名称"
//  }
UserLogin(string userInfo);

当用户登录HIS系统时,调用DLL提供的UserLogin(string userInfo)方法注册用户基本信息。

SDK接口定义

灵医智惠CDSS支持多种触发方式,见下方表格:

trigger取值 触发类型 触发交互逻辑 是否可选
0 人工手动触发 点击新增的CDSS按钮 必选
11 后台自动触发 打开检验报告 必选
12 后台自动触发 关闭检验报告 必选
13 后台自动触发 保存检验报告 必选
14 后台自动触发 提交检验报告 必选

新增按钮手动触发

// message: 患者数据,必须符合《患者数据规范》
// handleNum: 窗口句柄号
// trigger=0: 触发方式为按钮手动触发
string message = "{\"xx\":\"xx\"}";
SendMessageToCDSS(message, handleNum, 0);

当医生编辑检验报告过程中,点击新增的按钮手动触发,将当前检验报告数据按规定的Json格式通过异步接口发送给CDSS程序。新增按钮的样式与文案由医院、HIS厂商、灵医智惠三方共同讨论确定。

检验标本签收时自动触发

// message: 患者数据,必须符合《患者数据规范》
// handleNum: 窗口句柄号
// trigger=11: 触发方式为检验标本签收时自动触发
string message = "{\"xx\":\"xx\"}";
SendMessageToCDSS(message, handleNum, 14);

当医生**检验标本签收时后台自动触发**,将当前检验报告数据按规定的Json格式通过异步接口发送给CDSS程序。

检验报告审核时自动触发

// message: 患者数据,必须符合《患者数据规范》
// handleNum: 窗口句柄号
// trigger=13: 触发方式为点击审核按钮时自动触发
string message = "{\"xx\":\"xx\"}";
SendMessageToCDSS(message, handleNum, 14);

当医生完成检验报告审核后,点击审核按钮时后台自动触发,将当前检验报告数据按规定的Json格式通过异步接口发送给CDSS程序。

查看检验报告时自动触发

// message: 患者数据,必须符合《患者数据规范》
// handleNum: 窗口句柄号
// trigger=14: 触发方式为查看检验报告时自动触发
string message = "{\"xx\":\"xx\"}";
SendMessageToCDSS(message, handleNum, 14);

当医生**查看检验报告时后台自动触发**,将当前检验报告数据按规定的Json格式通过异步接口发送给CDSS程序。

关闭检验报告时自动触发

// message: 空字符串
// handleNum: 窗口句柄号
// trigger=12: 触发方式为关闭检验报告时自动触发
SendMessageToCDSS("", handleNum, 12);

当医生**关闭检验报告窗口时后台自动触发**,通过异步接口发送给CDSS程序。关闭检验报告窗口或选项卡时,执行trigger=12告知当前窗口或选项卡已关闭。

SDK入参:患者数据规范

检验报告

{
  "场景":  ["检验标本签收","检验报告审核","查看检验报告"],
  "trigger": "保存/提交/CDSS",   // 触发CDSS的方式
                                //  1) 保存:点击保存时自动触发;
                                //  2) 提交:点击提交时自动触发;
                                //  3) CDSS:点击单独新增的CDSS按钮触发。
  // 工作人员信息
  "医院": "",                   // [必填]医院名称
  "科室": "",                   // [必填]科室名称
  "医生": "",                   // [必填]工作人员姓名
  "uid": "",                   // [必填]医疗信息系统账号
  // 患者信息
  "诊疗类型": "门诊/急诊/体检",   // [必填]
  "rid": "",                  // [必填] 住院号 或者 门诊号
  "pid": "",                  // [必填] 患者ID
  "年龄": "28岁",              // [必填] xx岁/xx月/xx天/xx小时
  "性别": "男/女",             // [必填]
  // 检验报告单
  "检验": [
    {
      "申请时间": "yyyy-MM-dd HH:mm:ss",
      "采样时间": "yyyy-MM-dd HH:mm:ss",
      "收样时间": "yyyy-MM-dd HH:mm:ss",
      "检验时间": "yyyy-MM-dd HH:mm:ss",
      "报告时间": "yyyy-MM-dd HH:mm:ss",
      "标本类型": "血/血清/尿/等",
      "检验项": "",               // 检验小项名称,比如白细胞计数
      "检验项ID": "",             // 检验小项ID
      "检验类型": "",             // 检验大项名称,比如血常规
      "检验单号": "",             // 检验大项ID
      "医嘱单号": "",             // 医嘱申请单单号
      "检验结果": "正常/偏高/偏低/阳/阴/等", // 结果明确的填具体值,不明确留空
      "检验值": {
        "值": 8.5,
        "单位": "10^9个/L"
      },
      "最小值": {
        "值": 5.0,
        "单位": "10^9个/L"
      },
      "最大值": {
        "值": 10.0,
        "单位": "10^9个/L"
      },
      "正常值": "阴性"
    }
  ]
}