重新发布
parent
50ef2e83ce
commit
48ede05926
|
@ -149,6 +149,10 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
public class IRImageReadingToBeDoneDto : TrialBaseInfoDto
|
||||
{
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
public string CriterionName { get; set; }
|
||||
|
||||
|
||||
public int? UrgentCount { get; set; }
|
||||
|
||||
public int? UnReadCount { get; set; }
|
||||
|
@ -167,7 +171,7 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
public class MedicalCommentsToBeDoneDto : TrialBaseInfoDto
|
||||
{
|
||||
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
public string CriterionName { get; set; }
|
||||
public int? UrgentCount { get; set; }
|
||||
|
||||
|
|
|
@ -555,45 +555,61 @@ namespace IRaCIS.Core.Application
|
|||
[FromServices] IRepository<Trial> _trialRepository)
|
||||
{
|
||||
|
||||
var query = _trialRepository
|
||||
.Select(t => new IRImageReadingToBeDoneDto()
|
||||
{
|
||||
TrialId = t.Id,
|
||||
ResearchProgramNo = t.ResearchProgramNo,
|
||||
ExperimentName = t.ExperimentName,
|
||||
TrialCode = t.TrialCode,
|
||||
//var query = _trialRepository
|
||||
// .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(),
|
||||
// UrgentCount = t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
|
||||
// .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))
|
||||
.Where(y=>y.IsFrontTaskNeedSignButNotSign == false && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true))
|
||||
// UnReadCount=t.VisitTaskList.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(),
|
||||
|
||||
// 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
|
||||
&& (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)
|
||||
&& t.ReadingTaskState==ReadingTaskState.HaveSigned).Count()
|
||||
//UrgentCount = t.SubjectVisitList.SelectMany(c => c.QCChallengeList)
|
||||
//.Where(u => u.IsClosed == false && u.LatestReplyUser.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && u.SubjectVisit.IsUrgent).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))
|
||||
// .GroupBy(t=>new {t.SubjectId,t.TrialId,t.Subject.Code,t.Trial.ResearchProgramNo,t.Trial.ExperimentName, t.BlindSubjectCode})
|
||||
// .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(),
|
||||
HaveSignedCount = g.Where(t => t.DoctorUserId == _userInfo.Id && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)
|
||||
&& t.ReadingTaskState==ReadingTaskState.HaveSigned).Count(),
|
||||
|
||||
// });
|
||||
});
|
||||
|
||||
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,
|
||||
TrialCode = g.Key.TrialCode,
|
||||
CriterionName=g.Key.CriterionName,
|
||||
|
||||
TrialReadingCriterionId=g.Key.TrialReadingCriterionId,
|
||||
UrgentCount = g.Where(u => u.VisitTask.IsUrgent
|
||||
&& u.ReadingMedicalReviewDialogList.OrderByDescending(l=>l.CreateTime).First().UserTypeEnumInt==(int) UserTypeEnum.MIM).Count(),
|
||||
|
||||
|
|
Loading…
Reference in New Issue