This commit is contained in:
he
2022-07-04 13:41:49 +08:00
parent 9b2d431fa8
commit 7a906ae983
6 changed files with 177 additions and 41 deletions
@@ -28,11 +28,48 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<TaskInfo> TaskList { get; set; } = new List<TaskInfo>();
public List<TaskInfo> OtherDoctorTaskList { get; set; } = new List<TaskInfo>();
public List<ReadingMedicineQuestion> QuestionAnswerList { get; set; } = new List<ReadingMedicineQuestion>();
public MedicalReviewInfo MedicalReviewInfo { get; set; }
}
public class MedicalReviewInfo
{
public Guid VisitTaskId { get; set; }
/// <summary>
/// 是否有问题
/// </summary>
public bool IsHaveQuestion { get; set; } = false;
/// <summary>
/// 质询问题
/// </summary>
public string Questioning { get; set; } = string.Empty;
/// <summary>
/// 图片路径
/// </summary>
public string ImagePath { get; set; } = string.Empty;
/// <summary>
/// 审核建议
/// </summary>
public AuditAdvice AuditAdviceEnum { get; set; }
/// <summary>
/// 是否完成
/// </summary>
public bool IsFinish { get; set; }
/// <summary>
/// 是否关闭
/// </summary>
public bool IsClosed { get; set; }
}
public class ReadingMedicineQuestion
@@ -95,7 +132,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class TaskInfo
{
public Guid Id { get; set; }
public Guid TaskId { get; set; }
/// <summary>
/// 是否是当前任务
@@ -121,6 +158,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string EvaluationResult { get; set; }
public ReadingCategory ReadingCategory { get; set; }
public Guid? SourceSubjectVisitId { get; set; }
public Guid? SouceReadModuleId { get; set; }
public Guid? OtherTaskId { get; set; }
}
}
@@ -56,9 +56,10 @@ namespace IRaCIS.Core.Application.Service
IsReadingTaskViewInOrder=x.IsReadingTaskViewInOrder
}).FirstNotNullAsync();
var taskMedicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.TaskMedicalReviewId).FirstNotNullAsync();
medicalReviewInfo.MedicalReviewInfo = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.TaskMedicalReviewId)
.ProjectTo<MedicalReviewInfo>(_mapper.ConfigurationProvider).FirstNotNullAsync();
var taskInfo = await _visitTaskRepository.Where(x => x.Id == taskMedicalReview.VisitTaskId).FirstNotNullAsync();
var taskInfo = await _visitTaskRepository.Where(x => x.Id == medicalReviewInfo.MedicalReviewInfo.VisitTaskId).FirstNotNullAsync();
#region
if (medicalReviewInfo.IsReadingTaskViewInOrder)
@@ -70,63 +71,76 @@ namespace IRaCIS.Core.Application.Service
&& x.DoctorUserId == taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree
).OrderBy(x => x.VisitTaskNum).Select(x => new TaskInfo()
{
Id = x.Id,
TaskId = x.Id,
IsCurrentTask = x.Id == taskInfo.Id,
ReadingCategory = x.ReadingCategory,
TaskBlindName = x.TaskBlindName,
ArmEnum=x.ArmEnum,
TaskName = x.TaskName
TaskName = x.TaskName,
SouceReadModuleId=x.SouceReadModuleId,
SourceSubjectVisitId=x.SourceSubjectVisitId,
}).ToListAsync();
if (medicalReviewInfo.ReadingType == ReadingMethod.Double)
{
if (taskInfo.ArmEnum != Arm.JudgeArm)
{
medicalReviewInfo.OtherDoctorTaskList = await _visitTaskRepository.Where(x => x.ArmEnum != Arm.JudgeArm && x.SubjectId == taskInfo.SubjectId
&& x.DoctorUserId != taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree
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
).OrderBy(x => x.VisitTaskNum).Select(x => new TaskInfo()
{
Id = x.Id,
TaskId = x.Id,
IsCurrentTask = x.Id == taskInfo.Id,
ReadingCategory = x.ReadingCategory,
TaskBlindName = x.TaskBlindName,
ArmEnum=x.ArmEnum,
TaskName = x.TaskName
ArmEnum = x.ArmEnum,
TaskName = x.TaskName,
SouceReadModuleId = x.SouceReadModuleId,
SourceSubjectVisitId = x.SourceSubjectVisitId,
}).ToListAsync();
}
}
medicalReviewInfo.TaskList.ForEach(x =>
{
x.OtherTaskId = otherTask.Where(y => y.SouceReadModuleId == x.SouceReadModuleId && y.SourceSubjectVisitId == x.SourceSubjectVisitId).Select(y => y.TaskId).FirstOrDefault();
});
}
else
{
medicalReviewInfo.TaskList = await _visitTaskRepository.Where(x => x.Id == taskInfo.Id).Select(x => new TaskInfo()
{
Id = x.Id,
TaskId = x.Id,
IsCurrentTask = x.Id == taskInfo.Id,
ReadingCategory = x.ReadingCategory,
TaskBlindName = x.TaskBlindName,
ArmEnum=x.ArmEnum,
TaskName = x.TaskName
ArmEnum = x.ArmEnum,
TaskName = x.TaskName,
SouceReadModuleId = x.SouceReadModuleId,
SourceSubjectVisitId = x.SourceSubjectVisitId,
}).ToListAsync();
if (medicalReviewInfo.ReadingType == ReadingMethod.Double)
{
if (taskInfo.ArmEnum != Arm.JudgeArm)
{
medicalReviewInfo.OtherDoctorTaskList = await _visitTaskRepository.Where(x => x.ArmEnum != Arm.JudgeArm && x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId
&& x.DoctorUserId != taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree
List<TaskInfo> otherTask = await _visitTaskRepository.Where(x => x.ArmEnum != Arm.JudgeArm && x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId
&& x.DoctorUserId != taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree
).OrderBy(x => x.VisitTaskNum).Select(x => new TaskInfo()
{
Id = x.Id,
ReadingCategory = x.ReadingCategory,
TaskBlindName = x.TaskBlindName,
TaskName = x.TaskName,
ArmEnum=x.ArmEnum,
}).ToListAsync();
}
}
TaskId = x.Id,
IsCurrentTask = x.Id == taskInfo.Id,
ReadingCategory = x.ReadingCategory,
TaskBlindName = x.TaskBlindName,
ArmEnum = x.ArmEnum,
TaskName = x.TaskName,
SouceReadModuleId = x.SouceReadModuleId,
SourceSubjectVisitId = x.SourceSubjectVisitId,
}).ToListAsync();
medicalReviewInfo.TaskList.ForEach(x =>
{
x.OtherTaskId = otherTask.Where(y => y.SouceReadModuleId == x.SouceReadModuleId && y.SourceSubjectVisitId == x.SourceSubjectVisitId).Select(y => y.TaskId).FirstOrDefault();
});
}
#endregion
medicalReviewInfo.QuestionAnswerList = await this.GetMedicalQuestionAnswer(inDto);
return medicalReviewInfo;
}
@@ -91,6 +91,9 @@ namespace IRaCIS.Core.Application.Service
.ForMember(x=>x.ParentShowOrder,y=>y.MapFrom(n=>n.ParentQuestion.ShowOrder));
CreateMap<ReadingMedicineTrialQuestion, GetMedicineQuestionPreviewOutDto>();
CreateMap<TaskMedicalReview, MedicalReviewInfo>();
#endregion