修改医学审核问题

Uat_Study
he 2022-11-30 13:55:17 +08:00
parent 3ca43ba628
commit 698ddcb9ce
2 changed files with 68 additions and 11 deletions

View File

@ -599,10 +599,17 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class JudgeQuestionAnswerInfo public class JudgeQuestionAnswerInfo
{ {
public Guid VisitTaskId { get; set; }
public string QuestionName { get; set; } public string QuestionName { get; set; }
public string Answer { get; set; } public string Answer { get; set; }
/// <summary>
/// 排序
/// </summary>
public int ShowOrder { get; set; }
/// <summary> /// <summary>
/// 字典code /// 字典code

View File

@ -24,6 +24,9 @@ namespace IRaCIS.Core.Application.Service
private readonly IRepository<ReadingMedicineTrialQuestion> _readingMedicineTrialQuestionRepository; private readonly IRepository<ReadingMedicineTrialQuestion> _readingMedicineTrialQuestionRepository;
private readonly IRepository<Trial> _trialRepository; private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<VisitTask> _visitTaskRepository; private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
private readonly IRepository<ReadingGlobalTaskInfo> _readingGlobalTaskInfoRepository;
private readonly IRepository<ReadingOncologyTaskInfo> _readingOncologyTaskInfoRepository;
private readonly IRepository<User> _userTaskRepository; private readonly IRepository<User> _userTaskRepository;
private readonly IVisitTaskService _visitTaskService; private readonly IVisitTaskService _visitTaskService;
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository; private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
@ -36,6 +39,9 @@ namespace IRaCIS.Core.Application.Service
IRepository<ReadingMedicineTrialQuestion> readingMedicineTrialQuestionRepository, IRepository<ReadingMedicineTrialQuestion> readingMedicineTrialQuestionRepository,
IRepository<Trial> trialRepository, IRepository<Trial> trialRepository,
IRepository<VisitTask> visitTaskRepository, IRepository<VisitTask> visitTaskRepository,
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository,
IRepository<ReadingGlobalTaskInfo> readingGlobalTaskInfoRepository,
IRepository<ReadingOncologyTaskInfo> readingOncologyTaskInfoRepository,
IRepository<User> userTaskRepository, IRepository<User> userTaskRepository,
IVisitTaskService visitTaskService, IVisitTaskService visitTaskService,
IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository,
@ -48,6 +54,9 @@ namespace IRaCIS.Core.Application.Service
this._readingMedicineTrialQuestionRepository = readingMedicineTrialQuestionRepository; this._readingMedicineTrialQuestionRepository = readingMedicineTrialQuestionRepository;
this._trialRepository = trialRepository; this._trialRepository = trialRepository;
this._visitTaskRepository = visitTaskRepository; this._visitTaskRepository = visitTaskRepository;
this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
this._readingGlobalTaskInfoRepository = readingGlobalTaskInfoRepository;
this._readingOncologyTaskInfoRepository = readingOncologyTaskInfoRepository;
this._userTaskRepository = userTaskRepository; this._userTaskRepository = userTaskRepository;
this._visitTaskService = visitTaskService; this._visitTaskService = visitTaskService;
this._taskMedicalReviewRepository = taskMedicalReviewRepository; this._taskMedicalReviewRepository = taskMedicalReviewRepository;
@ -103,9 +112,9 @@ namespace IRaCIS.Core.Application.Service
.Where(x => x.IsAnalysisCreate == taskInfo.IsAnalysisCreate) .Where(x => x.IsAnalysisCreate == taskInfo.IsAnalysisCreate)
.Where(x => x.TaskState == TaskState.Effect) .Where(x => x.TaskState == TaskState.Effect)
.Where(x => x.SubjectId == taskInfo.SubjectId .Where(x => x.SubjectId == taskInfo.SubjectId
&&x.ArmEnum== taskInfo.ArmEnum && x.ArmEnum == taskInfo.ArmEnum
&&x.TrialReadingCriterionId==taskInfo.TrialReadingCriterionId && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
&& x.DoctorUserId == taskInfo.DoctorUserId && && x.DoctorUserId == taskInfo.DoctorUserId &&
x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.ReReadingApplyState != ReReadingApplyState.Agree x.ReReadingApplyState != ReReadingApplyState.Agree
@ -122,22 +131,63 @@ namespace IRaCIS.Core.Application.Service
JudgeVisitTaskId = x.JudgeVisitTaskId, JudgeVisitTaskId = x.JudgeVisitTaskId,
JudgeResultArm = x.JudgeResultTask.ArmEnum, JudgeResultArm = x.JudgeResultTask.ArmEnum,
SubjectId = x.SubjectId, 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, Answer = y.Answer,
QuestionName = y.ReadingQuestionTrial.QuestionName, QuestionName = y.ReadingQuestionTrial.QuestionName,
ShowOrder=y.ReadingQuestionTrial.ShowOrder,
DictionaryCode = y.ReadingQuestionTrial.DictionaryCode, DictionaryCode = y.ReadingQuestionTrial.DictionaryCode,
QuestionGenre = y.ReadingQuestionTrial.QuestionGenre, QuestionGenre = y.ReadingQuestionTrial.QuestionGenre,
}).ToList() : x.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.IsJudgeQuestion).Select(y => new JudgeQuestionAnswerInfo() }).OrderBy(x=>x.ShowOrder).ToList(),
{
Answer = y.Answer,
QuestionName = y.ReadingQuestionTrial.QuestionName,
DictionaryCode = y.ReadingQuestionTrial.DictionaryCode,
QuestionGenre = y.ReadingQuestionTrial.QuestionGenre,
}).ToList()
}).ToListAsync(); }).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<TaskInfo> otherTask = await _visitTaskRepository.Where(x => x.ArmEnum != Arm.JudgeArm && x.SubjectId == taskInfo.SubjectId List<TaskInfo> 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) && x.DoctorUserId != taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree)
.Where(x => x.IsAnalysisCreate == taskInfo.IsAnalysisCreate) .Where(x => x.IsAnalysisCreate == taskInfo.IsAnalysisCreate)