diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 84de882fd..30b2eaff0 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -523,6 +523,25 @@ 系统模板文档配置表 + + + 开始时候一些帮助 比如根据配置的字典生成枚举 + + + + + + 开始时候一些帮助 比如根据配置的字典生成枚举 + + + + + + 根据配置的字典名生成后端枚举 + + + + 项目参与人员导出 @@ -15359,6 +15378,13 @@ + + + 用ef 实现之前视图的功能 + + + + 获取读片模块 //加了标准参数 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs index 70a2f6e79..1dc49ade4 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs @@ -1,4 +1,5 @@ using IRaCIS.Core.Domain.Share; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -268,7 +269,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid? SubjectId { get; set; } - public List Data { get; set; } + public List Data { get; set; } = new List(); + + //public List Data =>VisitData.Union(ReadMouduleData).ToList(); + + + [JsonIgnore] + public List VisitData { get; set; } = new List(); + [JsonIgnore] + public List ReadMouduleData { get; set; } = new List(); } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs index 7c89abf55..324e8fe40 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs @@ -9,6 +9,7 @@ using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Domain.Models; +using Microsoft.Identity.Client; namespace IRaCIS.Application.Services { @@ -100,14 +101,33 @@ namespace IRaCIS.Application.Services return await _readModuleRepository.SaveChangesAsync(); } + /// + /// 用ef 实现之前视图的功能 + /// + /// + /// [HttpPost] public async Task>> GetReadModuleList_New(GetReadModuleDto inQuery) { - var criterionInfo = _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionName, t.ReadingType }).FirstOrDefault(); + var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(x => new + { + x.CriterionName, + x.ReadingType, + x.IsReadingTaskViewInOrder, + x.IsOncologyReading, + x.IsGlobalReading, + x.IsReadingPeriod, + x.ReadingInfoSignTime, + }).FirstNotNullAsync(); var readingType = (int)criterionInfo.ReadingType; + var isFilterModuleType = inQuery.ModuleType != null; + var isFilterCompleteClinicalData = inQuery.CompleteClinicalData != null; + var isFilterReadingStatus = inQuery.ReadingStatus != null; + var isFilterName = !string.IsNullOrWhiteSpace(inQuery.Name) ; + var query = _subjectRepository.Where(t => t.TrialId == inQuery.TrialId) .WhereIf(inQuery.SubjectId != null, x => x.Id == inQuery.SubjectId) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), x => x.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode)) @@ -120,8 +140,11 @@ namespace IRaCIS.Application.Services TrialSiteCode = t.TrialSite.TrialSiteCode, TrialSiteId = t.TrialSiteId, + #region 分开不用union 在属性里面union + //访视要查询不失访的其次要查在 <= 截止访视的,截止访视没有就查这个受试者所有的 - Data = t.SubjectVisitList.Where(t => t.IsLostVisit == false) + VisitData = t.SubjectVisitList.Where(t => t.IsLostVisit == false) + .Where(sv => t.FinalSubjectVisitId == null ? true : sv.VisitNum < t.LatestSubjectVisit.VisitNum).Select(sv => new ReadModuleView() { Id = sv.Id, @@ -183,7 +206,7 @@ namespace IRaCIS.Application.Services t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)).Count() + (sv.SubmitState == SubmitStateEnum.Submitted && sv.Trial.ClinicalDataTrialSetList - .Any(t=>t.ClinicalDataLevel ==ClinicalLevel.Study && t.TrialClinicalDataSetCriteriaList.Any(u=>u.TrialReadingCriterionId==inQuery.TrialReadingCriterionId)) ? 1 : 0), + .Any(t => t.ClinicalDataLevel == ClinicalLevel.Study && t.TrialClinicalDataSetCriteriaList.Any(u => u.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)) ? 1 : 0), @@ -193,23 +216,301 @@ namespace IRaCIS.Application.Services CriterionName = criterionInfo.CriterionName - }).ToList() + }) + + .Where(t=>isFilterModuleType? t.ModuleType==inQuery.ModuleType:true) + .Where(t => isFilterName ? t.Name == inQuery.Name : true) + .Where(t => isFilterReadingStatus ? t.ReadingStatus == inQuery.ReadingStatus : true) + .Where(t => isFilterCompleteClinicalData && inQuery.CompleteClinicalData == CompleteClinicalDataEnum.NA ? t.NeedSignClinicalDataCount == 0 : true) + .Where(t => isFilterCompleteClinicalData && inQuery.CompleteClinicalData == CompleteClinicalDataEnum.NotComplete ? t.NeedSignClinicalDataCount != t.SignClinicalDataCount : true) + .Where(t => isFilterCompleteClinicalData && inQuery.CompleteClinicalData == CompleteClinicalDataEnum.Complete ? t.NeedSignClinicalDataCount == t.SignClinicalDataCount : true) + + //搜索条件报错 + //.WhereIf(inQuery.ModuleType != null, t => t.ModuleType == inQuery.ModuleType) + //.WhereIf(inQuery.CompleteClinicalData == CompleteClinicalDataEnum.NA, x => x.NeedSignClinicalDataCount == 0) + //.WhereIf(inQuery.CompleteClinicalData == CompleteClinicalDataEnum.NotComplete, x => x.NeedSignClinicalDataCount != x.SignClinicalDataCount) + //.WhereIf(inQuery.CompleteClinicalData == CompleteClinicalDataEnum.Complete, x => x.NeedSignClinicalDataCount != 0 && x.NeedSignClinicalDataCount == x.SignClinicalDataCount) + //.WhereIf(inQuery.ReadingStatus != null, x => x.ReadingStatus == inQuery.ReadingStatus) + .ToList(), + + //阅片期 + ReadMouduleData = t.ReadModuleList.Select(rm => new ReadModuleView() + { + Id = rm.Id, + CreateTime = rm.CreateTime, + PDState = PDStateEnum.None, + IsBaseLine = false, + SubjectCode = rm.SubjectVisit.Subject.Code, + IsEnrollmentConfirm = false, + IsFinalVisit = false, + SubjectId = rm.SubjectId, + SubjectVisitId = rm.SubjectVisitId, + IsUrgent = rm.SubjectVisit.IsUrgent, + SubjectVisitName = rm.SubjectVisit.VisitName, + IsVisit = false, + + Name = rm.ModuleName, + TrialSiteId = rm.Subject.TrialSiteId, + TrialSiteCode = rm.Subject.TrialSite.TrialSiteCode, + + TrialId = rm.TrialId, + VisitNum = rm.SubjectVisit.VisitNum, + TrialReadingCriterionId = inQuery.TrialReadingCriterionId, + + OutPlanPreviousVisitId = null, + + OutPlanPreviousVisitName = null, + + ModuleType = rm.ModuleType, + + //只有阅片期有 + CutOffVisitId = rm.SubjectVisit.Id, + CutOffVisitName = rm.SubjectVisit.VisitName, + ReadingSetType = null, + + //之前视图返回的null 应该是没用的? + ReadModuleId = rm.Id, + ReadModuleName = rm.ModuleName, + + //是否是截止访视? + IsCanChangeCutOffVisit = false, + + + ///阅片状态 0 1 2 保持访视的,任务全做完了就是5 没完成就是4 否则就是3 + ReadingStatus = rm.ReadingStatus < ReadingStatusEnum.TaskAllocate ? rm.ReadingStatus : + (rm.ModuleTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned + && t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ReadCompleted : + + (rm.ModuleTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.Allocated + && t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ImageReading : ReadingStatusEnum.TaskAllocate + ) + ), - }); ; - - var pageList = await query.ToPagedListAsync(inQuery); - return ResponseOutput.Ok(pageList); + //需要签名数量计算 基线包含subject+访视级别的 + NeedSignClinicalDataCount = rm.Trial.TrialReadingCriterionList.Where(t => t.Id == inQuery.TrialReadingCriterionId).SelectMany(u => u.TrialClinicalDataSetCriterionList.Select(z => z.TrialClinicalDataSet)) + .Where(t => t.IsConfirm == true && t.UploadRole == UploadRole.PM && (t.ClinicalDataLevel == ClinicalLevel.SubjectVisit || t.ClinicalDataLevel == ClinicalLevel.ImageRead || t.ClinicalDataLevel == ClinicalLevel.OncologyRead)).Count() + + + (rm.Trial.TrialReadingCriterionList.Where(t => t.Id == inQuery.TrialReadingCriterionId).SelectMany(u => u.TrialClinicalDataSetCriterionList.Select(z => z.TrialClinicalDataSet)) + .Where(t => t.IsConfirm == true && t.UploadRole == UploadRole.CRC && + (t.ClinicalDataLevel == ClinicalLevel.SubjectVisit || t.ClinicalDataLevel == ClinicalLevel.ImageRead || t.ClinicalDataLevel == ClinicalLevel.OncologyRead)).Any() ? 1 : 0) + , + + //签名的数量 + + SignClinicalDataCount = rm.ReadingClinicalDataList.Where(t => t.IsSign == true && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM && + t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)).Count() + + + (rm.IsPMConfirm ? 1 : 0), + + + //标准名 应该是可以不查询的,只要保证逻辑正确 + CriterionName = criterionInfo.CriterionName + + }) + .Where(t => isFilterModuleType ? t.ModuleType == inQuery.ModuleType : true) + .Where(t => isFilterName ? t.Name == inQuery.Name : true) + .Where(t => isFilterReadingStatus ? t.ReadingStatus == inQuery.ReadingStatus : true) + .Where(t => isFilterCompleteClinicalData && inQuery.CompleteClinicalData == CompleteClinicalDataEnum.NA ? t.NeedSignClinicalDataCount == 0 : true) + .Where(t => isFilterCompleteClinicalData && inQuery.CompleteClinicalData == CompleteClinicalDataEnum.NotComplete ? t.NeedSignClinicalDataCount != t.SignClinicalDataCount : true) + .Where(t => isFilterCompleteClinicalData && inQuery.CompleteClinicalData == CompleteClinicalDataEnum.Complete ? t.NeedSignClinicalDataCount == t.SignClinicalDataCount : true) + .ToList() + + #endregion + + #region 用union 报错不行的 + + ////访视要查询不失访的其次要查在 <= 截止访视的,截止访视没有就查这个受试者所有的 + //Data = t.SubjectVisitList.Where(t => t.IsLostVisit == false) + //.Where(sv => t.FinalSubjectVisitId == null ? true : sv.VisitNum < t.LatestSubjectVisit.VisitNum).Select(sv => new ReadModuleView() + //{ + // Id = sv.Id, + // CreateTime = sv.CreateTime, + // PDState = sv.PDState, + // IsBaseLine = sv.IsBaseLine, + // SubjectCode = sv.Subject.Code, + // IsEnrollmentConfirm = sv.IsEnrollmentConfirm, + // IsFinalVisit = sv.IsFinalVisit, + // SubjectId = sv.SubjectId, + // SubjectVisitId = sv.Id, + // IsUrgent = sv.IsUrgent, + // SubjectVisitName = sv.VisitName, + // IsVisit = true, + + // Name = sv.VisitName, + // TrialSiteId = sv.TrialSiteId, + // TrialSiteCode = sv.TrialSite.TrialSiteCode, + + // TrialId = sv.TrialId, + // VisitNum = sv.VisitNum, + // TrialReadingCriterionId = inQuery.TrialReadingCriterionId, + + // OutPlanPreviousVisitId = sv.OutPlanPreviousVisitId, + + // OutPlanPreviousVisitName = sv.OutPlanPreviousVisit.VisitName, + + // ModuleType = sv.InPlan ? ModuleTypeEnum.InPlanSubjectVisit : ModuleTypeEnum.OutPlanSubjectVisit, + + // //只有阅片期有 + // CutOffVisitId = null, + // CutOffVisitName = null, + // ReadingSetType = null, + // ReadModuleId = null, + // ReadModuleName = "", + + + // ///阅片状态 0 1 2 保持访视的,任务全做完了就是5 没完成就是4 否则就是3 + // ReadingStatus = sv.ReadingStatus < ReadingStatusEnum.TaskAllocate ? sv.ReadingStatus : + // (sv.VisitTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned + // && t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ReadCompleted : + // (sv.VisitTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.Allocated + // && t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ImageReading : ReadingStatusEnum.TaskAllocate)), + + + + // //是否是截止访视? + // IsCanChangeCutOffVisit = false, + + // //需要签名数量计算 基线包含subject+访视级别的 + // NeedSignClinicalDataCount = sv.Trial.TrialReadingCriterionList.Where(t => t.Id == inQuery.TrialReadingCriterionId).SelectMany(u => u.TrialClinicalDataSetCriterionList).Where(t => t.TrialClinicalDataSet.IsConfirm == true). + // Where(t => sv.IsBaseLine ? t.TrialClinicalDataSet.ClinicalDataLevel <= ClinicalLevel.SubjectVisit : t.TrialClinicalDataSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit).Count() + // + (sv.Trial.TrialReadingCriterionList.Where(t => t.Id == inQuery.TrialReadingCriterionId).SelectMany(u => u.TrialClinicalDataSetCriterionList).Where(t => t.TrialClinicalDataSet.IsConfirm == true) + // .Any(t => t.TrialClinicalDataSet.ClinicalDataLevel == ClinicalLevel.Study) ? 1 : 0), + + // //签名的数量 + + // SignClinicalDataCount = sv.ReadingClinicalDataList.Where(t => t.IsSign == true && t.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Study && + // t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)).Count() + // + + // (sv.SubmitState == SubmitStateEnum.Submitted && sv.Trial.ClinicalDataTrialSetList + // .Any(t => t.ClinicalDataLevel == ClinicalLevel.Study && t.TrialClinicalDataSetCriteriaList.Any(u => u.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)) ? 1 : 0), + + + + + + // //标准名 应该是可以不查询的,只要保证逻辑正确 + // CriterionName = criterionInfo.CriterionName + + + //}) + //.Union(t.ReadModuleList.AsQueryable().Select(rm => new ReadModuleView() + //{ + // Id = rm.Id, + // CreateTime = rm.CreateTime, + // PDState = PDStateEnum.None, + // IsBaseLine = false, + // SubjectCode = rm.SubjectVisit.Subject.Code, + // IsEnrollmentConfirm = false, + // IsFinalVisit = false, + // SubjectId = rm.SubjectId, + // SubjectVisitId = rm.SubjectVisitId, + // IsUrgent = rm.SubjectVisit.IsUrgent, + // SubjectVisitName = rm.SubjectVisit.VisitName, + // IsVisit = false, + + // Name = rm.ModuleName, + // TrialSiteId = rm.Subject.TrialSiteId, + // TrialSiteCode = rm.Subject.TrialSite.TrialSiteCode, + + // TrialId = rm.TrialId, + // VisitNum = rm.SubjectVisit.VisitNum, + // TrialReadingCriterionId = inQuery.TrialReadingCriterionId, + + // OutPlanPreviousVisitId = null, + + // OutPlanPreviousVisitName = null, + + // ModuleType = rm.ModuleType, + + // //只有阅片期有 + // CutOffVisitId = rm.SubjectVisit.Id, + // CutOffVisitName = rm.SubjectVisit.VisitName, + // ReadingSetType = null, + + // //之前视图返回的null 应该是没用的? + // ReadModuleId = rm.Id, + // ReadModuleName = rm.ModuleName, + + // //是否是截止访视? + // IsCanChangeCutOffVisit = false, + + + // ///阅片状态 0 1 2 保持访视的,任务全做完了就是5 没完成就是4 否则就是3 + // ReadingStatus = rm.ReadingStatus < ReadingStatusEnum.TaskAllocate ? rm.ReadingStatus : + // (rm.ModuleTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned + // && t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ReadCompleted : + + // (rm.ModuleTaskList.Count(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.TaskAllocationState == TaskAllocationState.Allocated + // && t.ReadingCategory != ReadingCategory.Judge && t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) == readingType ? ReadingStatusEnum.ImageReading : ReadingStatusEnum.TaskAllocate + // ) + // ), + + + + + + // //需要签名数量计算 基线包含subject+访视级别的 + // NeedSignClinicalDataCount = rm.Trial.TrialReadingCriterionList.Where(t => t.Id == inQuery.TrialReadingCriterionId).SelectMany(u => u.TrialClinicalDataSetCriterionList.Select(z => z.TrialClinicalDataSet)) + // .Where(t => t.IsConfirm == true && t.UploadRole == UploadRole.PM && (t.ClinicalDataLevel == ClinicalLevel.SubjectVisit || t.ClinicalDataLevel == ClinicalLevel.ImageRead || t.ClinicalDataLevel == ClinicalLevel.OncologyRead)).Count() + // + + // (rm.Trial.TrialReadingCriterionList.Where(t => t.Id == inQuery.TrialReadingCriterionId).SelectMany(u => u.TrialClinicalDataSetCriterionList.Select(z => z.TrialClinicalDataSet)) + // .Where(t => t.IsConfirm == true && t.UploadRole == UploadRole.CRC && + // (t.ClinicalDataLevel == ClinicalLevel.SubjectVisit || t.ClinicalDataLevel == ClinicalLevel.ImageRead || t.ClinicalDataLevel == ClinicalLevel.OncologyRead)).Any() ? 1 : 0) + // , + + // //签名的数量 + + // SignClinicalDataCount = rm.ReadingClinicalDataList.Where(t => t.IsSign == true && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM && + // t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)).Count() + // + + // (rm.IsPMConfirm ? 1 : 0), + + + // //标准名 应该是可以不查询的,只要保证逻辑正确 + // CriterionName = criterionInfo.CriterionName + + //})).ToList() + + #endregion + + + + + + + }); + + var pageList = await query.Where(t=> (t.VisitData.Count + t.ReadMouduleData.Count)>0) + .ToPagedListAsync(inQuery); + + + return ResponseOutput.Ok(pageList, new + { + MaxLength = pageList.CurrentPageData.MaxOrDefault(t => t.Data.Count(),0), + IsReadingTaskViewInOrder = criterionInfo.IsReadingTaskViewInOrder, + IsClinicalReading = criterionInfo.IsOncologyReading, + // OnlyExistsMedicalHistory = !(await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == dto.TrialId && x.ClinicalDataSetName != "既往局部治疗史" && x.IsConfirm)), + IsExistsSubjectClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == inQuery.TrialId && x.ClinicalDataLevel == ClinicalLevel.Subject && x.IsConfirm && x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)), + IsExistsVisitClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == inQuery.TrialId && x.ClinicalDataLevel == ClinicalLevel.SubjectVisit && x.IsConfirm && x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)), + IsExistsStudyClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == inQuery.TrialId && x.ClinicalDataLevel == ClinicalLevel.Study && x.IsConfirm && x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)), + IsExistsReadingClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == inQuery.TrialId && x.ClinicalDataLevel == ClinicalLevel.ImageRead && x.IsConfirm && x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)), + IsExistsOncologyReadClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == inQuery.TrialId && x.ClinicalDataLevel == ClinicalLevel.OncologyRead && x.IsConfirm && x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)), + IsGlobalReading = criterionInfo.IsGlobalReading, + IsReadingPeriod = criterionInfo.IsReadingPeriod, + ReadingInfoSignTime = criterionInfo.ReadingInfoSignTime, + ExistClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(x => x.IsConfirm && x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)), + }); } /// /// 获取读片模块 //加了标准参数 /// [HttpPost] - public async Task<(PageOutput, object)> GetReadModuleList(GetReadModuleDto dto) + public async Task>> GetReadModuleList(GetReadModuleDto dto) { #region MyRegion @@ -268,7 +569,7 @@ namespace IRaCIS.Application.Services x.ReadingInfoSignTime, }).FirstNotNullAsync(); - return (pageOutput, new + return ResponseOutput.Ok(pageOutput, new { MaxLength = maxcount, IsReadingTaskViewInOrder = criterionInfo.IsReadingTaskViewInOrder, @@ -305,7 +606,7 @@ namespace IRaCIS.Application.Services TrialReadingCriterionId = dto.TrialReadingCriterionId, }); - GetReadModuleSingleOutdto? readModule = data.Item1.CurrentPageData.FirstOrDefault().Data.Where(x => x.Id == dto.Id).Select(x => new GetReadModuleSingleOutdto() + GetReadModuleSingleOutdto? readModule = data.Data.CurrentPageData.FirstOrDefault().Data.Where(x => x.Id == dto.Id).Select(x => new GetReadModuleSingleOutdto() { Id = x.Id, ModuleType = x.ModuleType, diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs index c05a12219..954b857db 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs @@ -51,10 +51,13 @@ namespace IRaCIS.Core.Domain.Models public List ModuleTaskList { get; set; } [JsonIgnore] public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; } + + [JsonIgnore] + public List ReadingClinicalDataList { get; set; } #endregion - public Guid SubjectId { get; set; } + public Guid SubjectId { get; set; } public Guid TrialReadingCriterionId { get; set; } diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index 2c266cb05..37c384ca9 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -80,7 +80,6 @@ namespace IRaCIS.Core.Domain.Models //public List TrialClinicalDataSetCriterionList { get; set; } [JsonIgnore] - public List ClinicalDataTrialSetList { get; set; } = new List { }; [JsonIgnore] public List ClinicalTrialProjectDetails { get; set; } = new List { };