private HIS_Entity.MIManage.Common.Reg.root RegisterToInput(MI_Register register) { HIS_Entity.MIManage.Common.Reg.root root = new HIS_Entity.MIManage.Common.Reg.root(); HIS_Entity.MIManage.Common.Reg.input input = new HIS_Entity.MIManage.Common.Reg.input(); root.input = input; HIS_Entity.MIManage.Common.Reg.tradeinfo tradeinfo = new HIS_Entity.MIManage.Common.Reg.tradeinfo(); tradeinfo.curetype = "11"; tradeinfo.billtype = "0"; tradeinfo.feeno = "0"; tradeinfo.operator1 = register.StaffName; input.tradeinfo = tradeinfo; HIS_Entity.MIManage.Common.Reg.recipearray recipearray = new HIS_Entity.MIManage.Common.Reg.recipearray(); HIS_Entity.MIManage.Common.Reg.recipe recipe = new HIS_Entity.MIManage.Common.Reg.recipe(); recipe.hissectionname = register.DeptName; recipe.drid = register.DiagnDocID; recipe.drname = register.Doctor; recipe.registertradeno = register.SerialNO.ToString(); recipe.billstype = "1"; HIS_Entity.MIManage.Common.Reg.recipe[] recipes = { recipe }; recipearray.recipe = recipes; input.recipearray = recipearray; HIS_Entity.MIManage.Common.Reg.feeitemarray feeitemarray = new HIS_Entity.MIManage.Common.Reg.feeitemarray(); input.feeitemarray = feeitemarray; return(root); }
public void MZ_PreviewRegister(MI_Register register) { register.StaffName = LoginUserInfo.EmpName; register.RegTime = System.DateTime.Now; register.StaffID = LoginUserInfo.EmpId.ToString(); register.BedNo = ""; register.ICDCode = ""; register.DiagnosisName = ""; register.SocialCreateNum = ""; dicStr.Clear(); dicStr.Add(InputType.MI_Register, JsonHelper.SerializeObject(register)); Action <ClientRequestData> requestAction = ((ClientRequestData request) => { request.AddData(input); }); ServiceResponseData retdataMember = InvokeWcfService("MIService.Service", "MIMzController", "MZ_PreviewRegister", requestAction); bool b = retdataMember.GetData <bool>(0); string s = retdataMember.GetData <string>(1); if (b) { Dictionary <string, string> resultDic = retdataMember.GetData <Dictionary <string, string> >(2); iFrmMITest.LoadRegisterInfo(resultDic); } else { MessageBoxShowError("异常!" + s); } }
public ServiceResponseData Mz_Getregister() { int regId = requestData.GetData <int>(0); string serialNO = requestData.GetData <string>(1); int workId = WorkId; if (regId > 0) { MI_Register register = NewObject <MI_Register>().getmodel(regId) as MI_Register; responseData.AddData(true); responseData.AddData(register); } else { List <MI_Register> registerList = NewObject <MI_Register>().getlist <MI_Register>(" SerialNO='" + serialNO + "' and WorkId=" + workId + " and ValidFlag=1"); if (registerList.Count > 0) { MI_Register register = registerList[0]; responseData.AddData(true); responseData.AddData(register); } else { responseData.AddData(false); } } return(responseData); }
public MI_Register Mz_Getregister(int registerId, string serialNO) { try { Action <ClientRequestData> requestAction = ((ClientRequestData request) => { request.AddData(registerId); request.AddData(serialNO); }); ServiceResponseData retdataMember = InvokeWcfService("MIProject.Service", "MIMzController", "Mz_Getregister", requestAction); bool b = retdataMember.GetData <bool>(0); if (b) { MI_Register register = retdataMember.GetData <MI_Register>(1); return(register); } else { return(null); } } catch (Exception e) { return(null); } }
public override ResultClass Mz_GetRegisterTradeNo(string sSerialNO) { ResultClass resultClass = new ResultClass(); try { MI_Register register = hisDao.Mz_Getregister(0, sSerialNO); if (register != null) { resultClass.bSucess = true; resultClass.sRemarks = register.SocialCreateNum; } else { resultClass.bSucess = false; resultClass.sRemarks = "未进行医保登记!"; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "获取挂号信息异常" + e.Message; } return(resultClass); }
//public override ResultClass Mz_CancelRegister(InputClass inputClass)//string serialNO) //{ // ResultClass resultClass = new ResultClass(); // try // { // resultDic.Clear(); // MI_Register register = JsonHelper.DeserializeJsonToObject<MI_Register>(inputClass.SInput[InputType.MI_Register].ToString()); // MI_MedicalInsurancePayRecord medicalInsurancePayRecord = JsonHelper.DeserializeJsonToObject<MI_MedicalInsurancePayRecord>(inputClass.SInput[InputType.MI_MedicalInsurancePayRecord].ToString()); // MI_MIPayRecordHead mIPayRecordHead = JsonHelper.DeserializeJsonToObject<MI_MIPayRecordHead>(inputClass.SInput[InputType.MI_MIPayRecordHead].ToString()); // List<MI_MIPayRecordDetail> mIPayRecordDetailList = JsonHelper.DeserializeJsonToList<MI_MIPayRecordDetail>(inputClass.SInput[InputType.MI_MIPayRecordDetailList].ToString()); // //更新登记表 // ResultClass regResultClass = hisDao.Mz_SaveRegister(register); // //更新交易表 // MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.Mz_GetPayRecord(1, register.ID.ToString(), 1, 1); // if (medicalInsurancePayRecordResult != null) // { // medicalInsurancePayRecordResult.state = 3; // hisDao.Mz_SavePayRecord(medicalInsurancePayRecordResult); // } // medicalInsurancePayRecord.FeeNO = medicalInsurancePayRecordResult.FeeNO; // if (regResultClass.bSucess) // { // if (hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList) == null) // { // resultClass.bSucess = false; // resultClass.sRemarks = "更新交易信息失败!"; // } // else // { // //返回数据到前台界面,只需金额 // resultClass.bSucess = true; // } // } // else // { // resultClass.bSucess = false; // resultClass.sRemarks = "更新登记信息失败!"; // } // resultClass.oResult = resultDic; // } // catch (Exception e) // { // resultClass.bSucess = false; // resultClass.sRemarks = e.Message; // } // return resultClass; //} /// <summary> /// 预取消挂号:保存预取消信息 并返回记录ID /// </summary> /// <param name="inputClass"></param> /// <returns></returns> public override ResultClass Mz_CancelRegister(InputClass inputClass)//string serialNO) { ResultClass resultClass = new ResultClass(); try { MI_Register register = JsonHelper.DeserializeJsonToObject <MI_Register>(inputClass.SInput[InputType.MI_Register].ToString()); MI_MedicalInsurancePayRecord medicalInsurancePayRecord = JsonHelper.DeserializeJsonToObject <MI_MedicalInsurancePayRecord>(inputClass.SInput[InputType.MI_MedicalInsurancePayRecord].ToString()); MI_MIPayRecordHead mIPayRecordHead = JsonHelper.DeserializeJsonToObject <MI_MIPayRecordHead>(inputClass.SInput[InputType.MI_MIPayRecordHead].ToString()); List <MI_MIPayRecordDetail> mIPayRecordDetailList = JsonHelper.DeserializeJsonToList <MI_MIPayRecordDetail>(inputClass.SInput[InputType.MI_MIPayRecordDetailList].ToString()); MI_MedicalInsurancePayRecord medicalInsurancePayRecordNew = hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList); if (medicalInsurancePayRecordNew == null) { resultClass.bSucess = false; resultClass.sRemarks = "更新交易信息失败!"; } else { //返回新数据ID resultClass.bSucess = true; resultClass.oResult = medicalInsurancePayRecordNew.ID; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
/// <summary> /// 门诊预登记 /// 返回ResultClass oResult为Dictionary<string, string> ID:交易ID; tradeno:医保流水号; FeeAll:总额; fund:统筹; cash:现金 ; personcountpay:个帐支付 DataTable /// </summary> /// <param name="register">MI_Register</param> public static ResultClass MZ_PreviewRegister(MI_Register register) { ResultClass resultClass = new ResultClass(); try { Action <ClientRequestData> requestAction = ((ClientRequestData request) => { request.AddData(register); }); ServiceResponseData retdataMember = InvokeWcfService("MIService.Service", "MIMzController", "MZ_PreviewRegister", requestAction); resultClass.bSucess = retdataMember.GetData <bool>(0); resultClass.sRemarks = retdataMember.GetData <string>(1); if (resultClass.bSucess) { Dictionary <string, string> resultDic = retdataMember.GetData <Dictionary <string, string> >(2); resultClass.oResult = resultDic; //iFrmMITest.LoadRegisterInfo(resultDic); } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
public override ResultClass MZ_UpdateRegister(InputClass inputClass) { ResultClass resultClass = new ResultClass(); int registerId = inputClass.SInput.ContainsKey(InputType.RegisterId) ? Tools.ToInt32(inputClass.SInput[InputType.RegisterId].ToString(), 0) : 0; string serialNO = inputClass.SInput.ContainsKey(InputType.SerialNO) ? inputClass.SInput[InputType.SerialNO].ToString() : ""; string invoiceNo = inputClass.SInput.ContainsKey(InputType.InvoiceNo) ? inputClass.SInput[InputType.InvoiceNo].ToString() : ""; try { //解析返回结果到类,保存信息 MI_Register register = hisDao.Mz_Getregister(registerId, ""); register.ValidFlag = 1; register.SerialNO = serialNO; ResultClass regResultClass = hisDao.Mz_SaveRegister(register); //更新交易信息 //解析返回结果到类,保存 MI_MedicalInsurancePayRecord medicalInsurancePayRecord = hisDao.Mz_GetPayRecord(1, registerId.ToString(), 1, 1); medicalInsurancePayRecord.FeeNO = invoiceNo; resultClass = hisDao.Mz_SavePayRecord(medicalInsurancePayRecord); if (resultClass.bSucess) { MI_MIPayRecordHead mIPayRecordHead = hisDao.Mz_GetPayRecordHead(medicalInsurancePayRecord.ID); DataTable dtPayrecordDetail = hisDao.Mz_GetPayRecordDetailForPrint(medicalInsurancePayRecord.ID); List <MI_MedicalInsurancePayRecord> result1 = new List <MI_MedicalInsurancePayRecord>(); result1.Add(medicalInsurancePayRecord); DataTable dtPayrecord = ConvertExtend.ToDataTable(result1); List <MI_MIPayRecordHead> result2 = new List <MI_MIPayRecordHead>(); result2.Add(mIPayRecordHead); DataTable dtPayrecordHead = ConvertExtend.ToDataTable(result2); List <DataTable> objects = new List <DataTable>(); objects.Add(dtPayrecord); objects.Add(dtPayrecordHead); objects.Add(dtPayrecordDetail); //返回数据到前台界面,只需金额 resultClass.bSucess = true; resultClass.sRemarks = medicalInsurancePayRecord.TradeNO; resultClass.oResult = objects; } else { resultClass.bSucess = false; resultClass.sRemarks = "更新登记信息失败!"; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "更新中间表数据报错:" + e.Message; } return(resultClass); }
public void MZ_PreviewRegisterDllNew(MI_Register register) { dicStr.Clear(); register.StaffName = LoginUserInfo.EmpName; register.RegTime = System.DateTime.Now; register.StaffID = LoginUserInfo.EmpId.ToString(); register.BedNo = ""; register.ICDCode = ""; register.DiagnosisName = ""; register.SocialCreateNum = ""; DataTable dt = new DataTable(); DataColumn dcItemCode = new DataColumn("ItemCode", Type.GetType("System.String")); DataColumn dcItemName = new DataColumn("ItemName", Type.GetType("System.String")); DataColumn dcPrice = new DataColumn("Price", Type.GetType("System.String")); DataColumn dcCount = new DataColumn("Count", Type.GetType("System.String")); DataColumn dcFee = new DataColumn("Fee", Type.GetType("System.String")); dt.Columns.Add(dcItemCode); dt.Columns.Add(dcItemName); dt.Columns.Add(dcPrice); dt.Columns.Add(dcCount); dt.Columns.Add(dcFee); DataRow dr = dt.NewRow(); dr["ItemCode"] = "101020001"; dr["ItemName"] = "门诊诊疗费"; dr["Price"] = "3"; dr["Count"] = "1"; dr["Fee"] = "3"; dt.Rows.Add(dr); //DataRow dr1 = dt.NewRow(); //dr1["ItemCode"] = "0101010101"; //dr1["ItemName"] = "挂号费(普通门诊)"; //dr1["Price"] = "0.5"; //dr1["Count"] = "1"; //dr1["Fee"] = "0.5"; //dt.Rows.Add(dr1); dicStr.Add(InputType.MI_Register, JsonHelper.SerializeObject(register)); dicStr.Add(InputType.DataTable, dt); ResultClass resultClass = MIInterFaceFactory.MZ_PreviewRegister(input); if (resultClass.bSucess) { Dictionary <string, string> resultDic = (Dictionary <string, string>)resultClass.oResult; iFrmMITest.LoadRegisterInfo(resultDic); } else { MessageBoxShowError("程序异常!" + resultClass.sRemarks); } }
public override ResultClass MZ_CancelRegister(InputClass inputClass) { ResultClass resultClass = new ResultClass(); int registerId = inputClass.SInput.ContainsKey(InputType.RegisterId) ? Tools.ToInt32(inputClass.SInput[InputType.RegisterId].ToString(), -1) : -1; string serialNO = inputClass.SInput.ContainsKey(InputType.SerialNO) ? inputClass.SInput[InputType.SerialNO].ToString() : ""; try { MI_Register register = hisDao.Mz_Getregister(registerId, serialNO); if (register == null) { resultClass.bSucess = false; resultClass.sRemarks = "获取登记信息失败!"; AddLog("获取HIS登记信息失败!", Color.Red); } else { bool b = hisDao.Mz_JudgeRegister(register.ID); if (b) { //取消医保登记并返回结果 resultClass = ybInterfaceDao.Mz_CancelRegister(sDll, register.SocialCreateNum); DivideResult.root root = (DivideResult.root)resultClass.oResult; //解析返回数据,并保存退费记录 MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); register.ValidFlag = 2; medicalInsurancePayRecord.state = 2; medicalInsurancePayRecord.RegId = register.ID; medicalInsurancePayRecord.TradeType = 1; InputClass input = new InputClass(); Dictionary <InputType, object> dicStr = new Dictionary <InputType, object>(); dicStr.Add(InputType.MI_Register, JsonHelper.SerializeObject(register)); dicStr.Add(InputType.MI_MedicalInsurancePayRecord, JsonHelper.SerializeObject(medicalInsurancePayRecord)); dicStr.Add(InputType.MI_MIPayRecordHead, JsonHelper.SerializeObject(mIPayRecordHead)); dicStr.Add(InputType.MI_MIPayRecordDetailList, JsonHelper.SerializeObject(mIPayRecordDetailList)); input.SInput = dicStr; resultClass = hisDao.Mz_CancelRegister(input); } else { resultClass.bSucess = false; resultClass.sRemarks = "存在已结算的收费数据!"; AddLog("HIS存在已结算的收费数据!", Color.Red); } } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; AddLog("取消登记报错:" + e.Message, Color.Red); } return(resultClass); }
private HIS_Entity.MIManage.Common.Reg.root PreviewRegisterToInput(MI_Register register) { HIS_Entity.MIManage.Common.Reg.root root = new HIS_Entity.MIManage.Common.Reg.root(); HIS_Entity.MIManage.Common.Reg.input input = new HIS_Entity.MIManage.Common.Reg.input(); root.input = input; #region tradeinfo 交易信息 curetype/billtype 必填 HIS_Entity.MIManage.Common.Reg.tradeinfo tradeinfo = new HIS_Entity.MIManage.Common.Reg.tradeinfo(); tradeinfo.curetype = "17"; tradeinfo.billtype = "0"; tradeinfo.feeno = "0"; tradeinfo.operator1 = register.StaffName; input.tradeinfo = tradeinfo; #endregion #region 处方信息 diagnoseno/recipeno/recipedate/recipetype/helpmedicineflag 必填 HIS_Entity.MIManage.Common.Reg.recipearray recipearray = new HIS_Entity.MIManage.Common.Reg.recipearray(); HIS_Entity.MIManage.Common.Reg.recipe recipe = new HIS_Entity.MIManage.Common.Reg.recipe(); recipe.diagnoseno = "1"; recipe.recipeno = "1"; recipe.recipedate = System.DateTime.Now.ToString("yyyyMMdd hhmmss"); recipe.recipetype = "1"; recipe.helpmedicineflag = "0"; recipe.hissectionname = register.DeptName; recipe.drid = register.DiagnDocID; recipe.drname = register.Doctor; recipe.registertradeno = register.SerialNO.ToString(); recipe.billstype = "1"; HIS_Entity.MIManage.Common.Reg.recipe[] recipes = { recipe }; recipearray.recipe = recipes; input.recipearray = recipearray; #endregion #region 明细信息 itemno/recipeno/hiscode/itemname/itemtype/unitprice/count/fee/babyflag 必填 HIS_Entity.MIManage.Common.Reg.feeitemarray feeitemarray = new HIS_Entity.MIManage.Common.Reg.feeitemarray(); HIS_Entity.MIManage.Common.Reg.feeitem feeitem = new HIS_Entity.MIManage.Common.Reg.feeitem(); feeitem.itemno = "1"; feeitem.recipeno = "1"; feeitem.hiscode = System.DateTime.Now.ToString("yyyyMMdd hhmmss"); feeitem.itemname = "1"; feeitem.itemtype = "0"; feeitem.unitprice = register.DeptName; feeitem.count = register.DiagnDocID; feeitem.fee = register.Doctor; feeitem.babyflag = "0"; HIS_Entity.MIManage.Common.Reg.feeitem[] feeitems = { feeitem }; recipearray.recipe = recipes; input.feeitemarray = feeitemarray; #endregion return(root); }
public ServiceResponseData Mz_SaveRegister() { try { MI_Register register = requestData.GetData <MI_Register>(0); this.BindDb(register); register.save(); responseData.AddData(true); responseData.AddData(register); } catch (Exception e) { responseData.AddData(false); responseData.AddData(e.Message); } return(responseData); }
private void button26_Click(object sender, EventArgs e) { MI_Register register = new MI_Register(); register.SerialNO = txtMzCenterCostID.Text.ToString(); register.MedicalClass = txtMedicalClass.Text.ToString(); register.PatientType = 1; register.DeptName = txtDeptName.Text.ToString(); register.DiagnDocID = txtDiagnDocID.Text.ToString(); register.Doctor = txtDoctor.Text.ToString(); register.GHFee = Convert.ToDecimal(txtGHFee.Text.ToString()); register.JCFee = Convert.ToDecimal(txtJCFee.Text.ToString()); register.PatientID = Convert.ToInt32(txtPatientId.Text.ToString()); register.PatientName = txtPatientName.Text; register.PersonalCode = txtCardNo.Text; register.IdentityNum = txtIdNum.Text; InvokeController("MZ_PreviewRegisterDllNew", register); }
public void MZ_PreviewRegisterDll(MI_Register register) { register.StaffName = LoginUserInfo.EmpName; register.RegTime = System.DateTime.Now; register.StaffID = LoginUserInfo.EmpId.ToString(); ResultClass resultClass = MIInterFace.MZ_PreviewRegister(register); if (resultClass.bSucess) { Dictionary <string, string> resultDic = (Dictionary <string, string>)resultClass.oResult; iFrmMITest.LoadRegisterInfo(resultDic); } else { MessageBoxShowError("异常!" + resultClass.sRemarks); } }
/// <summary> /// 保存登记信息并返回该信息 /// </summary> /// <param name="registerId"></param> /// <param name="serialNO"></param> /// <returns></returns> public ResultClass Mz_SaveRegister(MI_Register register) { Action <ClientRequestData> requestAction = ((ClientRequestData request) => { request.AddData(register); }); ResultClass resultClass = new ResultClass(); ServiceResponseData retdataMember = InvokeWcfService("MIProject.Service", "MIMzController", "Mz_SaveRegister", requestAction); bool b = retdataMember.GetData <bool>(0); resultClass.bSucess = b; if (b) { MI_Register registerResult = retdataMember.GetData <MI_Register>(1); resultClass.oResult = registerResult; } else { resultClass.sRemarks = retdataMember.GetData <string>(1); } return(resultClass); }
/// <summary> /// 确认取消挂号 /// </summary> /// <param name="inputClass"></param> /// <returns></returns> public override ResultClass MZ_CancelRegisterCommit(InputClass inputClass)//) { ResultClass resultClass = new ResultClass(); try { resultDic.Clear(); decimal personcount = inputClass.SInput.ContainsKey(InputType.Money) ? Tools.ToDecimal(inputClass.SInput[InputType.Money].ToString(), 0) : 0; int registerId = inputClass.SInput.ContainsKey(InputType.RegisterId) ? Tools.ToInt32(inputClass.SInput[InputType.RegisterId].ToString(), 0) : 0; string serialNO = inputClass.SInput.ContainsKey(InputType.SerialNO) ? inputClass.SInput[InputType.SerialNO].ToString() : ""; int iTradeRecordId = inputClass.SInput.ContainsKey(InputType.TradeRecordId) ? Tools.ToInt32(inputClass.SInput[InputType.TradeRecordId].ToString(), 0) : 0; MI_Register register = hisDao.Mz_Getregister(registerId, serialNO); register.ValidFlag = 2; //更新登记表 ResultClass regResultClass = hisDao.Mz_SaveRegister(register); //更新原交易表 MI_MedicalInsurancePayRecord medicalInsurancePayRecordOld = hisDao.Mz_GetPayRecord(1, register.ID.ToString(), 1, 1); if (medicalInsurancePayRecordOld != null) { medicalInsurancePayRecordOld.state = 3; hisDao.Mz_SavePayRecord(medicalInsurancePayRecordOld); MI_MedicalInsurancePayRecord medicalInsurancePayRecordNew = hisDao.Mz_GetPayRecord(0, iTradeRecordId.ToString(), 1, 0); if (medicalInsurancePayRecordNew != null) { //medicalInsurancePayRecordNew.FeeNO = medicalInsurancePayRecordOld.FeeNO; medicalInsurancePayRecordNew.state = 2; medicalInsurancePayRecordNew.PersonCount = personcount; medicalInsurancePayRecordNew.PersonCountPay = Convert.ToDecimal(medicalInsurancePayRecordOld.PersonCountPay) * -1; hisDao.Mz_SavePayRecord(medicalInsurancePayRecordNew); } MI_MIPayRecordHead mIPayRecordHead = hisDao.Mz_GetPayRecordHead(medicalInsurancePayRecordNew.ID); DataTable dtPayrecordDetail = hisDao.Mz_GetPayRecordDetailForPrint(medicalInsurancePayRecordNew.ID); List <MI_MedicalInsurancePayRecord> result1 = new List <MI_MedicalInsurancePayRecord>(); result1.Add(medicalInsurancePayRecordNew); DataTable dtPayrecord = ConvertExtend.ToDataTable(result1); List <MI_MIPayRecordHead> result2 = new List <MI_MIPayRecordHead>(); result2.Add(mIPayRecordHead); DataTable dtPayrecordHead = ConvertExtend.ToDataTable(result2); List <DataTable> objects = new List <DataTable>(); objects.Add(dtPayrecord); objects.Add(dtPayrecordHead); objects.Add(dtPayrecordDetail); resultClass.bSucess = true; resultClass.oResult = objects; } else { resultClass.bSucess = false; resultClass.sRemarks = "更新登记信息失败!"; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
/// <summary> /// 确认登记 /// </summary> /// <param name="registerId">登记ID</param> /// <param name="serialNO">门诊号/住院号</param> /// <returns></returns> public override ResultClass MZ_Register(InputClass inputClass)//int registerId, string serialNO) { ResultClass resultClass = new ResultClass(); resultDic.Clear(); decimal personcount = -1; int registerId = inputClass.SInput.ContainsKey(InputType.RegisterId) ? Tools.ToInt32(inputClass.SInput[InputType.RegisterId].ToString(), 0) : 0; string serialNO = inputClass.SInput.ContainsKey(InputType.SerialNO) ? inputClass.SInput[InputType.SerialNO].ToString() : ""; try { //医保登记并返回结果 resultClass = ybInterfaceDao.MZ_Register(); personcount = Tools.ToDecimal(resultClass.oResult.ToString(), 0); } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "解析返回数据报错:" + e.Message; return(resultClass); } try { //解析返回结果到类,保存信息 MI_Register register = hisDao.Mz_Getregister(registerId, ""); register.ValidFlag = 1; register.SerialNO = serialNO; ResultClass regResultClass = hisDao.Mz_SaveRegister(register); //更新交易信息 if (regResultClass.bSucess) { MI_MedicalInsurancePayRecord medicalInsurancePayRecord = hisDao.Mz_GetPayRecord(1, register.ID.ToString(), 1, 0); if (medicalInsurancePayRecord != null) { medicalInsurancePayRecord.PersonCount = personcount; medicalInsurancePayRecord.state = 1; ResultClass recordResultClass = hisDao.Mz_SavePayRecord(medicalInsurancePayRecord); if (recordResultClass.bSucess) { //返回数据到前台界面,只需金额 resultClass.bSucess = true; //返回数据到前台界面,只需金额 resultDic.Add("personcount", personcount.ToString()); } else { resultClass.bSucess = false; resultClass.sRemarks = "更新交易信息失败!"; } } else { resultClass.bSucess = false; resultClass.sRemarks = "未获取到交易数据!"; } } else { resultClass.bSucess = false; resultClass.sRemarks = "更新登记信息失败!"; } resultClass.oResult = resultDic; } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "更新中间表数据报错:" + e.Message; } return(resultClass); }
public override ResultClass MZ_PreviewCharge(InputClass inputClass) { ResultClass resultClass = new ResultClass(); TradeData tradedata = inputClass.SInput.ContainsKey(InputType.TradeData) ?JsonHelper.DeserializeJsonToObject <TradeData>(inputClass.SInput[InputType.TradeData].ToString()) : null; MI_Register register = hisDao.Mz_Getregister(-1, tradedata.SerialNo); try { if (register == null) { resultClass.bSucess = false; resultClass.sRemarks = "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",未进行医保统筹登记"; //MiddlewareLogHelper.WriterLog(LogType.MILog, true, Color.Red, "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",未进行医保统筹登记"); AddLog("医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",未进行医保统筹登记", Color.Red); } else { if (register.ValidFlag != 1) { resultClass.bSucess = false; resultClass.sRemarks = "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",医保统筹登记已取消"; //MiddlewareLogHelper.WriterLog(LogType.MILog, true, Color.Red, "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",医保统筹登记已取消"); AddLog("医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",医保统筹登记已取消", Color.Red); } else { tradedata.SocityCreateNum = register.SocialCreateNum; //医保登记并返回结果 AddLog("医保预算并返回结果开始", Color.Blue); resultClass = ybInterfaceDao.MZ_PreviewCharge(sDll, TradeDataToInput(tradedata)); } } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; AddLog("医保预算报错:", Color.Red); } try { AddLog("医保预算并返回结果成功,开始解析", Color.Blue); DivideResult.root root = (DivideResult.root)resultClass.oResult; //解析返回结果到类,保存 MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); medicalInsurancePayRecord.state = 0; medicalInsurancePayRecord.RegId = register.ID; medicalInsurancePayRecord.TradeType = 2; MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); AddLog("医保预算解析完成,开始保存", Color.Blue); InputClass input = new InputClass(); Dictionary <InputType, object> dicStr = new Dictionary <InputType, object>(); dicStr.Add(InputType.MI_MedicalInsurancePayRecord, JsonHelper.SerializeObject(medicalInsurancePayRecord)); dicStr.Add(InputType.MI_MIPayRecordHead, JsonHelper.SerializeObject(mIPayRecordHead)); dicStr.Add(InputType.MI_MIPayRecordDetailList, JsonHelper.SerializeObject(mIPayRecordDetailList)); input.SInput = dicStr; resultClass = hisDao.MZ_PreviewCharge(input); } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "HIS插入医保预算数据报错" + e.Message; AddLog("HIS插入医保预算数据报错", Color.Red); } return(resultClass); }
public override ResultClass MZ_PreviewRegister(InputClass inputClass)//int registerId, string serialNO) { ResultClass resultClass = new ResultClass(); try { resultDic.Clear(); MI_Register register = JsonHelper.DeserializeJsonToObject <MI_Register>(inputClass.SInput[InputType.MI_Register].ToString()); MI_MedicalInsurancePayRecord medicalInsurancePayRecord = JsonHelper.DeserializeJsonToObject <MI_MedicalInsurancePayRecord>(inputClass.SInput[InputType.MI_MedicalInsurancePayRecord].ToString()); MI_MIPayRecordHead mIPayRecordHead = JsonHelper.DeserializeJsonToObject <MI_MIPayRecordHead>(inputClass.SInput[InputType.MI_MIPayRecordHead].ToString()); List <MI_MIPayRecordDetail> mIPayRecordDetailList = JsonHelper.DeserializeJsonToList <MI_MIPayRecordDetail>(inputClass.SInput[InputType.MI_MIPayRecordDetailList].ToString()); AddLog("解析完成,开始保存登记信息"); register.SocialCreateNum = medicalInsurancePayRecord.TradeNO; //获取通过病人类型获取MIID MI_MedicalInsuranceType medicalInsuranceType = hisDao.Mz_GetMITypeInfo(register.MedicalClass); if (medicalInsuranceType != null && medicalInsuranceType.ID > 0) { register.MIID = medicalInsuranceType.ID; register.PatientType = medicalInsuranceType.ID; ResultClass regResultClass = hisDao.Mz_SaveRegister(register); if (regResultClass.bSucess) { MI_Register registerResult = regResultClass.oResult as MI_Register; AddLog("保存登记完成,开始保存交易信息"); medicalInsurancePayRecord.RegId = registerResult.ID; MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList); AddLog("保存交易信息完成,开始返回"); if (medicalInsurancePayRecordResult.ID > 0) { //返回数据到前台界面,只需金额 resultDic.Add("Id", registerResult.ID.ToString()); resultDic.Add("tradeno", medicalInsurancePayRecord.TradeNO); resultDic.Add("FeeAll", medicalInsurancePayRecord.FeeAll.ToString()); resultDic.Add("fund", medicalInsurancePayRecord.FeeFund.ToString()); resultDic.Add("cash", medicalInsurancePayRecord.FeeCash.ToString()); resultDic.Add("personcountpay", medicalInsurancePayRecord.PersonCountPay.ToString()); resultClass.bSucess = true; resultClass.oResult = resultDic; } else { resultClass.bSucess = false; resultClass.sRemarks = "保存交易数据失败,返回ID为零"; resultClass.oResult = null;; } } else { AddLog("开始保存登记失败"); resultClass.bSucess = false; resultClass.sRemarks = regResultClass.sRemarks; resultClass.oResult = null;; } } else { resultClass.bSucess = false; resultClass.sRemarks = "找不到病人类型的医保类型表数据!"; resultClass.oResult = null;; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
/// <summary> /// 医保挂号预算 /// </summary> /// <param name="userName">操作员姓名</param> /// <param name="empID">操作员ID</param> /// <param name="curPatList">当前病人挂号对象</param> /// <param name="totalFee">挂号总金额</param> /// <param name="dtRegInfo"></param> /// <param name="invoiceNO">发票号</param> public static Dictionary <string, string> MiRegBuget(string sCardNum, string userName, int empID, OP_PatList curPatList, decimal totalFee, DataTable dtRegInfo, string invoiceNO, string IdentityNum) { MI_Register register = new MI_Register(); register.StaffName = userName; register.RegTime = System.DateTime.Now; register.StaffID = empID.ToString(); register.BedNo = string.Empty; register.ICDCode = string.Empty; register.DiagnDocID = curPatList.CureEmpID.ToString(); register.DiagnosisName = string.Empty; register.SocialCreateNum = string.Empty; register.DeptID = curPatList.RegDeptID; register.DeptName = curPatList.RegDeptName; register.Doctor = curPatList.RegDocName; register.PatientName = curPatList.PatName; register.GHFee = totalFee; register.JCFee = 0; register.MedicalClass = curPatList.PatTypeID.ToString(); register.SerialNO = string.Empty; register.PersonalCode = sCardNum; register.IdentityNum = IdentityNum; Dictionary <InputType, object> dicStr = new Dictionary <InputType, object>(); dicStr.Clear(); dicStr.Add(InputType.MI_Register, JsonHelper.SerializeObject(register)); #region 增加挂号明细数据 DataTable dt = new DataTable(); DataColumn dcItemCode = new DataColumn("ItemCode", Type.GetType("System.String")); DataColumn dcItemName = new DataColumn("ItemName", Type.GetType("System.String")); DataColumn dcPrice = new DataColumn("Price", Type.GetType("System.String")); DataColumn dcCount = new DataColumn("Count", Type.GetType("System.String")); DataColumn dcFee = new DataColumn("Fee", Type.GetType("System.String")); dt.Columns.Add(dcItemCode); dt.Columns.Add(dcItemName); dt.Columns.Add(dcPrice); dt.Columns.Add(dcCount); dt.Columns.Add(dcFee); foreach (DataRow dr in dtRegInfo.Rows) { DataRow drNew = dt.NewRow(); drNew["ItemCode"] = dr["itemid"]; drNew["ItemName"] = dr["itemname"]; drNew["Price"] = dr["sellprice"]; drNew["Count"] = "1"; drNew["Fee"] = dr["sellprice"]; dt.Rows.Add(drNew); } dicStr.Add(InputType.DataTable, dt); #endregion dicStr.Add(InputType.InvoiceNo, invoiceNO); InputClass input = new InputClass(); input.SInput = dicStr; ResultClass resultClass = MIInterFaceFactory.MZ_PreviewRegister(input); if (resultClass.bSucess) { Dictionary <string, string> resultDic = (Dictionary <string, string>)resultClass.oResult; Dictionary <string, string> myDic = new Dictionary <string, string>(); myDic.Add("ID", resultDic["Id"]);//医保预结算ID decimal medicarepay = Convert.ToDecimal(resultDic["fund"]) + Convert.ToDecimal(resultDic["personcountpay"]); myDic.Add("MedicarePay", medicarepay.ToString("0.00")); myDic.Add("MedicareMIPay", Convert.ToDecimal(resultDic["fund"]).ToString("0.00")); myDic.Add("MedicarePersPay", Convert.ToDecimal(resultDic["personcountpay"]).ToString("0.00")); StringBuilder strBuild = new StringBuilder(); strBuild.Append("统筹支付:" + Convert.ToDecimal(resultDic["fund"]).ToString("0.00") + "\n"); strBuild.Append("现金支付:" + Convert.ToDecimal(resultDic["cash"]).ToString("0.00") + "\n"); strBuild.Append("个帐支付:" + Convert.ToDecimal(resultDic["personcountpay"]).ToString("0.00") + "\n"); myDic.Add("MedicardInfo", strBuild.ToString()); return(myDic); } else { throw new Exception("异常!" + resultClass.sRemarks); } }
public override ResultClass MZ_PreviewRegister(InputClass inputClass) { InputClass input = new InputClass(); ResultClass resultClass = new ResultClass(); MI_Register register = JsonHelper.DeserializeJsonToObject <MI_Register>(inputClass.SInput[InputType.MI_Register].ToString()); try { resultClass = ybInterfaceDao.MZ_PreviewRegister(sDll, PreviewRegisterToInput(register)); } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "医保预登记报错:" + e.Message; AddLog("医保预登记报错:" + e.Message, Color.Red); return(resultClass); } if (resultClass.bSucess) { try { AddLog("医保预登记完成,开始解析医保登记数据", Color.Blue); DivideResult.root root = (DivideResult.root)resultClass.oResult; MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); Dictionary <InputType, object> dicStr = new Dictionary <InputType, object>(); dicStr.Add(InputType.MI_Register, JsonHelper.SerializeObject(register)); dicStr.Add(InputType.MI_MedicalInsurancePayRecord, JsonHelper.SerializeObject(medicalInsurancePayRecord)); dicStr.Add(InputType.MI_MIPayRecordHead, JsonHelper.SerializeObject(mIPayRecordHead)); dicStr.Add(InputType.MI_MIPayRecordDetailList, JsonHelper.SerializeObject(mIPayRecordDetailList)); input.SInput = dicStr; AddLog("解析医保预登记数据完成,开始保存数据到HIS数据库", Color.Blue); } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "解析预登记数据报错:" + e.Message; AddLog("解析预登记数据报错:" + e.Message, Color.Red); return(resultClass); } try { if (hisDao != null) { resultClass = hisDao.MZ_PreviewRegister(input); } else { resultClass.bSucess = false; resultClass.sRemarks = "hisDao为空"; AddLog("hisDao为空", Color.Red); } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = "插入预登记数据报错:" + e.Message; AddLog("插入预登记数据报错:" + e.Message, Color.Red); return(resultClass); } return(resultClass); } else { return(resultClass); } }
/// <summary> /// 保存登记信息:先保存医保信息;然后保存登记信息;最后保存交易信息 /// </summary> /// <param name="register">登记类</param> /// <returns></returns> public override ResultClass MZ_PreviewRegister(InputClass inputClass)//MI_Register register) { ResultClass resultClass = new ResultClass(); MI_Register register = JsonHelper.DeserializeJsonToObject <MI_Register>(inputClass.SInput[InputType.MI_Register].ToString()); try { resultDic.Clear(); //医保登记并返回结果 AddLog("医保登记并返回结果开始"); resultClass = ybInterfaceDao.MZ_PreviewRegister(PreviewRegisterToInput(register)); AddLog("医保登记并返回结果结束,开始解析"); HIS_Entity.MIManage.Common.DivideResult.root root = (HIS_Entity.MIManage.Common.DivideResult.root)resultClass.oResult; MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); AddLog("解析完成,开始保存登记信息"); register.SocialCreateNum = medicalInsurancePayRecord.TradeNO; ResultClass regResultClass = hisDao.Mz_SaveRegister(register); if (regResultClass.bSucess) { MI_Register registerResult = regResultClass.oResult as MI_Register; AddLog("保存登记完成,开始保存交易信息"); medicalInsurancePayRecord.RegId = registerResult.ID; medicalInsurancePayRecord.state = 0; medicalInsurancePayRecord.TradeType = 1; MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList); AddLog("保存交易信息完成,开始返回"); if (medicalInsurancePayRecordResult.ID > 0) { //返回数据到前台界面,只需金额 resultDic.Add("Id", registerResult.ID.ToString()); resultDic.Add("tradeno", root.output.tradeinfo.tradeno); resultDic.Add("FeeAll", root.output.sumpay.feeall); resultDic.Add("fund", root.output.sumpay.fund); resultDic.Add("cash", root.output.sumpay.cash); resultDic.Add("personcountpay", root.output.sumpay.personcountpay); resultClass.oResult = resultDic; } else { resultClass.bSucess = false; resultClass.sRemarks = "保存交易数据失败,返回ID为零"; resultClass.oResult = null;; } } else { AddLog("开始保存登记失败"); resultClass.bSucess = false; resultClass.sRemarks = regResultClass.sRemarks; resultClass.oResult = null;; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
/// <summary> /// 取消登记 /// </summary> /// <param name="inputClass">InputType.SerialNO</param> public override ResultClass Mz_CancelRegister(InputClass inputClass)//string serialNO) { ResultClass resultClass = new ResultClass(); string serialNO = inputClass.SInput.ContainsKey(InputType.SerialNO) ? inputClass.SInput[InputType.SerialNO].ToString() : ""; try { resultDic.Clear(); MI_Register register = hisDao.Mz_Getregister(-1, serialNO); if (register == null) { resultClass.bSucess = false; resultClass.sRemarks = "获取登记信息失败!"; } else { bool b = hisDao.Mz_JudgeRegister(register.ID); if (b) { //取消医保登记并返回结果 resultClass = ybInterfaceDao.Mz_CancelRegister(register.SocialCreateNum); HIS_Entity.MIManage.Common.DivideResult.root root = (HIS_Entity.MIManage.Common.DivideResult.root)resultClass.oResult; //解析返回数据,并保存退费记录 MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); register.ValidFlag = 2; medicalInsurancePayRecord.state = 2; medicalInsurancePayRecord.RegId = register.ID; medicalInsurancePayRecord.TradeType = 1; //更新登记表 ResultClass regResultClass = hisDao.Mz_SaveRegister(register); //更新交易表 MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.Mz_GetPayRecord(1, register.ID.ToString(), 1, 1); if (medicalInsurancePayRecordResult != null) { medicalInsurancePayRecordResult.state = 3; hisDao.Mz_SavePayRecord(medicalInsurancePayRecordResult); } medicalInsurancePayRecord.FeeNO = medicalInsurancePayRecordResult.FeeNO; if (regResultClass.bSucess) { if (hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList) == null) { resultClass.bSucess = false; resultClass.sRemarks = "更新交易信息失败!"; } else { //返回数据到前台界面,只需金额 resultClass.bSucess = true; } } else { resultClass.bSucess = false; resultClass.sRemarks = "更新登记信息失败!"; } } else { resultClass.bSucess = false; resultClass.sRemarks = "存在已结算的收费数据!"; } } resultClass.oResult = resultDic; } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
public override ResultClass MZ_PreviewCharge(InputClass inputClass)//TradeData tradedata) { ResultClass resultClass = new ResultClass(); try { TradeData tradedata = inputClass.SInput.ContainsKey(InputType.TradeData) ? JsonHelper.DeserializeJsonToObject <TradeData>(inputClass.SInput[InputType.TradeData].ToString()): null; MI_Register register = hisDao.Mz_Getregister(-1, tradedata.SerialNo); if (register == null) { resultClass.bSucess = false; resultClass.sRemarks = "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",未进行医保统筹登记"; MiddlewareLogHelper.WriterLog(LogType.MILog, true, Color.Red, "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",未进行医保统筹登记"); } else { if (register.ValidFlag != 1) { resultClass.bSucess = false; resultClass.sRemarks = "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",医保统筹登记已取消"; MiddlewareLogHelper.WriterLog(LogType.MILog, true, Color.Red, "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",医保统筹登记已取消"); } else { tradedata.SocityCreateNum = register.SocialCreateNum; //医保登记并返回结果 AddLog("医保登记并返回结果开始"); resultClass = ybInterfaceDao.MZ_PreviewCharge(TradeDataToInput(tradedata)); AddLog("医保登记并返回结果结束,开始解析"); HIS_Entity.MIManage.Common.DivideResult.root root = (HIS_Entity.MIManage.Common.DivideResult.root)resultClass.oResult; //解析返回结果到类,保存 MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); medicalInsurancePayRecord.state = 0; medicalInsurancePayRecord.RegId = register.ID; medicalInsurancePayRecord.TradeType = 2; MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); AddLog("解析完成,开始保存"); MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList); AddLog("保存完成,开始返回"); if (medicalInsurancePayRecordResult.ID > 0) { resultDic.Clear(); //返回数据到前台界面,只需金额 resultDic.Add("Id", medicalInsurancePayRecordResult.ID.ToString()); resultDic.Add("tradeno", root.output.tradeinfo.tradeno); resultDic.Add("FeeAll", root.output.sumpay.feeall); resultDic.Add("fund", root.output.sumpay.fund); resultDic.Add("cash", root.output.sumpay.cash); resultDic.Add("personcountpay", root.output.sumpay.personcountpay); resultClass.oResult = resultDic; } else { resultClass.bSucess = false; resultClass.sRemarks = "保存失败,返回ID为零"; resultClass.oResult = null;; } } } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }