diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 8a2bc6e23..758201856 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -253,6 +253,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid RowId { get; set; } } + public class ReadClinicalDataInDto + { + [NotDefault] + public Guid VisitTaskId { get; set; } + } public class GetReadingToolInDto { diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index b51b986e9..dcdb2a2d3 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -114,6 +114,20 @@ namespace IRaCIS.Application.Services this._trialEmailNoticeConfigService = trialEmailNoticeConfigService; } + /// + /// 阅读临床数据 + /// + /// + /// + [HttpPost] + public async Task ReadClinicalData(ReadClinicalDataInDto inDto) + { + await _visitTaskRepository.UpdatePartialFromQueryAsync(inDto.VisitTaskId, x => new VisitTask + { + IsReadClinicalData = true + }); + await _visitTaskRepository.SaveChangesAsync(); + } /// /// 添加默认值到任务里面 @@ -1097,7 +1111,19 @@ namespace IRaCIS.Application.Services await _readingCalculateService.VerifyVisitTaskQuestions(inDto); - //await _readingCalculateService.VerifyVisitTaskQuestions(inDto); + if ((await _readingClinicalDataService.GetClinicalDataList(new GetReadingOrTaskClinicalDataListInDto() + { + + SubjectId = taskInfo.SubjectId, + TrialId = taskInfo.TrialId, + VisitTaskId = taskInfo.Id, + })).Count() > 0 && !taskInfo.IsReadClinicalData) + { + throw new BusinessValidationFailedException($"临床数据未阅读!"); + } + + + return ResponseOutput.Ok(true); } diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index 133399d50..f95525d6e 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -169,6 +169,11 @@ namespace IRaCIS.Core.Domain.Models /// public bool? IsGlobalHaveUpdate { get; set; } + /// + /// 是否阅读临床数据 + /// + public bool IsReadClinicalData { get; set; } = false; + #region 裁判任务特有