///// <summary>
        ///// 门诊计划生育结算
        ///// </summary>
        ///// <param name="param"></param>
        ///// <returns></returns>
        //public void OutpatientPlanBirthSettlement(OutpatientPlanBirthSettlementUiParam param)
        //{
        //    var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId);
        //    userBase.TransKey = param.TransKey;
        //    //门诊病人信息存储
        //    var id = Guid.NewGuid();
        //    var outpatientParam = new GetOutpatientPersonParam()
        //    {
        //        User = userBase,
        //        UiParam = param,
        //        IsSave = true,
        //        Id = id,

        //    };
        //    var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam);
        //    if (outpatientPerson == null) throw new Exception("his中未获取到当前病人!!!");
        //    var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam()
        //    {
        //        User = userBase,
        //        BusinessId = param.BusinessId,
        //    });
        //    var iniParam = GetOutpatientPlanBirthSettlementParam(param);
        //    var dataIni = JsonConvert.DeserializeObject<WorkerBirthPreSettlementJsonDto>(param.ResultData);
        //    var resultData = AutoMapper.Mapper.Map<WorkerHospitalizationPreSettlementDto>(dataIni);
        //    var saveData = new MedicalInsuranceDto
        //    {
        //        AdmissionInfoJson = JsonConvert.SerializeObject(param),
        //        BusinessId = param.BusinessId,
        //        Id = Guid.NewGuid(),
        //        IsBirthHospital = 1,
        //        IsModify = false,
        //        InsuranceType = 999,
        //        MedicalInsuranceState = MedicalInsuranceState.HisHospitalized,
        //        MedicalInsuranceHospitalizationNo = outpatientPerson.OutpatientNumber,
        //        AfferentSign = param.AfferentSign,
        //        IdentityMark = param.IdentityMark

        //    };
        //    //存中间库
        //    _medicalInsuranceSqlRepository.SaveMedicalInsurance(userBase, saveData);
        //    //日志写入
        //    _systemManageRepository.AddHospitalLog(new AddHospitalLogParam()
        //    {
        //        User = userBase,
        //        JoinOrOldJson = JsonConvert.SerializeObject(iniParam),
        //        ReturnOrNewJson = param.ResultData,
        //        RelationId = outpatientParam.Id,
        //        Remark = "[R][OutpatientDepartment]门诊计划生育结算"
        //    });

        //    //获取病人的基础信息
        //    var userInfoData = _residentMedicalInsuranceRepository.GetUserInfo(new ResidentUserInfoParam()
        //    {
        //        IdentityMark = param.IdentityMark,
        //        AfferentSign = param.AfferentSign,
        //    });
        //   // 回参构建
        //    var xmlData = new OutpatientDepartmentCostXml()
        //    {
        //        AccountBalance = userInfoData.InsuranceType == "342" ? userInfoData.ResidentInsuranceBalance : userInfoData.WorkersInsuranceBalance,
        //        MedicalInsuranceOutpatientNo = resultData.DocumentNo,
        //        CashPayment = resultData.CashPayment,
        //        SettlementNo = resultData.DocumentNo,
        //        AllAmount = outpatientPerson.MedicalTreatmentTotalCost,
        //        PatientName = outpatientPerson.PatientName,
        //        AccountAmountPay = resultData.AccountPayment,
        //        MedicalInsuranceType = userInfoData.InsuranceType == "342" ? "10" : userInfoData.InsuranceType,
        //    };

        //    var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData);
        //    var saveXml = new SaveXmlDataParam()
        //    {
        //        User = userBase,
        //        MedicalInsuranceBackNum = "zydj",
        //        MedicalInsuranceCode = "48",
        //        BusinessId = param.BusinessId,
        //        BackParam = strXmlBackParam
        //    };
        //    ////存基层
        //    _webBasicRepository.SaveXmlData(saveXml);
        //    var updateParam = new UpdateMedicalInsuranceResidentSettlementParam()
        //    {
        //        UserId = userBase.UserId,
        //        SelfPayFeeAmount = resultData.CashPayment,
        //        OtherInfo = JsonConvert.SerializeObject(resultData),
        //        Id = saveData.Id,
        //        SettlementNo = resultData.DocumentNo,
        //        MedicalInsuranceAllAmount = outpatientPerson.MedicalTreatmentTotalCost,
        //        SettlementTransactionId = userBase.TransKey,
        //        MedicalInsuranceState = MedicalInsuranceState.HisSettlement
        //    };
        //    //更新中间层
        //    _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParam);
        //    //明细存入
        //    _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam()
        //    {   IsSave = true,
        //        BusinessId = param.BusinessId,
        //        User = userBase
        //    });
        //}
        /// <summary>
        /// 门诊计划生育结算查询
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public WorkerHospitalizationPreSettlementDto OutpatientPlanBirthSettlementQuery(
            UiBaseDataParam param)
        {//OutpatientPlanBirthSettlementQueryParam
            var resultData = new WorkerHospitalizationPreSettlementDto();
            //获取医保病人信息
            var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(new QueryMedicalInsuranceResidentInfoParam()
            {
                BusinessId = param.BusinessId
            });

            if (residentData == null)
            {
                throw new Exception("获取当前病人医保信息失败!!!");
            }
            if (residentData.MedicalInsuranceState != MedicalInsuranceState.HisSettlement)
            {
                throw  new Exception("当前病人未办理结算!!!");
            }
            //医保登录
            _residentMedicalInsuranceService.Login(new QueryHospitalOperatorParam()
            {
                UserId = param.UserId
            });
            _outpatientDepartmentRepository.OutpatientPlanBirthSettlementQuery(
                new OutpatientPlanBirthSettlementQueryParam()
            {
            });

            return(resultData);
        }
