diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
index 1cfb82d1f..ad18b3319 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
@@ -599,10 +599,17 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class JudgeQuestionAnswerInfo
{
+
+ public Guid VisitTaskId { get; set; }
+
public string QuestionName { get; set; }
public string Answer { get; set; }
+ ///
+ /// 排序
+ ///
+ public int ShowOrder { get; set; }
///
/// 字典code
diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
index cad34d621..84d954506 100644
--- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicalReviewService.cs
@@ -24,6 +24,9 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository _readingMedicineTrialQuestionRepository;
private readonly IRepository _trialRepository;
private readonly IRepository _visitTaskRepository;
+ private readonly IRepository _readingTaskQuestionAnswerRepository;
+ private readonly IRepository _readingGlobalTaskInfoRepository;
+ private readonly IRepository _readingOncologyTaskInfoRepository;
private readonly IRepository _userTaskRepository;
private readonly IVisitTaskService _visitTaskService;
private readonly IRepository _taskMedicalReviewRepository;
@@ -36,6 +39,9 @@ namespace IRaCIS.Core.Application.Service
IRepository readingMedicineTrialQuestionRepository,
IRepository trialRepository,
IRepository visitTaskRepository,
+ IRepository readingTaskQuestionAnswerRepository,
+ IRepository readingGlobalTaskInfoRepository,
+ IRepository readingOncologyTaskInfoRepository,
IRepository userTaskRepository,
IVisitTaskService visitTaskService,
IRepository taskMedicalReviewRepository,
@@ -48,6 +54,9 @@ namespace IRaCIS.Core.Application.Service
this._readingMedicineTrialQuestionRepository = readingMedicineTrialQuestionRepository;
this._trialRepository = trialRepository;
this._visitTaskRepository = visitTaskRepository;
+ this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
+ this._readingGlobalTaskInfoRepository = readingGlobalTaskInfoRepository;
+ this._readingOncologyTaskInfoRepository = readingOncologyTaskInfoRepository;
this._userTaskRepository = userTaskRepository;
this._visitTaskService = visitTaskService;
this._taskMedicalReviewRepository = taskMedicalReviewRepository;
@@ -103,9 +112,9 @@ namespace IRaCIS.Core.Application.Service
.Where(x => x.IsAnalysisCreate == taskInfo.IsAnalysisCreate)
.Where(x => x.TaskState == TaskState.Effect)
.Where(x => x.SubjectId == taskInfo.SubjectId
- &&x.ArmEnum== taskInfo.ArmEnum
- &&x.TrialReadingCriterionId==taskInfo.TrialReadingCriterionId
-
+ && x.ArmEnum == taskInfo.ArmEnum
+ && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
+
&& x.DoctorUserId == taskInfo.DoctorUserId &&
x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.ReReadingApplyState != ReReadingApplyState.Agree
@@ -122,22 +131,63 @@ namespace IRaCIS.Core.Application.Service
JudgeVisitTaskId = x.JudgeVisitTaskId,
JudgeResultArm = x.JudgeResultTask.ArmEnum,
SubjectId = x.SubjectId,
- JudgeQuestionAnswerInfoList = x.ArmEnum == Arm.JudgeArm ? x.JudgeResultTask.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.IsJudgeQuestion).Select(y => new JudgeQuestionAnswerInfo()
+ // 这里先只查裁判任务 访视和全局任务到后面查询
+ JudgeQuestionAnswerInfoList = x.JudgeResultTask.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.IsJudgeQuestion).Select(y => new JudgeQuestionAnswerInfo()
{
+ VisitTaskId=y.VisitTaskId,
Answer = y.Answer,
QuestionName = y.ReadingQuestionTrial.QuestionName,
+ ShowOrder=y.ReadingQuestionTrial.ShowOrder,
DictionaryCode = y.ReadingQuestionTrial.DictionaryCode,
QuestionGenre = y.ReadingQuestionTrial.QuestionGenre,
- }).ToList() : x.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.IsJudgeQuestion).Select(y => new JudgeQuestionAnswerInfo()
- {
- Answer = y.Answer,
- QuestionName = y.ReadingQuestionTrial.QuestionName,
- DictionaryCode = y.ReadingQuestionTrial.DictionaryCode,
- QuestionGenre = y.ReadingQuestionTrial.QuestionGenre,
- }).ToList()
+ }).OrderBy(x=>x.ShowOrder).ToList(),
}).ToListAsync();
+ // 这里处理 访视和全局任务 以及肿瘤学
+ if (taskInfo.ArmEnum != Arm.JudgeArm)
+ {
+ var taskIds = medicalReviewInfo.TaskList.Select(x => x.TaskId).ToList();
+
+ // 找访视
+ var visitTaskAnswer = await _readingTaskQuestionAnswerRepository.Where(x => taskIds.Contains(x.VisitTaskId)).Select(x => new JudgeQuestionAnswerInfo
+ {
+ Answer = x.Answer,
+ VisitTaskId=x.VisitTaskId,
+ DictionaryCode = x.ReadingQuestionTrial.DictionaryCode,
+ ShowOrder = x.ReadingQuestionTrial.ShowOrder,
+ QuestionGenre = x.ReadingQuestionTrial.QuestionGenre,
+ QuestionName = x.ReadingQuestionTrial.QuestionName
+ }).ToListAsync();
+
+ visitTaskAnswer.AddRange(await _readingGlobalTaskInfoRepository.Where(x => taskIds.Contains(x.GlobalTaskId)&&x.GlobalAnswerType==GlobalAnswerType.Question).Select(x => new JudgeQuestionAnswerInfo
+ {
+ Answer = x.Answer,
+ VisitTaskId = x.GlobalTaskId,
+ DictionaryCode = x.TrialReadingQuestion.DictionaryCode,
+ ShowOrder = x.TrialReadingQuestion.ShowOrder,
+ QuestionGenre = x.TrialReadingQuestion.QuestionGenre,
+ QuestionName = x.TrialReadingQuestion.QuestionName
+ }).ToListAsync());
+
+ // 肿瘤学没有问题
+ //visitTaskAnswer.AddRange(await _readingOncologyTaskInfoRepository.Where(x => taskIds.Contains(x.OncologyTaskId)).Select(x => new JudgeQuestionAnswerInfo
+ //{
+ // Answer = x.SubjectId,
+ // VisitTaskId = x.OncologyTaskId,
+ // DictionaryCode = x.TrialReadingQuestion.DictionaryCode,
+ // ShowOrder = x.TrialReadingQuestion.ShowOrder,
+ // QuestionGenre = x.TrialReadingQuestion.QuestionGenre,
+ // QuestionName = x.TrialReadingQuestion.QuestionName
+ //}).ToListAsync());
+
+ medicalReviewInfo.TaskList.ForEach(x =>
+ {
+ x.JudgeQuestionAnswerInfoList = visitTaskAnswer.Where(y => y.VisitTaskId == x.TaskId).OrderBy(y => y.ShowOrder).ToList();
+ });
+ }
+
+
List otherTask = await _visitTaskRepository.Where(x => x.ArmEnum != Arm.JudgeArm && x.SubjectId == taskInfo.SubjectId
&& x.DoctorUserId != taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree)
.Where(x => x.IsAnalysisCreate == taskInfo.IsAnalysisCreate)