Uat_Study
he 2023-03-22 11:23:45 +08:00
parent fcaa0f1cfd
commit 87a4b3f58d
1 changed files with 46 additions and 34 deletions

View File

@ -8,7 +8,7 @@ using IRaCIS.Core.Application.ViewModel;
namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
[ApiExplorerSettings(GroupName = "Image")]
public class ReadingCalculateService: BaseService, IReadingCalculateService
public class ReadingCalculateService : BaseService, IReadingCalculateService
{
/// <summary>
@ -23,13 +23,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{CriterionType.IRECIST1Point1,typeof(IRECIST1Point1CalculateService) }
};
private readonly IEnumerable<ICriterionCalculateService> _criterionServices;
private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IRepository<ReadingQuestionCriterionTrial> _readingQuestionCriterionTrialRepository;
private ICriterionCalculateService _useCriterion;
private ICriterionCalculateService _useCriterion;
public ReadingCalculateService(IEnumerable<ICriterionCalculateService> criterionServices,
IRepository<VisitTask> visitTaskRepository,
@ -39,7 +39,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
_criterionServices = criterionServices;
this._visitTaskRepository = visitTaskRepository;
this._visitTaskRepository = visitTaskRepository;
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
}
@ -63,11 +63,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
try
{
CriterionType thisCriterionType = criterionType;
CriterionType thisCriterionType = criterionType;
Type thisServiceType = CalculateServiceDic[thisCriterionType];
_useCriterion = _criterionServices.FirstOrDefault(x => x.GetType().Name == thisServiceType.Name + "Proxy");
}
catch (Exception)
@ -91,7 +91,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task CalculateTask(CalculateTaskInDto inDto)
public async Task CalculateTask(CalculateTaskInDto inDto)
{
var service = await this.GetService(inDto.VisitTaskId);
@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
await service.CalculateTask(inDto);
}
}
/// <summary>
@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
await service.VerifyVisitTaskQuestions(inDto);
}
}
/// <summary>
@ -126,26 +126,26 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
var service = await this.GetService(inDto.VisitTaskId);
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
if (service != null&& visitTaskInfo.SourceSubjectVisitId!=null)
if (service != null && visitTaskInfo.SourceSubjectVisitId != null)
{
var readingTaskState = visitTaskInfo.ReadingTaskState;
var result = new AddTaskLesionAnswerFromLastTaskOutDto();
if (readingTaskState == ReadingTaskState.WaitReading)
{
result= await service.AddTaskLesionAnswerFromLastTask(inDto);
result = await service.AddTaskLesionAnswerFromLastTask(inDto);
await service.CalculateTask(new CalculateTaskInDto()
{
IsChangeOtherTask = false,
VisitTaskId = inDto.VisitTaskId,
});
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x=>x.Id==inDto.VisitTaskId, x => new VisitTask()
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.VisitTaskId, x => new VisitTask()
{
ReadingTaskState = ReadingTaskState.Reading,
});
}
return result;
@ -154,7 +154,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
return new AddTaskLesionAnswerFromLastTaskOutDto();
}
}
/// <summary>
@ -164,7 +164,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// <returns></returns>
public async Task<object> GetReportVerify(GetReportVerifyInDto inDto)
{
var service = await this.GetService(inDto.VisitTaskId);
if (service != null)
@ -175,7 +175,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
return new { };
}
}
/// <summary>
@ -191,7 +191,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
if (taskInfo.ReadingTaskState != ReadingTaskState.HaveSigned&&inDto.IsCalculate)
if (taskInfo.ReadingTaskState != ReadingTaskState.HaveSigned && inDto.IsCalculate)
{
await service.CalculateTask(new CalculateTaskInDto()
{
@ -199,29 +199,17 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
VisitTaskId = inDto.VisitTaskId
});
}
var result = await service.GetReadingReportEvaluation(inDto);
var result = await service.GetReadingReportEvaluation(inDto);
// 这里统一处理字典
var dictionaryGroup = result.VisitTaskList.ToDictionary(x => x.VisitTaskId, x => x.CrterionDictionaryGroup);
Dictionary<Guid,List<CrterionDictionaryGroup>> dictionaryGroup = result.VisitTaskList.ToDictionary(x => x.VisitTaskId, x => x.CrterionDictionaryGroup);
result.TaskQuestions.ForEach(y =>
{
y.Answer.ForEach(z =>
{
try
{
z.CrterionDictionaryGroup = dictionaryGroup[z.VisitTaskId];
}
catch (Exception)
{
}
});
SetCrterionDictionaryGroup(y, dictionaryGroup);
});
@ -234,6 +222,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
public void SetCrterionDictionaryGroup(ReadingReportDto item, Dictionary<Guid, List<CrterionDictionaryGroup>> dictionaryGroup)
{
item.Answer.ForEach(z =>
{
try
{
z.CrterionDictionaryGroup = dictionaryGroup[z.VisitTaskId];
}
catch (Exception)
{
}
});
item.Childrens.ForEach(x => {
SetCrterionDictionaryGroup(x, dictionaryGroup);
});
}
/// <summary>
/// 删除病灶获取起始病灶序号
/// </summary>