023-61709229

手麻系统接口

发布日期:2022-09-04发布人:管理员

一. 目的

本文档指导第三方系统对接追溯系统,实现目标:

1、追溯系统的物品包关联到病人;

2、第三方系统获取物品包相关追溯信息;

3、追溯系统获取相关病人信息和手术信息;

 

二. 对接说明

第三方系统(如手麻系统)开发一个器械包登记页面,用户在该页面扫描器械包条码后第三方系统通过WebAPI获取物品包详细信息,当用户提交保存时,第三方系统保存器械包相关信息的同时,应把手术相关信息提交给追溯系统。

 

1、追溯系统提供WebAPI

2、数据提交方式:Post

3、数据格式:JSON

4、数据传输格式:utf-8

5、对接地址:现场配置,如:http://192.168.x.x:12345/api.ashx

 

三. 数据格式

post和返回格式相同;

字段

必填

说明

dateTime

接口发生时间,格式:yyyy-MM-dd HH:mm:ss

如果提交的时间与服务器时间相差超过5分钟,返回失败

rndCode

一个随机字符串,推荐使用GUID

data

报文正文,一个JSON,各函数另附说明

dataLng

报文字符串长度,中文按1个长度计算,如果与data的长度不一致,返回失败

sign

签名,一个md5结果大写字符串,参见签名说明


1. 签名说明

sign=md5(dateTime.ToString("yyyy-MM-dd HH:mm:ss")   "|"   rndCode  "|"   sKey   "|"   dataLng)

 

1、md5的时候把字符串按GBK2312的方式编码后参与计算;

2、sKey:现场分配;

 

参考代码(c#):

/// <summary>

/// 返回sign

/// </summary>

/// <param name="dtime">流水时间</param>

/// <param name="dataLng">流水正文长度</param>

/// <param name="sKey">系统分配的sKey</param>

/// <returns></returns>

public static string GetMD5(DateTime dtime, int dataLng,string sKey)

{

    //获取需要加密的字符串

    string encypStr = dtime.ToString("yyyy-MM-dd HH:mm:ss")   "|"   Guid.NewGuid().ToString("N")   "|"   sKey   "|"   dataLng;

    //返回加密后的内容

    return System.BitConverter.ToString((new MD5CryptoServiceProvider()).ComputeHash(Encoding.GetEncoding("GB2312").GetBytes(encypStr))).ToUpper();

}

 


2. 成功时返回报文正文说明

{... ... "OK":true,  ... ... }

成功时报文正文里必有:OK:true

其它内容参见各函数说明;

 

 

示例:

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

"OK": true

...... (有可能不存在其它参数)

  }

}

 

3. 失败时返回报文正文说明

{... ..."OK":false,"Message":"错误说明", ... ...}

失败时报文正文里必有:OK:false Message

Message里表示失败原因,如果有用户界面,该失败原因可直接向用户显示;

 

示例:

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

    "OK": false,

    "Message": "???"

  }

}

 


四. 登陆

传入参数

字段

必填

说明

menukey

login.webonekey

username

现场分配

nodecode

现场分配

 

返回内容

字段

必填

说明

token

一个字符串,小于或等于50字节,24小时内有效,作为其它函数的参数使用

rsUser

登陆的操作员相关信息,不使用可忽略,如姓名

kehuid

登陆的医院相关信息,不使用可忽略,如医院名称

rsKeshi

登陆的科室相关信息,不使用可忽略,如科室名称

...


其它还有一些可选信息,可忽略

 

示例:

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

    "menukey": "login.webonekey",

    "username": "???",

    "nodecode": "???"

  }

}

 

实例:

{"data":"{\"menukey\":\"login.webonekey\",\"username\":\"621764\",\"nodecode\":\"741A2E10-5FF2-4C66-AE2F-00124887765D\"}","dateTime":"2021-09-02 16:10:49","rndCode":"31f5d485-71b1-44c3-ab29-9f376bcd62be","dataLng":99,"sign":"B380C2D9AD401A21989D406057218419"}

 

里面没有换行符,因显示的原因产生了换行


五. 通过条码号换取物品包信息

传入参数

字段

必填

说明

menukey

liuchen.yxwpInfoMoreFromCode

gxtoken

登陆时获取的token

codeText

扫描或输入的条码号

 

返回内容

字段

必填

说明

wpName

物品包名称

wpCode

条码号

sysID

物品包系统编号,一个GUID字符串,用于登记病人信息时提交

mjDatetime

灭菌日期时间

