diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index b49df314b..277af0070 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -25,13 +25,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public ReadingCategory ReadingCategory { get; set; }
- public decimal VisitNum{ get; set; }
+ public decimal VisitNum { get; set; }
-}
+ }
public class GetReadingImgInDto
{
-
+
public Guid? SubjectId { get; set; }
[NotDefault]
@@ -46,7 +46,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid TrialId { get; set; }
}
-
+
///
/// 返回对象
@@ -80,7 +80,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string AnswerGroup { get; set; }
-
+
}
public class GetTrialCriterionJudgeQuestionListInDto
@@ -130,6 +130,23 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
// List Questions { get; set; }
//}
+ public class GroupTaskAnswerDto
+ {
+ public Guid QuestionId { get; set; }
+
+ public string AnswerGroup { get; set; }
+
+ public List TaskAnswerList { get; set; }
+ }
+
+ public class AnswerGroup
+ {
+ public Guid GroupId { get; set; }
+
+ public string GroupValue { get; set; }
+ }
+
+
public class TaskAnswerDto
{
public Guid VisitTaskId { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
index bfe3cae22..8fc31f5a9 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs
@@ -441,6 +441,12 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string GroupName { get; set; }
+
+ ///
+ /// 答案分组
+ ///
+ public string AnswerGroup { get; set; }
+
///
/// 类型
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
index 966268eea..8d9fb9947 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
@@ -14,6 +14,7 @@ using Panda.DynamicWebApi.Attributes;
using AutoMapper;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Infrastructure;
+using Newtonsoft.Json;
namespace IRaCIS.Application.Services
{
@@ -310,9 +311,8 @@ namespace IRaCIS.Application.Services
private async Task TriggerJudgeQuestion(Guid VisitTaskId)
{
var visitTask = await _visitTaskRepository.Where(x => x.Id == VisitTaskId).FirstOrDefaultAsync();
- var visitTaskList = await _visitTaskRepository.Where(x =>x.ReadingTaskState== ReadingTaskState.HaveSigned&& x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).ToListAsync();
- var visitTaskids = visitTaskList.Select(x => x.Id).ToList();
- if (visitTaskList.Count == 2)
+ var visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync();
+ if (visitTaskids.Count == 2)
{
var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x=> visitTaskids.Contains(x.VisitTaskId))
join question in _readingQuestionTrialRepository.Where(x=>x.IsJudgeQuestion) on new { ReadingQuestionTrialId= questionAnswet.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId= question.Id }
@@ -323,10 +323,61 @@ namespace IRaCIS.Application.Services
QuestionId= question.Id,
VisitTaskId= questionAnswet.VisitTaskId,
};
+ var questionAnswerlist =await query.ToListAsync();
+ List groupTasks = questionAnswerlist.GroupBy(x => new { x.QuestionId, x.AnswerGroup }).Select(x => new GroupTaskAnswerDto
+ {
+ QuestionId = x.Key.QuestionId,
+ AnswerGroup = x.Key.AnswerGroup,
+ TaskAnswerList = x.ToList(),
+ }).ToList();
+ var verificationResults = true;
+ foreach (var item in groupTasks)
+ {
+ if (item.TaskAnswerList.Count() != 2)
+ {
+ verificationResults = false;
+ break;
+ }
+ else
+ {
+ var item1= item.TaskAnswerList[0];
+ var item2= item.TaskAnswerList[1];
+ if (item1.Answer != item2.Answer)
+ {
+ var answerGroup = JsonConvert.DeserializeObject>(item.AnswerGroup).Select(x => new AnswerGroup()
+ {
+ GroupId = NewId.NextGuid(),
+ GroupValue = x
+ });
-
+ var itemAnswerGroupsitem1 = answerGroup.Where(x => x.GroupValue.Contains($"|{item1.Answer}|"));
+ var itemAnswerGroupsitem2 = answerGroup.Where(x => x.GroupValue.Contains($"|{item2.Answer}|"));
+
+ var unionList = itemAnswerGroupsitem1.Union(itemAnswerGroupsitem2).ToList();
+ if (unionList.Count < 1)
+ {
+ verificationResults = false;
+ break;
+ }
+ }
+ }
+ }
+
+ if (!verificationResults)
+ {
+
+ }
}
}
+ ///
+ /// 添加裁判任务
+ ///
+ ///
+ private async Task SaveJudgeTask()
+ {
+
+ }
+
}
}