示例#2
0
        /// <summary>
        /// 门诊计划生育结算取消
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public void OutpatientPlanBirthSettlementCancel(OutpatientPlanBirthSettlementCancelParam param)
        {
            WorkerHospitalizationPreSettlementDto data = null;
            var xmlStr = XmlHelp.SaveXml(param);

            if (!xmlStr)
            {
                throw new Exception("门诊计划生育结算取消保存参数出错");
            }
            int result = MedicalInsuranceDll.CallService_cxjb("SYBX006");

            if (result != 1)
            {
                throw new Exception("门诊计划生育结算取消执行出错!!!");
            }
            var dataIni = XmlHelp.DeSerializerModel(new IniDto(), true);
        }
        /// <summary>
        /// 门诊计划生育结算查询
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public WorkerHospitalizationPreSettlementDto OutpatientPlanBirthSettlementQuery(OutpatientPlanBirthSettlementQueryParam param)
        {
            WorkerHospitalizationPreSettlementDto data = null;
            var xmlStr = XmlHelp.SaveXml(param);

            if (!xmlStr)
            {
                throw new Exception("门诊计划生育结算查询保存参数出错");
            }
            int result = MedicalInsuranceDll.CallService_cxjb("SYBX007");

            if (result != 1)
            {
                throw new Exception("门诊计划生育结算查询执行出错!!!");
            }
            var dataIni = XmlHelp.DeSerializerModel(new WorkerBirthPreSettlementJsonDto(), true);

            if (dataIni != null)
            {
                data = AutoMapper.Mapper.Map <WorkerHospitalizationPreSettlementDto>(dataIni);
            }
            return(data);
        }
        /// <summary>
        /// 门诊生育结算
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public WorkerHospitalizationPreSettlementDto OutpatientPlanBirthSettlement(
            OutpatientPlanBirthSettlementUiParam param)
        {
            WorkerHospitalizationPreSettlementDto resultData = null;
            var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId);

            userBase.TransKey = param.TransKey;
            //门诊病人信息存储
            var id = Guid.NewGuid();
            var outpatientParam = new GetOutpatientPersonParam()
            {
                User    = userBase,
                UiParam = param,
                Id      = id,
            };
            var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam);

            if (outpatientPerson == null)
            {
                throw new Exception("his中未获取到当前病人!!!");
            }
            var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam()
            {
                User       = userBase,
                BusinessId = param.BusinessId,
            });
            var queryResidentParam = new QueryMedicalInsuranceResidentInfoParam()
            {
                BusinessId = param.BusinessId,
            };
            //获取医保病人信息
            var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(queryResidentParam);

            if (residentData.MedicalInsuranceState != MedicalInsuranceState.MedicalInsurancePreSettlement)
            {
                throw new Exception("当前病人未办理预结算,不能办理结算!!!");
            }
            if (residentData.MedicalInsuranceState == MedicalInsuranceState.HisSettlement)
            {
                throw new Exception("当前病人已办理医保结算,不能办理再次结算!!!");
            }
            //获取数据明细
            var iniParam = GetOutpatientPlanBirthSettlementParam
                               (param);

            iniParam.AfferentSign = param.AfferentSign;
            iniParam.IdentityMark = param.IdentityMark;
            iniParam.OutpatientNo = CommonHelp.GuidToStr(param.BusinessId);

            // 医保执行
            resultData = _outpatientDepartmentRepository.OutpatientPlanBirthSettlement(iniParam);
            _serviceBasicService.GetOutpatientPerson(outpatientParam);
            var updateData = new UpdateMedicalInsuranceResidentSettlementParam()
            {
                UserId = userBase.UserId,
                ReimbursementExpensesAmount = CommonHelp.ValueToDouble(resultData.ReimbursementExpenses),
                SelfPayFeeAmount            = resultData.CashPayment,
                OtherInfo    = JsonConvert.SerializeObject(resultData),
                Id           = residentData.Id,
                SettlementNo = resultData.DocumentNo,
                MedicalInsuranceAllAmount = resultData.TotalAmount,
                SettlementTransactionId   = userBase.UserId,
                MedicalInsuranceState     = MedicalInsuranceState.MedicalInsuranceSettlement
            };

            //存入中间层
            _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateData);
            //日志写入
            _systemManageRepository.AddHospitalLog(new AddHospitalLogParam()
            {
                User            = userBase,
                JoinOrOldJson   = JsonConvert.SerializeObject(iniParam),
                ReturnOrNewJson = JsonConvert.SerializeObject(resultData),
                RelationId      = outpatientParam.Id,
                BusinessId      = param.BusinessId,
                Remark          = "[R][OutpatientDepartment]门诊生育结算"
            });
            //获取病人的基础信息
            var userInfoData = _residentMedicalInsuranceRepository.GetUserInfo(new ResidentUserInfoParam()
            {
                IdentityMark = param.IdentityMark,
                AfferentSign = param.AfferentSign,
            });
            // 回参构建
            var xmlData = new OutpatientDepartmentCostXml()
            {
                AccountBalance = userInfoData.InsuranceType == "342" ? userInfoData.ResidentInsuranceBalance : userInfoData.WorkersInsuranceBalance,
                MedicalInsuranceOutpatientNo = resultData.DocumentNo,
                CashPayment          = resultData.CashPayment,
                SettlementNo         = resultData.DocumentNo,
                AllAmount            = outpatientPerson.MedicalTreatmentTotalCost,
                PatientName          = outpatientPerson.PatientName,
                AccountAmountPay     = resultData.AccountPayment,
                MedicalInsuranceType = userInfoData.InsuranceType == "310" ? "1" : userInfoData.InsuranceType,
            };

            var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData);
            var saveXml         = new SaveXmlDataParam()
            {
                User = userBase,
                MedicalInsuranceBackNum = "zydj",
                MedicalInsuranceCode    = "48",
                BusinessId = param.BusinessId,
                BackParam  = strXmlBackParam
            };

            ////存基层
            _webBasicRepository.SaveXmlData(saveXml);
            var updateParamData = new UpdateMedicalInsuranceResidentSettlementParam()
            {
                UserId = param.UserId,
                Id     = residentData.Id,
                MedicalInsuranceState = MedicalInsuranceState.HisSettlement,
                IsHisUpdateState      = true
            };

            //  更新中间层
            _medicalInsuranceSqlRepository.UpdateMedicalInsuranceResidentSettlement(updateParamData);

            return(resultData);
        }
        /// <summary>
        /// 门诊计划生育预结算
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public WorkerHospitalizationPreSettlementDto OutpatientPlanBirthPreSettlement(OutpatientPlanBirthPreSettlementUiParam param)
        {
            WorkerHospitalizationPreSettlementDto data = null;
            var userBase = _serviceBasicService.GetUserBaseInfo(param.UserId);

            userBase.TransKey = param.TransKey;

            var outpatientParam = new GetOutpatientPersonParam()
            {
                User    = userBase,
                UiParam = param,
            };
            var outpatientPerson = _serviceBasicService.GetOutpatientPerson(outpatientParam);

            if (outpatientPerson == null)
            {
                throw new Exception("his中未获取到当前病人!!!");
            }
            var outpatientDetailPerson = _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam()
            {
                User       = userBase,
                BusinessId = param.BusinessId,
            });
            var iniParam = GetOutpatientPlanBirthPreSettlementParam
                               (param);

            iniParam.AfferentSign = param.AfferentSign;
            iniParam.IdentityMark = param.IdentityMark;
            //医保执行
            data = _outpatientDepartmentRepository.OutpatientPlanBirthPreSettlement(iniParam);
            //保存门诊病人
            outpatientParam.IsSave = true;
            outpatientParam.Id     = Guid.NewGuid();
            _serviceBasicService.GetOutpatientPerson(outpatientParam);
            var saveData = new MedicalInsuranceDto
            {
                AdmissionInfoJson = JsonConvert.SerializeObject(param),
                BusinessId        = param.BusinessId,
                Id                    = Guid.NewGuid(),
                IsModify              = false,
                InsuranceType         = 999,
                MedicalInsuranceState = MedicalInsuranceState.MedicalInsurancePreSettlement,
                AfferentSign          = param.AfferentSign,
                IdentityMark          = param.IdentityMark,
                IsBirthHospital       = 1
            };

            //存中间库
            _medicalInsuranceSqlRepository.SaveMedicalInsurance(userBase, saveData);
            //日志写入
            _systemManageRepository.AddHospitalLog(new AddHospitalLogParam()
            {
                User            = userBase,
                JoinOrOldJson   = JsonConvert.SerializeObject(iniParam),
                ReturnOrNewJson = JsonConvert.SerializeObject(data),
                RelationId      = outpatientParam.Id,
                BusinessId      = param.BusinessId,
                Remark          = "[R][OutpatientDepartment]门诊计划生育预结算"
            });
            //明细存入
            _serviceBasicService.GetOutpatientDetailPerson(new OutpatientDetailParam()
            {
                IsSave     = true,
                BusinessId = param.BusinessId,
                User       = userBase
            });
            return(data);
        }
