diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 91b518abd..67e4e5dd1 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1220,6 +1220,11 @@
类型值
+
+
+ 答案
+
+
项目ID
@@ -4150,13 +4155,20 @@
-
+
找子问题
+
+
+ 保存任务问题
+
+
+
+
提交问题
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 1478f4e85..51dd3d891 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -64,6 +64,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
[NotDefault]
public Guid ReadingQuestionCriterionTrialId { get; set; }
+
+ public Guid? VisitTaskId { get; set; }
}
///
@@ -151,6 +153,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string TypeValue { get; set; }
+ ///
+ /// 答案
+ ///
+ public string Answer { get; set; }
+
public List Childrens { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
index 06276c7a6..ee7609bbb 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
@@ -150,9 +150,30 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetTrialReadingQuestion(GetTrialReadingQuestionInDto inDto)
{
- var qusetionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.ReadingQuestionCriterionTrialId).OrderBy(x=>x.ShowOrder).ToListAsync();
+ var query= from data in _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId==inDto.ReadingQuestionCriterionTrialId )
+ join questionAnswer in _readingTaskQuestionAnswerRepository.Where(x=>x.VisitTaskId==inDto.VisitTaskId) on data.Id equals questionAnswer.ReadingQuestionTrialId into questionAnswerTemp
+ from leftquestionAnswer in questionAnswerTemp.DefaultIfEmpty()
+ select new GetTrialReadingQuestionOutDto()
+ {
+ ReadingQuestionTrialId=data.Id,
+ ReadingQuestionCriterionTrialId=data.ReadingQuestionCriterionTrialId,
+ TrialId=data.TrialId,
+ Type=data.Type,
+ ParentTriggerValue=data.ParentTriggerValue,
+ GroupName=data.GroupName,
+ QuestionName=data.QuestionName,
+ IsRequired=data.IsRequired,
+ ShowOrder=data.ShowOrder,
+ ParentId=data.ParentId,
+ TypeValue=data.TypeValue,
+ Answer= leftquestionAnswer.Answer
+ };
- List groupList = _mapper.Map>(qusetionList.Where(x => x.ParentId == null));
+ var qusetionList =await query.ToListAsync();
+
+
+
+ List groupList = qusetionList.Where(x => x.ParentId == null).ToList();
groupList.ForEach(x =>
{
FindChildQuestion(x, qusetionList);
@@ -167,9 +188,9 @@ namespace IRaCIS.Application.Services
///
///
- private void FindChildQuestion(GetTrialReadingQuestionOutDto trialReadingQuestion, List questionlists)
+ private void FindChildQuestion(GetTrialReadingQuestionOutDto trialReadingQuestion, List questionlists)
{
- trialReadingQuestion.Childrens = _mapper.Map>(questionlists.Where(x => x.ParentId == trialReadingQuestion.ReadingQuestionTrialId));
+ trialReadingQuestion.Childrens = questionlists.Where(x => x.ParentId == trialReadingQuestion.ReadingQuestionTrialId).ToList();
if (trialReadingQuestion.Childrens != null && trialReadingQuestion.Childrens.Count != 0)
{
trialReadingQuestion.Childrens.ForEach(x =>
@@ -179,18 +200,16 @@ namespace IRaCIS.Application.Services
}
}
-
-
-
///
- /// 提交问题
+ /// 保存任务问题
///
///
///
- [NonDynamicMethod]
- public async Task SubmitVisitTaskQuestions(SubmitVisitTaskQuestionsInDto inDto)
+ [HttpPost]
+ public async Task SaveVisitTaskQuestions(SubmitVisitTaskQuestionsInDto inDto)
{
- var subjectId =await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.SubjectId).FirstOrDefaultAsync();
+ var subjectId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.SubjectId).FirstOrDefaultAsync();
+ await _readingTaskQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.ReadingQuestionCriterionTrialId == inDto.ReadingQuestionCriterionTrialId);
List readingTaskAnswerList = inDto.AnswerList.Select(x => new ReadingTaskQuestionAnswer()
{
Id = NewId.NextGuid(),
@@ -202,6 +221,26 @@ namespace IRaCIS.Application.Services
TrialId = inDto.TrialId
}).ToList();
await _readingTaskQuestionAnswerRepository.AddRangeAsync(readingTaskAnswerList);
+
+
+ var result = await _visitTaskRepository.SaveChangesAsync();
+ return ResponseOutput.Ok(result);
+
+ }
+
+
+
+
+
+ ///
+ /// 提交问题
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task SubmitVisitTaskQuestions(SubmitVisitTaskQuestionsInDto inDto)
+ {
+ await this.SaveVisitTaskQuestions(inDto);
await _visitTaskRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.VisitTaskId, x => new VisitTask()
{
ReadingTaskState = ReadingTaskState.HaveSigned
diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
index c4dca2468..e2c801df0 100644
--- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
+++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
@@ -66,7 +66,6 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
-
///
/// 特殊删除
///
@@ -85,8 +84,6 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
}
-
-
///
/// 插入Add的实体
///