diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs index 6514877f6..32e05f1ab 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs @@ -524,6 +524,22 @@ namespace IRaCIS.Core.Application.Service var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadModuleId).FirstNotNullAsync(); inDto.TrialReadingCriterionId = readModule.TrialReadingCriterionId; } + + // 有全局就查全局 有肿瘤学就查肿瘤学 + + var clinicalDataLevelList = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.IsConfirm && x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring).Select(x => x.ClinicalDataLevel).Distinct().ToListAsync(); + + ReadingSetType? readingSetType = null; + if (clinicalDataLevelList.Contains(ClinicalLevel.ImageRead) && !clinicalDataLevelList.Contains(ClinicalLevel.OncologyRead)) + { + readingSetType = ReadingSetType.ImageReading; + } + else if (clinicalDataLevelList.Contains(ClinicalLevel.OncologyRead) && !clinicalDataLevelList.Contains(ClinicalLevel.ImageRead)) + { + readingSetType = ReadingSetType.TumorReading; + } + + var query = _readModuleRepository.Where(x => x.TrialId == inDto.TrialId) .WhereIf(inDto.ReadModuleId != null, x => x.Id == inDto.ReadModuleId) .WhereIf(inDto.IsCRCConfirm != null, x => x.IsCRCConfirm == inDto.IsCRCConfirm) @@ -533,6 +549,7 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inDto.SubjectId != null, x => x.SubjectId == inDto.SubjectId) .WhereIf(inDto.StartTime != null, x => x.SubjectVisit.LatestScanDate >= inDto.StartTime) .WhereIf(inDto.EndTime != null, x => x.SubjectVisit.LatestScanDate <= inDto.EndTime) + .WhereIf(readingSetType != null, x => x.ReadingSetType== readingSetType) .Select(x => new GetCRCConfirmListOutDto() { diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 31af7b5a4..3430330eb 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -903,7 +903,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate QuestionMark.Organ, QuestionMark.Location, QuestionMark.Part, - + QuestionMark.BodyPartDescription, QuestionMark.LowPPDLDi, QuestionMark.LowPPDSDi, QuestionMark.NadirPPD, diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index ac80c1f00..0d5e1cd72 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -504,7 +504,7 @@ namespace IRaCIS.Core.Application ToBeDealedCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.SubjectVisit && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Subject).Count(), ToBeVisitCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count(), ToAllCount = t.ReadingClinicalDataList.Where(x => !x.IsSign && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC).Count(), - ReadModuleCount = t.ReadModuleList.Where(x => !x.IsPMConfirm).Count(), + ReadModuleCount = t.ReadModuleList.Where(x => !x.IsCRCConfirm).Count(), }).Where(x => x.ReadModuleCount > 0); var defalutSortArray = new string[] { nameof(ImageClinicalDataToBeDoneDto.UrgentCount) + " desc", nameof(ImageClinicalDataToBeDoneDto.ToBeDealedCount) + " desc" }; diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs index 27a661289..f1b3105ec 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestionAnswer/ReadModuleCriterionFrom.cs @@ -15,11 +15,12 @@ namespace IRaCIS.Core.Domain.Models [Table("ReadModuleCriterionFrom")] public class ReadModuleCriterionFrom : Entity, IAuditAdd { - - /// + + /// /// 阅片期Id /// - public Guid ReadModuleId { get; set; } + [ForeignKey("ReadModuleId")] + public Guid ReadModuleId { get; set; } /// /// 受试者Id diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs index e45d82b4b..01f8c8d24 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs @@ -141,6 +141,9 @@ namespace IRaCIS.Core.Domain.Models public Trial Trial { get; set; } + [JsonIgnore] + public List ReadModuleCriterionFromList { get; set; } = new List(); + /// /// 阅片配置的类型 ///