Test.EIImageViewer
he 2023-01-03 14:54:08 +08:00
parent b4ffae867b
commit 932cb89a44
3 changed files with 121 additions and 8 deletions

View File

@ -265,12 +265,34 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid RowId { get; set; }
}
//public class ChangeCalculationAnswerInDto
//{
// public Guid VisitTaskId { get; set; }
public class ChangeCalculationAnswerInDto
{
public Guid VisitTaskId { get; set; }
public List<ChangeQuestion> QuestionAnswer { get; set; } = new List<ChangeQuestion>();
public List<ChangeTableQuestion> TableQuestionAnswer { get; set; } = new List<ChangeTableQuestion>();
}
public class ChangeTableQuestion
{
public Guid RowId { get; set; }
public Guid QuestionId { get; set; }
public Guid TableQuestionId { get; set; }
public string Answer { get; set; }
}
public class ChangeQuestion
{
public Guid QuestionId { get; set; }
public string Answer { get; set; }
}
// public
//}
public class ReadClinicalDataInDto
{
@ -742,6 +764,37 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<SetOncologyQuestion> OncologyQuestionList { get; set; }
}
public class BatchSubmitGlobalReadingInfo
{
public Guid GlobalTaskId { get; set; }
public Guid SubjectId { get; set; }
public Guid TrialId { get; set; }
public List<SubmitGlobalReading> VisitTaskAnswerList { get; set; }
}
public class SubmitGlobalReading
{
public Guid VisitTaskId { get; set; }
public List<GlobalAnswer> AnswerList { get; set; }
}
public class GlobalAnswer
{
public Guid? QuestionId { get; set; }
public GlobalAnswerType GlobalAnswerType { get; set; }
public string Answer { get; set; }
}
public class SaveGlobalReadingInfoInDto
{
public Guid GlobalTaskId { get; set; }

View File

@ -34,6 +34,45 @@ namespace IRaCIS.Application.Services
return ResponseOutput.Ok(true);
}
/// <summary>
/// 批量提交全局阅片信息
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> BatchSubmitGlobalReadingInfo(BatchSubmitGlobalReadingInfo inDto)
{
await VerifyTaskIsSign(inDto.GlobalTaskId);
foreach (var item in inDto.VisitTaskAnswerList)
{
foreach (var answer in item.AnswerList)
{
await _readingGlobalTaskInfoRepository.BatchDeleteNoTrackingAsync(x => x.GlobalTaskId == inDto.GlobalTaskId && x.TaskId == item.VisitTaskId && x.GlobalAnswerType == answer.GlobalAnswerType && x.QuestionId == answer.QuestionId);
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == answer.QuestionId, x => new ReadingTaskQuestionAnswer()
{
GlobalChangeAnswer = answer.Answer
});
}
}
var answers= inDto.VisitTaskAnswerList.SelectMany(x => x.AnswerList.Select(y => new ReadingGlobalTaskInfo()
{
Answer = y.Answer,
QuestionId = y.QuestionId,
SubjectId = inDto.SubjectId,
GlobalTaskId = inDto.GlobalTaskId,
GlobalAnswerType = y.GlobalAnswerType,
TaskId = x.VisitTaskId,
TrialId = inDto.TrialId,
})).ToList();
await _readingGlobalTaskInfoRepository.AddRangeAsync(answers);
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == inDto.GlobalTaskId, u => new VisitTask() { ReadingTaskState = ReadingTaskState.Reading });
var result = await _readingGlobalTaskInfoRepository.SaveChangesAsync();
return ResponseOutput.Ok(result);
}
#region 全局阅片相关
/// <summary>
/// 保存全局阅片结果

View File

@ -120,10 +120,31 @@ namespace IRaCIS.Application.Services
this._trialEmailNoticeConfigService = trialEmailNoticeConfigService;
}
public async Task ChangeCalculationAnswer()
/// <summary>
/// 修改计算问题
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task ChangeCalculationAnswer(ChangeCalculationAnswerInDto inDto)
{
foreach (var item in inDto.QuestionAnswer)
{
await _readingTaskQuestionAnswerRepository.UpdatePartialFromQueryAsync(x=>x.VisitTaskId==inDto.VisitTaskId&&x.ReadingQuestionTrialId==item.QuestionId, x => new ReadingTaskQuestionAnswer()
{
Answer = item.Answer,
});
}
foreach (var item in inDto.TableQuestionAnswer)
{
await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowId == item.RowId&&x.TableQuestionId==item.TableQuestionId, x => new ReadingTableQuestionAnswer()
{
Answer = item.Answer,
});
}
await _readingTableQuestionAnswerRepository.SaveChangesAsync();
}
/// <summary>