/******************************************************************************
* 文件名称: 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);
}
}
}
}