sxDatetime

失效日期时间

devDayID

灭菌器批次

baozhuangUser

包装人

keshiName

物品包所属科室名称

hebaoUser

核包人

miejunUser

灭菌人

wpTypeName

无菌包类型

qx

器械列表,见下说明

 

qx内容

字段

必填

说明

sysID

器械系统编号,一个GUID字符串,如不使用,忽略

name

器械名称

number

器械数量

unit

器械单位

typeName

器械类型

 

示例:

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

    "menukey": "liuchen.yxwpInfoMoreFromCode",

    "gxtoken": "???",

    "codeText": "???"

  }

}

 

 

实例:

{"data":"{\"menukey\":\"liuchen.yxwpInfoMoreFromCode\",\"gxtoken\":\"0cde985b-f954-44e4-bc53-230e83bb1630\",\"codeText\":\"312305\"}","dateTime":"2021-09-02 16:16:41","rndCode":"1bc489b3-52f3-447e-b3cd-b15550cb60de","dataLng":111,"sign":"A54A42E3EACF2ABC14F6AB5550F1AA5F"}

 

里面没有换行符,因显示的原因产生了换行


六. 向追溯系统设置病人信息

传入参数

字段

必填

说明

menukey

liuchen.yxwpInfoMoreFromCodeSet

gxtoken

登陆时获取的token

sysID

通过条码号换取物品包信息时获取的sysID,一个GUID字符串

brName

病人姓名

brCode

病人ID,如住院号、就诊卡号等,选其一

brLianLin

病人年龄

brZhenJianHao

病人证件号

ssJian

手术间名称,如1号手术间

ssShi

手术室科室名称,如门诊手术室、住院部手术室等

ssName

手术名称

ssShiJian

手术日期时间,yyyy-MM-dd HH:mm:ss 格式

ssYiShen

手术医生姓名

ssMaZhui

麻醉医生姓名

ssHuShi

护士姓名

ssHuiShiXiShou

洗手护士

ssHuShiXunHui

巡回护士

ssHuiShiQiXie

器械护士

部分字段如果医院没有特别的要求,可以填写空,但必须要有这些字段。

 

返回内容

字段

必填

说明

无必要字段



 

示例

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

    "menukey": "liuchen.yxwpInfoMoreFromCodeSet",

    "sysID": "???",

    "brName": "???",

    ......

  }

}

 


实例:

{"data":"{\"menukey\":\"liuchen.yxwpInfoMoreFromCodeSet\",\"gxtoken\":\"0cde985b-f954-44e4-bc53-230e83bb1630\",\"sysID\":\"c11d0c85-30ab-4fdd-9518-004dec90f714\",\"brName\":\"张三\",\"brCode\":\"001\",\"brLianLin\":100,\"brZhenJianHao\":\"00000000000000\",\"ssJian\":\"1号手术间\",\"ssShi\":\"手术室\",\"ssName\":\"xx手术\",\"ssShiJian\":\"2000-01-01 09:01:01\",\"ssYiShen\":\"李四\",\"ssMaZhui\":\"王五\",\"ssHuShi\":\"张七\",\"ssHuiShiXiShou\":\"xx\",\"ssHuShiXunHui\":\"xx\",\"ssHuiShiQiXie\":\"xx\"}","dateTime":"2021-09-02 16:17:55","rndCode":"4b0b48f0-6381-42b6-aaad-ef138d61a424","dataLng":411,"sign":"0E4A5A31575B726E8E755E2FEE6125AD"}

里面没有换行符,因显示的原因产生了换行

 

 


七. 取消设置病人信息

传入参数

字段

必填

说明

menukey

liuchen.liuchenYXWPChangeSave

gxtoken

登陆时获取的token

idList

通过条码号换取物品包信息时获取的sysID,一个GUID字符串可以一次性提交多个物品包,中间用英文逗号分隔

changeType

ccdjsy   常量

newValueType

取消类型,可以是常量:取消登记使用

newValueMemo

摘要,可以是常量:空字符串,但必须要有这个项目

 

返回内容

字段

必填

说明

无必要字段



 

示例

{

  "dateTime": "2021-01-01 00:00:00",

  "rndCode": "df4a4949-dabb-4b15-9038-0409ebf047ae",

  "dataLng": "???",

  "sign": "xxxx",

  "data": {

    "menukey": "liuchen.liuchenYXWPChangeSave",

    "idList": "???",

    "changeType": "???",

    "newValueType": "???",

    "newValueMemo": "",

    ......

  }

}