Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
commit
fea108371f
|
@ -2634,7 +2634,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
ExistxIRECISTNewLesion = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TriggeringIRECSIT).SelectMany(x => x.TableRowInfoList).SelectMany(x=>x.TableQuestionList).Any(x => x.QuestionMark == QuestionMark.State && (x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITState.Exist)||x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITState.Equivocal))),
|
ExistxIRECISTNewLesion = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TriggeringIRECSIT).SelectMany(x => x.TableRowInfoList).SelectMany(x=>x.TableQuestionList).Any(x => x.QuestionMark == QuestionMark.State && (x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITState.Exist)||x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITState.Equivocal))),
|
||||||
};
|
};
|
||||||
|
|
||||||
// if(新靶病灶为ND&&新非靶病灶为ND&&其它既往新病灶为ND&&不存在触发iRECIST后新病灶)
|
// if(新靶病灶为ND && 新非靶病灶为ND && 其它既往新病灶为ND && 不存在触发iRECIST后新病灶)
|
||||||
if(inDto.QuestionInfo.Any(x=>x.QuestionType==QuestionType.NewTargetLesion&&x.Answer.EqEnum(NewTargetLesionAssessment.ND))
|
if(inDto.QuestionInfo.Any(x=>x.QuestionType==QuestionType.NewTargetLesion&&x.Answer.EqEnum(NewTargetLesionAssessment.ND))
|
||||||
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && x.Answer.EqEnum(NewNoTargetLesionAssessment.ND))
|
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && x.Answer.EqEnum(NewNoTargetLesionAssessment.ND))
|
||||||
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && x.Answer.EqEnum(OtherPreviousNewLesionAssessment.ND))
|
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && x.Answer.EqEnum(OtherPreviousNewLesionAssessment.ND))
|
||||||
|
@ -2650,39 +2650,40 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
// 疗效为 iCPD
|
// 疗效为 iCPD
|
||||||
result = NewLesionAssessment.iCPD;
|
result = NewLesionAssessment.iCPD;
|
||||||
}
|
}
|
||||||
// else if (前一访视新病灶评估为iCPD && (新靶病灶有存在病灶 || 新非靶病灶有存在状态病灶 || 其它既往新病灶有存在的病灶 || 触发iRECIST后新病灶有存在病灶))
|
// else if (前一访视新病灶评估为iCPD && (新靶病灶评估为iCPD或iUPD || 新非靶病灶评估为iCPD或iUPD || 其它既往新病灶评估为iUPD || 触发iRECIST后新病灶评估为是))
|
||||||
else if(data.LastTaskNewLesioniCPD &&
|
else if (data.LastTaskNewLesioniCPD &&
|
||||||
(inDto.QuestionInfo.Where(x => x.LesionType == LesionType.NewTargetLesion).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList).Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(NewTargetLesionState.Exist))
|
(
|
||||||
|| inDto.QuestionInfo.Where(x => x.LesionType == LesionType.NewNonTargetLesion).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList).Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(NewNoTargetLesionState.Exist))
|
inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewTargetLesion && (x.Answer.EqEnum(NewTargetLesionAssessment.iCPD)|| x.Answer.EqEnum(NewTargetLesionAssessment.iUPD)))
|
||||||
|| inDto.QuestionInfo.Where(x => x.LesionType == LesionType.OtherPreviousNewLesion).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList).Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(OtherPreviousNewLesionState.Exists))
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && (x.Answer.EqEnum(NewNoTargetLesionAssessment.iCPD)|| x.Answer.EqEnum(NewNoTargetLesionAssessment.iUPD)))
|
||||||
|| inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TriggeringIRECSIT).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList).Any(x => x.QuestionMark == QuestionMark.State && x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITState.Exist))
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && x.Answer.EqEnum(OtherPreviousNewLesionAssessment.iUPD))
|
||||||
)
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.IRECISTNewTargetLesion && x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITAssessment.Yes))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// 疗效为 iCPD
|
// 疗效为 iCPD
|
||||||
result = NewLesionAssessment.iCPD;
|
result = NewLesionAssessment.iCPD;
|
||||||
}
|
}
|
||||||
// else if (前一访视新病灶评估为iUPD && 新靶病灶上个访视评估为NE,本次访视评估为iUPD)
|
// else if (前一访视新病灶评估为iUPD && 新靶病灶上个访视评估为NE或ND,本次访视评估为iUPD)
|
||||||
else if(data.LastTaskNewLesioniUPD &&
|
else if (data.LastTaskNewLesioniUPD &&
|
||||||
lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewTargetLesion && x.Answer.EqEnum(NewTargetLesionAssessment.NE))
|
lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewTargetLesion &&( x.Answer.EqEnum(NewTargetLesionAssessment.NE)|| x.Answer.EqEnum(NewTargetLesionAssessment.ND)))
|
||||||
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewTargetLesion && x.Answer.EqEnum(NewTargetLesionAssessment.iUPD))
|
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewTargetLesion && x.Answer.EqEnum(NewTargetLesionAssessment.iUPD))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// 疗效为 iCPD
|
// 疗效为 iCPD
|
||||||
result = NewLesionAssessment.iCPD;
|
result = NewLesionAssessment.iCPD;
|
||||||
}
|
}
|
||||||
// else if (前一访视新病灶评估为iUPD && 新非靶病灶上个访视评估为NE,本次访视评估为iUPD)
|
// else if (前一访视新病灶评估为iUPD && 新非靶病灶上个访视评估为NE或ND,本次访视评估为iUPD)
|
||||||
else if(data.LastTaskNewLesioniUPD
|
else if (data.LastTaskNewLesioniUPD
|
||||||
&& lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && x.Answer.EqEnum(NewNoTargetLesionAssessment.NE))
|
&& lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && (x.Answer.EqEnum(NewNoTargetLesionAssessment.NE)|| x.Answer.EqEnum(NewNoTargetLesionAssessment.ND)))
|
||||||
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && x.Answer.EqEnum(NewNoTargetLesionAssessment.iUPD))
|
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && x.Answer.EqEnum(NewNoTargetLesionAssessment.iUPD))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// 疗效为 iCPD
|
// 疗效为 iCPD
|
||||||
result = NewLesionAssessment.iCPD;
|
result = NewLesionAssessment.iCPD;
|
||||||
}
|
}
|
||||||
// else if (前一访视新病灶评估为iUPD && 其它既往新病灶上个访视评估为NE或疑似,本次访视评估为iUPD)
|
// else if (前一访视新病灶评估为iUPD && 其它既往新病灶上个访视评估为NE、ND或疑似,本次访视评估为iUPD)
|
||||||
else if (data.LastTaskNewLesioniUPD
|
else if (data.LastTaskNewLesioniUPD
|
||||||
&& lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && (x.Answer.EqEnum(OtherPreviousNewLesionAssessment.NE)|| x.Answer.EqEnum(OtherPreviousNewLesionAssessment.Equivocal)))
|
&& lastTaskCalculateDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && (x.Answer.EqEnum(OtherPreviousNewLesionAssessment.NE)|| x.Answer.EqEnum(OtherPreviousNewLesionAssessment.ND) || x.Answer.EqEnum(OtherPreviousNewLesionAssessment.Equivocal)))
|
||||||
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && x.Answer.EqEnum(OtherPreviousNewLesionAssessment.iUPD))
|
&& inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && x.Answer.EqEnum(OtherPreviousNewLesionAssessment.iUPD))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
@ -2698,8 +2699,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
// 疗效为 iCPD
|
// 疗效为 iCPD
|
||||||
result = NewLesionAssessment.iCPD;
|
result = NewLesionAssessment.iCPD;
|
||||||
}
|
}
|
||||||
// else if (新靶病灶评估为iUPD || 新非靶病灶评估为iUPD || 其它既往新病灶评估为iUPD || 触发iRECIST后新病灶评估上个访视评估为是)
|
// else if (新靶病灶评估为iUPD || 新非靶病灶评估为iUPD || 其它既往新病灶评估为iUPD || 触发iRECIST后新病灶评估为是)
|
||||||
else if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewTargetLesion && x.Answer.EqEnum(NewTargetLesionAssessment.iUPD))
|
else if (inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewTargetLesion && x.Answer.EqEnum(NewTargetLesionAssessment.iUPD))
|
||||||
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && x.Answer.EqEnum(NewNoTargetLesionAssessment.iUPD))
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.NewNoTargetLesion && x.Answer.EqEnum(NewNoTargetLesionAssessment.iUPD))
|
||||||
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && x.Answer.EqEnum(OtherPreviousNewLesionAssessment.iUPD))
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.OtherNewTargetLesion && x.Answer.EqEnum(OtherPreviousNewLesionAssessment.iUPD))
|
||||||
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.IRECISTNewTargetLesion && x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITAssessment.Yes))
|
|| inDto.QuestionInfo.Any(x => x.QuestionType == QuestionType.IRECISTNewTargetLesion && x.Answer.EqEnum(NewLesionAfterTriggeringiRECSITAssessment.Yes))
|
||||||
|
|
|
@ -965,8 +965,16 @@ namespace IRaCIS.Core.Application
|
||||||
return ResponseOutput.NotOk(_localizer["TrialConfig_ProjectNotInitialized"]);
|
return ResponseOutput.NotOk(_localizer["TrialConfig_ProjectNotInitialized"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var clinicalDataTrialSetDataList = await _clinicalDataTrialSetRepository.Where(x => trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Include(x => x.TrialClinicalDataSetCriteriaList).ToListAsync();
|
||||||
|
foreach (var item in clinicalDataTrialSetDataList)
|
||||||
|
{
|
||||||
|
var clinicalids = item.TrialClinicalDataSetCriteriaList.Select(x => x.TrialReadingCriterionId).ToList();
|
||||||
|
if (clinicalids.Intersect(trialConfig.TrialCriterionIds).ToList().Count() == 0)
|
||||||
|
{
|
||||||
|
throw new BusinessValidationFailedException(_localizer["TrialConfig_NoCriteriaClinicalData"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync();
|
var trialInfo = await _trialRepository.Where(t => t.Id == trialConfig.TrialId, true).Include(t => t.TrialDicList.Where(u => u.KeyName == StaticData.Criterion)).FirstOrDefaultAsync();
|
||||||
if (trialInfo == null) return Null404NotFound(trialInfo);
|
if (trialInfo == null) return Null404NotFound(trialInfo);
|
||||||
|
|
Loading…
Reference in New Issue