From 698ddcb9ce721f0ca8829ebfffe498b7211dd98f Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Wed, 30 Nov 2022 13:55:17 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8C=BB=E5=AD=A6=E5=AE=A1?=
=?UTF-8?q?=E6=A0=B8=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/Dto/ReadingMedicalReviewDto.cs | 7 ++
.../ReadingMedicalReviewService.cs | 72 ++++++++++++++++---
2 files changed, 68 insertions(+), 11 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicalReviewDto.cs
index 1cfb82d1..ad18b331 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 cad34d62..84d95450 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)