diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 2653783d8..f12165325 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -8293,19 +8293,19 @@
- 获取读片模块
+ 获取读片模块 //加了标准参数
- 获取单条详情信息
+ 获取单条详情信息
- 添加阅片的时候 获取访视
+ 添加阅片的时候 获取访视 //标准参数必传
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
index b320be376..1941611e6 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/GetReadModuleDto.cs
@@ -1,6 +1,7 @@
using IRaCIS.Core.Domain.Share;
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -38,6 +39,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string? Name { get; set; }
+
+
+ public Guid? TrialReadingCriterionId { get; set; }
+
}
public class GetSubjectReadVisitsOutDto
@@ -61,6 +66,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// 受试者ID
///
public Guid SubjectId { get; set; }
+
+ [NotDefault]
+ public Guid TrialReadingCriterionId { get; set; }
}
public class ReadModuleAddDto
@@ -96,6 +104,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// 阅片配置的类型
///
public ReadingSetType ReadingSetType { get; set; }
+
+ [NotDefault]
+ public Guid TrialReadingCriterionId { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs
index 816d322a6..9f3c9f688 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingPeriodSetViewModel.cs
@@ -18,7 +18,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
[NotDefault]
public Guid TrialId { get; set; }
-
+ [NotDefault]
public Guid TrialReadingCriterionId { get; set; }
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs
index e9c38a484..e051907d2 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadModuleService.cs
@@ -64,7 +64,7 @@ namespace IRaCIS.Application.Services
///
- /// 获取读片模块
+ /// 获取读片模块 //加了标准参数
///
[HttpPost]
public async Task<(PageOutput,object)> GetReadModuleList(GetReadModuleDto dto)
@@ -79,7 +79,9 @@ namespace IRaCIS.Application.Services
.WhereIf(dto.SubjectCode != null && dto.SubjectCode != string.Empty, x => x.SubjectCode == dto.SubjectCode)
.WhereIf(dto.ModuleType != null, x => x.ModuleType == dto.ModuleType)
.WhereIf(dto.ReadingStatus != null, x => x.ReadingStatus == dto.ReadingStatus)
- .WhereIf(dto.Name != null, x => x.Name.Contains(dto.Name!)).OrderBy(x => x.SiteCode);
+ .WhereIf(dto.Name != null, x => x.Name.Contains(dto.Name!)).OrderBy(x => x.SiteCode)
+
+ .WhereIf(dto.TrialReadingCriterionId != null, x => x.TrialReadingCriterionId== dto.TrialReadingCriterionId);
var subjectIds = await subjectQuery.OrderBy(dto.SortField).Select(x => x.SubjectId).Distinct().Skip((dto.PageIndex - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
@@ -125,7 +127,7 @@ namespace IRaCIS.Application.Services
///
- /// 获取单条详情信息
+ /// 获取单条详情信息
///
///
///
@@ -192,19 +194,22 @@ namespace IRaCIS.Application.Services
}
///
- /// 添加阅片的时候 获取访视
+ /// 添加阅片的时候 获取访视 //标准参数必传
///
///
///
public async Task> GetSubjectReadVisitList(GetSubjectReadVisitsInDto inDto)
{
- var maxReadVisit = await _readModuleRepository.Where(x => x.SubjectId == inDto.SubjectId&&x.ReadingSetType==inDto.ReadingSetType).OrderByDescending(x=>x.VisitNum).FirstOrDefaultAsync();
+ //增加标准
+ var maxReadVisit = await _readModuleRepository.Where(x => x.SubjectId == inDto.SubjectId&&x.ReadingSetType==inDto.ReadingSetType && x.TrialReadingCriterionId==inDto.TrialReadingCriterionId).OrderByDescending(x=>x.VisitNum).FirstOrDefaultAsync();
+
var maxReadVisitNum= maxReadVisit==null?-1:maxReadVisit.VisitNum;
var visitQuery = _subjectVisitRepository.Where(x => x.SubjectId == inDto.SubjectId && x.LatestScanDate != null&&!x.IsLostVisit);
var finalVisitNum = await visitQuery.Where(x => x.IsFinalVisit).Select(x => x.VisitNum).FirstOrDefaultAsync();
+ //增加标准
+ var readModulequery = _readModuleRepository.AsQueryable().Where(x=>x.TrialReadingCriterionId == inDto.TrialReadingCriterionId);
- var readModulequery = _readModuleRepository.AsQueryable();
var resultlist= await visitQuery.WhereIf(finalVisitNum != null&& finalVisitNum!=0, x => x.VisitNum <= finalVisitNum)
.WhereIf(inDto.ReadingSetType== ReadingSetType.TumorReading, x => readModulequery.Where(y => y.SubjectVisitId == x.Id && y.ReadingSetType == ReadingSetType.ImageReading).Count() > 0)
.Where(x=>x.VisitNum> maxReadVisitNum)
@@ -250,6 +255,9 @@ namespace IRaCIS.Application.Services
VisitNum = visit.VisitNum,
ReadingStatus = ReadingStatusEnum.TaskAllocate,
+ //增加标准
+ TrialReadingCriterionId = dto.TrialReadingCriterionId,
+
};
await _readModuleRepository.AddAsync(readModuleData);
@@ -258,8 +266,9 @@ namespace IRaCIS.Application.Services
switch (readModuleData.ModuleType)
{
case ModuleTypeEnum.Global:
+ //增加标准
var taskListInfo = await _visitTaskRepository.Where(x => x.SourceSubjectVisitId == readModuleData.SubjectVisitId&&x.TaskState==TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned
- &&!x.IsAnalysisCreate
+ &&!x.IsAnalysisCreate && x.TrialReadingCriterionId==dto.TrialReadingCriterionId
).ToListAsync();
foreach (var taskInfo in taskListInfo)
@@ -287,8 +296,9 @@ namespace IRaCIS.Application.Services
case ModuleTypeEnum.Oncology:
var trialInfo = await _trialRepository.Where(x => x.Id == visit.TrialId).FirstNotNullAsync();
+ //增加标准
+ var globalModule = await _readModuleRepository.Where(x => x.SubjectId == readModuleData.SubjectId && x.SubjectVisitId == readModuleData.SubjectVisitId&& x.ModuleType == ModuleTypeEnum.Global && x.TrialReadingCriterionId == dto.TrialReadingCriterionId).FirstOrDefaultAsync();
- var globalModule = await _readModuleRepository.Where(x => x.SubjectId == readModuleData.SubjectId && x.SubjectVisitId == readModuleData.SubjectVisitId&& x.ModuleType == ModuleTypeEnum.Global).FirstOrDefaultAsync();
if (globalModule != null)
{
var globalTaskInfoList = await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalModule.Id && x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned&&!x.IsAnalysisCreate).ToListAsync();
diff --git a/IRaCIS.Core.Domain/Reading/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadModule.cs
index 33fc10682..6b24f9cf9 100644
--- a/IRaCIS.Core.Domain/Reading/ReadModule.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadModule.cs
@@ -19,7 +19,7 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid SubjectId { get; set; }
- public Guid? TrialReadingCriterionId { get; set; }
+ public Guid TrialReadingCriterionId { get; set; }
///
/// 模块类型
diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs
index 0c79a99dd..3f30a53ba 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingPeriodSet.cs
@@ -20,7 +20,7 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid TrialId { get; set; }
- public Guid? TrialReadingCriterionId { get; set; }
+ public Guid TrialReadingCriterionId { get; set; }
///
/// 阅片期名称
diff --git a/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs b/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs
index c79515a3c..28fb42a16 100644
--- a/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs
+++ b/IRaCIS.Core.Domain/Reading/View/ReadModuleView.cs
@@ -145,5 +145,10 @@ namespace IRaCIS.Core.Domain.Models
/// 是否是基线
///
public bool IsBaseLine { get; set; } = false;
+
+
+
+
+ public Guid TrialReadingCriterionId { get; set; }
}
}