medical
Version:
61 lines (54 loc) • 1.75 kB
JavaScript
const path = require('path')
const dllinvoke = require('./dllinvoke')
const encodingConvert = require('encoding');
const ref = require('ref-napi')
const hisLogger = require("../../../src/hisLogger");
const settings = require("electron-settings")
let VQInterface
let cradInfo
function result(ret, input, output, cradinfo) {
let obj = {
ret: ret,
input: input,
output: output,
cradinfo: cradinfo
}
return obj
}
async function init(paths) {
try {
/****市医保读卡接口*****/
let dllDirectory = path.join(settings.getSync('hangzhou.dllRoot'))
let calls={}
let lib = await dllinvoke.invoke(dllDirectory, 'HCKY95H.dll', {
'dsbdll': ['int', ['int', 'string']]
})
for (let fName in lib){
calls[fName]=lib[fName];
}
return calls
} catch (e) {
hisLogger.hisLogger("获取语音报价器失败!: " + e.toString())
return -1;
}
return undefined;
}
async function voiceQuoterInterface({func,type, msg}) {
let resultObj = result(-1, '', '', cradInfo)
let data1;
try{
if (VQInterface==undefined){
VQInterface=await init()
}
if (func.indexOf("dsbdll") >= 0 && VQInterface.hasOwnProperty(func)) {
data1=encodingConvert.convert(msg, "GBK","UTF8")
resultObj.ret = await VQInterface[func](type, data1)
}
}catch (e) {
hisLogger.hisLogger({"严重错误:":e.toString()})
resultObj.input = ref.readCString(data1,0);
resultObj.output = e.toString();
}
return resultObj;
}
module.exports = {init, voiceQuoterInterface};