diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index e1f857a54..a014ab851 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -3288,12 +3288,12 @@ 整体疗效 - + IsBaseUse - + IsBaseUse @@ -4460,6 +4460,20 @@ + + + 获取系统肿瘤信息 + + + + + + + 设置系统肿瘤学阅片信息 + + + + 获取获取系统阅片标准下拉 @@ -6349,6 +6363,21 @@ 全局阅片 + + + DictionaryId + + + + + IsBaseLineUse + + + + + IsBaseUse + + 表单类型 @@ -7023,6 +7052,13 @@ + + + 同步项目标准字典信息 + + + + 修改全局阅片配置信息 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 3c82e7933..80541e7ff 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -618,7 +618,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid SubjectId { get; set; } - public List AssessTypeList { get; set; } + public List AssessTypeList { get; set; } public List OncologyVisits { get; set; } = new List(); } @@ -686,7 +686,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string GlobalUpdateType { get; set; } - public List AssessTypeList { get; set; } + public List AssessTypeList { get; set; } public List TaskList { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index d8e7fcaf4..caa6a67b9 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -117,7 +117,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } - public class GetAssessTypeOutDto + public class CriterionDictionaryInfo { public Guid Id { get; set; } @@ -149,6 +149,30 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string ValueCN { get; set; } = string.Empty; } + + + public class GetSystemOncologyInfoOutDto + { + public bool IsOncologyReading { get; set; } + + public List DictionaryList { get; set; } + } + + public class SetSystemOncologyInfoInDto + { + [NotDefault] + public Guid SystemCriterionId { get; set; } + + public bool IsOncologyReading { get; set; } + + public List DictionaryIds { get; set; } + } + + public class GetSystemOncologyInfoInDto + { + [NotDefault] + public Guid SystemCriterionId { get; set; } + } public class GetSystemCriterionListOutDto { diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs index a7d10e263..e7001218c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs @@ -43,6 +43,55 @@ namespace IRaCIS.Core.Application.Service.RC } + /// + /// 获取系统肿瘤信息 + /// + /// + /// + public async Task GetSystemOncologyInfo(GetSystemOncologyInfoInDto inDto) + { + + GetSystemOncologyInfoOutDto result = new GetSystemOncologyInfoOutDto() { + IsOncologyReading = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == inDto.SystemCriterionId).Select(x => x.IsOncologyReading).FirstOrDefaultAsync(), + DictionaryList = await _readingCriterionDictionaryRepository.AsQueryable().Where(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.OncologyAssess) + .ProjectTo(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync() + + }; + + return result; + } + + /// + /// 设置系统肿瘤学阅片信息 + /// + /// + /// + [HttpPost] + public async Task SetSystemOncologyInfo(SetSystemOncologyInfoInDto inDto) + { + + await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.SystemCriterionId && x.ParentCode == ReadingCommon.OncologyAssess); + + await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.DictionaryIds.Select(x => new ReadingCriterionDictionary + { + CriterionId = inDto.SystemCriterionId, + DictionaryId = x, + IsSystemCriterion = true, + ParentCode = ReadingCommon.OncologyAssess + })); + + await _readingQuestionCriterionSystemRepository.UpdatePartialFromQueryAsync(inDto.SystemCriterionId, x => new ReadingQuestionCriterionSystem() + { + IsOncologyReading = inDto.IsOncologyReading + + }); + + var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync(); + + return ResponseOutput.Ok(result); + } + + #region 系统标准 /// /// 获取获取系统阅片标准下拉 @@ -386,12 +435,12 @@ namespace IRaCIS.Core.Application.Service.RC /// /// [HttpPost] - public async Task> GetAssessType(GetAssessTypeInDto inDto) + public async Task> GetAssessType(GetAssessTypeInDto inDto) { - List result = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.CriterionId + List result = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.CriterionId && x.ParentCode == inDto.ParentCode ) - .Select(x => new GetAssessTypeOutDto() + .Select(x => new CriterionDictionaryInfo() { Id = x.Id, DictionaryId = x.DictionaryId, diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs index 7b38c2ed7..ab843ab81 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingGlobalTaskService.cs @@ -202,12 +202,12 @@ namespace IRaCIS.Application.Services var subjectVisitId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync(); var isBaseLine = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Select(x => x.IsBaseLine).FirstOrDefaultAsync(); - List assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId + List assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess ) .WhereIf(isBaseLine,x=>x.IsBaseLineUse) .WhereIf(!isBaseLine,x=>x.IsFollowVisitUse) - .Select(x => new GetAssessTypeOutDto() + .Select(x => new CriterionDictionaryInfo() { Id = x.Id, DictionaryId = x.DictionaryId, diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs index 4b3a75f62..b4c1fa367 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs @@ -136,10 +136,10 @@ namespace IRaCIS.Application.Services result.OncologyVisits = oncologyVisits; - List assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId + List assessTypeList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == taskInfo.TrialReadingCriterionId && x.ParentCode == ReadingCommon.OncologyAssess ) - .Select(x => new GetAssessTypeOutDto() + .Select(x => new CriterionDictionaryInfo() { Id = x.Id, DictionaryId = x.DictionaryId, diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index 037a3bb63..53719f7f4 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -21,12 +21,23 @@ namespace IRaCIS.Core.Application.Service .ForMember(d => d.SiteCodes, u => u.MapFrom(s => s.ReadingPeriodSites.Select(x => x.TrialSite.TrialSiteCode))) .ForMember(d => d.PlanCount, u => u.MapFrom(s => s.ReadingPeriodPlanList.Count)); + CreateMap() + .ForMember(d => d.ChildGroup, u => u.MapFrom(s => s.Dictionary.ChildGroup)) + .ForMember(d => d.Code, u => u.MapFrom(s => s.Dictionary.Code)) + .ForMember(d => d.Description, u => u.MapFrom(s => s.Dictionary.Description)) + .ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.Dictionary.ShowOrder)) + .ForMember(d => d.ParentCode, u => u.MapFrom(s => s.Dictionary.Parent.Code)) + .ForMember(d => d.Value, u => u.MapFrom(s => s.Dictionary.Value)) + .ForMember(d => d.ValueCN, u => u.MapFrom(s => s.Dictionary.ValueCN)); + + + //CreateMap(); - // CreateMap() - //.ForMember(d => d.ClinicalDataLevel, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataLevel)) - //.ForMember(d => d.ClinicalDataLevelName, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataSetName)) - //.ForMember(d => d.ClinicalUploadType, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalUploadType)); - //.ForMember(d => d.FileCount, u => u.MapFrom(s => s.ReadingClinicalDataPDFList.Count())); + // CreateMap() + //.ForMember(d => d.ClinicalDataLevel, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataLevel)) + //.ForMember(d => d.ClinicalDataLevelName, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataSetName)) + //.ForMember(d => d.ClinicalUploadType, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalUploadType)); + //.ForMember(d => d.FileCount, u => u.MapFrom(s => s.ReadingClinicalDataPDFList.Count())); CreateMap(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index a95f55003..e42669043 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -769,7 +769,7 @@ namespace IRaCIS.Core.Application.Contracts public class GetGlobalReadingOutDto { - public List GlobalAssessTypes { get; set; } + public List GlobalAssessTypes { get; set; } /// diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 8d1b78138..e0671153c 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -226,7 +226,7 @@ namespace IRaCIS.Core.Application GlobalAssessTypes = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess ) - .Select(x => new GetAssessTypeOutDto() + .Select(x => new CriterionDictionaryInfo() { Id = x.Id, DictionaryId = x.DictionaryId, diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs index 111a7a953..ba3bf9724 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterion/ReadingQuestionCriterionSystem.cs @@ -59,6 +59,12 @@ namespace IRaCIS.Core.Domain.Models /// public CriterionType CriterionType { get; set; } + + /// + /// 肿瘤学阅片 + /// + public bool IsOncologyReading { get; set; } = false; + [JsonIgnore] public List ReadingQuestionSystemList { get; set; } = new List();