diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs index 98240a51a..346c40b64 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs @@ -255,7 +255,7 @@ namespace IRaCIS.Core.Application.Contracts.DTO public class TrialVisitQADTO { - + public bool ExistsManual { get; set; } public SubjectClinicalDataDto SubjectClinicalData { get; set; } = new SubjectClinicalDataDto(); public List NoneDicomStudyList { get; set; } = new List(); diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs index 5ede37c99..b5a41f3d9 100644 --- a/IRaCIS.Core.Application/Service/QC/QCListService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs @@ -21,15 +21,19 @@ namespace IRaCIS.Core.Application.Image.QA private readonly IRepository _trialQCQuestionRepository; private readonly IRepository _consistencyCheckFileRepository; + private IReadingImageTaskService _IReadingImageTaskService; + public QCListService( IRepository subjectVisitRepository, IRepository trialRepository, IRepository clinicalDataTrialSet, IRepository trialQCQuestionAnswerRepository, IRepository trialQCQuestionRepository, + IReadingImageTaskService IReadingImageTaskService, IRepository consistencyCheckFileRepository ) { + this._IReadingImageTaskService = IReadingImageTaskService; _subjectVisitRepository = subjectVisitRepository; this._trialQCQuestionAnswerRepository = trialQCQuestionAnswerRepository; this._trialQCQuestionRepository = trialQCQuestionRepository; @@ -606,6 +610,7 @@ namespace IRaCIS.Core.Application.Image.QA { QCQuestionAnswerList = qacheckList, StudyList = temp.StudyList, + ExistsManual= (await _IReadingImageTaskService.GetManualList(new GetManualListInDto() { TrialId = sv.TrialId })).Count() > 0, SeriesList = temp.SeriesList, RelationInfo = await GetVisitQCSubjectInfo(subjectVisitId), NoneDicomStudyList = await _repository.Where(t => t.SubjectVisitId == subjectVisitId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(), diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs index 79dfc0603..f87e5b68a 100644 --- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs @@ -33,5 +33,7 @@ namespace IRaCIS.Core.Application.Contracts Task SubmitOncologyReadingInfo(SubmitOncologyReadingInfoInDto inDto); Task AddOncologyTask(Guid oncologModuleId); + + Task> GetManualList(GetManualListInDto inDto) } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 5a337833e..2d1f40204 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -147,12 +147,22 @@ namespace IRaCIS.Application.Services public async Task> GetManualList(GetManualListInDto inDto) { UserTypeEnum userType = (UserTypeEnum)_userInfo.UserTypeEnumInt; - //_userInfo.UserTypeId + + + List canViewUserType = new List() + { + UserTypeEnum.IndependentReviewer, + UserTypeEnum.IQC, + + }; return await _trialDocumentRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialDocConfirmedUserList.Any(y => y.ConfirmUserId == _userInfo.Id && y.ConfirmTime != null) && x.NeedConfirmedUserTypeList.Any(y => y.NeedConfirmUserTypeId == _userInfo.UserTypeId)) - .Where(t => t.FileType.Code == "2" || t.FileType.Code == "6").IgnoreQueryFilters() + .WhereIf(userType== UserTypeEnum.IndependentReviewer, t => t.FileType.Code == "2" || t.FileType.Code == "6") + .WhereIf(userType == UserTypeEnum.IQC, t => t.FileType.Code == "4" || t.FileType.Code == "5") + .WhereIf(!canViewUserType.Contains(userType),t=>false) + .IgnoreQueryFilters() .Select(x => new GetManualListOutDto() { Id = x.Id,