修改统计 分步查询
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
91cde3f944
commit
b14f3fb251
|
@ -78,7 +78,7 @@ public static class ExcelExportHelper
|
||||||
foreach (var itemValuePair in itemDic)
|
foreach (var itemValuePair in itemDic)
|
||||||
{
|
{
|
||||||
// 临床数据 1,1 会变成2024-01-01
|
// 临床数据 1,1 会变成2024-01-01
|
||||||
if (itemValuePair.Value?.ToString().Length > 4 && DateTime.TryParse(itemValuePair.Value?.ToString(), out DateTime result))
|
if (itemValuePair.Value?.ToString().Length > 8 && DateTime.TryParse(itemValuePair.Value?.ToString(), out DateTime result))
|
||||||
{
|
{
|
||||||
itemDic[itemValuePair.Key] = ExportExcelConverterDate.DateTimeInternationalToString(result);
|
itemDic[itemValuePair.Key] = ExportExcelConverterDate.DateTimeInternationalToString(result);
|
||||||
}
|
}
|
||||||
|
@ -338,7 +338,7 @@ public static class ExcelExportHelper
|
||||||
//处理集合里面时间类型,根据当前语言将时间转变为字符串
|
//处理集合里面时间类型,根据当前语言将时间转变为字符串
|
||||||
foreach (var itemValuePair in itemDic)
|
foreach (var itemValuePair in itemDic)
|
||||||
{
|
{
|
||||||
if (itemValuePair.Value?.ToString().Length > 4 && DateTime.TryParse(itemValuePair.Value?.ToString(), out DateTime result))
|
if (itemValuePair.Value?.ToString().Length > 8 && DateTime.TryParse(itemValuePair.Value?.ToString(), out DateTime result))
|
||||||
{
|
{
|
||||||
itemDic[itemValuePair.Key] = ExportExcelConverterDate.DateTimeInternationalToString(result);
|
itemDic[itemValuePair.Key] = ExportExcelConverterDate.DateTimeInternationalToString(result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2445,10 +2445,10 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
// .Count();
|
// .Count();
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
// subject(G1 产生裁判 G2 不产生裁判 那么该患者不计入总量)
|
||||||
var subjectReadingPeriodList= _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
var subjectReadingPeriodList = _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))
|
||||||
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum ,t.JudgeVisitTaskId })
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum, t.JudgeVisitTaskId })
|
||||||
.Where(g => g.Count() == 2)
|
.Where(g => g.Count() == 2)
|
||||||
.Select(g => new { g.Key.SubjectId, g.Key.VisitTaskNum, g.Key.JudgeVisitTaskId })
|
.Select(g => new { g.Key.SubjectId, g.Key.VisitTaskNum, g.Key.JudgeVisitTaskId })
|
||||||
.ToList();
|
.ToList();
|
||||||
|
@ -2458,31 +2458,87 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
.Where(t => t.JudgeVisitTaskId != null)
|
.Where(t => t.JudgeVisitTaskId != null)
|
||||||
.Count();
|
.Count();
|
||||||
|
|
||||||
|
var subjectReadingPeriodDoctorList = _visitTaskRepository.Where(comonTaskFilter).Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
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))
|
.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 })
|
.GroupBy(t => new { t.SubjectId, t.VisitTaskNum, t.JudgeVisitTaskId })
|
||||||
.Select(g => new DoctorJudgeRatio()
|
.Where(g => g.Count() == 2)
|
||||||
|
.Select(g => new
|
||||||
{
|
{
|
||||||
DoctorUserId = g.Key.DoctorUserId,
|
g.Key.SubjectId,
|
||||||
UserName = g.Key.UserName,
|
g.Key.VisitTaskNum,
|
||||||
FullName = g.Key.FullName,
|
g.Key.JudgeVisitTaskId,
|
||||||
|
|
||||||
//最后一个阅片期触发裁判 且裁判已阅
|
GlobalList = g.Select(t => new
|
||||||
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)
|
t.Id,
|
||||||
.Max(t => t.VisitTaskNum))
|
t.VisitTaskNum,
|
||||||
.Select(t => t.SubjectId).Distinct().Count(),
|
t.DoctorUserId,
|
||||||
|
t.DoctorUser.UserName,
|
||||||
|
t.DoctorUser.FullName,
|
||||||
|
t.JudgeVisitTask.JudgeResultTaskId
|
||||||
|
}).ToList()
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
|
||||||
// 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();
|
// 每个subject 仅仅留最后一个全局
|
||||||
|
var filteredList = subjectReadingPeriodDoctorList.GroupBy(x => x.SubjectId) // 按 SubjectId 分组
|
||||||
|
.Select(g => g.OrderByDescending(x => x.VisitTaskNum).First()) // 每组取 VisitTaskNum 最大的记录
|
||||||
|
//最后一个全局没有产生裁判的subject要过滤掉 过滤后
|
||||||
|
.Where(t => t.JudgeVisitTaskId != null)
|
||||||
|
.SelectMany(t => t.GlobalList.Select(u => new
|
||||||
|
{
|
||||||
|
t.SubjectId,
|
||||||
|
t.VisitTaskNum,
|
||||||
|
t.JudgeVisitTaskId,
|
||||||
|
u.DoctorUserId,
|
||||||
|
u.UserName,
|
||||||
|
u.FullName,
|
||||||
|
u.JudgeResultTaskId,
|
||||||
|
VisitTaskId = u.Id
|
||||||
|
}))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
exportInfo.DoctorSubjectStatList= filteredList.GroupBy(t => new { t.DoctorUserId, t.UserName, t.FullName }).Select(g=>new DoctorJudgeRatio()
|
||||||
|
{
|
||||||
|
DoctorUserId = g.Key.DoctorUserId,
|
||||||
|
UserName = g.Key.UserName,
|
||||||
|
FullName = g.Key.FullName,
|
||||||
|
|
||||||
|
TotalJudgeCount = g.Count(),
|
||||||
|
|
||||||
|
JudgeAgreeCount = g.Count(t=>t.JudgeResultTaskId==t.VisitTaskId)
|
||||||
|
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//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
|
#endregion
|
||||||
|
|
Loading…
Reference in New Issue