diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 8a81eb8cd..d2637703a 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -1763,22 +1763,22 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi await _trialEmailNoticeConfigRepository.SaveChangesAsync(); - var cronInfo = await _trialEmailNoticeConfigRepository.Where(t => t.Id == addOrEditTrialEmailNoticeConfig.Id) - .Select(t => new { t.Id, t.Code, TrialCode = t.Trial.TrialCode, t.EmailCron, t.BusinessScenarioEnum, t.TrialId }) - .FirstAsync(); + // var cronInfo = await _trialEmailNoticeConfigRepository.Where(t => t.Id == addOrEditTrialEmailNoticeConfig.Id) + //.Select(t => new { t.Id, t.Code, TrialCode = t.Trial.TrialCode, t.EmailCron, t.BusinessScenarioEnum, t.TrialId }) + //.FirstAsync(); - var jobId = $"{cronInfo.TrialId}({cronInfo.TrialCode})_({cronInfo.BusinessScenarioEnum})"; + // var jobId = $"{cronInfo.TrialId}({cronInfo.TrialCode})_({cronInfo.BusinessScenarioEnum})"; - if (addOrEditTrialEmailNoticeConfig.IsAutoSend) - { - HangfireJobHelper.AddOrUpdateTrialCronJob(jobId, addOrEditTrialEmailNoticeConfig.TrialId, addOrEditTrialEmailNoticeConfig.BusinessScenarioEnum, addOrEditTrialEmailNoticeConfig.EmailCron); + // if (addOrEditTrialEmailNoticeConfig.IsAutoSend) + // { + // HangfireJobHelper.AddOrUpdateTrialCronJob(jobId, addOrEditTrialEmailNoticeConfig.TrialId, addOrEditTrialEmailNoticeConfig.BusinessScenarioEnum, addOrEditTrialEmailNoticeConfig.EmailCron); - } - else - { - HangfireJobHelper.RemoveCronJob(jobId); - } + // } + // else + // { + // HangfireJobHelper.RemoveCronJob(jobId); + // } return ResponseOutput.Ok(); } diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index 44055be94..71fa83622 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -901,7 +901,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc /// /// [HttpPost] - public async Task>> GetIRUploadTaskNoneDicomStudyList(IRUploadStudyQuery inQuery) + public async Task>> GetIRUploadTaskNoneDicomStudyList([FromServices] INoneDicomStudyService _noneDicomStudyService, IRUploadStudyQuery inQuery) { var subjectCode = inQuery.SubjectCode; var subjectId = inQuery.SubjectId; @@ -926,7 +926,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc } var info = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId) - .Select(t => new { t.IsImageFilter, t.CriterionModalitys, t.IsReadingTaskViewInOrder }).FirstNotNullAsync(); + .Select(t => new { t.IsImageFilter, t.CriterionType, t.TrialId, t.CriterionModalitys, t.IsReadingTaskViewInOrder }).FirstNotNullAsync(); var config = await _subjectRepository.Where(t => t.Id == subjectId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList, t.Trial.IsShowStudyName }).FirstOrDefaultAsync(); @@ -934,6 +934,61 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //靶段标注上传,查看访视级别,上传绑定访视级别 if (inQuery.IsImageSegmentLabel == true) { + //存在ivus 和oct 这两种的项目 + if (_readingQuestionCriterionTrialRepository.Where(t => t.TrialId == info.TrialId && + (t.CriterionType == CriterionType.IVUS || t.CriterionType == CriterionType.OCT)).Distinct().Count() > 2 + && !_noneDicomStudyReposiotry.Any(t => t.SubjectId == inQuery.SubjectId && t.Modality != "IVUS")) + { + #region ivus 自动创建非dicom检查 + + var addList = await _dicomStudyRepository.Where(t => t.SubjectId == inQuery.SubjectId) + .Select(t => new NoneDicomStudyAddOrEdit() + { + TrialId = t.TrialId, + SubjectId = t.SubjectId, + SubjectVisitId = t.SubjectVisitId, + + ImageDate = (DateTime)t.StudyTime, + BodyPart = t.BodyPartForEdit, + BodyPartForEditOther = t.BodyPartForEditOther, + Modality = "IVUS" + + }).ToListAsync(); + + + var @lock = _distributedLockProvider.CreateLock($"NoneDicomCode"); + + using (await @lock.AcquireAsync()) + { + + var trialId = addList.FirstOrDefault().TrialId; + //默认会是0 + var code = await _noneDicomStudyReposiotry.Where(t => t.TrialId == trialId).Select(x => x.Code).DefaultIfEmpty().MaxAsync(); + + foreach (var g in addList.GroupBy(t => t.SubjectVisitId)) + { + var addOrEditNoneDicomStudy = g.First(); + + var optEntity = await _noneDicomStudyReposiotry.InsertFromDTOAsync(addOrEditNoneDicomStudy); + + optEntity.Code = code + 1; + + + optEntity.StudyCode = AppSettings.GetCodeStr(optEntity.Code, nameof(NoneDicomStudy)); + + code++; + } + + await _noneDicomStudyReposiotry.SaveChangesAsync(); + } + + #endregion + } + + + + + var list = _noneDicomStudyReposiotry.Where(t => t.SubjectId == subjectId) .WhereIf(inQuery.SubjectVisitId != null, t => t.SubjectVisitId == inQuery.SubjectVisitId) //.WhereIf(info.IsImageFilter, t => ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|")) @@ -1655,7 +1710,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //, NoneDicomStudyList = inQuery.IsImageSegmentLabel != false ? sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) - .Where(t => info.IsImageFilter && inQuery.IsImageSegmentLabel==null ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true) + .Where(t => info.IsImageFilter && inQuery.IsImageSegmentLabel == null ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true) .Where(t => t.IsReading) .Select(nd => new DownloadNoneDicomStudyDto() {