diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index 515383350..f20d86207 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -79,7 +79,7 @@ namespace IRaCIS.Core.Application.Contracts /// public List StudyNameList { get; set; } - + public List TrialObjectNameList { get; set; } @@ -1040,7 +1040,7 @@ namespace IRaCIS.Core.Application.Contracts public class TrialSPMConfigCommand { - public Guid Id { get; set; } + public Guid Id { get; set; } [Comment("SPM 参与中心调研")] public bool IsSPMJoinSiteSurvey { get; set; } @@ -1184,6 +1184,9 @@ namespace IRaCIS.Core.Application.Contracts public class TrialBodyPartView { + + public bool IsStudyUse { get; set; } + public string Code { get; set; } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 27f6ec35d..b3c3b34ee 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -503,8 +503,9 @@ namespace IRaCIS.Core.Application && x.ReadingCriterionPageId == null) .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync(); - return (result, new { - ReadingVersionEnum= trialCriterion.ReadingVersionEnum + return (result, new + { + ReadingVersionEnum = trialCriterion.ReadingVersionEnum }); } @@ -585,7 +586,7 @@ namespace IRaCIS.Core.Application await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() { - ReadingToolList=inDto.ReadingToolList, + ReadingToolList = inDto.ReadingToolList, IsImageFilter = inDto.IsImageFilter, ImageDownloadEnum = inDto.ImageDownloadEnum, ImageUploadEnum = inDto.ImageUploadEnum, @@ -1334,7 +1335,35 @@ namespace IRaCIS.Core.Application /// public async Task>> GetTrialBodyPartList(Guid trialId) { - var list = await _trialRepository.Where(t => t.Id == trialId).SelectMany(t => t.TrialBodyPartList).Select(t => new TrialBodyPartView() { Code = t.Code, Name = _userInfo.IsEn_Us ? t.Name : t.NameCN, Id = t.Id, IsHandAdd = t.IsHandAdd }).OrderBy(t=>t.Name).ToListAsync(); + var list = await _trialRepository.Where(t => t.Id == trialId) + .SelectMany(t => t.TrialBodyPartList) + .Select(t => new TrialBodyPartView() { Code = t.Code, Name = _userInfo.IsEn_Us ? t.Name : t.NameCN, Id = t.Id, IsHandAdd = t.IsHandAdd }) + .OrderBy(t => t.Name).ToListAsync(); + + + var useBodyPart = _trialRepository.Where(t => t.Id == trialId).Select(t => new + { + DicomBodyPartList = t.StudyList.Where(t => t.BodyPartForEdit != "") + .Select(c => c.BodyPartForEdit) + .Distinct(), + NoneDicomBodyPartList = t.NoneDicomStudyList.Where(t => t.BodyPart != "") + .Select(c => c.BodyPart) + .Distinct(), + + }).FirstOrDefault(); + + foreach (var item in list) + { + var useBodyPartList = new List(); + if (useBodyPart != null) + { + useBodyPartList = useBodyPart.DicomBodyPartList.Union(useBodyPart.NoneDicomBodyPartList).Distinct().ToList(); + } + + item.IsStudyUse = useBodyPartList.Any(t => t == item.Name); + } + + return ResponseOutput.Ok(list); } @@ -1417,7 +1446,7 @@ namespace IRaCIS.Core.Application [HttpPost] public async Task UpdateTrialStudyNameList(UpdateTrialStudyNameListInDto inDto) { - + var trial = await _trialRepository.FirstOrDefaultAsync(x => x.Id == inDto.TrialId); diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index d685f71d5..6a1d2b951 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -48,6 +48,9 @@ public partial class Trial : BaseFullDeleteAuditEntity public List SubjectList { get; set; } = new List(); [JsonIgnore] public List SubjectVisitList { get; set; } = new List(); + + [JsonIgnore] + public List NoneDicomStudyList { get; set; } [JsonIgnore] public List StudyList { get; set; } = new List(); [JsonIgnore]