/****************************************************************************** * 文件名称: CenterBusiness.cs * 文件说明: 中心交易封装 * 当前版本: V1.0 * 创建日期: 2022-06-20 * * * 2020-06-20: 增加 CenterBusiness 类 * ***** 2020-06-20: 增加 CardReader 方法,获取URL地址,USER信息,地方版SSCard.dll使用 * ***** 2020-06-20: 增加 CardReader 方法重载,国家版电子凭证使用 * ***** 2020-06-20: 增加 Init 方法,SSCard环境初始化 ******************************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json.Linq; using PTMedicalInsurance.Common; using PTMedicalInsurance.Helper; using PTMedicalInsurance.Variables; namespace PTMedicalInsurance.Business { class CenterBusiness { private InvokeHelper invoker = new InvokeHelper(); /// /// 签到 /// /// public int signIn(out JObject joRtn) { string outParam = ""; string inParam = ""; try { dynamic jsonSignIn = new JObject(); dynamic jsonInput = new JObject(); jsonSignIn.opter_no = Global.curEvt.signno; jsonSignIn.mac = Global.curEvt.mac; jsonSignIn.ip = Global.curEvt.ip; jsonInput.signin = jsonSignIn; inParam = JsonHelper.setCenterInpar("9001", jsonInput.ToString()); outParam = invoker.invokeCenterService("9001", inParam).ToString(); joRtn = JObject.Parse(outParam); if (joRtn["infcode"].ToString() == "0") { Global.curEvt.signno = joRtn["output"]["signinoutb"]["sign_no"].ToString(); return 0; } else { //joRtn = JsonHelper.getIrisExceptionJson(-100, "签到异常", (string)joRtn["err_msg"]); return -1; } } catch (Exception ex) { joRtn = new JObject(); joRtn.Add("infcode", -1); joRtn.Add("err_msg", outParam + ex.Message); //joRtn = JsonHelper.getIrisExceptionJson(-100,"签到异常", outParam + ex.Message); return -2; } } /// /// 住院患者登记 /// /// public int inPatReg(string inParam,out string outparam) { outparam = ""; try { return 0; } catch (Exception ex) { return -1; } } public int cancleRegister(string funNO, out string outparam) { outparam = ""; string errMsg; try { dynamic joTmp = new JObject(); joTmp.mdtrt_id = Global.pat.mdtrtID; joTmp.psn_no = Global.pat.psn_no; if (funNO == "2202") { joTmp.ipt_otp_no = Global.pat.adm_Dr.ToString(); } JObject joData = new JObject(); joData.Add("data", joTmp); //好后上传给中心 //string inpar = GlobalVariables.SetJsonParam("2405", joTmp).ToString(); JObject joRtn = invoker.invokeCenterService(funNO, JsonHelper.setCenterInpar(funNO, joData).ToString()); if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0) { outparam = errMsg; return -1; } else { outparam = joRtn.ToString(); return 0; } } catch (Exception ex) { outparam = "取消登记异常" + funNO + ":" + ex.Message; return -1; } } /// /// 取消费用传送 /// /// /// /// public int cancleFeeUpload(string funNO,out string errMsg) { errMsg = ""; try { //组织入参 dynamic joTmp = new JObject(); if (funNO == "2205") { joTmp.chrg_bchno = "0000"; } else { joTmp.feedetl_sn = "0000"; } joTmp.mdtrt_id = Global.pat.mdtrtID; joTmp.psn_no = Global.pat.psn_no; joTmp.expContent = ""; JObject joData = new JObject(); if (funNO == "2205") { joData.Add("data", joTmp); } else { JArray jaData = new JArray(); jaData.Add(joTmp); joData.Add("data", jaData); } //组织好后上传给中心 JObject joRtn = invoker.invokeCenterService(funNO, JsonHelper.setCenterInpar(funNO, joData.ToString())); if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0) { return -1; } else { return 0; } } catch (Exception ex) { errMsg = "cancleFeeUpload异常:" + ex.Message; return -1; } } public int cancleSettlement(string funNO, out string outparam) { outparam = ""; string errMsg; try { dynamic joTmp = new JObject(); joTmp.mdtrt_id = Global.pat.mdtrtID; joTmp.psn_no = Global.pat.psn_no; joTmp.setl_id = Global.pat.settlID; joTmp.expContent = ""; JObject joData = new JObject(); joData.Add("data", joTmp); JObject joRtn = invoker.invokeCenterService(funNO, JsonHelper.setCenterInpar(funNO, joData).ToString()); if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0) { outparam = errMsg; return -1; } else { outparam = joRtn.ToString(); return 0; } } catch (Exception ex) { outparam = "取消结算异常" + funNO + ":" + ex.Message; return -1; } } /// /// 下载业务(1301-1309),返回会的JSON串中包含解压后的TXT地址 /// /// /// /// /// public JObject DownDirecotry(string funNO, string ver) { try { dynamic joTmp = new JObject(); joTmp.ver = ver; dynamic joParam = new JObject(); joParam.hospitalDr = GlobalVariables.hospitalDr; joParam.hospitalName = GlobalVariables.hospitalName; joParam.InterfaceDr = GlobalVariables.interfaceDr_Download; joParam.InterfaceID = GlobalVariables.InterfaceID; joParam.businessType = "DirectoryDownload"; joParam.funNO = funNO; joParam.operatorNO = GlobalVariables.operatorNO; joParam.operatorName = GlobalVariables.operatorName; joParam.data = joTmp; IrisInterfaceService iris = new IrisInterfaceService(); JObject joInterface = iris.getInterface(GlobalVariables.interfaceDr.ToString()); JArray jaParams = new JArray(); jaParams.Add(joParam); dynamic joInParam = new JObject(); joInParam.businessType = "DirectoryDownload"; joInParam.hospitalDr = GlobalVariables.hospitalDr; joInParam.InterfaceDr = GlobalVariables.interfaceDr; joInParam.interfaceinfo = joInterface; joInParam.code = ""; joInParam.Add("params", JArray.FromObject(jaParams)); joInParam.Add("session", JArray.Parse(@"[{""userID"":""555"",""userCode"":""200006"",""userName"":""巢丽丽"",""locID"":""292"",""locDesc"":""住院收费处"",""groupID"":""315"",""groupDesc"":""住院收费"",""hospID"":""63"",""hospCode"":""H20"",""hospDesc"":""合肥瑶海普瑞眼科医院"",""langID"":""1"",""langDesc"":""简体中文"",""changeFlag"":""N"",""changeDesc"":"""",""lastLoginDate"":""2022-04-25"",""lastLoginTime"":""16:37:46"",""directorAuth"":""N"",""defaultMenuType"":""1"",""titleDesc"":"""",""path"":"""",""sessionID"":""vXxOkIXkUh"",""language"":""CN"",""messageTime"":1}]")); string outParam = string.Empty; string errorMessage = string.Empty; InvokeHelper invokeHelper = new InvokeHelper(); return invokeHelper.businessDLLInvoke("Download", joInParam.ToString()); //return invokeHelper.invokeShellDll("Download", joInParam.ToString()); } catch (Exception ex) { return JsonHelper.getIrisExceptionJson(-1, "DownDirecotry:", ex.Message); } } /// /// 下载业务(1301-1309),返回会的JSON串中包含解压后的TXT地址 /// /// /// /// /// public JObject DownDictionay(JObject joData) { string outparam = ""; try { dynamic joParam = new JObject(); joParam.hospitalDr = GlobalVariables.hospitalDr; joParam.hospitalName = GlobalVariables.hospitalName; joParam.InterfaceDr = GlobalVariables.interfaceDr_Download; GlobalVariables.writeLog("GlobalVariables.interfaceDr_Download:" + GlobalVariables.interfaceDr_Download.ToString()); joParam.InterfaceID = GlobalVariables.InterfaceID; joParam.businessType = "DictionayDownload"; joParam.operatorNO = GlobalVariables.operatorNO; joParam.operatorName = GlobalVariables.operatorName; joParam.data = joData; JArray jaParams = new JArray(); jaParams.Add(joParam); dynamic joInParam = new JObject(); joParam.funNO = "1901"; joInParam.code = ""; //获取接口信息 IrisInterfaceService iris = new IrisInterfaceService(); JObject joInterface = iris.getInterface(GlobalVariables.interfaceDr.ToString()); GlobalVariables.writeLog("joInterface:" + joInterface); //设置SESSION JArray jaSession = JArray.Parse(@"[{""userID"":""555"",""userCode"":""200006"",""userName"":""巢丽丽"",""locID"":""291"",""locDesc"":""门诊收费处"",""groupID"":""308"",""groupDesc"":""门诊收费"",""hospID"":""63"",""hospCode"":""H20"",""hospDesc"":""合肥瑶海普瑞眼科医院"",""langID"":""1"",""langDesc"":""简体中文"",""changeFlag"":""N"",""changeDesc"":"""",""lastLoginDate"":""2022-05-12"",""lastLoginTime"":""08:52:48"",""directorAuth"":""N"",""defaultMenuType"":""1"",""titleDesc"":"""",""path"":""/05100010"",""sessionID"":""rnXwMYrnoi"",""language"":""CN"",""messageTime"":1}]"); joInParam.Add("params", JArray.FromObject(jaParams)); joInParam.Add("interfaceinfo", joInterface); joInParam.Add("session", jaSession); joInParam.Add("businessType", "DictionayDownload"); joInParam.Add("hospID", GlobalVariables.hospitalDr); GlobalVariables.writeLog("jaSession:" + jaSession); InvokeHelper invokeHelper = new InvokeHelper(); JObject joRtn = invokeHelper.businessDLLInvoke("Download", joInParam.ToString()); outparam = joRtn.ToString(); return joRtn; } catch (Exception ex) { JObject joRtn = JsonHelper.getIrisExceptionJson(-1, "DownDictionay:", ex.Message); outparam = joRtn.ToString(); return joRtn; } finally { GlobalVariables.writeLog("DownDictionay1", joData.ToString(), outparam); } } /// /// 医保相关查询交易-不需要下载文件解析 /// /// /// public JObject InvokeMedicalInsuranceInquiry(string funNO,JObject joInData) { string sInput = ""; string outparam = ""; string errMsg = ""; try { JObject joInput = new JObject(); if (funNO != "1201") joInput.Add("data", joInData); else joInput.Add("medinsinfo", joInData); sInput = joInput.ToString(); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeCenterService(funNO, JsonHelper.setCenterInpar(funNO, joInput)); outparam = joRtn.ToString(); if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0) { outparam = errMsg; //封装返回值的格式 {"errorCode":"-1","errorMessage":"XXXXX"} return JsonHelper.getIrisExceptionJson(-1, "调用查询失败!", outparam); } else { outparam = joRtn.ToString(); //封装返回值的格式 {"errorCode":"0","errorMessage":"","result":"joRtn"} return JsonHelper.setIrisReturnValue(0, "", joRtn); } } catch (Exception ex) { //封装返回值的格式 {"errorCode":"-1","errorMessage":"InvokeMedicalInsuranceInquiry+异常信息"} JObject joRtn = JsonHelper.getIrisExceptionJson(-1, "InvokeMedicalInsuranceInquiry:", ex.Message); outparam = joRtn.ToString(); return joRtn; } finally { GlobalVariables.writeLog("InvokeMedicalInsuranceInquiry", sInput, outparam); } } } }