diff --git a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs index 335955f65..100d4271d 100644 --- a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs +++ b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs @@ -242,6 +242,8 @@ namespace IRaCIS.Application.Contracts public class ConfirmationReviewerDTO : DoctorOptDTO { + public Guid DoctorId { get; set; } + public int DoctorTrialState { get; set; } public string OptUserName { get; set; } = string.Empty; @@ -249,6 +251,11 @@ namespace IRaCIS.Application.Contracts public DateTime? OptTime { get; set; } public string? OptTimeStr => OptTime?.ToString("yyyy-MM-dd HH:mm:ss"); + public UserTypeEnum? AuditTypeEnum { get; set; } + public DateTime? AuditTime { get; set; } + public string AuditUserName { get; set; } = string.Empty; + public string? AuditTimeStr => AuditTime?.ToString("yyyy-MM-dd HH:mm:ss"); + //SPM 需要看到 public DateTime? SubmmitTime { get; set; } public string SubmmitUserName { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs b/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs index 4a12e84c2..819173880 100644 --- a/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs +++ b/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs @@ -302,8 +302,6 @@ namespace IRaCIS.Core.Application.Service .Where(x => x.TrialId == inQuery.TrialId && x.EnrollStatus >= EnrollStatus.InviteIntoGroup); var enrollStateList = await query .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); - enrollStateList = enrollStateList.GroupBy(e => e.DoctorId) - .Select(g => g.OrderByDescending(e => e.OptTime).FirstOrDefault()).ToList(); enrollStateList = enrollStateList .WhereIf(inQuery.OptStartTime != null, x => x.OptTime >= inQuery.OptStartTime) @@ -337,14 +335,29 @@ namespace IRaCIS.Core.Application.Service doctorPageList.CurrentPageData.ToList().ForEach(u => { u.DoctorTrialState = (int)EnrollStatus.InviteIntoGroup; - var opt = enrollStateList.OrderByDescending(x=>x.OptTime).FirstOrDefault(t => t.DoctorId == u.Id); + + var lastState= enrollStateList.OrderByDescending(x=>x.OptTime).FirstOrDefault(t => t.DoctorId == u.Id); + if (lastState != null) + { + u.DoctorTrialState = lastState.IntoGroupState; + } + var opt = enrollStateList.Where(x => x.IntoGroupState == 10).FirstOrDefault(t => t.DoctorId == u.Id); if (opt != null) { - u.DoctorTrialState = opt.IntoGroupState; + u.OptTime = opt.OptTime; u.UserTypeEnum = opt.UserTypeEnum; u.OptUserName = opt.OptUserName; } + + var approved = enrollStateList.Where(x => x.IntoGroupState == 8).FirstOrDefault(t => t.DoctorId == u.Id); + + if (approved != null) + { + u.AuditTime = approved.OptTime; + u.AuditTypeEnum = approved.UserTypeEnum; + u.AuditUserName = approved.OptUserName; + } }); return doctorPageList; diff --git a/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs index 55a5f8b02..d291fce1d 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyFileViewModel.cs @@ -19,6 +19,8 @@ namespace IRaCIS.Core.Application.Contracts public bool IsReading { get; set; } public bool IsDeleted { get; set; } + + public DateTime? MarkTime { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index ebeb45bdb..c0be105b2 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1487,7 +1487,7 @@ namespace IRaCIS.Core.Application.Service foreach (var x in orders) { Dictionary answers = new Dictionary(); - var rowInfo = tableAnsweRowInfos.First(y => y.RowIndex == x && y.QuestionId == item.Id); + var rowInfo = tableAnsweRowInfos.FirstOrDefault(y => y.RowIndex == x && y.QuestionId == item.Id); if (rowInfo == null) { continue; diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs index e2c9288b9..a0732cb4b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs @@ -161,6 +161,13 @@ namespace IRaCIS.Core.Application.Service var noneDicomStudyViewMark = new NoneDicomStudyView() { Id = Guid.NewGuid() }; noneDicomStudyViewMark.IsCriticalSequence = true; noneDicomStudyViewMark.NoneDicomStudyFileList = await _noneDicomStudyFileRepository.Where(x => noneDicomids.Contains(x.Id)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + foreach (var item in noneDicomStudyViewMark.NoneDicomStudyFileList) + { + item.MarkTime = nonoDicomStudyFileIds.Where(x => x.NoneDicomFileId == item.Id).Select(x => x.CreateTime).FirstOrDefault(); + } + + noneDicomStudyViewMark.NoneDicomStudyFileList= noneDicomStudyViewMark.NoneDicomStudyFileList.OrderBy(x => x.MarkTime).ToList(); result.Insert(0, noneDicomStudyViewMark); }