示例#6
0
        /// <summary>
        /// 职工结算
        /// </summary>
        /// <param name="paramc"></param>
        /// <param name="baseParam"></param>
        /// <returns></returns>
        public ApiJsonResultData WorkerHospitalizationSettlement(string paramc, HisBaseParam baseParam)
        {
            var resultValue = new ApiJsonResultData {
                Success = true
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params = paramc,
                    Msg    = JsonConvert.SerializeObject(baseParam)
                });
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                var param     = JsonConvert.DeserializeObject <WorkerHospitalizationSettlementParam>(paramc);

                //社保住院号
                var documentNo = new byte[1024];
                //发生费用金额
                var totalAmount = new byte[1024];
                //基本统筹支付
                var basicOverallPay = new byte[1024];
                //补充医疗保险支付金额
                var supplementPayAmount = new byte[1024];
                //专项基金支付金额
                var specialFundPayAmount = new byte[1024];
                //公务员补贴
                var civilServantsSubsidies = new byte[1024];
                //公务员补助
                var civilServantsSubsidy = new byte[1024];
                //其它支付金额
                var otherPaymentAmount = new byte[1024];
                //账户支付
                var accountPayment = new byte[1024];
                //现金支付
                var cashPayment = new byte[1024];
                //起付金额
                var paidAmount = new byte[1024];
                // 备注
                var remark = new byte[1024];
                //返回状态
                var resultState = new byte[1024];
                //消息
                var msg = new byte[1024];
                MedicalInsuranceDll.WorkerHospitalizationSettlement
                    (param.OrganizationCode,
                    param.MedicalInsuranceHospitalizationNo,
                    param.AdministrativeArea,
                    param.IsHospitalizationFrequency,
                    param.Operators,
                    param.LeaveHospitalDate,
                    param.LeaveHospitalState,
                    param.AdmissionMainDiagnosisIcd10,
                    param.DiagnosisIcd10Two,
                    param.DiagnosisIcd10Three,
                    param.LeaveHospitalMainDiagnosis,
                    totalAmount,
                    basicOverallPay,
                    supplementPayAmount,
                    specialFundPayAmount,
                    civilServantsSubsidies,
                    civilServantsSubsidy,
                    otherPaymentAmount,
                    accountPayment,
                    cashPayment,
                    paidAmount,
                    documentNo,
                    remark,
                    resultState,
                    msg
                    );
                if (CommonHelp.StrToTransCoding(resultState) != "1")
                {
                    throw new Exception(CommonHelp.StrToTransCoding(msg));
                }
                var resultData = new WorkerHospitalizationPreSettlementDto()
                {
                    DocumentNo             = CommonHelp.StrToTransCoding(documentNo),
                    TotalAmount            = Convert.ToDecimal(CommonHelp.StrToTransCoding(totalAmount)),
                    BasicOverallPay        = Convert.ToDecimal(CommonHelp.StrToTransCoding(basicOverallPay)),
                    SupplementPayAmount    = Convert.ToDecimal(CommonHelp.StrToTransCoding(supplementPayAmount)),
                    SpecialFundPayAmount   = Convert.ToDecimal(CommonHelp.StrToTransCoding(specialFundPayAmount)),
                    CivilServantsSubsidies = Convert.ToDecimal(CommonHelp.StrToTransCoding(civilServantsSubsidies)),
                    CivilServantsSubsidy   = Convert.ToDecimal(CommonHelp.StrToTransCoding(civilServantsSubsidy)),
                    OtherPaymentAmount     = Convert.ToDecimal(CommonHelp.StrToTransCoding(otherPaymentAmount)),
                    AccountPayment         = Convert.ToDecimal(CommonHelp.StrToTransCoding(accountPayment)),
                    CashPayment            = Convert.ToDecimal(CommonHelp.StrToTransCoding(cashPayment)),
                    PaidAmount             = Convert.ToDecimal(CommonHelp.StrToTransCoding(paidAmount)),
                    Remark = CommonHelp.StrToTransCoding(cashPayment),
                };
                var infoEntity = GetUserInfoEntity(baseParam);
                resultValue.OtherInfo = infoEntity.WorkersInsuranceBalance.ToString();
                Logs.LogWriteData(new LogWriteDataParam()
                {
                    JoinJson   = JsonConvert.SerializeObject(param),
                    ReturnJson = JsonConvert.SerializeObject(resultData),
                    OperatorId = baseParam.OperatorId
                });
                resultValue.Data = JsonConvert.SerializeObject(resultData);
            }
            catch (Exception e)
            {
                resultValue.Success = false;
                resultValue.Message = e.Message;
            }
            return(resultValue);
        }
