public ApiJsonResultData MedicalInsuranceXmlUpload([FromUri] MedicalInsuranceXmlUiParam param) { return(new ApiJsonResultData(ModelState, new UiInIParam()).RunWithTry(y => { var userBase = webServiceBasicService.GetUserBaseInfo(param.UserId); var hospitalizationFeeList = hisSqlRepository.InpatientInfoDetailQuery( new InpatientInfoDetailQueryParam() { BusinessId = param.BusinessId }); var rowXml = hospitalizationFeeList.Where(d => d.UploadMark == 0).Select(c => new HospitalizationFeeUploadRowXml() { SerialNumber = c.DetailId }).ToList(); var xmlData = new HospitalizationFeeUploadXml() { MedicalInsuranceHospitalizationNo = "44116476", RowDataList = rowXml, }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); // var transactionId = Guid.Parse("79D71ACA-EDBB-419C-A382-2271922E708D").ToString("N"); var saveXmlData = new SaveXmlData(); saveXmlData.OrganizationCode = userBase.OrganizationCode; saveXmlData.AuthCode = userBase.AuthCode; saveXmlData.BusinessId = param.BusinessId; saveXmlData.TransactionId = transactionId; saveXmlData.MedicalInsuranceBackNum = "CXJB004"; saveXmlData.BackParam = CommonHelp.EncodeBase64("utf-8", strXmlBackParam); saveXmlData.IntoParam = CommonHelp.EncodeBase64("utf-8", strXmlBackParam); saveXmlData.MedicalInsuranceCode = "31"; saveXmlData.UserId = userBase.UserId; webServiceBasic.HIS_InterfaceList("38", JsonConvert.SerializeObject(saveXmlData)); })); }
/// <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); }