Uat_Study
parent
e03ef0659b
commit
c684760d43
|
@ -105,6 +105,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
public class GetReadingReportEvaluationOutDto
|
public class GetReadingReportEvaluationOutDto
|
||||||
{
|
{
|
||||||
public string TumorEvaluate { get; set; }
|
public string TumorEvaluate { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string IsExistDisease { get; set; }
|
||||||
public ReadingTaskState ReadingTaskState { get; set; }
|
public ReadingTaskState ReadingTaskState { get; set; }
|
||||||
|
|
||||||
public List<VisitTaskInfo> VisitTaskList { get; set; }
|
public List<VisitTaskInfo> VisitTaskList { get; set; }
|
||||||
|
|
|
@ -247,6 +247,16 @@ namespace IRaCIS.Core.Application.Service
|
||||||
return await GetTumor(await GetReadingCalculateDto(visitTaskId));
|
return await GetTumor(await GetReadingCalculateDto(visitTaskId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取报告是否存在疾病
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="visitTaskId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<string> GetReportIsExistDisease(Guid visitTaskId)
|
||||||
|
{
|
||||||
|
return await GetIsExistDisease(await GetReadingCalculateDto(visitTaskId));
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 验证访视提交
|
/// 验证访视提交
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -523,7 +533,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var decimalAnswerList = await GetVisitTaskAnswerList(inDto);
|
var decimalAnswerList = await GetLowSODVisit(inDto);
|
||||||
var minSOD = decimalAnswerList.OrderBy(x => x.SOD).Select(x => x.SOD).FirstOrDefault();
|
var minSOD = decimalAnswerList.OrderBy(x => x.SOD).Select(x => x.SOD).FirstOrDefault();
|
||||||
return value.NullChange0() - minSOD;
|
return value.NullChange0() - minSOD;
|
||||||
}
|
}
|
||||||
|
@ -545,7 +555,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
var decimalAnswerList = await GetVisitTaskAnswerList(inDto);
|
var decimalAnswerList = await GetLowSODVisit(inDto);
|
||||||
var minSOD = decimalAnswerList.OrderBy(x => x.SOD).Select(x => x.SOD).FirstOrDefault();
|
var minSOD = decimalAnswerList.OrderBy(x => x.SOD).Select(x => x.SOD).FirstOrDefault();
|
||||||
|
|
||||||
if (minSOD == 0)
|
if (minSOD == 0)
|
||||||
|
@ -577,7 +587,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
return nameof(YesOrNoOrNa.NA);
|
return nameof(YesOrNoOrNa.NA);
|
||||||
}
|
}
|
||||||
|
|
||||||
var decimalAnswerList = await GetVisitTaskAnswerList(inDto);
|
var decimalAnswerList = await GetLowSODVisit(inDto);
|
||||||
return decimalAnswerList.OrderBy(x => x.SOD).Select(x => x.BlindName).FirstOrDefault() ?? string.Empty;
|
return decimalAnswerList.OrderBy(x => x.SOD).Select(x => x.BlindName).FirstOrDefault() ?? string.Empty;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -724,8 +734,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public async Task ChangeAllLowestIncrease(ChangeAllTaskDto inDto)
|
public async Task ChangeAllLowestIncrease(ChangeAllTaskDto inDto)
|
||||||
{
|
{
|
||||||
var visitTaskList = await GetVisitTaskAnswerList(inDto.calculateDto);
|
var visitTaskList = await GetVisitTaskAnswerList(inDto.calculateDto);
|
||||||
var lowSod = visitTaskList.Select(x => x.SOD).OrderBy(x => x).FirstOrDefault();
|
|
||||||
foreach (var item in visitTaskList.Where(x=>x.VisitTaskId!=inDto.calculateDto.BaseLineTaskId))
|
var lowSod = (await GetLowSODVisit(inDto.calculateDto)).Select(x => x.SOD).OrderBy(x => x).FirstOrDefault();
|
||||||
|
|
||||||
|
foreach (var item in visitTaskList.Where(x=>x.VisitTaskId!=inDto.calculateDto.BaseLineTaskId))
|
||||||
{
|
{
|
||||||
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == inDto.QuestionId, x => new ReadingTaskQuestionAnswer()
|
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == inDto.QuestionId, x => new ReadingTaskQuestionAnswer()
|
||||||
{
|
{
|
||||||
|
@ -747,7 +759,9 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public async Task ChangeAllLowPercent(ChangeAllTaskDto inDto)
|
public async Task ChangeAllLowPercent(ChangeAllTaskDto inDto)
|
||||||
{
|
{
|
||||||
var visitTaskList = await GetVisitTaskAnswerList(inDto.calculateDto);
|
var visitTaskList = await GetVisitTaskAnswerList(inDto.calculateDto);
|
||||||
var lowSod = visitTaskList.Select(x => x.SOD).OrderBy(x => x).FirstOrDefault();
|
|
||||||
|
var lowSod = (await GetLowSODVisit(inDto.calculateDto)).Select(x => x.SOD).OrderBy(x => x).FirstOrDefault();
|
||||||
|
|
||||||
foreach (var item in visitTaskList.Where(x => x.VisitTaskId != inDto.calculateDto.BaseLineTaskId))
|
foreach (var item in visitTaskList.Where(x => x.VisitTaskId != inDto.calculateDto.BaseLineTaskId))
|
||||||
{
|
{
|
||||||
decimal percent = 0;
|
decimal percent = 0;
|
||||||
|
@ -782,7 +796,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var visitTaskIds = await _visitTaskRepository.Where(x => !x.IsAnalysisCreate && x.ReadingCategory == ReadingCategory.Visit &&
|
var visitTaskIds = await _visitTaskRepository.Where(x => !x.IsAnalysisCreate && x.ReadingCategory == ReadingCategory.Visit &&
|
||||||
x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.DoctorUserId == inDto.calculateDto.DoctorUserId).Select(x => x.Id).ToListAsync();
|
x.TaskState == TaskState.Effect && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.DoctorUserId == inDto.calculateDto.DoctorUserId).Select(x => x.Id).ToListAsync();
|
||||||
|
|
||||||
var answer = (await GetLowVisit(inDto.calculateDto)).ToString();
|
var answer = (await GetLowSODVisit(inDto.calculateDto)).OrderBy(x=>x.SOD).Select(x=>x.BlindName).FirstOrDefault();
|
||||||
visitTaskIds = visitTaskIds.Where(x => x != inDto.calculateDto.BaseLineTaskId).ToList();
|
visitTaskIds = visitTaskIds.Where(x => x != inDto.calculateDto.BaseLineTaskId).ToList();
|
||||||
await this.ChangeAllVisitTaskAnswer(visitTaskIds, inDto.QuestionId, answer);
|
await this.ChangeAllVisitTaskAnswer(visitTaskIds, inDto.QuestionId, answer);
|
||||||
|
|
||||||
|
@ -834,15 +848,40 @@ namespace IRaCIS.Core.Application.Service
|
||||||
var baseLineSOD =(await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SOD).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
var baseLineSOD =(await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SOD).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0();
|
||||||
return baseLineSOD;
|
return baseLineSOD;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 获取访视任务信息
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取访视任务信息
|
/// 获取最低方式
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="inDto"></param>
|
/// <param name="inDto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<VisitTaskAnswerInfo>> GetVisitTaskAnswerList(ReadingCalculateDto inDto)
|
public async Task<List<VisitTaskAnswerInfo>> GetLowSODVisit(ReadingCalculateDto inDto)
|
||||||
|
{
|
||||||
|
var taskAnswerList = await GetVisitTaskAnswerList(inDto);
|
||||||
|
|
||||||
|
taskAnswerList = taskAnswerList.Where(x => x.VisitTaskId != inDto.VisitTaskId).ToList();
|
||||||
|
|
||||||
|
var taskIds = taskAnswerList.Select(x => x.VisitTaskId).ToList();
|
||||||
|
|
||||||
|
var unableEvaluateTaskIds = await _readingTableQuestionAnswerRepository.Where(x => taskIds.Contains(x.VisitTaskId ) &&
|
||||||
|
x.ReadingTableQuestionTrial.QuestionMark== QuestionMark.State
|
||||||
|
&&x.ReadingQuestionTrial.LesionType== LesionType.TargetLesion
|
||||||
|
&&x.Answer== TargetState.UnableEvaluate.GetEnumInt()
|
||||||
|
)
|
||||||
|
.Select(x =>x.VisitTaskId).Distinct().ToListAsync();
|
||||||
|
|
||||||
|
taskAnswerList = taskAnswerList.Where(x => !unableEvaluateTaskIds.Contains(x.VisitTaskId)).ToList();
|
||||||
|
return taskAnswerList.OrderBy(x => x.SOD).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 获取访视任务信息
|
||||||
|
/// <summary>
|
||||||
|
/// 获取访视任务信息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<List<VisitTaskAnswerInfo>> GetVisitTaskAnswerList(ReadingCalculateDto inDto)
|
||||||
{
|
{
|
||||||
if (visitTaskAnswerList == null)
|
if (visitTaskAnswerList == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -497,6 +497,7 @@ namespace IRaCIS.Application.Services
|
||||||
GetReadingReportEvaluationOutDto result = new GetReadingReportEvaluationOutDto();
|
GetReadingReportEvaluationOutDto result = new GetReadingReportEvaluationOutDto();
|
||||||
|
|
||||||
result.TumorEvaluate = await _readingCalculateService.GetReportTumor(indto.VisitTaskId);
|
result.TumorEvaluate = await _readingCalculateService.GetReportTumor(indto.VisitTaskId);
|
||||||
|
result.IsExistDisease= await _readingCalculateService.GetReportIsExistDisease(indto.VisitTaskId);
|
||||||
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
|
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
|
||||||
result.ReadingTaskState = visitTaskInfo.ReadingTaskState;
|
result.ReadingTaskState = visitTaskInfo.ReadingTaskState;
|
||||||
var taskInfoList = await _visitTaskRepository.Where(x => (x.SubjectId == visitTaskInfo.SubjectId && x.TaskState == TaskState.Effect
|
var taskInfoList = await _visitTaskRepository.Where(x => (x.SubjectId == visitTaskInfo.SubjectId && x.TaskState == TaskState.Effect
|
||||||
|
|
Loading…
Reference in New Issue