修改
This commit is contained in:
@@ -176,7 +176,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
|
||||
public object ReportCalculateResult{ get; set; }
|
||||
|
||||
public object CalculateResult { get; set; }
|
||||
public GetReportVerifyOutDto CalculateResult { get; set; }
|
||||
public ReadingTaskState ReadingTaskState { get; set; }
|
||||
|
||||
public List<VisitTaskInfo> VisitTaskList { get; set; }
|
||||
@@ -1687,6 +1687,19 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
public Func<ReadingCalculateDto, Task<string>> Fun { get; set; }
|
||||
}
|
||||
|
||||
public class GetReportVerifyOutDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 是否存在疾病
|
||||
/// </summary>
|
||||
public string? IsExistDisease { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 整体肿瘤评估
|
||||
/// </summary>
|
||||
public string? TumorEvaluate { get; set; }
|
||||
}
|
||||
|
||||
public class GetReportVerifyInDto
|
||||
{
|
||||
public Guid VisitTaskId { get; set; }
|
||||
|
||||
@@ -1406,7 +1406,40 @@ namespace IRaCIS.Application.Services
|
||||
public async Task<IResponseOutput> ChangeDicomReadingQuestionAnswer(ChangeDicomReadingQuestionAnswerInDto inDto)
|
||||
{
|
||||
await VerifyTaskIsSign(inDto.VisitTaskId);
|
||||
|
||||
|
||||
|
||||
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
|
||||
|
||||
var tumorQuestionId = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId && x.QuestionType == QuestionType.Tumor).Select(x => x.Id).FirstOrDefaultAsync();
|
||||
|
||||
var tumorAnswer = inDto.Answers.Where(x => x.Id == tumorQuestionId).FirstOrDefault();
|
||||
if (tumorAnswer != null)
|
||||
{
|
||||
var isConvertedTask = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.IsConvertedTask).FirstOrDefaultAsync();
|
||||
var reportVerify = await _readingCalculateService.GetReportVerify(new GetReportVerifyInDto() {
|
||||
BeforeConvertedTaskId= taskInfo.BeforeConvertedTaskId,
|
||||
IsConvertTask= isConvertedTask,
|
||||
VisitTaskId=inDto.VisitTaskId
|
||||
});
|
||||
|
||||
if (tumorAnswer.Answer == reportVerify.TumorEvaluate)
|
||||
{
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.VisitTaskId, x => new VisitTask()
|
||||
{
|
||||
IsChangeTumorEvaluate = false
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.VisitTaskId, x => new VisitTask()
|
||||
{
|
||||
IsChangeTumorEvaluate = true
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var criterionId = taskInfo.TrialReadingCriterionId;
|
||||
var questionIds = inDto.Answers.Select(x => x.Id).ToList();
|
||||
await _readingTaskQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && questionIds.Contains(x.ReadingQuestionTrialId));
|
||||
|
||||
Reference in New Issue
Block a user