修改统计

Uat_Study
hang 2023-06-26 10:28:29 +08:00
parent b4ade5e956
commit 9d96789302
5 changed files with 247 additions and 31 deletions

View File

@ -2517,6 +2517,13 @@
<param name="inDto"></param> <param name="inDto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetTrialClinicalOtherQuestionList(IRaCIS.Core.Application.Service.Reading.Dto.GetTrialGroupDto)">
<summary>
获取项目标准其他问题
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetSystemClinicalQuestionList(IRaCIS.Core.Application.Service.Reading.Dto.SystemClinicalQuestionQuery)"> <member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetSystemClinicalQuestionList(IRaCIS.Core.Application.Service.Reading.Dto.SystemClinicalQuestionQuery)">
<summary> <summary>
获取系统临床问题 获取系统临床问题
@ -2545,6 +2552,13 @@
<param name="inDto"></param> <param name="inDto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetSystemClinicalOtherQuestionList(IRaCIS.Core.Application.Service.Reading.Dto.GetSystemGroupDto)">
<summary>
获取系统其他问题
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetSystemClinicalTableQuestionList(IRaCIS.Core.Application.Service.Reading.Dto.SystemClinicalTableQuestionQuery)"> <member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetSystemClinicalTableQuestionList(IRaCIS.Core.Application.Service.Reading.Dto.SystemClinicalTableQuestionQuery)">
<summary> <summary>
获取系统表格问题 获取系统表格问题
@ -2587,6 +2601,18 @@
<param name="id"></param> <param name="id"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.SynchronizationQuestion(System.Collections.Generic.List{IRaCIS.Core.Application.Service.Reading.Dto.SynchronizationQuestionDto})">
<summary>
同步系统问题
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataTrialSetAddOrEdit.IsApply">
<summary>
是否应用
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataTrialSetAddOrEdit.ClinicalDataSetName"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataTrialSetAddOrEdit.ClinicalDataSetName">
<summary> <summary>
名称 名称
@ -2637,6 +2663,11 @@
文件路径 文件路径
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataSystemSetAddOrEdit.IsApply">
<summary>
是否应用
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataSystemSetAddOrEdit.ClinicalDataSetEnum"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataSystemSetAddOrEdit.ClinicalDataSetEnum">
<summary> <summary>
枚举 枚举
@ -2817,7 +2848,7 @@
问题英文名称 问题英文名称
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.ClinicalQuestionTypeEnum"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.ClinicalQuestionType">
<summary> <summary>
临床问题类型(分组,单选。) 临床问题类型(分组,单选。)
</summary> </summary>
@ -2877,6 +2908,21 @@
显示类型 显示类型
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.IsCheckDate">
<summary>
是否是检查日期
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.DigitPlaces">
<summary>
小数点位数
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.Unit">
<summary>
单位
</summary>
</member>
<member name="T:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionQueryBase"> <member name="T:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionQueryBase">
<summary> <summary>
查询临床数据基类 查询临床数据基类
@ -2947,7 +2993,7 @@
问题英文名称 问题英文名称
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalTableQuestionBase.ClinicalTableQuestionTypeEnum"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalTableQuestionBase.ClinicalTableQuestionType">
<summary> <summary>
临床问题类型(分组,单选。) 临床问题类型(分组,单选。)
</summary> </summary>
@ -3002,6 +3048,16 @@
外层问题Id 外层问题Id
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalTableQuestionBase.DigitPlaces">
<summary>
小数点位数
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalTableQuestionBase.Unit">
<summary>
单位
</summary>
</member>
<member name="T:IRaCIS.Core.Application.Service.Reading.Dto.TrialClinicalTableQuestionDto"> <member name="T:IRaCIS.Core.Application.Service.Reading.Dto.TrialClinicalTableQuestionDto">
<summary> <summary>
项目临床数据问题 项目临床数据问题
@ -3057,6 +3113,21 @@
获取系统临床数据 获取系统临床数据
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.SynchronizationQuestionDto.SystemClinicalId">
<summary>
系统临床数据Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.SynchronizationQuestionDto.TrialClinicalId">
<summary>
项目临床数据Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.QuestionDic.TrialClinicalId">
<summary>
项目临床数据Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto.TrialSiteCode"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetReadModuleDto.TrialSiteCode">
<summary> <summary>
项目中心Code 项目中心Code
@ -8684,6 +8755,11 @@
ISubjectCriteriaEvaluationService ISubjectCriteriaEvaluationService
</summary> </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.Interfaces.IClinicalQuestionService">
<summary>
IClinicalQuestionService
</summary>
</member>
<member name="T:IRaCIS.Core.Application.Interfaces.IOrganInfoService"> <member name="T:IRaCIS.Core.Application.Interfaces.IOrganInfoService">
<summary> <summary>
IOrganInfoService IOrganInfoService
@ -10314,9 +10390,18 @@
<param name="_trialRepository"></param> <param name="_trialRepository"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetReviewerSelectToBeDoneList(IRaCIS.Core.Application.Contracts.ReviewerSelectToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Enroll},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})"> <member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetPM_ReviewerSelectToBeDoneList(IRaCIS.Core.Application.Contracts.ReviewerSelectToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Enroll},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
<summary> <summary>
阅片人筛选 PM 阅片人筛选
</summary>
<param name="inQuery"></param>
<param name="_enrollRepository"></param>
<param name="_trialRepository"></param>
<returns></returns> vvv
</member>
<member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetSPM_ReviewerSelectToBeDoneList(IRaCIS.Core.Application.Contracts.ReviewerSelectToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Enroll},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
<summary>
SPM 阅片人筛选
</summary> </summary>
<param name="inQuery"></param> <param name="inQuery"></param>
<param name="_enrollRepository"></param> <param name="_enrollRepository"></param>
@ -10411,8 +10496,18 @@
MIM医学反馈 MIM医学反馈
</summary> </summary>
<param name="inQuery"></param> <param name="inQuery"></param>
<param name="_taskMedicalReviewRepository"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetMedicalCommentsFirstToBeDone(IRaCIS.Core.Application.Contracts.MedicalCommentsFirstToBeDoneQuery,IRaCIS.Core.Application.Interfaces.ITaskMedicalReviewService)">
<summary>
获取某项目 某标准 第一条未读的医学审核
</summary>
<param name="inQuery"></param>
<param name="_taskMedicalReviewService"></param>
<returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="M:IRaCIS.Core.Application.TrialConfigService.TrialReadingInfoSignVerify(IRaCIS.Core.Application.Contracts.TrialReadingInfoSignInDto)"> <member name="M:IRaCIS.Core.Application.TrialConfigService.TrialReadingInfoSignVerify(IRaCIS.Core.Application.Contracts.TrialReadingInfoSignInDto)">
<summary> <summary>
阅片信息签名验证接口 阅片信息签名验证接口
@ -11350,6 +11445,22 @@
临床数据配置 临床数据配置
</summary> </summary>
</member> </member>
<member name="M:IRaCIS.Application.Services.ClinicalDataSetService.ApplySystemClinical(IRaCIS.Core.Application.Service.Reading.Dto.ApplySystemClinicalInDto)">
<summary>
应用系统临床数据
</summary>
<param name="inDto"></param>
<returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="M:IRaCIS.Application.Services.ClinicalDataSetService.ApplyTrialClinical(IRaCIS.Core.Application.Service.Reading.Dto.ApplyTrialClinicalInDto)">
<summary>
应用项目临床数据
</summary>
<param name="inDto"></param>
<returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="M:IRaCIS.Application.Services.ClinicalDataSetService.AddOrUpdateClinicalDataSystemSet(IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataSystemSetAddOrEdit)"> <member name="M:IRaCIS.Application.Services.ClinicalDataSetService.AddOrUpdateClinicalDataSystemSet(IRaCIS.Core.Application.Service.Reading.Dto.ClinicalDataSystemSetAddOrEdit)">
<summary> <summary>
新增或者修改(系统) 新增或者修改(系统)

