using Newtonsoft.Json.Linq;
using PTMedicalInsurance.Business.SelfServiceMachine;
using PTMedicalInsurance.Common;
using PTMedicalInsurance.Entity;
using PTMedicalInsurance.Entity.Local;
using PTMedicalInsurance.Forms;
using PTMedicalInsurance.Helper;
using PTMedicalInsurance.Variables;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PTMedicalInsurance.Business
{
class PatientService
{
protected HisMainBusiness hBus = new HisMainBusiness();
protected InvokeHelper invoker = new InvokeHelper();
///
/// 读卡
///
///
public int readCard(out string outParam)
{
CallResult ret = new ReadCardProcess().Process(null);
outParam = ret.PureData?.ToString();
return ret.Code;
}
///
/// 自助机读卡
///
///
///
public int readCardInSSM(out string outParam)
{
CallResult ret = new ReadCardInSSMPProcess().Process(null);
outParam = ret.PureData?.ToString();
return ret.Code;
}
///
/// 读卡并展示病人信息
///
///
///
public int readPatientInfo(out string outParam)
{
string patInfo = "";
//打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
if (readCard(out outParam) != 0)
{
return -1;
}
else
{
patInfo = outParam;
if (hBus.convertPatientInfo(patInfo, out outParam) != 0)
{
return -1;
}
}
#region 展示患者信息
//患者信息赋值给全局变量
string errMsg = "";
if (hBus.setGlobalPatAfaterShowPatInfo(outParam, out errMsg) != 0)
{
outParam = JsonHelper.setExceptionJson(-1, "setGlobalPatAfaterShowPatInfo", errMsg).ToString();
return -1;
}
//校验HIS姓名与医保姓名是否一致
if ((Global.pat.adm_Dr != null) && (Global.pat.adm_Dr != 0))
{
if (hBus.checkName(Global.pat.name, out errMsg) != 0)
{
outParam = JsonHelper.setExceptionJson(-1, "校验HIS与医保姓名是否一致", errMsg).ToString();
return -1;
}
}
#endregion
return 0;
}
///
/// 读卡并展示病人信息
///
///
///
///
public int readPatientInfoForSelfServiceMachine(out string outParam)
{
string patInfo = "";
//打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
if (readCardInSSM(out outParam) != 0)
{
return -1;
}
else
{
patInfo = outParam;
if (hBus.autoOrganizePatInfoInSSM(patInfo, out outParam) != 0)
{
return -1;
}
}
#region 展示患者信息
//患者信息赋值给全局变量
string errMsg = "";
if (hBus.setGlobalPatAfaterShowPatInfo(outParam, out errMsg) != 0)
{
outParam = JsonHelper.setExceptionJson(-1, "setGlobalPatAfaterShowPatInfo", errMsg).ToString();
return -1;
}
Global.writeLog($"name:{Global.pat.name}");
//校验HIS姓名与医保姓名是否一致
if (Global.operationType.Equals("SettlementOP") || Global.operationType.Equals("PreRegOP"))
{
if (hBus.checkName(Global.pat.name, out errMsg) != 0)
{
outParam = JsonHelper.setExceptionJson(-1, "校验HIS与医保姓名是否一致", errMsg).ToString();
return -1;
}
}
#endregion
return 0;
}
}
}