Пример #1
0
        /// <summary>
        /// 处方数据上传
        /// </summary>
        /// <param name="param"></param>
        /// <param name="baseParam"></param>
        /// <returns></returns>
        public ApiJsonResultData PrescriptionUploadData(string param, HisBaseParam baseParam)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params = param,
                    Msg    = JsonConvert.SerializeObject(baseParam)
                });
                var uploadDataParam = JsonConvert.DeserializeObject <PrescriptionUploadParam>(param);
                var xmlStr          = XmlHelp.SaveXmlEntity(uploadDataParam);
                if (!xmlStr)
                {
                    throw new Exception("处方数据上传保存参数出错!!!");
                }
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                if (loginData != 1)
                {
                    throw new Exception("处方数据上传医保执行失败!!!");
                }
                int result = MedicalInsuranceDll.CallService_cxjb("CXJB004");
                if (result == 1)
                {
                    var resultStr = XmlHelp.DeSerializerModel(new PrescriptionUploadDto(), true);

                    var batchConfirmParam = new BatchConfirmParam()
                    {
                        BatchNumber = resultStr.ProjectBatch,
                        ConfirmType = 1,
                        MedicalInsuranceHospitalizationNo = uploadDataParam.MedicalInsuranceHospitalizationNo,
                        Operators = uploadDataParam.Operators
                    };
                    //批次确认
                    XmlHelp.SaveXmlEntity(batchConfirmParam);
                    MedicalInsuranceDll.CallService_cxjb("CXJB007");
                    var iniResult = XmlHelp.DeSerializerModel(new IniDto(), true);
                    Logs.LogWriteData(new LogWriteDataParam()
                    {
                        JoinJson   = param,
                        ReturnJson = JsonConvert.SerializeObject(baseParam),
                        OperatorId = baseParam.OperatorId
                    });
                    resultData.Data = resultStr;
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
            }
            MedicalInsuranceDll.DisConnectAppServer_cxjb("CXJB007");

            return(resultData);
        }
Пример #2
0
        /// <summary>
        /// 批次确认
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        private bool BatchConfirm(BatchConfirmParam param)
        {
            var resultData = true;
            PrescriptionUploadDto data;
            var xmlStr = XmlHelp.SaveXml(param);

            if (xmlStr)
            {
                int result = MedicalInsuranceDll.CallService_cxjb("CXJB007");
                if (result == 1)
                {
                    data = XmlHelp.DeSerializerModel(new PrescriptionUploadDto(), false);
                    if (data.ReturnState != "1")
                    {
                        resultData = false;
                    }
                }
            }

            return(resultData);
        }
Пример #3
0
        /// <summary>
        /// 处方数据上传
        /// </summary>
        /// <param name="param"></param>
        /// <param name="businessId"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        private PrescriptionUploadDto PrescriptionUploadData(PrescriptionUploadParam param, string businessId,
                                                             UserInfoDto user)
        {
            var data   = new PrescriptionUploadDto();
            var rowXml = param.RowDataList.Select(c => new HospitalizationFeeUploadRowXml()
            {
                SerialNumber = c.DetailId
            }).ToList();
            var xmlStr = XmlHelp.SaveXml(param);

            if (xmlStr)
            {
                int result = MedicalInsuranceDll.CallService_cxjb("CXJB004");
                if (result == 1)
                {
                    //如果业务id存在则不直接抛出异常
                    if (!string.IsNullOrWhiteSpace(businessId))
                    {
                        data = XmlHelp.DeSerializerModel(new PrescriptionUploadDto(), false);
                    }
                    else
                    {
                        data = XmlHelp.DeSerializerModel(new PrescriptionUploadDto(), true);
                    }

                    if (data.ReturnState == "1")
                    {
                        //交易码
                        var transactionId = Guid.NewGuid().ToString("N");
                        //添加批次
                        var updateFeeParam = param.RowDataList.Select(d => new UpdateHospitalizationFeeParam
                        {
                            Id            = d.Id,
                            BatchNumber   = data.ProjectBatch,
                            TransactionId = transactionId,
                            UploadAmount  = d.Amount
                        }).ToList();
                        _medicalInsuranceSqlRepository.UpdateHospitalizationFee(updateFeeParam, false, user);

                        //回参
                        var xmlData = new HospitalizationFeeUploadXml()
                        {
                            MedicalInsuranceHospitalizationNo = param.MedicalInsuranceHospitalizationNo,
                            RowDataList = rowXml,
                        };

                        var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData);
                        user.TransKey = businessId;
                        var saveXml = new SaveXmlDataParam()
                        {
                            User = user,
                            MedicalInsuranceBackNum = "CXJB004",
                            MedicalInsuranceCode    = "31",
                            BusinessId = businessId,
                            BackParam  = strXmlBackParam
                        };
                        //存基层
                        _webBasicRepository.SaveXmlData(saveXml);
                        var batchConfirmParam = new BatchConfirmParam()
                        {
                            ConfirmType = 1,
                            MedicalInsuranceHospitalizationNo = param.MedicalInsuranceHospitalizationNo,
                            BatchNumber = data.ProjectBatch,
                            Operators   = CommonHelp.GuidToStr(user.UserId)
                        };
                        var batchConfirmData = BatchConfirm(batchConfirmParam);
                        //如果批次号确认失败,更新病人处方上传标示为 0(未上传)
                        if (batchConfirmData == false)
                        {
                            _medicalInsuranceSqlRepository.UpdateHospitalizationFee(updateFeeParam, true, user);
                        }
                    }
                }
                else
                {
                    throw new Exception("[" + user.UserId + "]" + "处方上传执行出错!!!");
                }
            }

            return(data);
        }