/// <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); }
/// <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); }
/// <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); }