修改退回

Uat_Study
hang 2023-03-24 10:57:19 +08:00
parent 6f3065f7a6
commit 0d8bb7de6a
3 changed files with 64 additions and 4 deletions

View File

@ -65,7 +65,7 @@ namespace IRaCIS.Core.Application.Service
{ {
GroupId=gropId, GroupId=gropId,
LimitEdit=LimitEdit.OnlyBaseLine, LimitEdit=LimitEdit.OnlyBaseLine,
DictionaryCode="ReadingYesOrNo", DictionaryCode="YesOrNoOrNa",
IsJudgeQuestion=false, IsJudgeQuestion=false,
IsShowInDicom=false, IsShowInDicom=false,
GlobalReadingShowType=GlobalReadingShowType.NotShow, GlobalReadingShowType=GlobalReadingShowType.NotShow,

View File

@ -173,13 +173,13 @@ namespace IRaCIS.Core.Application.Service
FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) FinalTranslateDictionaryCode = nameof(BrainMetastasisResult)
}); });
} }
else if (item.ReadingEvaluationList.First().Answer != item.ReadingEvaluationList.Last().Answer) else if (item.ReadingEvaluationList.First().Answer != item.ReadingEvaluationList.Last().Answer && item.ReadingEvaluationList.Any(t => t.Answer == 1.ToString()))
{ {
item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = item.ReadingEvaluationList.First().QuestionId, Answer = ((int)BrainMetastasisResult.Maybe).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) }); item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = item.ReadingEvaluationList.First().QuestionId, Answer = ((int)BrainMetastasisResult.Maybe).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) });
} }
else else
{ {
item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = addtionalQustionInfoList.FirstOrDefault()?.QuestionId, Answer = ((int)BrainMetastasisResult.Unknown).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) });
} }
} }
@ -203,7 +203,7 @@ namespace IRaCIS.Core.Application.Service
} }
else else
{ {
item.FinalEvaluationList.Add(new EvaluationInfo() { QuestionId = addtionalQustionInfoList.FirstOrDefault()?.QuestionId, Answer = ((int)BrainMetastasisResult.Unknown).ToString(), FinalTranslateDictionaryCode = nameof(BrainMetastasisResult) });
} }
} }
else else
@ -591,6 +591,8 @@ namespace IRaCIS.Core.Application.Service
var filterExpression = await GetTaskExpressionAsync(command); var filterExpression = await GetTaskExpressionAsync(command);
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == command.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
var subjectVisit = await _subjectVisitRepository.FindAsync(command.SubjectVisitId); var subjectVisit = await _subjectVisitRepository.FindAsync(command.SubjectVisitId);
if (await _visitTaskReReadingRepository.AnyAsync(t => t.RequestReReadingType == RequestReReadingType.DocotorApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default && if (await _visitTaskReReadingRepository.AnyAsync(t => t.RequestReReadingType == RequestReReadingType.DocotorApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default &&
@ -602,6 +604,50 @@ namespace IRaCIS.Core.Application.Service
var list = await _visitTaskRepository.Where(filterExpression) var list = await _visitTaskRepository.Where(filterExpression)
.OrderBy(t => t.VisitTaskNum).ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync(); .OrderBy(t => t.VisitTaskNum).ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync();
foreach (var influenceTask in list)
{
//有序
if (criterionConfig.IsReadingTaskViewInOrder)
{
//申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配
if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != subjectVisit.VisitNum)
{
//后续访视处理访视
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
{
influenceTask.OptType = ReReadingOrBackOptType.Return;
}
else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
{
influenceTask.OptType = ReReadingOrBackOptType.Abandon;
}
else
{
influenceTask.OptType = ReReadingOrBackOptType.CancelAssign;
}
}
else
{
//申请的访视 全局肿瘤学
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
{
influenceTask.OptType = ReReadingOrBackOptType.Return;
}
else
{
influenceTask.OptType = ReReadingOrBackOptType.Abandon;
}
}
}
//无序
else
{
//重阅重置或者失效
influenceTask.OptType = influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned ? ReReadingOrBackOptType.Return : ReReadingOrBackOptType.Abandon;
}
}
return (list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced }); return (list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced });
} }
@ -696,6 +742,11 @@ namespace IRaCIS.Core.Application.Service
var taskIdList = influenceTaskList.Select(t => t.Id).ToList(); var taskIdList = influenceTaskList.Select(t => t.Id).ToList();
var subjectVisitIdLsit = influenceTaskList.Where(t => t.SourceSubjectVisitId != null).Select(t => t.SourceSubjectVisitId).ToList(); var subjectVisitIdLsit = influenceTaskList.Where(t => t.SourceSubjectVisitId != null).Select(t => t.SourceSubjectVisitId).ToList();
if (subjectVisitIdLsit.Count == 0)
{
subjectVisitIdLsit.Add(command.SubjectVisitId);
}
//医学审核任务失效 //医学审核任务失效
await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.VisitTaskId) && t.AuditState != MedicalReviewAuditState.HaveSigned, u => new TaskMedicalReview() { IsInvalid = true }); await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.VisitTaskId) && t.AuditState != MedicalReviewAuditState.HaveSigned, u => new TaskMedicalReview() { IsInvalid = true });

View File

@ -22,6 +22,15 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore] [JsonIgnore]
public SubjectVisit SubjectVisit { get; set; } public SubjectVisit SubjectVisit { get; set; }
[ForeignKey("SeriesId")]
[JsonIgnore]
public DicomSeries Series { get; set; }
[ForeignKey("StudyId")]
[JsonIgnore]
public DicomStudy Study { get; set; }
public Guid TrialReadingCriterionId { get; set; } public Guid TrialReadingCriterionId { get; set; }
public Guid SubjectVisitId { get; set; } public Guid SubjectVisitId { get; set; }