UNPKG

medical

Version:
61 lines (54 loc) 1.75 kB
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};