diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 19aa16fe9..f98055ad5 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -229,7 +229,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 当前ID /// - public Guid? ReadingQuestionTrialId { get; set; } + public Guid? Id { get; set; } } public class GetSystemCriterionOtherQuestionInDto @@ -240,7 +240,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 当前ID /// - public Guid? ReadingQuestionSystemId { get; set; } + public Guid? Id { get; set; } } public class ReadingQuestionSystemViewInDto : PageInput diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs index 5e5df355e..33b17f59b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriodSetService.cs @@ -65,7 +65,7 @@ namespace IRaCIS.Application.Services } if (addOrEditReadingPeriodSet.ReadingPeriodName == "Global") { - return ResponseOutput.NotOk("阅片期名称不能为"); + return ResponseOutput.NotOk("阅片期名称不能为Global"); } if (addOrEditReadingPeriodSet.Id == null) { @@ -117,7 +117,6 @@ namespace IRaCIS.Application.Services public async Task> GetPreviewTheReadingList(PreviewTheReadingListInDto inDto) { - // 当前项目 最晚拍片日期不为null 中心筛选 var visitQuery = _subjectVisitRepository.Where(x => x.TrialId == inDto.TrialId &&x.LatestScanDate!=null&&!x.IsLostVisit) .WhereIf(inDto.ReadingScope== ReadingScopeEnum.Site, x => inDto.SiteIds.Contains(x.SiteId)); diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs index ec699f01e..46ce46cb3 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingQuestionService.cs @@ -180,8 +180,14 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetSystemCriterionOtherQuestion(GetSystemCriterionOtherQuestionInDto inDto) { + var types = new List() + { + "select","radio" + + }; var questionList =await _readingQuestionSystemRepository.Where(x => x.ReadingQuestionCriterionSystemId == inDto.ReadingQuestionCriterionSystemId) - .WhereIf(inDto.ReadingQuestionSystemId != null, x => x.Id != inDto.ReadingQuestionSystemId) + .Where(x=> types.Contains(x.Type)) + .WhereIf(inDto.Id != null, x => x.Id != inDto.Id) .Select(x => new CriterionOtherQuestionOutDto() { QuestionId = x.Id, @@ -396,8 +402,14 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetTrialCriterionOtherQuestion(GetTrialCriterionOtherQuestionInDto inDto) { + var types = new List() + { + "select","radio" + + }; var questionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.ReadingQuestionCriterionTrialId) - .WhereIf(inDto.ReadingQuestionTrialId != null, x => x.Id != inDto.ReadingQuestionTrialId) + .Where(x => types.Contains(x.Type)) + .WhereIf(inDto.Id != null, x => x.Id != inDto.Id) .Select(x => new CriterionOtherQuestionOutDto() { QuestionId = x.Id, diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index b4e3cf9ae..17c7c4628 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -16,7 +16,9 @@ namespace IRaCIS.Core.Application.Contracts /// public string SubjectCodeRule { get; set; } = string.Empty; + public List TrialCriterionIds { get; set; } = new List(); + public List TrialCriterionNames { get; set; } = new List(); public List ClinicalDataTrialSetIds { get; set; } = new List(); @@ -80,6 +82,8 @@ namespace IRaCIS.Core.Application.Contracts public List CriterionIds { get; set; } = new List(); + public List TrialCriterionIds { get; set; } = new List(); + public Guid TrialId { get; set; } @@ -218,6 +222,7 @@ namespace IRaCIS.Core.Application.Contracts public class TrialConfigDTO: BasicTrialConfig { + public List CriterionIds { get; set; } = new List(); public List ClinicalDataSetNames { get; set; } = new List(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index dff97684e..110dcaa7f 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -325,10 +325,10 @@ namespace IRaCIS.Core.Application } var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync(); - if (trialInfo == null) return Null404NotFound(trialInfo); _mapper.Map(trialConfig, trialInfo); + trialInfo.UpdateTime = DateTime.Now; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs index ab723ea1b..458b55ac0 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs @@ -146,6 +146,8 @@ namespace IRaCIS.Core.Application.Service CreateMap(); CreateMap().ForMember(t => t.TrialId, u => u.MapFrom(c => c.Id)) + .ForMember(t => t.TrialCriterionIds, u => u.MapFrom(c => c.ReadingQuestionCriterionTrialList.Where(v =>v.IsConfirm).Select(r => r.Id))) + .ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.ReadingQuestionCriterionTrialList.Where(v => v.IsConfirm).Select(r => r.CriterionName))) .ForMember(t => t.ClinicalDataTrialSetIds, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.Id))) .ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.ClinicalDataSetName))) .ForMember(t => t.CriterionIds, u => u.MapFrom(c => c.TrialDicList.Where(v => v.KeyName == StaticData.Criterion).Select(r => r.DictionaryId))); diff --git a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs index 024ab01bd..2bc4aa538 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingQuestionCriterionTrial.cs @@ -42,9 +42,17 @@ namespace IRaCIS.Core.Domain.Models /// public Guid CreateUserId { get; set; } - + /// + /// 是否确认 + /// + public bool IsConfirm { get; set; } + /// + /// 项目 + /// + [ForeignKey("TrialId")] + public Trial Trial { get; set; } } diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index a93a68358..0cf37f150 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -24,6 +24,8 @@ namespace IRaCIS.Core.Domain.Models public List WorkloadList { get; set; } public List TrialUserList { get; set; } = new List(); + public List ReadingQuestionCriterionTrialList { get; set; } = new List(); + public List SubjectList { get; set; } = new List(); public List StudyList { get; set; } = new List(); @@ -65,6 +67,8 @@ namespace IRaCIS.Core.Domain.Models public virtual ICollection ClinicalTrialProjectDetails { get; set; } public virtual ICollection TrialDicList { get; set; } + + [StringLength(100)] public string TrialCode { get; set; } = string.Empty;