Uat_Study
he 2023-05-05 15:22:07 +08:00
parent 6da34061da
commit 3a03eec1ab
3 changed files with 228 additions and 84 deletions

View File

@ -131,6 +131,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public bool IsConvertedTask { get; set; } public bool IsConvertedTask { get; set; }
public Guid? BeforeConvertedTaskId { get; set; }
public bool IsAnalysisCreate { get; set; } public bool IsAnalysisCreate { get; set; }
public bool? IsSelfAnalysis { get; set; } public bool? IsSelfAnalysis { get; set; }
@ -295,6 +297,12 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Func<ChangeAllTaskDto,Task> ChangeAllTaskFun { get; set; } public Func<ChangeAllTaskDto,Task> ChangeAllTaskFun { get; set; }
public bool? IsConvertedTask { get; set; } public bool? IsConvertedTask { get; set; }
/// <summary>
/// 是否是正在转化
/// </summary>
public bool IsBeTransforming { get; set; } = false;
} }
} }

View File

@ -122,6 +122,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
SubjectId = visitTask.SubjectId, SubjectId = visitTask.SubjectId,
TaskBlindName = visitTask.TaskBlindName, TaskBlindName = visitTask.TaskBlindName,
IsConvertedTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Select(x => x.IsConvertedTask).FirstOrDefaultAsync(), IsConvertedTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Select(x => x.IsConvertedTask).FirstOrDefaultAsync(),
BeforeConvertedTaskId = visitTask.BeforeConvertedTaskId,
VisitTaskId = visitTaskId, VisitTaskId = visitTaskId,
SubjectVisitId = visitTask.SourceSubjectVisitId!.Value, SubjectVisitId = visitTask.SourceSubjectVisitId!.Value,
QuestionInfo = questionInfos, QuestionInfo = questionInfos,

View File

