修改导出 患者裁判率
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
30f41ba270
commit
e147c2a370
|
@ -2413,7 +2413,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
// 有阅片期没有全局 和有阅片期有全局,主要变化点在于 t.ReadingCategory == ReadingCategory.Global 变成了 t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId==trialReadingCriterionId)
|
// 有阅片期没有全局 和有阅片期有全局,主要变化点在于 t.ReadingCategory == ReadingCategory.Global 变成了 t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId==trialReadingCriterionId)
|
||||||
// 或者使用 isGlobalReading ? t.ReadModule.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) : t.SourceSubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum)
|
// 或者使用 isGlobalReading ? t.ReadModule.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) : t.SourceSubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum)
|
||||||
|
|
||||||
#region 可以统一部分
|
#region 患者统计部分
|
||||||
|
|
||||||
//1、裁判量M:所有完成阅片病例 最后一个阅片期触发裁判的受试者数量;
|
//1、裁判量M:所有完成阅片病例 最后一个阅片期触发裁判的受试者数量;
|
||||||
//2、总样本量N:R1,R2均完成阅片(至少一个阅片期)的受试者数量;
|
//2、总样本量N:R1,R2均完成阅片(至少一个阅片期)的受试者数量;
|
||||||
|
@ -2434,6 +2434,34 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
.Any(g => g.Any(t => t.JudgeVisitTaskId != null)))
|
.Any(g => g.Any(t => t.JudgeVisitTaskId != null)))
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
|
exportInfo.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
//筛选全局 已完成的任务
|
||||||
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
|
.GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
|
||||||
|
.Select(g => new DoctorJudgeRatio()
|
||||||
|
{
|
||||||
|
DoctorUserId = g.Key.DoctorUserId,
|
||||||
|
UserName = g.Key.UserName,
|
||||||
|
FullName = g.Key.FullName,
|
||||||
|
|
||||||
|
//最后一个阅片期触发裁判 且裁判已阅
|
||||||
|
TotalJudgeCount = g.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
.Where(t => t.VisitTaskNum == g.Where(c => c.SubjectId == t.SubjectId && c.JudgeVisitTaskId != null && c.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
.Max(t => t.VisitTaskNum))
|
||||||
|
.Select(t => t.SubjectId).Distinct().Count(),
|
||||||
|
|
||||||
|
// G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准
|
||||||
|
JudgeAgreeCount = g.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
.Where(t => t.VisitTaskNum == g.Where(c => c.SubjectId == t.SubjectId && c.JudgeVisitTaskId != null && c.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
.Max(t => t.VisitTaskNum))
|
||||||
|
.Where(t => t.JudgeVisitTask.JudgeResultTaskId == t.Id)
|
||||||
|
.Select(t => t.SubjectId).Distinct().Count(),
|
||||||
|
|
||||||
|
}).ToList();
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 阅片期部分
|
||||||
|
|
||||||
exportInfo.ReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
exportInfo.ReadingPeriodCount = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
//找到阅片期已阅片完
|
//找到阅片期已阅片完
|
||||||
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId))
|
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId))
|
||||||
|
@ -2475,91 +2503,8 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
if (criterion.IsGlobalReading)
|
|
||||||
{
|
|
||||||
|
|
||||||
#region 按照受试者维度统计
|
|
||||||
|
|
||||||
exportInfo.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
|
|
||||||
.Select(g => new DoctorJudgeRatio()
|
|
||||||
{
|
|
||||||
DoctorUserId = g.Key.DoctorUserId,
|
|
||||||
UserName = g.Key.UserName,
|
|
||||||
FullName = g.Key.FullName,
|
|
||||||
|
|
||||||
//最后一个阅片期触发裁判 且裁判已阅
|
|
||||||
TotalJudgeCount = g
|
|
||||||
.Where(t => t.ReadingCategory == ReadingCategory.Global)
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Where(t => t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global)
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Max(t => t.VisitTaskNum))
|
|
||||||
.Select(t => t.SubjectId).Distinct().Count(),
|
|
||||||
|
|
||||||
// G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准
|
|
||||||
JudgeAgreeCount = g
|
|
||||||
.Where(t => t.ReadingCategory == ReadingCategory.Global)
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Where(t => t.VisitTaskNum == g.Where(t => t.ReadingCategory == ReadingCategory.Global)
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Max(t => t.VisitTaskNum))
|
|
||||||
.Where(t=>t.JudgeVisitTask.JudgeResultTaskId == t.Id)
|
|
||||||
.Select(t => t.SubjectId).Distinct().Count(),
|
|
||||||
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
#region 按照受试者维度统计
|
|
||||||
|
|
||||||
|
|
||||||
exportInfo.DoctorSubjectStatList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.GroupBy(t => new { t.DoctorUserId, t.DoctorUser.UserName, t.DoctorUser.FullName })
|
|
||||||
.Select(g => new DoctorJudgeRatio()
|
|
||||||
{
|
|
||||||
DoctorUserId = g.Key.DoctorUserId,
|
|
||||||
UserName = g.Key.UserName,
|
|
||||||
FullName = g.Key.FullName,
|
|
||||||
|
|
||||||
//最后一个阅片期触发裁判 且裁判已阅
|
|
||||||
TotalJudgeCount = g
|
|
||||||
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId))
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Where(t => t.VisitTaskNum == g.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId))
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Max(t => t.VisitTaskNum))
|
|
||||||
.Select(t => t.SubjectId).Distinct().Count(),
|
|
||||||
|
|
||||||
// G-2 G-4 可能选择的是不同的医生,要以最后一次选择的为准
|
|
||||||
JudgeAgreeCount = g
|
|
||||||
.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId))
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Where(t => t.VisitTaskNum == g.Where(t => t.Subject.ReadModuleList.Any(c => c.SubjectVisit.VisitNum == (t.VisitTaskNum - addReadingPeriodNum) && c.TrialReadingCriterionId == trialReadingCriterionId))
|
|
||||||
.Where(t => t.JudgeVisitTaskId != null && t.JudgeVisitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
|
||||||
.Max(t => t.VisitTaskNum))
|
|
||||||
.Where(t => t.JudgeVisitTask.JudgeResultTaskId == t.Id)
|
|
||||||
.Select(t => t.SubjectId).Distinct().Count(),
|
|
||||||
|
|
||||||
}).ToList();
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.ReadingPeriodJudgeRatio_Export, exportInfo, $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}", _commonDocumentRepository, _hostEnvironment);
|
return await ExcelExportHelper.DataExportAsync(StaticData.Export.ReadingPeriodJudgeRatio_Export, exportInfo, $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}", _commonDocumentRepository, _hostEnvironment);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue