Esempio n. 1
0
 public void OutNetworkPreSettle(OutPayParameter para)
 {
     OutPayPara = para;
     InterfaceInit();
     handelModel.InitMZ(p_sbjbm, OutPayPara.RegInfo.NetType, OutPayPara.RegInfo.MemberNo, OutPayPara.RegInfo.NetPatName,
                        patInfo["xb"], OutPayPara.CommPara.OutNetworkSettleId.ToString(), DateTime.Now.ToString("yyyy-MM-dd"),
                        getMzysbh(), strDiagnosCode, p_syzhlx, OutPayPara.RegInfo.CardNo, "C", "");   //4 门诊大病,5 意外伤害,6普通门诊
     handelModel.SaveOutItems(OutPayPara.Details);
 }
        /// <summary>
        /// 门诊联网结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void OutNetworkSettle(OutPayParameter para)
        {
            InterfaceInit();
            outReimPara = para;

            //当姓名不一致时提示
            if (outReimPara.PatInfo.PatName != dicPatInfo["xm"])
            {
                if (MessageBox.Show(" 医保卡姓名为:【" + dicPatInfo["xm"].ToString() + "】     HIS患者姓名为:【" + outReimPara.PatInfo.PatName + "】 是否继续 ", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
                {
                    throw new Exception("姓名不一致,操作员取消操作!");
                }
            }


            //门诊初始化
            handelModel.InitJMMZ(outReimPara.RegInfo.CantonCode, "6", outReimPara.RegInfo.MemberNo, outReimPara.PatInfo.PatName,
                                 dicPatInfo["xb"], outReimPara.CommPara.OutNetworkSettleId.ToString(), DateTime.Now.ToString("yyyy-MM-dd"),//"001",
                                 handelModel.GetNetWorkDocCode(handelModel.getMzysbh(outReimPara.PatInfo.OutPatId.ToString(), outReimPara.CommPara.TradeId.ToString())), strDiagnosCode, P_syzhlx, outReimPara.RegInfo.CardNo, "C", "");

            //上传门诊费用
            handelModel.SaveOutItems(outReimPara.Details);
            //门诊结算
            dicSettleInfo = handelModel.SettleMG(dicPatInfo["sbjglx"]);

            //---------------------------------------------低保结算

            if (Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]) > 0) //如果自负金额大于0弹出是否低保结算提示
            {
                if (outReimPara.RegInfo.Memo2 == "低保")
                {
                    dicSettleInfoDibao.Clear();
                    DiBaoJS_Confirm diBaoJS = new DiBaoJS_Confirm(outReimPara, dicSettleInfo, dicSettleInfoDibao);
                    diBaoJS.ShowDialog();
                }
            }
            //------------------------------------------------


            //保存门诊结算明细
            SaveOutSettleMain();

            GC.KeepAlive(handelModel);
            GC.Collect();
        }
        /// <summary>
        /// 门诊联网结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void OutNetworkSettle(OutPayParameter para)
        {
            Dictionary <string, string> MFYYInfo = new Dictionary <string, string>();

            InterfaceInit();
            outReimPara = para;



            //当姓名不一致时提示
            if (outReimPara.PatInfo.PatName != dicPatInfo["xm"])
            {
                if (MessageBox.Show(" 医保卡姓名为:【" + dicPatInfo["xm"].ToString() + "】     HIS患者姓名为:【" + outReimPara.PatInfo.PatName + "】 是否继续 ", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
                {
                    throw new Exception("姓名不一致,操作员取消操作!");
                }
            }
            //获取免费用药余额
            MFYYInfo = handelModel.HqMfyyXx(outReimPara.RegInfo.CantonCode, outReimPara.RegInfo.IdNo, outReimPara.RegInfo.NetRegSerial);

            string MFYYSM = MFYYInfo["mfyysm"];

            //获取疾病信息
            Dialog.MfyyJblr frm = new MfyyJblr(MFYYSM, this);
            frm.ShowDialog();
            if (frm.isCancel)
            {
                throw new Exception("取消操作");
            }
            string Mfyybm = frm.MfyyJbbm;

            string ylzbh = "";

            if (CARD_Y_N == "1")
            {
                ylzbh = outReimPara.RegInfo.CardNo;
            }
            //门诊初始化
            handelModel.InitMFYY(outReimPara.RegInfo.CantonCode, "6", outReimPara.RegInfo.MemberNo, outReimPara.PatInfo.PatName,
                                 dicPatInfo["xb"], outReimPara.CommPara.OutNetworkSettleId.ToString(), DateTime.Now.ToString("yyyy-MM-dd"),//"001",
                                 handelModel.GetNetWorkDocCode(handelModel.getMzysbh(outReimPara.PatInfo.OutPatId.ToString(), outReimPara.CommPara.TradeId.ToString())), Mfyybm, P_syzhlx, ylzbh);


            //handelModel.SaveOutItemsMZ(outReimPara.Details);
            handelModel.SaveOutItems(outReimPara.Details);
            //门诊结算
            dicSettleInfo = handelModel.SettleMFYY(dicPatInfo["sbjglx"]);
            //---------------------------------------------低保结算

            if (Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]) > 0) //如果自负金额大于0弹出是否低保结算提示
            {
                if (outReimPara.RegInfo.Memo2 == "低保")
                {
                    dicSettleInfoDibao.Clear();
                    DiBaoJS_Confirm diBaoJS = new DiBaoJS_Confirm(outReimPara, dicSettleInfo, dicSettleInfoDibao);
                    diBaoJS.ShowDialog();
                }
            }
            //------------------------------------------------
            //保存门诊结算明细
            SaveOutSettleMain();



            GC.KeepAlive(handelModel);
            GC.Collect();
        }