diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index b336482c7..d09adad8e 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -3834,6 +3834,16 @@
字典code
+
+
+ 是否存在疾病
+
+
+
+
+ 整体肿瘤评估
+
+
任务Id
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 4530544ce..6fb1dca6e 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -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 VisitTaskList { get; set; }
@@ -1687,6 +1687,19 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Func> Fun { get; set; }
}
+ public class GetReportVerifyOutDto
+ {
+ ///
+ /// 是否存在疾病
+ ///
+ public string? IsExistDisease { get; set; }
+
+ ///
+ /// 整体肿瘤评估
+ ///
+ public string? TumorEvaluate { get; set; }
+ }
+
public class GetReportVerifyInDto
{
public Guid VisitTaskId { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 151e25924..868d95cf3 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -76,13 +76,13 @@ namespace IRaCIS.Application.Services
IRepository subjectRepository,
IRepository readingGlobalTaskInfoRepository,
IRepository readingCriterionPageRepository,
- IRepository readingTaskRelationRepository,
+ IRepository readingTaskRelationRepository,
IRepository readingJudgeInfoRepository,
IRepository readModuleRepository,
IRepository dicomInstanceRepository,
- IRepository organInfoRepository,
- IRepository trialDocumentRepository,
- IRepository userRepository,
+ IRepository organInfoRepository,
+ IRepository trialDocumentRepository,
+ IRepository userRepository,
IMemoryCache cache,
IRepository readingCriterionDictionaryRepository,
IRepository readingTrialCriterionDictionaryRepository,
@@ -94,8 +94,8 @@ namespace IRaCIS.Application.Services
IRepository readingQuestionCriterionTrialRepository,
IRepository readingQuestionCriterionSystemRepository,
IRepository ReadingQuestionSystem,
- ITrialEmailNoticeConfigService trialEmailNoticeConfigService,
- IRepository noneDicomStudyFileSystem,
+ ITrialEmailNoticeConfigService trialEmailNoticeConfigService,
+ IRepository noneDicomStudyFileSystem,
IRepository readingQuestionTrialRepository
)
{
@@ -1406,7 +1406,40 @@ namespace IRaCIS.Application.Services
public async Task 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));
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
index 6fffbc2b4..1450d38d5 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
@@ -155,7 +155,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
var originalTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();
- var taskAnswer = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == beforeConvertedTaskId && x.ReadingQuestionTrial.Type != "calculation").IgnoreAutoIncludes().AsNoTracking().ToListAsync();
+ var taskAnswer = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == beforeConvertedTaskId &&x.ReadingQuestionTrial.QuestionType!=QuestionType.AdjustReason && x.ReadingQuestionTrial.Type != "calculation").IgnoreAutoIncludes().AsNoTracking().ToListAsync();
taskAnswer.ForEach(x => {
@@ -171,7 +171,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
x.VisitTaskId = visitTaskId;
x.IsCurrentTaskAdd = false;
- x.FristAddTaskId = visitTaskId;
+ //x.FristAddTaskId = visitTaskId;
x.Id = NewId.NextGuid();
});
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
index 91e3c1ede..6b37448c4 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
@@ -162,7 +162,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
///
///
///
- public async Task