/// <summary> /// 医保结算 /// </summary> /// <param name="blYBss">是否医保结算</param> public void m_mthYBCharge(bool blYBss) { if (string.IsNullOrEmpty(this.m_objViewer.txtZDZMHM.Text)) { MessageBox.Show("诊断证明号码不能为空!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question); this.m_objViewer.txtZDZMHM.Focus(); return; } clsDGZyjs_VO objDgzyjsVo = null; long lngRes = this.objDomain.m_lngGetZYYBjs(this.m_objViewer.strJslx, this.m_objViewer.strInvNo, this.m_objViewer.txtZDZMHM.Text.Trim(), this.m_objViewer.decTotal, this.m_objViewer.strRegisterId, out objDgzyjsVo, this.m_blnDiffCostOn); if (lngRes < 0 || objDgzyjsVo == null) { return; } if (this.m_objViewer.strJslx.Equals("2")) //中途结算 { objDgzyjsVo.JSQSRQ = this.m_objViewer.strJSQSRQ; //结算起始日期 objDgzyjsVo.JSZZRQ = this.m_objViewer.strJSZZRQ; //结算终止日期 int intJSTS = 0; try { intJSTS = Convert.ToInt32(objDgzyjsVo.JSZZRQ) - Convert.ToInt32(objDgzyjsVo.JSQSRQ); intJSTS += 1; if (intJSTS <= 0) { MessageBox.Show("结算终止日期不能小于结算起始日期!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question); } } catch (Exception) { MessageBox.Show("请勾选正确的日期进行中途结算!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question); } objDgzyjsVo.JSTS = intJSTS; } if (!blYBss)//是否医保结算 { objDgzyjsVo.JSLX = "3"; } string strZDZMHM = this.m_objViewer.txtZDZMHM.Text.Trim(); //need modify 补全医保结算Vo objDgzyjsVo.JBR = this.m_objViewer.strEmpNo; //经办人 objDgzyjsVo.ZDZMHM = strZDZMHM.Length > 30 ? strZDZMHM.Substring(0, 30) : strZDZMHM; objDgzyjsVo.JDZFBL = decimal.Parse(this.m_objViewer.txtJdzfbl.Text); //降低支付比例 //objDgzyjsVo.ZYFYZE = this.m_objViewer.decTotal;//改成由后台合计总额 objDgzyjsVo.FPHM = this.m_objViewer.strInvNo; //发票号 objDgzyjsVo.JSDYZDBY = dicJSDYZDBY[this.m_objViewer.cobJSDYZDBY.SelectedItem.ToString()]; clsDGZyjsfh_VO objDgzyjsfhVo = null; if (!string.IsNullOrEmpty(strCYZD)) { objDgzyjsVo.CYZD = strCYZD; } else { objDgzyjsVo.CYZD = "出院诊断"; } if (blnIfDefaultCYZD) { if (this.m_objViewer.strJslx == "1") { objDgzyjsVo.CYZD = "出院结算"; } else if (this.m_objViewer.strJslx == "2") { objDgzyjsVo.CYZD = "中途结算"; } blnIfDefaultCYZD = false; } lngRes = clsYBPublic_cs.m_lngFunSP3004(objDgzyjsVo, objDgextraVo, out objDgzyjsfhVo); if (lngRes > 0) { if (objDgzyjsfhVo != null) { if (blYBss) { //need add 保存objDgzyjsfhVo到HIS库 //need add 此处可update t_ins_cszyreg.status=2,控制不能再修改医保登记信息 lngRes = this.objDomain.m_lngSaveYBChargeReturnZY(this.m_objViewer.strRegisterId, this.m_objViewer.strInvNo, objDgzyjsfhVo, dicJSDYZDBY[this.m_objViewer.cobJSDYZDBY.SelectedItem.ToString()]); //移到上面的方法里面 //lngRes = this.objDomain.m_lngUpdateYBRegisterStatusZY(this.m_objViewer.strRegisterId, "2"); if (this.m_objViewer.decTotal != objDgzyjsfhVo.ZYFYZE) { MessageBox.Show("医院上传总金额与社保返回总金额不一致,试算失败,请查清原因后再重试。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question); return; } this.m_objViewer.lblTotal.Text = objDgzyjsfhVo.ZYFYZE.ToString(); this.m_objViewer.decTotal = objDgzyjsfhVo.ZYFYZE; this.m_objViewer.lblSub.Text = objDgzyjsfhVo.GRZFEIJE.ToString(); this.m_objViewer.lblAcc.Text = Convert.ToString(objDgzyjsfhVo.ZYFYZE - objDgzyjsfhVo.GRZFEIJE); this.m_objViewer.decYBSub = Convert.ToDecimal(objDgzyjsfhVo.GRZFEIJE.ToString().Trim()); this.m_objViewer.btnUpload.Enabled = false; this.m_objViewer.btnCYDJ.Enabled = false; this.m_objViewer.btnCharge.Enabled = false; this.m_objViewer.btnOk.Enabled = true; this.m_objViewer.btnClose.Enabled = true; this.m_objViewer.lblSdywh.Text = objDgzyjsfhVo.SDYWH; MessageBox.Show("医保结算成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question); } else { this.m_objViewer.lblTotal.Text = objDgzyjsfhVo.ZYFYZE.ToString(); this.m_objViewer.decTotal = objDgzyjsfhVo.ZYFYZE; this.m_objViewer.lblSub.Text = objDgzyjsfhVo.GRZFEIJE.ToString(); this.m_objViewer.lblAcc.Text = Convert.ToString(objDgzyjsfhVo.ZYFYZE - objDgzyjsfhVo.GRZFEIJE); this.m_objViewer.decYBSub = Convert.ToDecimal(objDgzyjsfhVo.GRZFEIJE.ToString().Trim()); this.m_objViewer.btnUpload.Enabled = false; //this.m_objViewer.btnCYDJ.Enabled = false; this.m_objViewer.btnCharge.Enabled = true; this.m_objViewer.btnOk.Enabled = true; MessageBox.Show("医保试算成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Question); } } } else { this.m_objViewer.btnOk.Enabled = false; } }
/// <summary> /// 获取住院医保结算所需数据 /// </summary> /// <param name="strRegisterId"></param> /// <param name="objDgzyjsVo"></param> /// <returns></returns> public long m_lngGetZYYBjs(string strJslb, string strInvNo, string strZDZMHM, decimal decTotal, string strRegisterId, out clsDGZyjs_VO objDgzyjsVo, bool p_blnDiffOn) { com.digitalwave.iCare.middletier.HIS.clsYBCSQuerySVC objSvc = (com.digitalwave.iCare.middletier.HIS.clsYBCSQuerySVC)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(com.digitalwave.iCare.middletier.HIS.clsYBCSQuerySVC)); long l = objSvc.m_lngGetZYYBjs(strJslb, strInvNo, strZDZMHM, decTotal, strRegisterId, out objDgzyjsVo, p_blnDiffOn); objSvc.Dispose(); return(l); }