全局 肿瘤学阅片任务稽查完成
parent
a5ce050dd8
commit
6148b40d70
|
@ -217,6 +217,11 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public List<TaskInfluence> TaskInfluenceList { get; set; } = new List<TaskInfluence>();
|
public List<TaskInfluence> TaskInfluenceList { get; set; } = new List<TaskInfluence>();
|
||||||
|
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
//对于全局任务而言 才可以用的 关联的访视阅片结果
|
||||||
|
public List<ReadingGlobalTaskInfo> GlobalVisitResultList { get; set; } = new List<ReadingGlobalTaskInfo>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,25 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
|
|
||||||
public Guid TaskId { get; set; }
|
public Guid TaskId { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("TaskId")]
|
||||||
|
public VisitTask VisitTask { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("GlobalTaskId")]
|
||||||
|
public VisitTask GlobalVisitTask { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 问题ID
|
/// 问题ID
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid? QuestionId { get; set; }
|
public Guid? QuestionId { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("QuestionId")]
|
||||||
|
public ReadingQuestionTrial TrialReadingQuestion { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 问题答案
|
/// 问题答案
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -56,6 +56,14 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Guid SubjectId { get; set; }
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("OncologyTaskId")]
|
||||||
|
public VisitTask OncologyVisitTask { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("VisitTaskId")]
|
||||||
|
public VisitTask VisitTask { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,8 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
[ForeignKey("ReadingQuestionTrialId")]
|
[ForeignKey("ReadingQuestionTrialId")]
|
||||||
public ReadingQuestionTrial ReadingQuestionTrial { get; set; }
|
public ReadingQuestionTrial ReadingQuestionTrial { get; set; }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -281,6 +281,63 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#region 肿瘤学阅片结果 记录表格
|
||||||
|
|
||||||
|
//if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingOncologyTaskInfo)))
|
||||||
|
//{
|
||||||
|
// var type = AuditOpt.Add;
|
||||||
|
|
||||||
|
// var oncologyAnswerList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingOncologyTaskInfo)).Select(t => t.Entity as ReadingOncologyTaskInfo);
|
||||||
|
|
||||||
|
// var visitTaskIdList = oncologyAnswerList.Select(t => t.VisitTaskId).ToList();
|
||||||
|
|
||||||
|
// var visitTaskList = await _dbContext.VisitTask.Where(t => visitTaskIdList.Contains(t.Id)).Select(t => new { VisitTaskId = t.Id, t.TaskName, t.TaskBlindName, t.VisitTaskNum, t.SubjectId }).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// var modifyVisitList = await _dbContext.ReadingGlobalTaskInfo.Where(t => visitTaskIdList.Contains(t.TaskId) && t.VisitTask.TaskState == TaskState.Effect).GroupBy(t => t.TaskId).Select(g => new
|
||||||
|
// {
|
||||||
|
// VisitTaskId = g.Key,
|
||||||
|
// GlobalResult = g.Select(c => new { c.Answer, c.QuestionId })
|
||||||
|
// }).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
// //var oncologyAnswerVisitList = visitTaskList.Join(oncologyAnswerList, t => t.VisitTaskId, u => u.VisitTaskId, (t, u) => new { t.VisitTaskId, t.TaskBlindName, t.TaskName, u.EvaluationReason, u.EvaluationResult }).ToList();
|
||||||
|
|
||||||
|
// var query = from answer in oncologyAnswerList
|
||||||
|
// join visitTask in visitTaskList on answer.VisitTaskId equals visitTask.VisitTaskId
|
||||||
|
// join modifyVisit in modifyVisitList on answer.VisitTaskId equals modifyVisit.VisitTaskId into cc
|
||||||
|
// from modifyVisit in cc.DefaultIfEmpty()
|
||||||
|
// select new
|
||||||
|
// {
|
||||||
|
// visitTask.TaskBlindName,
|
||||||
|
// visitTask.TaskName,
|
||||||
|
// answer.EvaluationReason,
|
||||||
|
// answer.EvaluationResult,
|
||||||
|
// IsGlobalModify = modifyVisit != null,
|
||||||
|
// Reason = modifyVisit != null ? modifyVisit.GlobalResult.Where(t => t.QuestionId == null).FirstOrDefault()?.Answer : String.Empty
|
||||||
|
// };
|
||||||
|
// var result = query.ToList();
|
||||||
|
|
||||||
|
|
||||||
|
// var oncologyAnswer = oncologyAnswerList.First();
|
||||||
|
|
||||||
|
// var cloneEntity = oncologyAnswer.Clone();
|
||||||
|
|
||||||
|
// cloneEntity.Id = NewId.NextGuid();
|
||||||
|
|
||||||
|
// await InsertInspection<ReadingOncologyTaskInfo>(oncologyAnswer, type, x => new InspectionConvertDTO()
|
||||||
|
// {
|
||||||
|
// VisitTaskId = oncologyAnswer.VisitTaskId,
|
||||||
|
|
||||||
|
// ObjectRelationParentId = oncologyAnswer.VisitTaskId,
|
||||||
|
|
||||||
|
// }, new { OncologyAnswerList = result });
|
||||||
|
//}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
// 全局 阅片结果
|
// 全局 阅片结果
|
||||||
if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingGlobalTaskInfo)))
|
if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingGlobalTaskInfo)))
|
||||||
{
|
{
|
||||||
|
@ -327,7 +384,113 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//任务
|
||||||
|
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(VisitTask)))
|
||||||
|
{
|
||||||
|
var type = GetEntityAuditOpt(item);
|
||||||
|
|
||||||
|
var entity = item.Entity as VisitTask;
|
||||||
|
|
||||||
|
var obj = new object() { };
|
||||||
|
|
||||||
|
//裁判任务
|
||||||
|
if (entity.JudgeResultTaskId != null && _userInfo.RequestUrl == "ReadingImageTask/saveJudgeVisitTaskResult")
|
||||||
|
{
|
||||||
|
var list = await _dbContext.VisitTask.Where(t => t.TaskState == TaskState.Effect && t.SubjectId == entity.SubjectId && t.VisitTaskNum == entity.VisitTaskNum).Select(t => new { t.Id, t.DoctorUser.FullName, t.ArmEnum }).OrderBy(t => t.ArmEnum).ToListAsync();
|
||||||
|
|
||||||
|
var r1 = list.First();
|
||||||
|
var r2 = list.Last();
|
||||||
|
|
||||||
|
|
||||||
|
obj = new { R1 = r1.FullName, R2 = r2.FullName, SelectResult = entity.ArmEnum == r1.ArmEnum ? "R1" : "R2" };
|
||||||
|
}
|
||||||
|
|
||||||
|
//肿瘤学任务
|
||||||
|
|
||||||
|
//if (_userInfo.RequestUrl == "ReadingImageTask/setOncologyReadingInfo")
|
||||||
|
|
||||||
|
if (entity.ReadingTaskState == ReadingTaskState.HaveSigned && _userInfo.RequestUrl == "ReadingImageTask/SubmitOncologyReadingInfo")
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var oncologyAnswerList = await _dbContext.ReadingOncologyTaskInfo.Where(t => t.OncologyTaskId == entity.Id).Select(t => new { t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.EvaluationReason, t.EvaluationResult, t.VisitTask.VisitTaskNum, VisitTaskId = t.VisitTask.Id }).ToListAsync();
|
||||||
|
|
||||||
|
var golbalTaskInfo = await _dbContext.VisitTask.Where(t => t.SubjectId == entity.SubjectId && t.ReadingCategory == ReadingCategory.Global && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == entity.IsAnalysisCreate && t.VisitTaskNum == (entity.VisitTaskNum - ReadingCommon.TaskNumDic[ReadingCategory.Oncology] + ReadingCommon.TaskNumDic[ReadingCategory.Global])).Select(t => new { GlobalTaskId = t.Id }).FirstNotNullAsync();
|
||||||
|
|
||||||
|
|
||||||
|
var globalResultList = await _dbContext.ReadingGlobalTaskInfo.Where(t => t.GlobalTaskId == golbalTaskInfo.GlobalTaskId).ToListAsync();
|
||||||
|
|
||||||
|
var modifyVisitList = globalResultList
|
||||||
|
.GroupBy(t => t.TaskId).Select(g => new
|
||||||
|
{
|
||||||
|
VisitTaskId = g.Key,
|
||||||
|
GlobalResult = g.Select(c => new { c.Answer, c.QuestionId })
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
var query = from answer in oncologyAnswerList
|
||||||
|
join modifyVisit in modifyVisitList on answer.VisitTaskId equals modifyVisit.VisitTaskId into cc
|
||||||
|
from modifyVisit in cc.DefaultIfEmpty()
|
||||||
|
select new
|
||||||
|
{
|
||||||
|
answer.TaskBlindName,
|
||||||
|
answer.TaskName,
|
||||||
|
answer.EvaluationReason,
|
||||||
|
answer.EvaluationResult,
|
||||||
|
IsGlobalModify = modifyVisit != null,
|
||||||
|
Reason = modifyVisit != null ? modifyVisit.GlobalResult.Where(t => t.QuestionId == null).FirstOrDefault()?.Answer : String.Empty
|
||||||
|
};
|
||||||
|
|
||||||
|
var result = query.ToList();
|
||||||
|
|
||||||
|
obj = new { OncologyAnswerList = result };
|
||||||
|
}
|
||||||
|
|
||||||
|
//全局任务
|
||||||
|
if (entity.ReadingTaskState == ReadingTaskState.HaveSigned && _userInfo.RequestUrl == "ReadingImageTask/SubmitGlobalReadingInfo")
|
||||||
|
{
|
||||||
|
|
||||||
|
var globalResultList = await _dbContext.ReadingGlobalTaskInfo.Where(t => t.GlobalTaskId == entity.Id).Select(t => new { VisitTaskId = t.TaskId, t.QuestionId, t.Answer, t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.TrialReadingQuestion.QuestionName }).ToListAsync();
|
||||||
|
|
||||||
|
var visitTaskIdList = globalResultList.Select(t => t.VisitTaskId).ToList();
|
||||||
|
|
||||||
|
var visitResultList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => visitTaskIdList.Contains(t.VisitTaskId) && t.ReadingQuestionTrial.IsJudgeQuestion).Select(t => new { t.VisitTaskId, t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.VisitTask.VisitTaskNum, t.ReadingQuestionTrial.QuestionName, t.ReadingQuestionTrial.ShowOrder, t.Answer, t.ReadingQuestionTrialId })
|
||||||
|
.OrderBy(t => t.VisitTaskNum).ToListAsync();
|
||||||
|
|
||||||
|
var query = visitResultList.GroupBy(t => new { t.VisitTaskId, t.VisitTaskNum, t.TaskName, t.TaskBlindName }).Select(g => new
|
||||||
|
{
|
||||||
|
VisitTaskId = g.Key.VisitTaskId,
|
||||||
|
VisitTaskNum = g.Key.VisitTaskNum,
|
||||||
|
TaskName = g.Key.TaskName,
|
||||||
|
TaskBlindName = g.Key.TaskBlindName,
|
||||||
|
|
||||||
|
VisitQuestionAnswerList = g.Select(u => new { u.QuestionName, u.Answer }).ToList(),
|
||||||
|
|
||||||
|
GlobalQuestionAnswerList = g.Select(u => new { u.QuestionName, Answer = globalResultList.Where(t => t.VisitTaskId == g.Key.VisitTaskId && t.QuestionId == u.ReadingQuestionTrialId).FirstOrDefault()?.Answer ?? String.Empty }).ToList(),
|
||||||
|
|
||||||
|
Reason = globalResultList.Where(t => t.VisitTaskId == g.Key.VisitTaskId && t.QuestionId == null).FirstOrDefault()?.Answer ?? String.Empty
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var result = query.ToList();
|
||||||
|
|
||||||
|
obj = new { GlobalAnswerList = result };
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
await InsertInspection<VisitTask>(entity, type, x => new InspectionConvertDTO()
|
||||||
|
{
|
||||||
|
VisitTaskId = x.Id,
|
||||||
|
|
||||||
|
IsDistinctionInterface = type == AuditOpt.Update ? true : false,
|
||||||
|
|
||||||
|
ObjectRelationParentId = entity.SourceSubjectVisitId != null ? entity.SourceSubjectVisitId : entity.SouceReadModuleId,
|
||||||
|
|
||||||
|
ObjectRelationParentId2 = entity.DoctorUserId
|
||||||
|
|
||||||
|
}, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1274,38 +1437,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
}, new { ArmToTask = entity.ArmEnum });
|
}, new { ArmToTask = entity.ArmEnum });
|
||||||
}
|
}
|
||||||
|
|
||||||
//任务
|
|
||||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(VisitTask)))
|
|
||||||
{
|
|
||||||
var type = GetEntityAuditOpt(item);
|
|
||||||
|
|
||||||
var entity = item.Entity as VisitTask;
|
|
||||||
|
|
||||||
var obj = new object() { };
|
|
||||||
|
|
||||||
if (entity.JudgeResultTaskId != null && _userInfo.RequestUrl == "ReadingImageTask/saveJudgeVisitTaskResult")
|
|
||||||
{
|
|
||||||
var list = await _dbContext.VisitTask.Where(t => t.TaskState == TaskState.Effect && t.SubjectId == entity.SubjectId && t.VisitTaskNum == entity.VisitTaskNum).Select(t => new { t.Id, t.DoctorUser.FullName, t.ArmEnum }).OrderBy(t => t.ArmEnum).ToListAsync();
|
|
||||||
|
|
||||||
var r1 = list.First();
|
|
||||||
var r2 = list.Last();
|
|
||||||
|
|
||||||
|
|
||||||
obj = new { R1 = r1.FullName, R2 = r2.FullName, SelectResult = entity.ArmEnum == r1.ArmEnum ? "R1" : "R2" };
|
|
||||||
}
|
|
||||||
|
|
||||||
await InsertInspection<VisitTask>(entity, type, x => new InspectionConvertDTO()
|
|
||||||
{
|
|
||||||
VisitTaskId = x.Id,
|
|
||||||
|
|
||||||
IsDistinctionInterface = type == AuditOpt.Update ? true : false,
|
|
||||||
|
|
||||||
ObjectRelationParentId = entity.SourceSubjectVisitId != null ? entity.SourceSubjectVisitId : entity.SouceReadModuleId,
|
|
||||||
|
|
||||||
ObjectRelationParentId2 = entity.DoctorUserId
|
|
||||||
|
|
||||||
}, obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
//申请重阅记录表
|
//申请重阅记录表
|
||||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(VisitTaskReReading)))
|
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(VisitTaskReReading)))
|
||||||
|
@ -1399,7 +1531,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
var from = await _dbContext.FrontAuditConfig.FirstOrDefaultAsync(x => x.Identification == inspection.Identification);
|
var from = await _dbContext.FrontAuditConfig.FirstOrDefaultAsync(x => x.Identification == inspection.Identification);
|
||||||
inspection.ObjectTypeId = from?.ObjectTypeId;
|
inspection.ObjectTypeId = from?.ObjectTypeId;
|
||||||
inspection.OptTypeId = from?.OptTypeId;
|
inspection.OptTypeId = from?.OptTypeId;
|
||||||
inspection.ChildrenTypeId = from?.ChildrenTypeId;
|
//inspection.ChildrenTypeId = from?.ChildrenTypeId;
|
||||||
inspection.ModuleTypeId = from?.ModuleTypeId;
|
inspection.ModuleTypeId = from?.ModuleTypeId;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -113,6 +113,9 @@ namespace IRaCIS.Core.Infra.EFCore
|
||||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.TaskInfluenceList).WithOne(s => s.OriginalTask).HasForeignKey(t => t.OriginalTaskId);
|
modelBuilder.Entity<VisitTask>().HasMany(t => t.TaskInfluenceList).WithOne(s => s.OriginalTask).HasForeignKey(t => t.OriginalTaskId);
|
||||||
|
|
||||||
|
|
||||||
|
modelBuilder.Entity<VisitTask>().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId);
|
||||||
|
|
||||||
|
//modelBuilder.Entity<ReadingGlobalTaskInfo>().HasOne(t=>t.TrialReadingQuestionAnswer).WithOne(t=>t.ReadingQuestionTrialId)
|
||||||
|
|
||||||
|
|
||||||
modelBuilder.Entity<Dictionary>().HasMany(t => t.ChildList).WithOne(t => t.Parent);
|
modelBuilder.Entity<Dictionary>().HasMany(t => t.ChildList).WithOne(t => t.Parent);
|
||||||
|
|
Loading…
Reference in New Issue