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);
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        //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);
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
            }
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
 }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
            }
        }
Beispiel #15
0
        /// <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);
        }
Beispiel #16
0
        /// <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);
        }
Beispiel #17
0
        /// <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);
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        /// <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);
            }
        }
Beispiel #21
0
        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);
            }
        }
Beispiel #22
0
        /// <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);
        }
Beispiel #23
0
        /// <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);
        }
Beispiel #24
0
        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);
        }