/// <summary> /// 删除医保处方数据 /// </summary> /// <param name="param"></param> /// <param name="ids"></param> /// <param name="user"></param> /// <returns></returns> public void DeletePrescriptionUpload(DeletePrescriptionUploadParam param, List <Guid> ids, UserInfoDto user) { var xmlStr = XmlHelp.SaveXml(param); if (xmlStr) { int result = MedicalInsuranceDll.CallService_cxjb("CXJB005"); if (result == 1) { XmlHelp.DeSerializerModel(new IniDto(), true); } } }
public void DeletePrescriptionUpload(BaseUiBusinessIdDataParam param) { var userBase = _webserviceBasicService.GetUserBaseInfo(param.UserId); userBase.TransKey = param.TransKey; //获取医保病人信息 var residentDataParam = new QueryMedicalInsuranceResidentInfoParam() { BusinessId = param.BusinessId, OrganizationCode = userBase.OrganizationCode, }; List <QueryInpatientInfoDetailDto> queryData; //获取病人明细 var queryDataDetail = _hisSqlRepository.InpatientInfoDetailQuery (new InpatientInfoDetailQueryParam() { BusinessId = param.BusinessId }); //获取选择 queryData = param.DataIdList != null?queryDataDetail.Where(c => param.DataIdList.Contains(c.Id.ToString())).ToList() : queryDataDetail; //获取病人医保信息 var residentData = _medicalInsuranceSqlRepository.QueryMedicalInsuranceResidentInfo(residentDataParam); if (queryData.Any()) { //获取已上传数据、 var uploadDataId = queryData.Where(c => c.UploadMark == 1).Select(d => d.Id).ToList(); var batchNumberList = queryData.Where(c => c.UploadMark == 1).GroupBy(d => d.BatchNumber).Select(b => b.Key).ToList(); if (batchNumberList.Any()) { var deleteParam = new DeletePrescriptionUploadParam() { BatchNumber = string.Join(",", batchNumberList.ToArray()), MedicalInsuranceHospitalizationNo = residentData.MedicalInsuranceHospitalizationNo }; _residentMedicalInsuranceRepository.DeletePrescriptionUpload(deleteParam, uploadDataId, userBase); //取消医保上传状态 var updateFeeParam = uploadDataId.Select(c => new UpdateHospitalizationFeeParam { Id = c }) .ToList(); _medicalInsuranceSqlRepository.UpdateHospitalizationFee(updateFeeParam, true, userBase); //日志 var joinJson = JsonConvert.SerializeObject(queryData.Select(c => c.DetailId).ToList()); var logParam = new AddHospitalLogParam { User = userBase, RelationId = Guid.Parse(param.BusinessId), JoinOrOldJson = joinJson, ReturnOrNewJson = "", BusinessId = param.BusinessId, Remark = "医保取消处方明细id执行成功" }; _systemManageRepository.AddHospitalLog(logParam); // 回参构建 var xmlData = new HospitalizationFeeUploadCancelXml() { MedicalInsuranceHospitalizationNo = residentData.MedicalInsuranceHospitalizationNo, RowDataList = queryData.Select(c => new HospitalizationFeeUploadRowXml() { SerialNumber = c.DetailId }).ToList() }; var strXmlBackParam = XmlSerializeHelper.HisXmlSerialize(xmlData); var saveXml = new SaveXmlDataParam() { User = userBase, MedicalInsuranceBackNum = "CXJB005", MedicalInsuranceCode = "32", BusinessId = param.BusinessId, BackParam = strXmlBackParam }; //存基层 _webBasicRepository.SaveXmlData(saveXml); //日志 logParam.Remark = "基层取消处方明细id执行成功"; _systemManageRepository.AddHospitalLog(logParam); } } else { throw new Exception("未获取到医保退处方数据,请核实数据的正确性!!!"); } }