Uat_Study
parent
2a8f66f360
commit
dfeb4204e7
|
@ -66,9 +66,9 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
public bool MeetRECISTPD { get; set; }
|
public bool MeetRECISTPD { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 本次访视SOD增加不小于5mm
|
/// 本次访视SOD与触发iRECIST访视相比本次访视SOD增加不小于5mm
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool SODAddGreaterThan5 { get; set; }
|
public bool SODTiggerAddGreaterThan5 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 比整体访视期间最低点SOD增加≥20 %
|
/// 比整体访视期间最低点SOD增加≥20 %
|
||||||
|
|
|
@ -1648,6 +1648,27 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取第一次转变访视任务Id
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<Guid> GetFirstChangeTaskId(ReadingCalculateDto inDto)
|
||||||
|
{
|
||||||
|
|
||||||
|
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).ProjectTo<VisitTaskDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
|
||||||
|
var firstChangeTaskId = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit &&
|
||||||
|
x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId &&
|
||||||
|
x.IsAnalysisCreate == taskinfo.IsAnalysisCreate &&
|
||||||
|
x.DoctorUserId == taskinfo.DoctorUserId &&
|
||||||
|
x.IsSelfAnalysis == taskinfo.IsSelfAnalysis &&
|
||||||
|
x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ArmEnum == taskinfo.ArmEnum
|
||||||
|
&& x.BeforeConvertedTaskId!=null && x.TaskState == TaskState.Effect
|
||||||
|
).OrderBy(x => x.VisitTaskNum).Select(x => x.Id).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
return firstChangeTaskId;
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -1670,7 +1691,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
/// {
|
/// {
|
||||||
/// 靶病灶疗效为 ICPD
|
/// 靶病灶疗效为 ICPD
|
||||||
/// }
|
/// }
|
||||||
/// else if (上一访视评估为iUPD&&本次访视SOD增加不小于5mm)
|
/// else if (上一访视评估为iUPD&&与触发iRECIST访视相比本次访视SOD增加不小于5mm)
|
||||||
/// {
|
/// {
|
||||||
/// 靶病灶疗效为 ICPD
|
/// 靶病灶疗效为 ICPD
|
||||||
/// }
|
/// }
|
||||||
|
@ -1700,6 +1721,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
var tableQuestion = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
var tableQuestion = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
||||||
var lastVisitTaskId = await GetLastVisitTaskId(inDto);
|
var lastVisitTaskId = await GetLastVisitTaskId(inDto);
|
||||||
|
var firstChangeTaskId = await GetFirstChangeTaskId(inDto);
|
||||||
var targetLesionQuestionId = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TargetLesion).Select(x => x.QuestionId).FirstOrDefault();
|
var targetLesionQuestionId = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TargetLesion).Select(x => x.QuestionId).FirstOrDefault();
|
||||||
|
|
||||||
var sodQuestionId = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SOD).Select(x => x.QuestionId).FirstOrDefault();
|
var sodQuestionId = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SOD).Select(x => x.QuestionId).FirstOrDefault();
|
||||||
|
@ -1715,8 +1737,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
// 满足RECISTPD
|
// 满足RECISTPD
|
||||||
MeetRECISTPD = (await GetTargetLesionEvaluate(inDto)) == TargetAssessment.PD.GetEnumInt(),
|
MeetRECISTPD = (await GetTargetLesionEvaluate(inDto)) == TargetAssessment.PD.GetEnumInt(),
|
||||||
|
|
||||||
// 本次访视SOD增加不小于5mm
|
// 本次访视SOD与触发iRECIST访视相比本次访视SOD增加不小于5mm
|
||||||
SODAddGreaterThan5 = await GetSODData(inDto) - (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == lastVisitTaskId && x.ReadingQuestionTrialId == sodQuestionId)
|
SODTiggerAddGreaterThan5 = firstChangeTaskId==inDto.VisitTaskId ? false : await GetSODData(inDto) - (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == firstChangeTaskId && x.ReadingQuestionTrialId == sodQuestionId)
|
||||||
.Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0() >= 5,
|
.Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0() >= 5,
|
||||||
|
|
||||||
//比整体访视期间最低点SOD增加≥20 %
|
//比整体访视期间最低点SOD增加≥20 %
|
||||||
|
@ -1771,8 +1793,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
// 靶病灶疗效为 ICPD
|
// 靶病灶疗效为 ICPD
|
||||||
result = TargetAssessment.iCPD;
|
result = TargetAssessment.iCPD;
|
||||||
}
|
}
|
||||||
// else if (上一访视评估为iUPD&&本次访视SOD增加不小于5mm)
|
// else if (上一访视评估为iUPD&&与触发iRECIST访视相比本次访视SOD增加不小于5mm)
|
||||||
else if (resultData.LastTaskTarget.EqEnum(TargetAssessment.iUPD) && resultData.SODAddGreaterThan5)
|
else if (resultData.LastTaskTarget.EqEnum(TargetAssessment.iUPD) && resultData.SODTiggerAddGreaterThan5)
|
||||||
{
|
{
|
||||||
// 靶病灶疗效为 ICPD
|
// 靶病灶疗效为 ICPD
|
||||||
result = TargetAssessment.iCPD;
|
result = TargetAssessment.iCPD;
|
||||||
|
@ -2536,7 +2558,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// if(上一访视整体肿瘤评估评估为iCPD && 靶病灶评估、非靶病灶评估或新病灶评估任一项为iCPD)
|
/// if(上一访视整体肿瘤评估评估为iCPD && 靶病灶评估、非靶病灶评估或新病灶评估任一项为iCPD或iCPD)
|
||||||
/// {
|
/// {
|
||||||
/// 疗效为 iCPD
|
/// 疗效为 iCPD
|
||||||
/// }
|
/// }
|
||||||
|
@ -2610,11 +2632,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
LastTaskLesioniUPDOriCPD = lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.Tumor && (x.Answer.EqEnum(OverallAssessment.iCPD) || x.Answer.EqEnum(OverallAssessment.iUPD))),
|
LastTaskLesioniUPDOriCPD = lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.Tumor && (x.Answer.EqEnum(OverallAssessment.iCPD) || x.Answer.EqEnum(OverallAssessment.iUPD))),
|
||||||
};
|
};
|
||||||
|
|
||||||
// if(上一访视整体肿瘤评估评估为iCPD && 靶病灶评估、非靶病灶评估或新病灶评估任一项为iCPD)
|
// if(上一访视整体肿瘤评估评估为iCPD && 靶病灶评估、非靶病灶评估或新病灶评估任一项为iCPD或iCPD)
|
||||||
if (lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.Tumor && x.Answer.EqEnum(OverallAssessment.iCPD))
|
if (lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.Tumor && x.Answer.EqEnum(OverallAssessment.iCPD))
|
||||||
&& (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.TargetLesion && x.Answer.EqEnum(TargetAssessment.iCPD))
|
&& (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.TargetLesion && (x.Answer.EqEnum(TargetAssessment.iCPD)||x.Answer.EqEnum(TargetAssessment.iUPD)))
|
||||||
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NoTargetLesion && x.Answer.EqEnum(NoTargetAssessment.iCPD))
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NoTargetLesion && (x.Answer.EqEnum(NoTargetAssessment.iCPD) || x.Answer.EqEnum(NoTargetAssessment.iUPD)))
|
||||||
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewLesionEvaluation && x.Answer.EqEnum(NewLesionAssessment.iCPD))))
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewLesionEvaluation&& (x.Answer.EqEnum(NewLesionAssessment.iCPD) || x.Answer.EqEnum(NewLesionAssessment.iUPD)))))
|
||||||
{
|
{
|
||||||
// 疗效为 iCPD
|
// 疗效为 iCPD
|
||||||
result = OverallAssessment.iCPD;
|
result = OverallAssessment.iCPD;
|
||||||
|
|
Loading…
Reference in New Issue