View File

@ -17,7 +17,7 @@ namespace IRaCIS.Core.Application.Interfaces
//Task<PageOutput<TaskMedicalReviewView>> GetTaskMedicalReviewList(TaskMedicalReviewQuery queryTaskMedicalReview); //Task<PageOutput<TaskMedicalReviewView>> GetTaskMedicalReviewList(TaskMedicalReviewQuery queryTaskMedicalReview);
Task<TaskMedicalReviewView> GetNextMedicalReviewTask(GetNextMedicalReviewTaskInDto inDto);
Task<IResponseOutput<PageOutput<TaskMedicalReviewView>>> GetMIMMedicalReviewTaskList(TaskMedicalReviewQuery inQuery);
} }
} }

View File

@ -138,7 +138,7 @@ namespace IRaCIS.Core.Application.Service
{ {
var medicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.MedicalReviewId).Include(x=>x.VisitTask).FirstNotNullAsync(); var medicalReview = await _taskMedicalReviewRepository.Where(x => x.Id == inDto.MedicalReviewId).Include(x=>x.VisitTask).FirstNotNullAsync();
var subjectReview = await GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery() var subjectReview = (await GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery()
{ {
TrialId = medicalReview.TrialId, TrialId = medicalReview.TrialId,
@ -148,14 +148,14 @@ namespace IRaCIS.Core.Application.Service
TrialReadingCriterionId = medicalReview.VisitTask.TrialReadingCriterionId, TrialReadingCriterionId = medicalReview.VisitTask.TrialReadingCriterionId,
PageIndex=1, PageIndex=1,
PageSize=1, PageSize=1,
}); })).Data;
if (subjectReview.Item1.CurrentPageData.Count == 1) if (subjectReview.CurrentPageData.Count == 1)
{ {
return subjectReview.Item1.CurrentPageData[0]; return subjectReview.CurrentPageData[0];
} }
var data = await GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery() var data = (await GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery()
{ {
TrialId = medicalReview.TrialId, TrialId = medicalReview.TrialId,
@ -164,11 +164,11 @@ namespace IRaCIS.Core.Application.Service
TrialReadingCriterionId = medicalReview.VisitTask.TrialReadingCriterionId, TrialReadingCriterionId = medicalReview.VisitTask.TrialReadingCriterionId,
PageIndex = 1, PageIndex = 1,
PageSize = 1, PageSize = 1,
}); })).Data;
if (data.Item1.CurrentPageData.Count == 1) if (data.CurrentPageData.Count == 1)
{ {
return data.Item1.CurrentPageData[0]; return data.CurrentPageData[0];
} }
else else
{ {
@ -186,7 +186,7 @@ namespace IRaCIS.Core.Application.Service
/// <param name="inQuery"></param> /// <param name="inQuery"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<(PageOutput<TaskMedicalReviewView>, object)> GetMIMMedicalReviewTaskList(TaskMedicalReviewQuery inQuery) public async Task<IResponseOutput< PageOutput<TaskMedicalReviewView>>> GetMIMMedicalReviewTaskList(TaskMedicalReviewQuery inQuery)
{ {
var taskMedicalReviewQueryable = _taskMedicalReviewRepository.Where(t => t.VisitTask.TrialId == inQuery.TrialId && t.MedicalManagerUserId == _userInfo.Id&&t.VisitTask.TrialReadingCriterionId==inQuery.TrialReadingCriterionId) var taskMedicalReviewQueryable = _taskMedicalReviewRepository.Where(t => t.VisitTask.TrialId == inQuery.TrialId && t.MedicalManagerUserId == _userInfo.Id&&t.VisitTask.TrialReadingCriterionId==inQuery.TrialReadingCriterionId)
@ -206,7 +206,7 @@ namespace IRaCIS.Core.Application.Service
var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TaskMedicalReviewView.Id) : inQuery.SortField, inQuery.Asc); var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TaskMedicalReviewView.Id) : inQuery.SortField, inQuery.Asc);
return (pageList, new return ResponseOutput.Ok(pageList, new
{ {
IsConfirmMedicineQuestion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inQuery.TrialReadingCriterionId).Select(x => x.IsConfirmMedicineQuestion).FirstOrDefaultAsync() IsConfirmMedicineQuestion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inQuery.TrialReadingCriterionId).Select(x => x.IsConfirmMedicineQuestion).FirstOrDefaultAsync()

View File

@ -170,6 +170,15 @@ namespace IRaCIS.Core.Application.Contracts
} }
public class MedicalCommentsFirstToBeDoneQuery
{
[NotDefault]
public Guid TrialId { get; set; }
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
}
public class MedicalCommentsToBeDoneDto : TrialBaseInfoDto public class MedicalCommentsToBeDoneDto : TrialBaseInfoDto
{ {
public Guid TrialReadingCriterionId { get; set; } public Guid TrialReadingCriterionId { get; set; }
@ -177,6 +186,8 @@ namespace IRaCIS.Core.Application.Contracts
public int? UrgentCount { get; set; } public int? UrgentCount { get; set; }
public int? ToBeReplyedCount { get; set; } public int? ToBeReplyedCount { get; set; }
public int? ToBeReviewedCount { get; set; }
} }
public class ImageCheckQuestionToBeDoneQuery : PageInput public class ImageCheckQuestionToBeDoneQuery : PageInput
@ -337,6 +348,8 @@ namespace IRaCIS.Core.Application.Contracts
public int? Medical_MIM_ToBeDealedCount { get; set; } public int? Medical_MIM_ToBeDealedCount { get; set; }
public int? Medical_MIM_ToBeReviewedCount { get; set; }
public int? Medical_IR_ToBeDealedCount { get; set; } public int? Medical_IR_ToBeDealedCount { get; set; }
public int UserTotalToBeDoneCount => new[] public int UserTotalToBeDoneCount => new[]
@ -356,7 +369,8 @@ namespace IRaCIS.Core.Application.Contracts
Reading_SPM_ToBeApprovalCount ?? 0, Reading_SPM_ToBeApprovalCount ?? 0,
Reading_PM_ToBeApprovalCount ?? 0, Reading_PM_ToBeApprovalCount ?? 0,
Medical_MIM_ToBeDealedCount ?? 0, Medical_MIM_ToBeDealedCount ?? 0,
Medical_IR_ToBeDealedCount ?? 0 Medical_IR_ToBeDealedCount ?? 0,
Medical_MIM_ToBeReviewedCount??0
}.Sum(); }.Sum();
} }

