重新发布

Uat_Study
hang 2023-06-12 15:23:27 +08:00
parent 50ef2e83ce
commit 48ede05926
2 changed files with 51 additions and 31 deletions

View File

@ -149,6 +149,10 @@ namespace IRaCIS.Core.Application.Contracts
public class IRImageReadingToBeDoneDto : TrialBaseInfoDto public class IRImageReadingToBeDoneDto : TrialBaseInfoDto
{ {
public Guid TrialReadingCriterionId { get; set; }
public string CriterionName { get; set; }
public int? UrgentCount { get; set; } public int? UrgentCount { get; set; }
public int? UnReadCount { get; set; } public int? UnReadCount { get; set; }
@ -167,7 +171,7 @@ namespace IRaCIS.Core.Application.Contracts
public class MedicalCommentsToBeDoneDto : TrialBaseInfoDto public class MedicalCommentsToBeDoneDto : TrialBaseInfoDto
{ {
public Guid TrialReadingCriterionId { get; set; }
public string CriterionName { get; set; } public string CriterionName { get; set; }
public int? UrgentCount { get; set; } public int? UrgentCount { get; set; }

View File

@ -555,45 +555,61 @@ namespace IRaCIS.Core.Application
[FromServices] IRepository<Trial> _trialRepository) [FromServices] IRepository<Trial> _trialRepository)
{ {
var query = _trialRepository //var query = _trialRepository
.Select(t => new IRImageReadingToBeDoneDto() // .Select(t => new IRImageReadingToBeDoneDto()
{ // {
TrialId = t.Id, // TrialId = t.Id,
ResearchProgramNo = t.ResearchProgramNo, // ResearchProgramNo = t.ResearchProgramNo,
ExperimentName = t.ExperimentName, // ExperimentName = t.ExperimentName,
TrialCode = t.TrialCode, // TrialCode = t.TrialCode,
UrgentCount = t.SubjectVisitList.SelectMany(c => c.QCChallengeList) // UrgentCount = t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
.Where(u => u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && u.SubjectVisit.IsUrgent).Count(), // .Where(u => u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && u.SubjectVisit.IsUrgent).Count(),
UnReadCount=t.VisitTaskList.Where(t => t.DoctorUserId == _userInfo.Id && t.ReadingTaskState != ReadingTaskState.HaveSigned && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)) // UnReadCount=t.VisitTaskList.Where(t => t.DoctorUserId == _userInfo.Id && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect)
.Where(y=>y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)) // // 前序 不存在 未一致性核查未通过的
// .Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum))
// //前序 不存在 未生成任务的访视
// .Where(t=>t.TrialReadingCriterion.IsAutoCreate == false? !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(d => d.TrialReadingCriterionId == t.TrialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum):true)
// .Where(y=>y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true))
// .Count(),
// HaveSignedCount = t.VisitTaskList.Where(t => t.DoctorUserId == _userInfo.Id
// && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)
// && t.ReadingTaskState==ReadingTaskState.HaveSigned).Count()
// });
.Count(), var query = _visitTaskRepository.Where(t => t.DoctorUserId == _userInfo.Id && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze))
.GroupBy(t => new { t.TrialId, t.Trial.ResearchProgramNo, t.Trial.TrialCode, t.Trial.ExperimentName,t.TrialReadingCriterionId,t.TrialReadingCriterion.CriterionName })
.Select(g => new IRImageReadingToBeDoneDto()
{
TrialId = g.Key.TrialId,
ResearchProgramNo = g.Key.ResearchProgramNo,
ExperimentName = g.Key.ExperimentName,
TrialCode = g.Key.TrialCode,
CriterionName = g.Key.CriterionName,
TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
HaveSignedCount = t.VisitTaskList.Where(t => t.DoctorUserId == _userInfo.Id //UrgentCount = t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
&& (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) //.Where(u => u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && u.SubjectVisit.IsUrgent).Count(),
&& t.ReadingTaskState==ReadingTaskState.HaveSigned).Count()
}); UnReadCount = g.Where(t => t.DoctorUserId == _userInfo.Id && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect)
// 前序 不存在 未一致性核查未通过的
.Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum))
//前序 不存在 未生成任务的访视
.Where(t => t.TrialReadingCriterion.IsAutoCreate == false ? !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(d => d.TrialReadingCriterionId == t.TrialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum) : true)
.Where(y => y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true))
.Count(),
//var query = _visitTaskRepository.Where(t=>t.DoctorUserId==_userInfo.Id && (t.TaskState == TaskState.Effect ||t.TaskState==TaskState.Freeze)) HaveSignedCount = g.Where(t => t.DoctorUserId == _userInfo.Id && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)
// .GroupBy(t=>new {t.SubjectId,t.TrialId,t.Subject.Code,t.Trial.ResearchProgramNo,t.Trial.ExperimentName, t.BlindSubjectCode}) && t.ReadingTaskState==ReadingTaskState.HaveSigned).Count(),
// .Select(t => new IRImageReadingToBeDoneDto()
// {
// TrialId = t.Id,
// ResearchProgramNo = t.ResearchProgramNo,
// ExperimentName = t.ExperimentName,
// TrialCode = t.TrialCode,
// UrgentCount = t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
// .Where(u => u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && u.SubjectVisit.IsUrgent).Count(),
// ToBeDealedCount = t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
// .Where(u => u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Count(),
// }); });
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField, inQuery.Asc); var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField, inQuery.Asc);
@ -624,7 +640,7 @@ namespace IRaCIS.Core.Application
ExperimentName = g.Key.ExperimentName, ExperimentName = g.Key.ExperimentName,
TrialCode = g.Key.TrialCode, TrialCode = g.Key.TrialCode,
CriterionName=g.Key.CriterionName, CriterionName=g.Key.CriterionName,
TrialReadingCriterionId=g.Key.TrialReadingCriterionId,
UrgentCount = g.Where(u => u.VisitTask.IsUrgent UrgentCount = g.Where(u => u.VisitTask.IsUrgent
&& u.ReadingMedicalReviewDialogList.OrderByDescending(l=>l.CreateTime).First().UserTypeEnumInt==(int) UserTypeEnum.MIM).Count(), && u.ReadingMedicalReviewDialogList.OrderByDescending(l=>l.CreateTime).First().UserTypeEnumInt==(int) UserTypeEnum.MIM).Count(),