@ -470,12 +470,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// IRECIST靶病灶评估 // IRECIST靶病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.TargetLesion,GetStringFun=GetIRECISTTargetLesionEvaluate,IsConvertedTask=true}, new ReadingCalculateData (){QuestionType=QuestionType.TargetLesion,GetStringFun=GetIRECISTTargetLesionEvaluate,IsConvertedTask=true},
// 转化时靶病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.TargetLesion,GetStringFun=GetConvertingTargetLesionEvaluate,IsConvertedTask=true,IsBeTransforming=true},
//非靶病灶评估 //非靶病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.NoTargetLesion,GetStringFun=GetNoTargetLesionEvaluate,IsConvertedTask=false}, new ReadingCalculateData (){QuestionType=QuestionType.NoTargetLesion,GetStringFun=GetNoTargetLesionEvaluate,IsConvertedTask=false},
//IRECIST非靶病灶评估 //IRECIST非靶病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.NoTargetLesion,GetStringFun=GetIRECISTNoTargetLesionEvaluate,IsConvertedTask=true}, new ReadingCalculateData (){QuestionType=QuestionType.NoTargetLesion,GetStringFun=GetIRECISTNoTargetLesionEvaluate,IsConvertedTask=true},
// 转化时非靶病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.NoTargetLesion,GetStringFun=GetConvertingNoTargetLesionEvaluate,IsConvertedTask=true ,IsBeTransforming=true},
// IRECIST新靶病灶评估 // IRECIST新靶病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.NewTargetLesion,GetStringFun=GetNewTargetLesionEvaluate,IsConvertedTask=true}, new ReadingCalculateData (){QuestionType=QuestionType.NewTargetLesion,GetStringFun=GetNewTargetLesionEvaluate,IsConvertedTask=true},
@ -506,6 +512,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//IRECIST整体肿瘤评估 //IRECIST整体肿瘤评估
new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetIRECSITTargetLesionEvaluate,IsConvertedTask=true}, new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetIRECSITTargetLesionEvaluate,IsConvertedTask=true},
// 转化时整体肿瘤评估
new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetConvertingTumor,IsConvertedTask=true,IsBeTransforming=true},
//IRECIST整体肿瘤评估 //IRECIST整体肿瘤评估
new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetIRECSITTargetLesionEvaluate,IsConvertedTask=true}, new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetIRECSITTargetLesionEvaluate,IsConvertedTask=true},
@ -517,6 +526,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// 过滤转化的 // 过滤转化的
calculateList = calculateList.Where(x => x.IsConvertedTask == inDto.IsConvertedTask||x.IsConvertedTask==null).ToList(); calculateList = calculateList.Where(x => x.IsConvertedTask == inDto.IsConvertedTask||x.IsConvertedTask==null).ToList();
if (inDto.IsConvertedTask)
{
if (inDto.BeforeConvertedTaskId != null)
{
List<QuestionType> questionTypes = calculateList.Where(x => x.IsBeTransforming).Select(x => x.QuestionType).ToList();
// 排除这几个 且不为正在转化的
calculateList = calculateList.Where(x => !(questionTypes.Contains(x.QuestionType)&& x.IsBeTransforming == false)).ToList();
}
else
{
calculateList = calculateList.Where(x => x.IsBeTransforming == false).ToList();
}
}
// 没有靶病灶只计算最后几个 // 没有靶病灶只计算最后几个
if (inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).Sum(x => x.TableRowInfoList.Count()) == 0) if (inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).Sum(x => x.TableRowInfoList.Count()) == 0)
@ -2391,6 +2419,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
public async Task<string> GetNewLesionIRECSITEvaluate(ReadingCalculateDto inDto) public async Task<string> GetNewLesionIRECSITEvaluate(ReadingCalculateDto inDto)
{ {
// 逻辑改了 现在转变后全部都是NA;
return NewLesionAssessment.NA.GetEnumInt();
NewLesionAssessment result = NewLesionAssessment.No; NewLesionAssessment result = NewLesionAssessment.No;
if (inDto.IsBaseLine) if (inDto.IsBaseLine)
{ {
@ -2685,6 +2716,110 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
#endregion #endregion
#endregion #endregion
#region 转化时计算
#region 获取转化的靶病灶评估
/// <summary>
/// 获取转化的靶病灶评估
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<string> GetConvertingTargetLesionEvaluate(ReadingCalculateDto inDto)
{
var beforeConvertedAnswer = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.BeforeConvertedTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).Select(x => x.Answer).FirstOrDefaultAsync();
Dictionary<string, string> answerConverDic = new Dictionary<string, string>()
{
{TargetAssessment.SD.GetEnumInt(),TargetAssessment.iSD.GetEnumInt() },
{TargetAssessment.PR.GetEnumInt(),TargetAssessment.iPR.GetEnumInt() },
{TargetAssessment.PD.GetEnumInt(),TargetAssessment.iUPD.GetEnumInt() },
{TargetAssessment.CR.GetEnumInt(), TargetAssessment.iCR.GetEnumInt() },
};
try
{
return answerConverDic[beforeConvertedAnswer];
}
catch (Exception)
{
return beforeConvertedAnswer;
}
}
#endregion
#region 获取转化的非靶病灶评估
/// <summary>
/// 获取转化的非靶病灶评估
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<string> GetConvertingNoTargetLesionEvaluate(ReadingCalculateDto inDto)
{
var beforeConvertedAnswer = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.BeforeConvertedTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.NoTargetLesion).Select(x => x.Answer).FirstOrDefaultAsync();
Dictionary<string, string> answerConverDic = new Dictionary<string, string>()
{
{NoTargetAssessment.NN.GetEnumInt(),NoTargetAssessment.iNN.GetEnumInt() },
{NoTargetAssessment.PD.GetEnumInt(),NoTargetAssessment.iUPD.GetEnumInt() },
{NoTargetAssessment.CR.GetEnumInt(), NoTargetAssessment.iCR.GetEnumInt() },
};
try
{
return answerConverDic[beforeConvertedAnswer];
}
catch (Exception)
{
return beforeConvertedAnswer;
}
}
#endregion
#region 获取转化的整体肿瘤评估
/// <summary>
/// 获取转化的整体肿瘤评估
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<string> GetConvertingTumor(ReadingCalculateDto inDto)
{
var beforeConvertedAnswer = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.BeforeConvertedTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).Select(x => x.Answer).FirstOrDefaultAsync();
Dictionary<string, string> answerConverDic = new Dictionary<string, string>()
{
{OverallAssessment.NN.GetEnumInt(),OverallAssessment.iNN.GetEnumInt() },
{OverallAssessment.PD.GetEnumInt(),OverallAssessment.iUPD.GetEnumInt() },
{OverallAssessment.CR.GetEnumInt(), OverallAssessment.iCR.GetEnumInt() },
{OverallAssessment.SD.GetEnumInt(), OverallAssessment.iSD.GetEnumInt() },
{OverallAssessment.PR.GetEnumInt(), OverallAssessment.iPR.GetEnumInt() },
};
try
{
return answerConverDic[beforeConvertedAnswer];
}
catch (Exception)
{
return beforeConvertedAnswer;
}
}
#endregion
#endregion
#region 获取靶病灶评估 #region 获取靶病灶评估