示例#7
0
        /// <summary>
        /// 职工住院结算
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public WorkerHospitalizationPreSettlementDto WorkerHospitalizationSettlement(WorkerHospitalizationSettlementParam param)
        {
            //社保住院号
            var documentNo = new byte[1024];
            //发生费用金额
            var totalAmount = new byte[1024];
            //基本统筹支付
            var basicOverallPay = new byte[1024];
            //补充医疗保险支付金额
            var supplementPayAmount = new byte[1024];
            //专项基金支付金额
            var specialFundPayAmount = new byte[1024];
            //公务员补贴
            var civilServantsSubsidies = new byte[1024];
            //公务员补助
            var civilServantsSubsidy = new byte[1024];
            //其它支付金额
            var otherPaymentAmount = new byte[1024];
            //账户支付
            var accountPayment = new byte[1024];
            //现金支付
            var cashPayment = new byte[1024];
            //起付金额
            var paidAmount = new byte[1024];
            // 备注
            var remark = new byte[1024];
            //返回状态
            var resultState = new byte[1024];
            //消息
            var msg = new byte[1024];

            WorkerMedicalInsurance.WorkerHospitalizationSettlement
                (param.OrganizationCode,
                param.MedicalInsuranceHospitalizationNo,
                param.AdministrativeArea,
                param.IsHospitalizationFrequency,
                param.Operators,
                param.LeaveHospitalDate,
                param.LeaveHospitalState,
                param.AdmissionMainDiagnosisIcd10,
                param.DiagnosisIcd10Two,
                param.DiagnosisIcd10Three,
                param.LeaveHospitalMainDiagnosis,
                totalAmount,
                basicOverallPay,
                supplementPayAmount,
                specialFundPayAmount,
                civilServantsSubsidies,
                civilServantsSubsidy,
                otherPaymentAmount,
                accountPayment,
                cashPayment,
                paidAmount,
                documentNo,
                remark,
                resultState,
                msg
                );
            if (CommonHelp.StrToTransCoding(resultState) != "1")
            {
                throw new Exception(CommonHelp.StrToTransCoding(msg));
            }
            var resultData = new WorkerHospitalizationPreSettlementDto()
            {
                DocumentNo             = CommonHelp.StrToTransCoding(documentNo),
                TotalAmount            = Convert.ToDecimal(CommonHelp.StrToTransCoding(totalAmount)),
                BasicOverallPay        = Convert.ToDecimal(CommonHelp.StrToTransCoding(basicOverallPay)),
                SupplementPayAmount    = Convert.ToDecimal(CommonHelp.StrToTransCoding(supplementPayAmount)),
                SpecialFundPayAmount   = Convert.ToDecimal(CommonHelp.StrToTransCoding(specialFundPayAmount)),
                CivilServantsSubsidies = Convert.ToDecimal(CommonHelp.StrToTransCoding(civilServantsSubsidies)),
                CivilServantsSubsidy   = Convert.ToDecimal(CommonHelp.StrToTransCoding(civilServantsSubsidy)),
                OtherPaymentAmount     = Convert.ToDecimal(CommonHelp.StrToTransCoding(otherPaymentAmount)),
                AccountPayment         = Convert.ToDecimal(CommonHelp.StrToTransCoding(accountPayment)),
                CashPayment            = Convert.ToDecimal(CommonHelp.StrToTransCoding(cashPayment)),
                PaidAmount             = Convert.ToDecimal(CommonHelp.StrToTransCoding(paidAmount)),
                Remark = CommonHelp.StrToTransCoding(cashPayment),
            };

            return(resultData);
        }