代码整理

Uat_Study
hang 2022-10-18 15:06:09 +08:00
parent ae88921049
commit ee32ddd974
1 changed files with 71 additions and 113 deletions

View File

@ -292,6 +292,66 @@ namespace IRaCIS.Application.Services
#region 阅片页面 关联信息查询 以及基本验证
/// <summary>
/// 根据任务ID获取ReadingTool
/// </summary>
/// <param name="indto"></param>
/// <returns></returns>
[HttpPost]
public async Task<GetReadingToolOutDto> GetReadingTool(GetReadingToolInDto indto)
{
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
GetReadingToolOutDto result = new GetReadingToolOutDto();
result.ReadingTool = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTaskInfo.TrialReadingCriterionId).Select(x => x.ReadingTool).FirstOrDefaultAsync();
return result;
}
/// <summary>
/// 获取关联的阅片任务
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<(List<GetRelatedVisitTaskOutDto>, object)> GetRelatedVisitTask(GetRelatedVisitTaskInDto inDto)
{
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
if (taskInfo.TaskState != TaskState.Effect)
{
throw new BusinessValidationFailedException($"当前任务已失效!");
}
var baselineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskInfo.SubjectId && x.IsBaseLine && !x.IsLostVisit).Select(x => x.Id).FirstNotNullAsync();
var result = await _visitTaskRepository.Where(x =>
(x.TrialId == taskInfo.TrialId &&
x.SubjectId == taskInfo.SubjectId &&
x.ArmEnum == taskInfo.ArmEnum &&
x.DoctorUserId == taskInfo.DoctorUserId &&
x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId &&
x.TaskState == TaskState.Effect &&
x.IsAnalysisCreate == taskInfo.IsAnalysisCreate &&
x.ReadingCategory == ReadingCategory.Visit) || x.Id == inDto.VisitTaskId)
.Select(x => new GetRelatedVisitTaskOutDto()
{
TaskBlindName = x.TaskBlindName,
TaskName = x.TaskName,
ReadingTaskState = x.ReadingTaskState,
VisitId = x.SourceSubjectVisitId,
VisitTaskId = x.Id,
VisitTaskNum = x.VisitTaskNum,
IsBaseLineTask = x.SourceSubjectVisitId == baselineVisitId,
IsCurrentTask = x.Id == inDto.VisitTaskId,
}).OrderBy(x => x.VisitTaskNum).ToListAsync();
return (result, new
{
ReadingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync()
});
}
/// <summary>
/// 获取既往任务名称和编号
/// </summary>
@ -373,22 +433,23 @@ namespace IRaCIS.Application.Services
/// <summary>
/// 根据任务ID获取ReadingTool
/// 验证任务是否签名
/// </summary>
/// <param name="indto"></param>
/// <param name="visitTaskid"></param>
/// <returns></returns>
[HttpPost]
public async Task<GetReadingToolOutDto> GetReadingTool(GetReadingToolInDto indto)
/// <exception cref="BusinessValidationFailedException"></exception>
private async Task VerifyTaskIsSign(Guid visitTaskid)
{
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
GetReadingToolOutDto result = new GetReadingToolOutDto();
result.ReadingTool = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == visitTaskInfo.TrialReadingCriterionId).Select(x => x.ReadingTool).FirstOrDefaultAsync();
return result;
if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.ReadingTaskState == ReadingTaskState.HaveSigned))
{
throw new BusinessValidationFailedException($"当前任务已经签名!");
}
}
#endregion
@ -938,51 +999,7 @@ namespace IRaCIS.Application.Services
}
/// <summary>
/// 获取关联的阅片任务
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<(List<GetRelatedVisitTaskOutDto>, object)> GetRelatedVisitTask(GetRelatedVisitTaskInDto inDto)
{
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
if (taskInfo.TaskState != TaskState.Effect)
{
throw new BusinessValidationFailedException($"当前任务已失效!");
}
var baselineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskInfo.SubjectId && x.IsBaseLine && !x.IsLostVisit).Select(x => x.Id).FirstNotNullAsync();
var result = await _visitTaskRepository.Where(x =>
(x.TrialId == taskInfo.TrialId &&
x.SubjectId == taskInfo.SubjectId &&
x.ArmEnum == taskInfo.ArmEnum &&
x.DoctorUserId == taskInfo.DoctorUserId &&
x.ReadingTaskState == ReadingTaskState.HaveSigned &&
x.TrialReadingCriterionId== taskInfo.TrialReadingCriterionId&&
x.TaskState == TaskState.Effect &&
x.IsAnalysisCreate == taskInfo.IsAnalysisCreate &&
x.ReadingCategory == ReadingCategory.Visit) || x.Id == inDto.VisitTaskId)
.Select(x => new GetRelatedVisitTaskOutDto()
{
TaskBlindName = x.TaskBlindName,
TaskName = x.TaskName,
ReadingTaskState=x.ReadingTaskState,
VisitId = x.SourceSubjectVisitId,
VisitTaskId = x.Id,
VisitTaskNum = x.VisitTaskNum,
IsBaseLineTask= x.SourceSubjectVisitId== baselineVisitId,
IsCurrentTask = x.Id == inDto.VisitTaskId,
}).OrderBy(x => x.VisitTaskNum).ToListAsync();
return (result, new
{
ReadingTaskState = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.ReadingTaskState).FirstOrDefaultAsync()
});
}
#endregion
@ -1634,64 +1651,5 @@ namespace IRaCIS.Application.Services
#region 阅片任务 签名验证
/// <summary>
/// 验证任务是否签名
/// </summary>
/// <param name="visitTaskid"></param>
/// <returns></returns>
/// <exception cref="BusinessValidationFailedException"></exception>
private async Task VerifyTaskIsSign(Guid visitTaskid)
{
if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.ReadingTaskState == ReadingTaskState.HaveSigned))
{
throw new BusinessValidationFailedException($"当前任务已经签名!");
}
}
#endregion
#region 废弃
/// <summary>
/// 完成阅片修改状态
/// </summary>
/// <returns></returns>
private async Task FinishReadUpdateState(Guid visitTaskId)
{
//var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
//if (!await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.ReadingTaskState != ReadingTaskState.HaveSigned))
//{
// if (taskInfo.SouceReadModuleId != null)
// {
// await _readModuleRepository.UpdatePartialFromQueryAsync(taskInfo.SouceReadModuleId.Value, x => new ReadModule
// {
// ReadingStatus = ReadingStatusEnum.ReadCompleted
// });
// }
// else if (taskInfo.SourceSubjectVisitId != null)
// {
// await _subjectVisitRepository.UpdatePartialFromQueryAsync(taskInfo.SourceSubjectVisitId.Value, x => new SubjectVisit
// {
// ReadingStatus = ReadingStatusEnum.ReadCompleted
// });
// }
// await _subjectVisitRepository.SaveChangesAsync();
//}
}
#endregion
}
}