View File

@ -1,7 +1,10 @@
using IRaCIS.Application.Contracts; using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.Infrastructure.Extention;
using MathNet.Numerics; using MathNet.Numerics;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
@ -255,6 +258,40 @@ namespace IRaCIS.Core.Application
} }
/// <summary>
///PM 阅片人筛选
/// </summary>
/// <param name="inQuery"></param>
/// <param name="_enrollRepository"></param>
/// <param name="_trialRepository"></param>
/// <returns></returns> vvv
[HttpPost]
public async Task<IResponseOutput<PageOutput<ReviewerSelectToBeDoneDto>>> GetPM_ReviewerSelectToBeDoneList(ReviewerSelectToBeDoneQuery inQuery
, [FromServices] IRepository<Enroll> _enrollRepository,
[FromServices] IRepository<Trial> _trialRepository)
{
var query = _trialRepository
.Where(t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Select(t => new ReviewerSelectToBeDoneDto()
{
TrialId = t.Id,
ResearchProgramNo = t.ResearchProgramNo,
ExperimentName = t.ExperimentName,
TrialCode = t.TrialCode,
IsUrgent = t.IsUrgent || t.IsSubjectExpeditedView,
ToBeApprovalCount = t.EnrollList.Where(u => u.EnrollStatus == EnrollStatus.InviteIntoGroup).Count()
});
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField, inQuery.Asc);
var toBeApprovalCount = await _enrollRepository.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Where(u => u.EnrollStatus == EnrollStatus.HasCommittedToCRO).CountAsync();
return ResponseOutput.Ok(result, new { ToBeApprovalCount = toBeApprovalCount }); ;
}
#endregion #endregion
@ -262,14 +299,14 @@ namespace IRaCIS.Core.Application
#region SPM CPM 待办 #region SPM CPM 待办
/// <summary> /// <summary>
/// 阅片人筛选 ///SPM 阅片人筛选
/// </summary> /// </summary>
/// <param name="inQuery"></param> /// <param name="inQuery"></param>
/// <param name="_enrollRepository"></param> /// <param name="_enrollRepository"></param>
/// <param name="_trialRepository"></param> /// <param name="_trialRepository"></param>
/// <returns></returns> vvv /// <returns></returns> vvv
[HttpPost] [HttpPost]
public async Task<IResponseOutput<PageOutput<ReviewerSelectToBeDoneDto>>> GetReviewerSelectToBeDoneList(ReviewerSelectToBeDoneQuery inQuery public async Task<IResponseOutput<PageOutput<ReviewerSelectToBeDoneDto>>> GetSPM_ReviewerSelectToBeDoneList(ReviewerSelectToBeDoneQuery inQuery
, [FromServices] IRepository<Enroll> _enrollRepository, , [FromServices] IRepository<Enroll> _enrollRepository,
[FromServices] IRepository<Trial> _trialRepository) [FromServices] IRepository<Trial> _trialRepository)
{ {
@ -653,6 +690,10 @@ namespace IRaCIS.Core.Application
} }
#endregion #endregion
@ -845,7 +886,7 @@ namespace IRaCIS.Core.Application
.Where(t => t.IsClosedDialog == false && t.VisitTask.DoctorUserId == _userInfo.Id) .Where(t => t.IsClosedDialog == false && t.VisitTask.DoctorUserId == _userInfo.Id)
.Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.MIM).Count(); .Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.MIM).Count();
return ResponseOutput.Ok(result, new { TotalToBeReUploadCount = toBeDealedCount }); return ResponseOutput.Ok(result, new { TotalToBeReplyedCount = toBeDealedCount });
} }
@ -860,6 +901,7 @@ namespace IRaCIS.Core.Application
/// MIM医学反馈 /// MIM医学反馈
/// </summary> /// </summary>
/// <param name="inQuery"></param> /// <param name="inQuery"></param>
/// <param name="_taskMedicalReviewRepository"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
@ -893,19 +935,63 @@ namespace IRaCIS.Core.Application
ToBeReplyedCount = g.Where(u => ToBeReplyedCount = g.Where(u =>
u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(), u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(),
ToBeReviewedCount=g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).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);
var toBeDealedCount = _taskMedicalReviewRepository var toBeReplyedQuery = _taskMedicalReviewRepository
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id)) .Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Where(t => t.IsClosedDialog == false) .Where(t => t.IsClosedDialog == false)
.Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(); .Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer);
return ResponseOutput.Ok(result, new { TotalToBeReUploadCount = toBeDealedCount }); var toBeReplyedCount = toBeReplyedQuery.Count();
var tobeReviewedCount = _taskMedicalReviewRepository
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Where(t => t.IsClosedDialog == false)
.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count();
//var firstToBeDone = toBeDealedQuery.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider).FirstOrDefault();
return ResponseOutput.Ok(result, new { TotalToBeReplyedCount = toBeReplyedCount, TotalTobeReviewedCount = tobeReviewedCount });
} }
/// <summary>
/// 获取某项目 某标准 第一条未读的医学审核
/// </summary>
/// <param name="inQuery"></param>
/// <param name="_taskMedicalReviewService"></param>
/// <returns></returns>
/// <exception cref="BusinessValidationFailedException"></exception>
public async Task<TaskMedicalReviewView> GetMedicalCommentsFirstToBeDone(MedicalCommentsFirstToBeDoneQuery inQuery,
[FromServices] ITaskMedicalReviewService _taskMedicalReviewService)
{
var result = await _taskMedicalReviewService.GetMIMMedicalReviewTaskList(new TaskMedicalReviewQuery()
{
TrialId = inQuery.TrialId,
IsGetBeRead = true,
PageIndex = 1,
PageSize = 1,
TrialReadingCriterionId = inQuery.TrialReadingCriterionId
});
if (result.Data.CurrentPageData.Count == 1)
{
return result.Data.CurrentPageData[0];
}
else
{
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
}
#endregion #endregion
@ -1086,6 +1172,11 @@ namespace IRaCIS.Core.Application
.Where(t => t.IsClosedDialog == false) .Where(t => t.IsClosedDialog == false)
.Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count() : 0, .Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count() : 0,
Medical_MIM_ToBeReviewedCount=
(t.User.UserTypeEnum == UserTypeEnum.MIM) ?
t.Trial.TaskMedicalReviewList
.Where(t => t.IsClosedDialog == false)
.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count():0
}); });