diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
index f518f5b56..a547462b9 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
@@ -89,13 +89,39 @@ namespace IRaCIS.Core.Application.Service
}
- public async Task AddIsPDChangeTask(Guid taskId)
+ ///
+ /// 添加转变任务
+ ///
+ ///
+ ///
+ public async Task AddConvertedTask(Guid taskId)
{
var taskInfo = await _visitTaskRepository.Where(x => x.Id == taskId).IgnoreAutoIncludes().AsNoTracking().FirstNotNullAsync();
taskInfo.ReadingTaskState = ReadingTaskState.WaitReading;
taskInfo.IsConvertedTask = true;
-
+ taskInfo.Id = NewId.NextGuid();
+ await _visitTaskRepository.BatchUpdateNoTrackingAsync(x =>
+ x.IsAnalysisCreate == taskInfo.IsAnalysisCreate
+ && x.IsSelfAnalysis == taskInfo.IsSelfAnalysis
+ && x.VisitTaskNum > taskInfo.VisitTaskNum
+ && x.DoctorUserId == taskInfo.DoctorUserId
+ && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
+ && x.SubjectId == taskInfo.SubjectId
+ && x.ArmEnum == taskInfo.ArmEnum &&
+ x.TaskState == TaskState.Effect, x => new VisitTask()
+ {
+ IsConvertedTask = true
+ });
+
+ await _visitTaskRepository.AddAsync(taskInfo);
+
+ await _visitTaskRepository.BatchUpdateNoTrackingAsync(x=>x.Id==taskId, x => new VisitTask()
+ {
+ TaskState = TaskState.Freeze
+ });
+
+ await _visitTaskRepository.SaveChangesAsync();
}
//基于标准签名 产生任务 (或者手动选择某些访视生成该标准的任务)
diff --git a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs
index 1c72b5ed9..8604f20dd 100644
--- a/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs
+++ b/IRaCIS.Core.Application/Service/Common/DTO/DictionaryModel.cs
@@ -141,7 +141,9 @@ namespace IRaCIS.Application.Contracts
public DicDataTypeEnum DataTypeEnum { get; set; }
- public bool IsEnumInt => System.Text.RegularExpressions.Regex.IsMatch(Code, @"^[-+]?\d*$") && DataTypeEnum== DicDataTypeEnum.Enum;
+ public CrterionDictionaryGroup CrterionDictionaryGroup { get; set; } = IRaCIS.Core.Domain.Share.CrterionDictionaryGroup.General;
+
+ public bool IsEnumInt => System.Text.RegularExpressions.Regex.IsMatch(Code, @"^[-+]?\d*$") && DataTypeEnum== DicDataTypeEnum.Enum;
}
diff --git a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs
index 0ebb9b0d9..bd02d6989 100644
--- a/IRaCIS.Core.Application/Service/Common/DictionaryService.cs
+++ b/IRaCIS.Core.Application/Service/Common/DictionaryService.cs
@@ -359,6 +359,7 @@ namespace IRaCIS.Application.Services
ParentChildCodeEnum = x.Dictionary.Parent.ChildCodeEnum,
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
+ CrterionDictionaryGroup=x.CrterionDictionaryGroup,
Id = x.DictionaryId,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
@@ -430,6 +431,7 @@ namespace IRaCIS.Application.Services
ShowOrder = x.Dictionary.ShowOrder,
ParentCode = x.ParentCode,
Id = x.DictionaryId,
+ CrterionDictionaryGroup=x.CrterionDictionaryGroup,
ParentId = x.Dictionary.ParentId,
Value = x.Dictionary.Value,
ValueCN = x.Dictionary.ValueCN
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index bf1ad0c21..e7f70131e 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -165,6 +165,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string GlobalChangeAnswer { get; set; } = string.Empty;
+ public List CrterionDictionaryGroup { get; set; }
+
}
@@ -271,6 +273,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public decimal VisitTaskNum { get; set; }
public bool IsCurrentTask { get; set; }
+
+ public List CrterionDictionaryGroup { get; set; }
}
public class MergeLesionInDto
@@ -383,6 +387,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public string Answer { get; set; }
+ public List CrterionDictionaryGroup { get; set; }
+
public List Childrens = new List();
}
@@ -624,6 +630,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class TrialReadQuestionData : ReadingQuestionTrial
{
+ public List CrterionDictionaryGroup { get; set; }
+
public bool IsPage { get; set; } = false;
public string Answer { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index 7e8824cb8..c641d427b 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -633,7 +633,21 @@ namespace IRaCIS.Application.Services
if (visitTaskId != null)
{
- answers = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId).ToListAsync(); ;
+ answers = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId).ToListAsync();
+
+ var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
+ questions.ForEach(x =>
+ {
+ x.CrterionDictionaryGroup = taskinfo.CrterionDictionaryGroup;
+ });
+ }
+ else
+ {
+ var crterionDictionaryGroup= new List() { CrterionDictionaryGroup.General, CrterionDictionaryGroup.BeforeConvert };
+ questions.ForEach(x =>
+ {
+ x.CrterionDictionaryGroup = crterionDictionaryGroup;
+ });
}
@@ -823,9 +837,27 @@ namespace IRaCIS.Application.Services
}).OrderBy(x => x.ShowOrder).ToListAsync();
-
- //是否是预览
- if (inDto.IsGetPreview == false)
+ if (inDto.TaskId != null)
+ {
+ var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.TaskId).FirstNotNullAsync();
+
+ qusetionList.ForEach(x =>
+ {
+
+ x.CrterionDictionaryGroup = taskInfo.CrterionDictionaryGroup;
+ });
+ }
+ else
+ {
+ qusetionList.ForEach(x =>
+ {
+
+ x.CrterionDictionaryGroup = new List() { CrterionDictionaryGroup.General, CrterionDictionaryGroup.BeforeConvert };
+ });
+ }
+
+ //是否是预览
+ if (inDto.IsGetPreview == false)
{
// 是否获取所有问题
if (inDto.IsGetallQuestion)
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
index b79089363..733d2435a 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
@@ -175,7 +175,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
BlindName = x.TaskBlindName,
IsBaseLine = x.SourceSubjectVisit.IsBaseLine,
VisitTaskId = x.Id,
-
+ CrterionDictionaryGroup= x.CrterionDictionaryGroup,
TaskName = x.TaskName,
LatestScanDate= x.SourceSubjectVisit!=null?x.SourceSubjectVisit.LatestScanDate : null,
VisitTaskNum = x.VisitTaskNum,
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
index 3085837da..8dc3260da 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs
@@ -200,7 +200,29 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
});
}
- return await service.GetReadingReportEvaluation(inDto);
+ var result = await service.GetReadingReportEvaluation(inDto);
+
+
+ // 这里统一处理字典
+
+ var 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)
+ {
+
+
+ }
+ });
+ });
}
else
{
diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs
index 7cc8f1e40..8ffc4efce 100644
--- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs
+++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs
@@ -294,7 +294,31 @@ namespace IRaCIS.Core.Domain.Models
///
public bool IsConvertedTask { get; set; } = false;
+ [NotMapped]
+ public List CrterionDictionaryGroup
+ {
+ get
+ {
+ try
+ {
+ if (this.IsConvertedTask)
+ {
+ return new List() { Share.CrterionDictionaryGroup.General, Share.CrterionDictionaryGroup.Converted };
+ }
+ else
+ {
+ return new List() { Share.CrterionDictionaryGroup.General, Share.CrterionDictionaryGroup.BeforeConvert };
+ }
+ }
+ catch (Exception)
+ {
+
+ return new List();
+ }
+
+ }
+ }