修改一致性分析
parent
e73a27b619
commit
e5a3dce331
|
@ -41,6 +41,9 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
[NotDefault]
|
||||
public Guid TaskConsistentRuleId { get; set; }
|
||||
|
||||
//[NotDefault]
|
||||
//public Guid TrialReadingCriterionId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class GroupConsistentQuery : PageInput
|
||||
|
@ -264,10 +267,15 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
///<summary>TaskConsistentRuleQuery 列表查询参数模型</summary>
|
||||
public class TaskConsistentRuleQuery
|
||||
{
|
||||
[NotDefault]
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public bool IsSelfAnalysis { get; set; }
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
///<summary> TaskConsistentRuleAddOrEdit 列表查询参数模型</summary>
|
||||
|
@ -287,6 +295,8 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
public int BlindSubjectNumberOfPlaces { get; set; }
|
||||
public string BlindTrialSiteCode { get; set; } = string.Empty;
|
||||
|
||||
[NotDefault]
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -72,6 +72,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId)
|
||||
.Where(t => t.IsAnalysisCreate)
|
||||
|
||||
.WhereIf(queryVisitTask.TrialReadingCriterionId != null, t => t.TrialReadingCriterionId == queryVisitTask.TrialReadingCriterionId)
|
||||
|
||||
.WhereIf(queryVisitTask.SiteId != null, t => t.Subject.SiteId == queryVisitTask.SiteId)
|
||||
.WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId)
|
||||
.WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState)
|
||||
|
@ -386,9 +388,11 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
var trialId = filterObj.TrialId;
|
||||
|
||||
var trialReadingCriterionId = filterObj.TrialReadingCriterionId;
|
||||
|
||||
#region Subejct 维度
|
||||
|
||||
Expression<Func<VisitTask, bool>> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned &&
|
||||
Expression<Func<VisitTask, bool>> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId== trialReadingCriterionId &&
|
||||
u.SignTime!.Value.AddDays(filterObj.IntervalWeeks * 7) < DateTime.Now && (u.ReReadingApplyState == ReReadingApplyState.Default || u.ReReadingApplyState == ReReadingApplyState.Reject) && u.DoctorUserId == doctorUserId;
|
||||
|
||||
|
||||
|
@ -426,9 +430,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
TrialSiteCode = t.TrialSite.TrialSiteCode,
|
||||
SubjectId = t.Id,
|
||||
|
||||
BlindSubjectCode = t.SubjectVisitTaskList.Where(t => t.IsAnalysisCreate).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault(),
|
||||
BlindSubjectCode = t.SubjectVisitTaskList.Where(t => t.IsAnalysisCreate && t.TrialReadingCriterionId == trialReadingCriterionId).OrderByDescending(t => t.BlindSubjectCode).Select(t => t.BlindSubjectCode).FirstOrDefault(),
|
||||
|
||||
IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.DoctorUserId == doctorUserId && c.IsSelfAnalysis == true),
|
||||
IsHaveGeneratedTask = t.SubjectVisitTaskList.Any(c => c.DoctorUserId == doctorUserId && c.IsSelfAnalysis == true && c.TrialReadingCriterionId==trialReadingCriterionId),
|
||||
|
||||
|
||||
ValidVisitCount = t.SubjectVisitTaskList.AsQueryable().Where(visitTaskFilter).Count(),
|
||||
|
@ -484,11 +488,13 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
|
||||
var trialId = filterObj.TrialId;
|
||||
var trialReadingCriterionId = filterObj.TrialReadingCriterionId;
|
||||
|
||||
var trialConfig = (await _repository.Where<Trial>(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.ReadingType, t.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||
|
||||
|
||||
|
||||
Expression<Func<VisitTask, bool>> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned
|
||||
Expression<Func<VisitTask, bool>> comonTaskFilter = u => u.TrialId == trialId && u.IsAnalysisCreate == false && u.TaskState == TaskState.Effect && u.ReadingTaskState == ReadingTaskState.HaveSigned && u.TrialReadingCriterionId == trialReadingCriterionId
|
||||
&& (u.ReReadingApplyState == ReReadingApplyState.Default || u.ReReadingApplyState == ReReadingApplyState.Reject);
|
||||
|
||||
|
||||
|
@ -572,7 +578,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
[HttpPost]
|
||||
public async Task<TaskConsistentRuleBasic?> GetConsistentRule(TaskConsistentRuleQuery inQuery)
|
||||
{
|
||||
return await _taskConsistentRuleRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsSelfAnalysis == inQuery.IsSelfAnalysis).ProjectTo<TaskConsistentRuleBasic>(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
|
||||
return await _taskConsistentRuleRepository.Where(t => t.TrialId == inQuery.TrialId && t.IsSelfAnalysis == inQuery.IsSelfAnalysis && t.TrialReadingCriterionId==inQuery.TrialReadingCriterionId).ProjectTo<TaskConsistentRuleBasic>(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -645,13 +651,13 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
var verifyExp1 = new EntityVerifyExp<TaskConsistentRule>()
|
||||
{
|
||||
VerifyExp = t => t.TrialId == addOrEditTaskConsistentRule.TrialId && t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis,
|
||||
VerifyExp = t => t.TrialId == addOrEditTaskConsistentRule.TrialId && t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis && t.TrialReadingCriterionId==addOrEditTaskConsistentRule.TrialReadingCriterionId,
|
||||
VerifyMsg = "已有该项目配置,不允许继续增加"
|
||||
};
|
||||
|
||||
if (await _visitTaskRepository.AnyAsync(t => t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis && t.TrialId == addOrEditTaskConsistentRule.TrialId))
|
||||
if (await _visitTaskRepository.AnyAsync(t => t.IsSelfAnalysis == addOrEditTaskConsistentRule.IsSelfAnalysis && t.TrialId == addOrEditTaskConsistentRule.TrialId && t.TrialReadingCriterionId == addOrEditTaskConsistentRule.TrialReadingCriterionId))
|
||||
{
|
||||
return ResponseOutput.NotOk("已有Subject 生成了任务,不允许修改配置");
|
||||
return ResponseOutput.NotOk("该标准已有Subject 生成了任务,不允许修改配置");
|
||||
}
|
||||
|
||||
var entity = await _taskConsistentRuleRepository.InsertOrUpdateAsync(addOrEditTaskConsistentRule, true, verifyExp1);
|
||||
|
@ -667,9 +673,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
var config = await _taskConsistentRuleRepository.FirstOrDefaultAsync(t => t.Id == taskConsistentRuleId);
|
||||
|
||||
|
||||
if (await _visitTaskRepository.AnyAsync(t => t.IsAnalysisCreate && t.TrialId == config.TrialId && t.IsSelfAnalysis == config.IsSelfAnalysis))
|
||||
if (await _visitTaskRepository.AnyAsync(t => t.IsAnalysisCreate && t.TrialId == config.TrialId && t.IsSelfAnalysis == config.IsSelfAnalysis && t.TrialReadingCriterionId==config.TrialReadingCriterionId))
|
||||
{
|
||||
throw new BusinessValidationFailedException("已产生一致性分析任务,不允许删除");
|
||||
throw new BusinessValidationFailedException("该标准已产生一致性分析任务,不允许删除");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2562,7 +2562,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
var list = await _visitTaskRepository.Where(filterExpression)
|
||||
//IR 申请的时候,仅仅看到影响自己的
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer, t => t.DoctorUserId == _userInfo.Id)
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer, t => t.DoctorUserId == _userInfo.Id
|
||||
.OrderBy(t => t.VisitTaskNum).ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
#region 影响后的操作
|
||||
|
@ -2582,14 +2582,18 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
{
|
||||
influenceTask.OptType = ReReadingOrBackOptType.Return;
|
||||
}
|
||||
else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
|
||||
else
|
||||
{
|
||||
influenceTask.OptType = ReReadingOrBackOptType.Abandon;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new BusinessValidationFailedException("IR 申请重阅,不会影响到后续未读的任务,当前影响列表有未读的任务,请核查");
|
||||
}
|
||||
//else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
|
||||
//{
|
||||
// influenceTask.OptType = ReReadingOrBackOptType.Abandon;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// throw new BusinessValidationFailedException("IR 申请重阅,不会影响到后续未读的任务,当前影响列表有未读的任务,请核查");
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -62,6 +62,13 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public string Note { get; set; }
|
||||
|
||||
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[ForeignKey("TrialReadingCriterionId")]
|
||||
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
|
||||
|
||||
|
||||
//[Projectable]
|
||||
//public List<VisitTask> DoctorConsistentTaskList => DoctorVisitTaskList.Where(t => t.IsAnalysisCreate && t.TaskConsistentRuleId == Id).ToList();
|
||||
}
|
||||
|
|
|
@ -80,6 +80,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[ForeignKey("TrialReadingCriterionId")]
|
||||
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
|
||||
|
||||
|
|
Loading…
Reference in New Issue