示例#1
0
        public void CancelOutNetworkSettle(OutPayParameter para)
        {
            OutPayPara = para;
            InterfaceInit();

            //撤销医保结算

            while (true)
            {
                try
                {
                    handelModel.CancelMZSettle(OutPayPara.SettleInfo.SettleNo);
                    break;
                }
                catch (Exception ex)
                {
                    if (MessageBox.Show("撤销门诊结算失败 错误提示" + ex.Message + "  是否重新撤销", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        throw new Exception("操作员取消撤销结算");
                    }
                }
            }


            isInit = false;
            GC.Collect();
            //释放对象
            handelModel.ReleaseComObj();
        }
示例#2
0
 /// <summary>
 /// 门诊联网预结算
 /// </summary>
 /// <param name="inPara">门诊接口入参</param>
 /// <returns></returns>
 public void OutNetworkPreSettle(OutPayParameter outReimPara)
 {
     //InterfaceInit();
     //handelModel.InitJMMZ(outReimPara.RegInfo.CantonCode, "6", outReimPara.RegInfo.MemberNo, outReimPara.PatInfo.PatName,
     //                    "1", outReimPara.SettleInfo.OutNetworkSettleId.ToString(), DateTime.Now.ToString("yyyy-MM-dd"),//"001",
     //                    operatorInfo.UserSysId, strDiagnosCode, P_syzhlx, outReimPara.RegInfo.CardNo, "C", "");
 }
        /// <summary>
        /// 门诊联网结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void OutNetworkSettle(OutPayParameter para)
        {
            try
            {
                InterfaceInit();
                outReimPara = para;

                //当姓名不一致时提示
                if (outReimPara.PatInfo.PatName != dicPatInfo["xm"])
                {
                    if (MessageBox.Show(" 医保登记姓名为:【" + dicPatInfo["xm"].ToString() + "】     患者姓名为:【" + outReimPara.PatInfo.PatName + "】 是否继续 ", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        throw new Exception("姓名不一致,操作员取消操作!");
                    }
                }
                string notMatchedCharge = "";
                foreach (var item in outReimPara.Details)
                {
                    if (item.NetworkItemCode.ToString().Trim().Length == 0 || "0000".Equals(item.NetworkItemCode))
                    {
                        notMatchedCharge += "编码:" + item.ChargeCode + "," + "名称:" + item.ChargeName + ";";
                    }
                }
                if (notMatchedCharge.Trim().Length > 0)
                {
                    throw new Exception("有以下项目未对应:\n" + notMatchedCharge + "取消上传费用");
                }

                //门诊初始化
                handelModel.InitMZ();

                handelModel.SaveOutItemsMZ(outReimPara.Details);

                //门诊结算
                dicSettleInfo = handelModel.SettleMZ(dicPatInfo["sbjbm"], dicPatInfo["ylzbh"]);


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

                if (Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]) > 0) //如果自负金额大于0弹出是否低保结算提示
                {
                    if (outReimPara.RegInfo.Memo2 == "低保")
                    {
                        dicSettleInfoDibao.Clear();
                        JiNan.Dialog.DiBaoJS_Confirm diBaoJS = new JiNan.Dialog.DiBaoJS_Confirm(outReimPara, dicSettleInfo, dicSettleInfoDibao, hosId);
                        diBaoJS.ShowDialog();
                    }
                }
                //------------------------------------------------
                //保存门诊结算明细
                //SaveOutSettleMain("MZ");
                SaveOutSettleMain();
                GC.KeepAlive(handelModel);
                GC.Collect();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#4
0
        /// <summary>
        /// 门诊联网结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void OutNetworkSettle(OutPayParameter para)
        {
            InterfaceInit();
            outReimPara = para;

            //当姓名不一致时提示
            if (outReimPara.RegInfo.NetPatName != dicPatInfo["xm"])
            {
                if (MessageBox.Show(" 医保登记姓名为:【" + dicPatInfo["xm"].ToString() + "】     患者姓名为:【" + outReimPara.RegInfo.NetPatName + "】 是否继续 ", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    throw new Exception("姓名不一致,操作员取消操作!");
                }
            }
            //门诊初始化
            //handelModel.InitJMMZ(outReimPara.RegInfo.CantonCode, "6", outReimPara.RegInfo.MemberNo, outReimPara.PatInfo.PatName,
            //                    dicPatInfo["xb"], outReimPara.SettleInfo.OutNetworkSettleId.ToString(), DateTime.Now.ToString("yyyy-MM-dd"),//"001",
            //                    operatorInfo.UserSysId, strDiagnosCode, P_syzhlx, outReimPara.RegInfo.CardNo, "C", "");

            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",
                                 PayAPIConfig.Operator.UserSysId, strDiagnosCode, P_syzhlx, outReimPara.RegInfo.CardNo);


            handelModel.SaveOutItems(outReimPara);
            //门诊结算
            dicSettleInfo = handelModel.SettleMG(dicPatInfo["sbjglx"]);
            //保存门诊结算明细
            SaveOutSettleMain();
            GC.KeepAlive(handelModel);
            GC.Collect();
        }
示例#5
0
        /// <summary>
        /// 撤销门诊结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void CancelOutNetworkSettle(OutPayParameter para)
        {
            InterfaceInit();
            outReimPara = para;
            if (outReimPara.SettleInfo == null)
            {
                throw new Exception("本地结算信息不存在");
            }
            string settleNo = outReimPara.SettleInfo.SettleNo.ToString();

            //撤销门诊大病结算
            while (true)
            {
                try
                {
                    handelModel.CancelMGSettle(settleNo);
                    break;
                }
                catch (Exception ex)
                {
                    if (MessageBox.Show("撤销门诊结算失败 错误提示" + ex.Message + "  是否重新撤销", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        throw new Exception("操作员取消撤销结算");
                    }
                }
            }
            GC.KeepAlive(handelModel);
            GC.Collect();
        }
        /// <summary>
        /// 撤销门诊结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void CancelOutNetworkSettle(OutPayParameter para)
        {
            InterfaceInit();
            outReimPara = para;
            //OutNetWorkReadCard(inPara);
            if (outReimPara.SettleInfo == null)
            {
                throw new Exception("本地结算信息不存在");
            }
            string settleNo = outReimPara.SettleInfo.SettleNo.ToString();


            //撤销低保结算
            #region 撤销低保结算
            if (outReimPara.SettleInfo.NetworkPatType.ToString() == "低保")
            {
                while (true)
                {
                    try
                    {
                        //修改连接字符串
                        PayAPIInstance.Dareway.JiNan.Dialog.DiBaoQXJS frmqxjs = new PayAPIInstance.Dareway.JiNan.Dialog.DiBaoQXJS(outReimPara.SettleInfo.RelationId);
                        frmqxjs.TopMost = true;
                        frmqxjs.ShowDialog();
                        break;
                    }
                    catch (Exception ex)
                    {
                        if (MessageBox.Show("撤销门诊结算失败 错误提示" + ex.Message + "  是否重新撤销", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            throw new Exception("操作员取消撤销结算");
                        }
                    }
                }
            }
            #endregion


            //撤销门诊大病结算
            #region 撤销门诊大病结算
            while (true)
            {
                try
                {
                    handelModel.CancelMGSettle(settleNo);
                    break;
                }
                catch (Exception ex)
                {
                    if (MessageBox.Show("撤销门诊结算失败 错误提示" + ex.Message + "  是否重新撤销", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        throw new Exception("操作员取消撤销结算");
                    }
                }
            }
            #endregion

            GC.KeepAlive(handelModel);
            GC.Collect();
        }
示例#7
0
        public void OutNetworkRegister(OutPayParameter para)
        {
            outReimPara = para;

            NetworkReadCard();

            //当姓名不一致时提示
            if (outReimPara.PatInfo.PatName != networkPatInfo.PatName)
            {
                if (MessageBox.Show(" 低保卡姓名为:【" + networkPatInfo.PatName.ToString() + "】     HIS患者姓名为:【" + outReimPara.PatInfo.PatName + "】 是否继续 ", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
                {
                    throw new Exception("姓名不一致,操作员取消操作!");
                }
            }
            outReimPara.RegInfo.CardNo      = networkPatInfo.ICNo;
            outReimPara.RegInfo.NetPatType  = networkPatInfo.MedicalType;
            outReimPara.RegInfo.CantonCode  = "";
            outReimPara.RegInfo.MemberNo    = networkPatInfo.MedicalNo;
            outReimPara.RegInfo.CompanyName = networkPatInfo.CompanyName;
            outReimPara.RegInfo.PatAddress  = networkPatInfo.CompanyNo;
            outReimPara.RegInfo.IdNo        = networkPatInfo.IDNo;
            //outReimPara.RegInfo.Balance =0 ;
            outReimPara.RegInfo.NetPatName     = networkPatInfo.PatName;
            outReimPara.RegInfo.NetDiagnosCode = "";
            outReimPara.RegInfo.NetType        = "";
        }
        /// <summary>
        /// 门诊联网结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void OutNetworkSettle(OutPayParameter para)
        {
            try
            {
                InterfaceInit();
                outReimPara = para;

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

                string notMatchedCharge = "";
                foreach (var item in outReimPara.Details)
                {
                    if (item.NetworkItemCode.ToString().Trim().Length == 0 || "0000".Equals(item.NetworkItemCode))
                    {
                        notMatchedCharge += "编码:" + item.ChargeCode + "," + "名称:" + item.ChargeName + ";";
                    }
                }
                if (notMatchedCharge.Trim().Length > 0)
                {
                    throw new Exception("有以下项目未对应:\n" + notMatchedCharge + "取消上传费用");
                }
                //门诊初始化
                handelModel.InitMZMG(outReimPara.RegInfo.CantonCode, outReimPara.CommPara.OutNetworkSettleId.ToString(), outReimPara.PatInfo.PatName, dicPatInfo["xb"],
                                     outReimPara.RegInfo.MemberNo, outReimPara.CommPara.OutNetworkSettleId.ToString(),
                                     DateTime.Now.ToString("yyyy-MM-dd"), PayAPIConfig.Operator.UserSysId, strDiagnosCode, P_syzhlx);
                handelModel.SaveOutItems(outReimPara);
                LogManager.Debug("开始调用门诊结算:" + dicPatInfo["sbjglx"]);
                //门诊结算
                dicSettleInfo = handelModel.SettleMG(dicPatInfo["sbjglx"]);
                //---------------------------------------------低保结算

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

                //保存门诊结算明细
                SaveOutSettleMain();
                GC.KeepAlive(handelModel);
                GC.Collect();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        /// <summary>
        /// 撤销门诊结算
        /// </summary>
        /// <param name="inPara">门诊接口入参</param>
        /// <returns></returns>
        public void CancelOutNetworkSettle(OutPayParameter para)
        {
            InterfaceInit();
            outReimPara = para;

            if (outReimPara.SettleInfo == null)
            {
                throw new Exception("本地结算信息不存在");
            }
            string settleNo = outReimPara.SettleInfo.SettleNo.ToString();

            //撤销低保结算
            if (outReimPara.SettleInfo.NetworkPatType.ToString() == "低保")
            {
                while (true)
                {
                    try
                    {
                        DiBaoQXJS frmqxjs = new DiBaoQXJS(outReimPara.SettleInfo.RelationId);
                        frmqxjs.TopMost = true;
                        frmqxjs.ShowDialog();
                        break;
                    }
                    catch (Exception ex)
                    {
                        if (MessageBox.Show("撤销门诊结算失败 错误提示" + ex.Message + "  是否重新撤销", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            throw new Exception("操作员取消撤销结算");
                        }
                    }
                }
            }

            //撤销医保结算
            //撤销普通门诊
            while (true)
            {
                try
                {
                    dicPatInfo = handelModel.ReadCardMZ();
                    handelModel.InitMZ();
                    //门诊退费
                    handelModel.CancelSettleMZ(settleNo, dicPatInfo["sbjbm"], dicPatInfo["ylzbh"]);

                    break;
                }
                catch (Exception ex)
                {
                    if (MessageBox.Show("撤销个人账户结算失败 错误提示" + ex.Message + "  是否重新撤销", "提示", MessageBoxButtons.YesNo) == DialogResult.No)
                    {
                        throw new Exception("操作员取消撤销结算");
                    }
                }
            }


            GC.KeepAlive(handelModel);
            GC.Collect();
        }
 /// <summary>
 /// 门诊联网预结算
 /// </summary>
 /// <param name="inPara">门诊接口入参</param>
 /// <returns></returns>
 public void OutNetworkPreSettle(OutPayParameter para)
 {
     InterfaceInit();
     //门诊初始化
     //handelModel.InitMZMG(outReimPara.RegInfo.CantonCode, "6", outReimPara.PatInfo.PatName, dicPatInfo["xb"],
     //                     outReimPara.RegInfo.MemberNo, outReimPara.CommPara.OutNetworkSettleId.ToString(),
     //                     DateTime.Now.ToString("yyyy-MM-dd"), PayAPIConfig.Operator.UserSysId, "", P_syzhlx);
 }
示例#11
0
        public void CancelOutNetworkSettle(OutPayParameter para)
        {
            outReimPara = para;
            frmQXJS frmqxjs = new frmQXJS(this);

            frmqxjs.TopMost = true;
            frmqxjs.ShowDialog();
        }
示例#12
0
 public DiBaoJS(OutPayParameter _outReimPara, Dictionary <string, string> _dicSettleInfo, Dictionary <string, string> _dicSettleInfoDibao, string hosID)
 {
     InitializeComponent();
     outReimPara        = _outReimPara;
     dicSettleInfo      = _dicSettleInfo;
     dicSettleInfoDibao = _dicSettleInfoDibao;
     this.hosid         = hosID;
 }
示例#13
0
 public DiBaoJS_Confirm(OutPayParameter _outReimPara, Dictionary <string, string> _dicSettleInfo, Dictionary <string, string> _dicSettleInfoDibao, string hosID)
 {
     InitializeComponent();
     outReimPara        = _outReimPara;
     dicSettleInfo      = _dicSettleInfo;
     dicSettleInfoDibao = _dicSettleInfoDibao;
     this.hosid         = hosID;
     lblTs.Text         = "医保结算完成,病人还需要支付" + Math.Round(Convert.ToDecimal(dicSettleInfo["brfdje"]) - Convert.ToDecimal(dicSettleInfo["grzhzf"]), 2) + "元,请选择是否进行低保结算?";
 }
示例#14
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="isOut">true门诊false住院</param>
        public InfoDiagnosis(bool IsOut, NetworkPatInfo patInfo, OutPayParameter _outPayPara, InPayParameter _inPayPara)
        {
            InitializeComponent();
            this.isOut      = IsOut;
            this.netPatInfo = patInfo;

            outPayPara = _outPayPara;
            inPayPara  = _inPayPara;
        }
示例#15
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);
 }
示例#16
0
        /// <summary>
        /// 门诊联网预结算
        /// </summary>
        /// <returns></returns>
        public void OutNetworkPreSettle(OutPayParameter para)
        {
            //InterfaceInit();
            ////MessageBox.Show("INIT1");
            //handelModel.InitMZMG(outReimPara.RegInfo.CantonCode, "4", outReimPara.RegInfo.MemberNo, outReimPara.RegInfo.NetPatName,
            //                    "1", outReimPara.RegInfo.OutNetworkSettleId.ToString(), DateTime.Now.ToString("yyyy-MM-dd"),//"001",
            //                    outReimPara.RegInfo.OperatorId,strDiagnosCode, P_syzhlx, outReimPara.RegInfo.CardNo, "C", "");


            outReimPara = para;
        }
        /// <summary>
        /// 门诊联网预结算
        /// </summary>
        /// <returns></returns>
        public void OutNetworkPreSettle(OutPayParameter para)
        {
            outReimPara = para;
            //outReimPara.CommPara.NetworkPatClassId;
            //判断费用限额
            string reStr = handelModel.MZfysh(outReimPara.RegInfo.IdNo, outReimPara.CommPara.NetworkPatClassId, outReimPara.CommPara.TradeId.ToString());

            if (reStr != "1")
            {
                throw new Exception(reStr);
            }
        }
示例#18
0
        /// <summary>
        /// 门诊登记
        /// </summary>
        /// <returns></returns>
        public void OutNetworkRegister(OutPayParameter para)
        {
            InterfaceInit();
            NetworkReadCard();
            //显示个人信息
            JiNan.Dialog.PersonInfoDialog perDialog = new JiNan.Dialog.PersonInfoDialog(patInfo);
            perDialog.ShowDialog();
            strDiagnosCode = perDialog.strDiagnosCode;
            if (perDialog.isCancel)
            {
                throw new Exception("取消操作");
            }
            //outReimPara.RegInfo.CardNo = patInfo["shbzhm"];                   //医疗卡号
            //outReimPara.RegInfo.NetPatType = patInfo["ylzbh"];              //卡序列号
            //outReimPara.RegInfo.CantonCode = patInfo["sbjbm"];              //行政区号
            //outReimPara.RegInfo.MemberNo = patInfo["shbzhm"];                //成员编码
            //outReimPara.RegInfo.CompanyName = patInfo["dwmc"];               //单位名称
            //outReimPara.RegInfo.PatAddress = patInfo["dwmc"];                   //住址
            //outReimPara.RegInfo.IdNo = patInfo["shbzhm"];                    //身份证号
            //outReimPara.RegInfo.Balance = Convert.ToDecimal(patInfo["ye"]);//账户余额
            //outReimPara.RegInfo.NetPatName = patInfo["xm"];                  //姓名
            //outReimPara.RegInfo.NetDiagnosCode = patInfo["mzdbjbs"];                         //

            para.RegInfo.CardNo         = patInfo["ylzbh"];                 //医疗卡号
            para.RegInfo.NetRegSerial   = patInfo["sbjglx"];                //卡序列号
            para.RegInfo.CantonCode     = patInfo["sbjbm"];                 //行政区号
            para.RegInfo.MemberNo       = patInfo["shbzhm"];                //成员编码
            para.RegInfo.CompanyName    = patInfo["dwmc"];                  //单位名称
            para.RegInfo.PatAddress     = patInfo["dwmc"];                  //住址
            para.RegInfo.IdNo           = patInfo["shbzhm"];                //身份证号
            para.RegInfo.NetPatType     = patInfo["ylrylb"];                //人员类别
            para.RegInfo.Balance        = Convert.ToDecimal(patInfo["ye"]); //账户余额
            para.RegInfo.NetPatName     = patInfo["xm"];                    //姓名
            para.RegInfo.Memo1          = patInfo["xb"] == "1" ? "男" : "女"; //性别
            para.RegInfo.Memo2          = perDialog.reDiBao;                //是否低保
            para.RegInfo.NetDiagnosCode = patInfo["mzdbjbs"];               //性别
            string rqlb = "";

            if (patInfo["sbjglx"] == "A")
            {
                rqlb = "职工";
            }
            else if (patInfo["sbjglx"] == "B")
            {
                rqlb = "居民";
            }

            para.RegInfo.NetDiagnosName = perDialog.strDiagnosName;
            para.RegInfo.NetPatType     = rqlb;
            para.RegInfo.NetType        = "4";///
        }
示例#19
0
        public void OutNetworkSettle(OutPayParameter para)
        {
            OutPayPara = para;
            //门诊结算
            dicSettleInfo = handelModel.SettleMZ(false);
            //保存门诊结算明细
            SaveOutSettleMain();

            handelModel.PrintDJ(dicSettleInfo["brjsh"], "FP");
            isInit = false;
            GC.Collect();
            //释放对象
            handelModel.ReleaseComObj();
        }
示例#20
0
        public NetworkPatInfo NetworkReadCard(OutPayParameter para)
        {
            InterfaceInit();
            NetworkPatInfo networkPatInfo = new NetworkPatInfo();

            P_syzhlx = "3";
            //strPayTypeId = "5";
            IsInReadCard = false;
            string quickIDnumber = "";

            if (para != null)
            {
                quickIDnumber = para.PatInfo.IDNo;
            }
            frmCARD frmCard = new frmCARD(quickIDnumber);

            frmCard.ShowDialog();
            if (frmCard.iscard == "1")
            {
                CARD_Y_N = "1";
                patInfo  = handelModel.ReadCardMZ();
            }
            else if (frmCard.iscard == "0")
            {
                CARD_Y_N = "0";
                patInfo  = handelModel.QueryBasicInfo(frmCard.IDNo, "", "6", "");//*医疗统筹类别(1,住院,4 门规)
            }
            else
            {
                throw new Exception("操作员取消本次操作");
            }
            IsInReadCard                   = true;
            dicPatInfo                     = patInfo;
            networkPatInfo.MedicalNo       = patInfo["ylzbh"];                 //医疗卡号
            networkPatInfo.PatName         = patInfo["xm"];                    //姓名
            networkPatInfo.Sex             = patInfo["xb"] == "1" ? "男" : "女"; //性别
            networkPatInfo.IDNo            = patInfo["shbzhm"];                //patInfo["sfzhm"];                        //身份证号码shbzhm
            networkPatInfo.MedicalTypeName = patInfo["ylrylb"];
            networkPatInfo.MedicalType     = patInfo["ylrylb"];                //医疗人员类别
            networkPatInfo.ICAmount        = Convert.ToDecimal(patInfo["ye"]); //账户余额
            networkPatInfo.ICNo            = "";                               //patInfo["kh"];                           //社会保障卡卡号
            networkPatInfo.CompanyNo       = "";                               //patInfo["sbjgbh"];                    //单位编号sbjbm
            networkPatInfo.CompanyName     = patInfo["dwmc"];                  //单位名称
            //networkPatInfo.Birthday = Convert.ToDateTime(patInfo["csrq"].Substring(0, 4) + "-" + patInfo["csrq"].Substring(4, 2) + "-" + patInfo["csrq"].Substring(6, 2));                    //出生日期
            networkPatInfo.MedicalType = patInfo["ylrylb"];
            return(networkPatInfo);
        }
        /// <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();
        }
示例#22
0
        public void OutNetworkRegister(OutPayParameter para)
        {
            OutPayPara = para;
            isOut      = true;
            ReadCard(); //读卡
            Dialog.PersonInfoDialog perDialog = new Dialog.PersonInfoDialog(patInfo);
            perDialog.ShowDialog();
            if (perDialog.isCancel)
            {
                throw new Exception("取消操作");
            }
            strDiagnosCode = perDialog.strDiagnosCode;
            strDiagnosName = perDialog.strDiagnosName;
            string HisPatName = OutPayPara.PatInfo.PatName;

            OutPayPara.RegInfo = new PayAPIInterface.Model.Out.OutNetworkRegisters
            {
                NetPatName         = networkPatInfo.PatName,
                Balance            = networkPatInfo.ICAmount,
                CardNo             = networkPatInfo.ICNo,
                MemberNo           = networkPatInfo.MedicalNo,
                NetType            = p_yltclb,
                CantonCode         = patInfo["cbdsbh"],
                PatAddress         = networkPatInfo.CompanyName,
                CompanyName        = networkPatInfo.CompanyName,
                NetPatType         = networkPatInfo.MedicalType,
                IdNo               = networkPatInfo.IDNo,
                Memo1              = "",
                Memo2              = "",
                NetRegSerial       = "",
                OperatorId         = PayAPIConfig.Operator.UserSysId,
                OutNetworkSettleId = OutPayPara.CommPara.OutNetworkSettleId,
                RegTimes           = 0,
                NetDiagnosCode     = strDiagnosCode,
                NetDiagnosName     = strDiagnosName,
                IsInvalid          = true,
                IsReg              = true,
                OutPatId           = OutPayPara.PatInfo.OutPatId,
                PatSerial          = ""
            };
            if (networkPatInfo.PatName.Trim() != HisPatName.Trim())
            {
                throw new Exception("HIS登记姓名:" + HisPatName.Trim() + ",医保读卡姓名:" + networkPatInfo.PatName.Trim() + ",两者不一致,请核对!");
            }
        }
        /// <summary>
        /// 门诊登记
        /// </summary>
        /// <returns></returns>
        public void OutNetworkRegister(OutPayParameter para)
        {
            outReimPara = para;
            InterfaceInit();
            NetworkReadCard();
            //显示个人信息
            PersonInfoDialog perDialog = new PersonInfoDialog(patInfo, this);

            perDialog.ShowDialog();
            strDiagnosCode = perDialog.strDiagnosCode;
            if (perDialog.isCancel)
            {
                throw new Exception("取消操作");
            }
            outReimPara.RegInfo.CardNo         = patInfo["ylzbh"];                 //医疗卡号
            outReimPara.RegInfo.NetPatType     = patInfo["sbjglx"];                //卡序列号
            outReimPara.RegInfo.CantonCode     = patInfo["sbjbm"];                 //行政区号
            outReimPara.RegInfo.MemberNo       = patInfo["shbzhm"];                //成员编码
            outReimPara.RegInfo.CompanyName    = patInfo["dwmc"];                  //单位名称
            outReimPara.RegInfo.PatAddress     = patInfo["dwmc"];                  //住址
            outReimPara.RegInfo.IdNo           = patInfo["shbzhm"];                //身份证号
            outReimPara.RegInfo.Balance        = Convert.ToDecimal(patInfo["ye"]); //账户余额
            outReimPara.RegInfo.NetPatName     = patInfo["xm"];                    //姓名
            outReimPara.RegInfo.Memo1          = patInfo["xb"] == "1" ? "男" : "女"; //性别
            outReimPara.RegInfo.Memo2          = perDialog.reDiBao;                //是否低保
            outReimPara.RegInfo.NetDiagnosCode = patInfo["mzdbjbs"];
            string rqlb = "";

            if (patInfo["sbjglx"] == "A")
            {
                rqlb = "职工";
            }
            else if (patInfo["sbjglx"] == "B")
            {
                rqlb = "居民";
            }

            outReimPara.RegInfo.NetPatType = rqlb;
            outReimPara.RegInfo.NetType    = "4";
        }
示例#24
0
        /// <summary>
        /// 门诊结算
        /// </summary>
        /// <param name="para"></param>
        public void OutNetworkSettle(OutPayParameter para)
        {
            outReimPara = para;

            //门诊结算
            try
            {
                OutPatSettle();
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("不允许消费账户"))
                {
                    MessageBox.Show("医保提示:不允许消费账户,将按自费收取");
                    //SaveOutSettleMainWithoutSettle();
                }
                else
                {
                    throw ex;
                }
            }
        }
        /// <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.InitMZ();

            handelModel.SaveOutItemsMZ(outReimPara.Details);

            //门诊结算
            dicSettleInfo = handelModel.SettleMZ(dicPatInfo["sbjbm"], dicPatInfo["ylzbh"]);
            //---------------------------------------------低保结算

            if (Convert.ToDecimal(dicSettleInfo["xj"]) > 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();
        }
示例#26
0
        public void OutNetworkPreSettle(OutPayParameter para)
        {
            outReimPara = para;

            string  strSql = "";
            DataSet ds     = new DataSet();

            strSql = "SELECT id FROM REPORT.dbo.yb_MzXlb WHERE NETWORKING_PAT_CLASS_ID='" + outReimPara.CommPara.NetworkPatClassId + "'" +
                     " UNION ALL " +
                     "SELECT id FROM REPORT.dbo.yb_MzXeb WHERE NETWORKING_PAT_CLASS_ID='" + outReimPara.CommPara.NetworkPatClassId + "'";
            ds = sqlHelper.ExecSqlReDs(strSql);
            if (ds.Tables[0].Rows.Count > 0)
            {
                InterfaceInit();
                //outReimPara.CommPara.NetworkPatClassId;
                //判断费用限额
                string reStr = handelModel.MZfysh(outReimPara.RegInfo.IdNo, outReimPara.CommPara.NetworkPatClassId, outReimPara.CommPara.TradeId.ToString());
                if (reStr != "1")
                {
                    throw new Exception(reStr);
                }
            }
        }
        /// <summary>
        /// 门诊登记
        /// </summary>
        /// <param name="para"></param>
        public void OutNetworkRegister(OutPayParameter para)
        {
            NetworkReadCard();
            //显示个人基本信息
            PersonInfoDialog perDialog = new PersonInfoDialog(patInfo);

            perDialog.ShowDialog();
            strDiagnosCode = perDialog.strDiagnosCode;
            if (perDialog.isCancel)
            {
                throw new Exception("取消操作");
            }
            para.RegInfo.CardNo       = patInfo["ylzbh"];                 //医疗卡号
            para.RegInfo.NetRegSerial = patInfo["sbjglx"];                //卡序列号
            para.RegInfo.CantonCode   = patInfo["sbjbm"];                 //行政区号
            para.RegInfo.MemberNo     = patInfo["shbzhm"];                //成员编码
            para.RegInfo.CompanyName  = patInfo["dwmc"];                  //单位名称
            para.RegInfo.PatAddress   = patInfo["dwmc"];                  //住址
            para.RegInfo.IdNo         = patInfo["shbzhm"];                //身份证号
            para.RegInfo.NetPatType   = patInfo["ylrylb"];                //人员类别
            para.RegInfo.Balance      = Convert.ToDecimal(patInfo["ye"]); //账户余额
            para.RegInfo.NetPatName   = patInfo["xm"];                    //姓名
            para.RegInfo.Memo1        = patInfo["xb"] == "1" ? "男" : "女"; //性别
            string rqlb = "";

            if (patInfo["sbjglx"] == "A")
            {
                rqlb = "职工";
            }
            else if (patInfo["sbjglx"] == "B")
            {
                rqlb = "居民";
            }

            para.RegInfo.NetPatType = rqlb;
            para.RegInfo.NetType    = "6";
        }
示例#28
0
 /// <summary>
 /// 门诊预结算
 /// </summary>
 /// <param name="para"></param>
 public void OutNetworkPreSettle(OutPayParameter para)
 {
     outReimPara = para;
 }
示例#29
0
 public void CancelOutNetworkSettle(OutPayParameter para)
 {
     throw new NotImplementedException();
 }
示例#30
0
        /// <summary>
        /// 门诊登记第一调用
        /// </summary>
        /// <param name="para"></param>
        public void OutNetworkRegister(OutPayParameter para)
        {
            outReimPara = para;

            OutNeworkReadCard();
        }