diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 0f8fd807d..587a426ad 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -10558,6 +10558,20 @@
替换当前领取人
+
+
+ 领取下一个质控任务
+
+
+
+
+
+
+ 获取下一个质控任务
+
+
+
+
手动领取 或者取消 QC任务
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 60cc90cc6..b37c865bc 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -499,6 +499,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid VisitTaskId { get; set; }
public Guid TrialId { get; set; }
+
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
}
public class ReadingTableAnswerRowInfoBase
@@ -719,6 +724,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
[NotDefault]
public Guid VisitTaskId { get; set; }
+
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
}
public class GetReadingTableQuestionOutDto
@@ -795,6 +805,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List OrganInfos { get; set; } = new List();
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
public bool IsGetallQuestion { get; set; } = false;
///
@@ -947,6 +961,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid TrialId { get; set; }
public Guid VisitTaskId { get; set; }
+
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
}
#endregion
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
index 6843367cd..17c96e5b5 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
@@ -336,10 +336,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ValueOfType? ValueType { get; set; }
- ///
- /// 单位
- ///
- public ValueUnit? Unit { get; set; }
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public ValueUnit? Unit { get; set; }
///
/// 限制编辑
@@ -439,10 +444,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ValueOfType? ValueType { get; set; }
- ///
- /// 数据来源
- ///
- public DataSources? DataSource { get; set; } = DataSources.ManualEntry;
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ ///
+ /// 数据来源
+ ///
+ public DataSources? DataSource { get; set; } = DataSources.ManualEntry;
///
/// 单位
@@ -974,10 +984,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ValueOfType? ValueType { get; set; }
- ///
- /// 单位
- ///
- public ValueUnit? Unit { get; set; }
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ ///
+ /// 单位
+ ///
+ public ValueUnit? Unit { get; set; }
///
@@ -1038,10 +1053,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ValueOfType? ValueType { get; set; }
- ///
- /// 备注
- ///
- public string Remark { get; set; }
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
///
/// 数据来源
@@ -1555,10 +1575,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ValueOfType? ValueType { get; set; }
- ///
- /// 限制编辑
- ///
- public LimitEdit LimitEdit { get; set; } = LimitEdit.None;
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ ///
+ /// 限制编辑
+ ///
+ public LimitEdit LimitEdit { get; set; } = LimitEdit.None;
///
/// 最大答案长度
@@ -1901,10 +1926,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ValueOfType? ValueType { get; set; }
- ///
- /// 数据来源
- ///
- public DataSources? DataSource { get; set; } = DataSources.ManualEntry;
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ ///
+ /// 数据来源
+ ///
+ public DataSources? DataSource { get; set; } = DataSources.ManualEntry;
///
/// 单位
diff --git a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
index 88728c9a4..99d4cc7de 100644
--- a/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Interface/IReadingImageTaskService.cs
@@ -6,6 +6,7 @@
using IRaCIS.Core.Application.Service.Reading.Dto;
+using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Core.Application.Contracts
{
@@ -22,7 +23,7 @@ namespace IRaCIS.Core.Application.Contracts
Task GetGlobalReadingInfo(GetGlobalReadingInfoInDto inDto);
- Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId);
+ Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId,QuestionClassify? questionClassify);
Task GetReadingTableQuestion(GetReadingTableQuestionOrAnswerInDto inDto);
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 1059da1e1..a77528200 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -704,7 +704,7 @@ namespace IRaCIS.Application.Services
{
//await AddDefaultValueToTask(inDto.VisitTaskId);
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
- var result = await GetReadingQuestion(taskInfo.TrialReadingCriterionId, taskInfo.Id);
+ var result = await GetReadingQuestion(taskInfo.TrialReadingCriterionId, taskInfo.Id, inDto.QuestionClassify);
return (result, new
{
@@ -720,7 +720,7 @@ namespace IRaCIS.Application.Services
///
///
[NonDynamicMethod]
- public async Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId)
+ public async Task> GetReadingQuestion(Guid trialReadingCriterionId, Guid? visitTaskId, QuestionClassify? questionClassify)
{
@@ -729,6 +729,7 @@ namespace IRaCIS.Application.Services
//排除表格问题
var questions = await _readingQuestionTrialRepository
+ .WhereIf(questionClassify!=null,x=>x.QuestionClassify== questionClassify)
.WhereIf(criterionIdInfo.IseCRFShowInDicomReading, x => x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.Type != ReadingQestionType.Table)
.WhereIf(!criterionIdInfo.IseCRFShowInDicomReading, x => x.IsShowInDicom && x.ReadingQuestionCriterionTrialId == trialReadingCriterionId && x.Type != ReadingQestionType.Table)
@@ -893,6 +894,7 @@ namespace IRaCIS.Application.Services
TableAnswers = tableAnswers,
TableAnsweRowInfos = tableAnsweRowInfos,
OrganInfos = organList,
+ QuestionClassify=inDto.QuestionClassify,
}
@@ -943,7 +945,8 @@ namespace IRaCIS.Application.Services
TableAnswers = tableAnswers,
TableAnsweRowInfos = tableAnsweRowInfos,
IsGetallQuestion = true,
- OrganInfos = organList
+ OrganInfos = organList,
+ QuestionClassify=inDto.QuestionClassify,
}
), new
@@ -964,7 +967,9 @@ namespace IRaCIS.Application.Services
{
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
- var qusetionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider, new
+ var qusetionList = await _readingQuestionTrialRepository
+ .WhereIf(inDto.QuestionClassify!=null,x=>x.QuestionClassify==inDto.QuestionClassify)
+ .Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider, new
{
isEn_Us = _userInfo.IsEn_Us
@@ -1040,7 +1045,9 @@ namespace IRaCIS.Application.Services
var groupList = new List();
var qusetionIds = qusetionList.Select(x => x.Id).ToList();
- var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => qusetionIds.Contains(x.ReadingQuestionId))
+ var tableQuestionList = await _readingTableQuestionTrialRepository
+ .WhereIf(inDto.QuestionClassify != null, x => x.QuestionClassify == inDto.QuestionClassify)
+ .Where(x => qusetionIds.Contains(x.ReadingQuestionId))
.ProjectTo(_mapper.ConfigurationProvider, new
{
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 99889d0b2..09ffde665 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -297,6 +297,18 @@ namespace IRaCIS.Core.Domain.Share
Automatic = 1
}
+ ///
+ /// 问题分类
+ ///
+ public enum QuestionClassify
+ {
+ ///
+ /// PET
+ ///
+ PET = 0,
+
+ }
+
///
/// 自定义计算标记
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs
index fee763d72..3704f41a1 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionSystem.cs
@@ -202,6 +202,10 @@ namespace IRaCIS.Core.Domain.Models
///
public string? FileType { get; set; }
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
[JsonIgnore]
[ForeignKey("GroupId")]
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs
index 8af84fed2..771a12133 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs
@@ -261,7 +261,12 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid? GroupId { get; set; }
- [JsonIgnore]
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ [JsonIgnore]
[ForeignKey("GroupId")]
public ReadingQuestionTrial GroupInfo { get; set; }
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs
index 97cdd903b..6fc5bbc87 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionSystem.cs
@@ -173,7 +173,12 @@ namespace IRaCIS.Core.Domain.Models
///
public string? FileType { get; set; }
- [ForeignKey("DependParentId")]
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ [ForeignKey("DependParentId")]
[JsonIgnore]
public ReadingTableQuestionSystem DependParentQuestion { get; set; }
diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs
index df02d648c..fdb03ecf7 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingTableQuestionTrial.cs
@@ -195,7 +195,12 @@ namespace IRaCIS.Core.Domain.Models
///
public string? FileType { get; set; }
- [JsonIgnore]
+ ///
+ /// 问题分类
+ ///
+ public QuestionClassify? QuestionClassify { get; set; }
+
+ [JsonIgnore]
[ForeignKey("DependParentId")]
public ReadingTableQuestionTrial DependParentQuestion { get; set; }