diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index a0e64ae87..1b5d4681f 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -440,7 +440,7 @@ namespace IRaCIS.Core.API.Controllers #region 废弃 - + ///// ///// 上传临床数据 多文件 @@ -674,78 +674,79 @@ namespace IRaCIS.Core.API.Controllers - //public class UploadNoneDicomFileCommand - //{ - // public Guid TrialId { get; set; } - // public Guid SubjectVisitId { get; set; } - // public Guid NoneDicomStudyId { get; set; } - // public Guid StudyMonitorId { get; set; } - // public List UploadedFileList { get; set; } = new List(); - - - // public class OSSFileDTO - // { - // public string FilePath { get; set; } - // public string FileName { get; set; } - // public int FileFize { get; set; } - // } - //} - - ///// - ///// 上传非Dicom 文件 支持压缩包 多文件上传 - ///// - ///// - ///// - ////[DisableRequestSizeLimit] - //[HttpPost("NoneDicomStudy/UploadNoneDicomFile")] - //[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] - ////[Authorize(Policy = IRaCISPolicy.CRC)] - //public async Task UploadNoneDicomFile(UploadNoneDicomFileCommand incommand, - // [FromServices] IRepository _noneDicomStudyRepository, [FromServices] IRepository _studyMonitorRepository) - //{ - - // var subjectVisitId = incommand.SubjectVisitId; - // var studyMonitorId = incommand.StudyMonitorId; - // var noneDicomStudyId = incommand.NoneDicomStudyId; - - - // await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); - - // var sv = (await _repository.Where(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefaultAsync()).IfNullThrowConvertException(); - - // var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == studyMonitorId); - - // studyMonitor.UploadFinishedTime = DateTime.Now; - - // foreach (var item in incommand.UploadedFileList) - // { - // await _repository.AddAsync(new NoneDicomStudyFile() { FileName = item.FileName, Path = item.FilePath, NoneDicomStudyId = noneDicomStudyId }); - - // } - // var uploadFinishedTime = DateTime.Now; - - // var noneDicomStudy = await _noneDicomStudyRepository.FirstOrDefaultAsync((t => t.Id == noneDicomStudyId)); - - // noneDicomStudy.FileCount = noneDicomStudy.FileCount + incommand.UploadedFileList.Count; - - // studyMonitor.FileCount = incommand.UploadedFileList.Count; - // studyMonitor.FileSize = incommand.UploadedFileList.Sum(t => t.FileFize); - // studyMonitor.IsDicom = false; - // studyMonitor.IsDicomReUpload = false; - // studyMonitor.StudyId = noneDicomStudyId; - // studyMonitor.StudyCode = noneDicomStudy.StudyCode; - // studyMonitor.ArchiveFinishedTime = DateTime.Now; - // studyMonitor.IP = _userInfo.IP; - - // await _repository.SaveChangesAsync(); - - // return ResponseOutput.Ok(); - //} - #endregion + public class UploadNoneDicomFileCommand + { + public Guid TrialId { get; set; } + public Guid SubjectVisitId { get; set; } + public Guid NoneDicomStudyId { get; set; } + public Guid StudyMonitorId { get; set; } + + + public List UploadedFileList { get; set; } = new List(); + + + public class OSSFileDTO + { + public string FilePath { get; set; } + public string FileName { get; set; } + public int FileFize { get; set; } + } + } + + /// + /// 上传非Dicom 文件 支持压缩包 多文件上传 + /// + /// + /// + //[DisableRequestSizeLimit] + [HttpPost("NoneDicomStudy/UploadNoneDicomFile")] + [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })] + //[Authorize(Policy = IRaCISPolicy.CRC)] + public async Task UploadNoneDicomFile(UploadNoneDicomFileCommand incommand, + [FromServices] IRepository _noneDicomStudyRepository, [FromServices] IRepository _studyMonitorRepository) + { + + var subjectVisitId = incommand.SubjectVisitId; + var studyMonitorId = incommand.StudyMonitorId; + var noneDicomStudyId = incommand.NoneDicomStudyId; + + + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + + var sv = (await _repository.Where(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefaultAsync()).IfNullThrowConvertException(); + + var studyMonitor = await _studyMonitorRepository.FirstOrDefaultAsync(t => t.Id == studyMonitorId); + + studyMonitor.UploadFinishedTime = DateTime.Now; + + foreach (var item in incommand.UploadedFileList) + { + await _repository.AddAsync(new NoneDicomStudyFile() { FileName = item.FileName, Path = item.FilePath, NoneDicomStudyId = noneDicomStudyId }); + + } + var uploadFinishedTime = DateTime.Now; + + var noneDicomStudy = await _noneDicomStudyRepository.FirstOrDefaultAsync((t => t.Id == noneDicomStudyId)); + + noneDicomStudy.FileCount = noneDicomStudy.FileCount + incommand.UploadedFileList.Count; + + studyMonitor.FileCount = incommand.UploadedFileList.Count; + studyMonitor.FileSize = incommand.UploadedFileList.Sum(t => t.FileFize); + studyMonitor.IsDicom = false; + studyMonitor.IsDicomReUpload = false; + studyMonitor.StudyId = noneDicomStudyId; + studyMonitor.StudyCode = noneDicomStudy.StudyCode; + studyMonitor.ArchiveFinishedTime = DateTime.Now; + studyMonitor.IP = _userInfo.IP; + + await _repository.SaveChangesAsync(); + + return ResponseOutput.Ok(); + } /// /// 一致性核查 excel上传 支持三种格式 diff --git a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs index 388791b9b..76263b36f 100644 --- a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs +++ b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs @@ -120,7 +120,7 @@ namespace IRaCIS.Core.Application.Service /// public async Task SendTrialImageQCTaskEmailAsync(Guid trialId) { - var trialInfo = _repository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstOrDefault(); + var trialInfo = await _repository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync(); //找到 该项目的IQC 用户Id var userList = await _repository.Where(t => t.TrialId == trialId).Where(t => t.User.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.User.FullName }).ToListAsync(); @@ -333,7 +333,7 @@ namespace IRaCIS.Core.Application.Service if(onlyToUserId!=null) { - copyUserList.Where(t=>t.UserId == onlyToUserId).ToList(); + toUserList= toUserList.Where(t=>t.UserId == onlyToUserId).ToList(); } if (toUserList.Count() == 0) diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index df02f5c8d..32df5fa15 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -690,7 +690,7 @@ namespace IRaCIS.Application.Services var userLogQueryable = _userLogRepository - .WhereIf(inQuery.TrialId != null, t => t.LoginUser.UserTrials.Any(c => c.TrialId == inQuery.TrialId && c.UserId == t.CreateUserId)) + .WhereIf(inQuery.TrialId != null, t => t.LoginUser.UserTrials.Any(c => c.TrialId == inQuery.TrialId && c.UserId == t.LoginUserId)) .WhereIf(inQuery.OptType != null, t => t.OptType == inQuery.OptType) .WhereIf(inQuery.BeginDate != null, t => t.CreateTime >= inQuery.BeginDate) .WhereIf(inQuery.EndDate != null, t => t.CreateTime <= inQuery.EndDate) diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 20b6138a6..eeb90d390 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -260,7 +260,7 @@ namespace IRaCIS.Core.Application.Contracts var currentLatest = dbEntityList.OrderByDescending(t => t.CreateTime).FirstOrDefault(); - if (currentLatest.Email != userInfo.EmailOrPhone) + if (currentLatest!.Email != userInfo.EmailOrPhone) { //---该中心下已经有其他用户已填写的调研表,您不被允许继续填写 return ResponseOutput.NotOk(_localizer["TrialSiteSurvey_AlreadyFilledByOtherUsers"]); diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index fb175609a..aea881b0c 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -46,25 +46,34 @@ namespace IRaCIS.Application.Services } - - [AllowAnonymous] - public async Task InternationazitionInit() + public async Task GetMemoryStoreData() { - var rows = await MiniExcel.QueryAsync(@"C:\Users\Administrator\Desktop\Export\vue.xlsx"); + - foreach (var row in rows) - { - await _repository.InsertOrUpdateAsync(row); - - } - - await _repository.SaveChangesAsync(); - - return ResponseOutput.Ok(); + return ResponseOutput.Ok(new { StaticData.En_US_Dic , StaticData.Zh_CN_Dic }); } + + + //[AllowAnonymous] + //public async Task InternationazitionInit() + //{ + + + // var rows = await MiniExcel.QueryAsync(@"C:\Users\Administrator\Desktop\Export\vue.xlsx"); + + // foreach (var row in rows) + // { + // await _repository.InsertOrUpdateAsync(row); + + // } + + // await _repository.SaveChangesAsync(); + + // return ResponseOutput.Ok(); + //} [AllowAnonymous] [UnitOfWork] public async Task Get() diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index 5c4f5eba2..00df8532b 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -2526,6 +2526,37 @@ namespace IRaCIS.Core.Infra.EFCore.Common #endregion + #region PI 审核 + + foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(PIAudit))) + { + var type = GetEntityAuditOpt(item); + + var entity = item.Entity as PIAudit; + + await InsertInspection(item.Entity as PIAudit, type, x => new InspectionConvertDTO() + { + ObjectRelationParentId = entity.VisitTaskId, + IsDistinctionInterface=true + }); + } + + + foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SubjectVisitClinicalDialog))) + { + var type = GetEntityAuditOpt(item); + + var entity = item.Entity as SubjectVisitClinicalDialog; + + await InsertInspection(item.Entity as SubjectVisitClinicalDialog, type, x => new InspectionConvertDTO() + { + ObjectRelationParentId = entity.SubjectVisitId, + IsDistinctionInterface = false + }); + } + + #endregion + //任务 foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(VisitTask))) {