IRC_NewDev
he 2023-07-03 16:45:27 +08:00
commit 6b854cc9ad
2 changed files with 157 additions and 38 deletions

View File

@ -2536,11 +2536,47 @@
<param name="inDto"></param> <param name="inDto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalAnswerService.CRCConfirmClinical(IRaCIS.Core.Application.Service.Reading.Dto.CRCConfirmClinicalInDto)">
<summary>
CRC 确认临床数据
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalAnswerService.CRCCancelConfirmClinical(IRaCIS.Core.Application.Service.Reading.Dto.CRCCancelConfirmClinicalInDto)">
<summary>
CRC 取消确认
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalAnswerService.PMConfirmClinical(IRaCIS.Core.Application.Service.Reading.Dto.CRCConfirmClinicalInDto)">
<summary>
PM确认临床数据
</summary>
<param name="inDto"></param>
<returns></returns>
<exception cref="T:IRaCIS.Core.Infrastructure.BusinessValidationFailedException"></exception>
</member>
<member name="T:IRaCIS.Core.Application.Service.ClinicalQuestionService"> <member name="T:IRaCIS.Core.Application.Service.ClinicalQuestionService">
<summary> <summary>
临床数据问题 临床数据问题
</summary> </summary>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetTrialClinicalQuestionCalculateRelation(IRaCIS.Core.Application.Service.Reading.Dto.GetTrialClinicalQuestionCalculateRelationInDto)">
<summary>
获取问题计算关系
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetClinicalCalculateQuestions(IRaCIS.Core.Application.Service.Reading.Dto.GetClinicalCalculateQuestionsInDto)">
<summary>
获取计算问题
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetSystemClinicalQuestionPreview(IRaCIS.Core.Application.Service.Reading.Dto.GetSystemClinicalQuestionPreviewDto)"> <member name="M:IRaCIS.Core.Application.Service.ClinicalQuestionService.GetSystemClinicalQuestionPreview(IRaCIS.Core.Application.Service.Reading.Dto.GetSystemClinicalQuestionPreviewDto)">
<summary> <summary>
获取系统临床数据预览 获取系统临床数据预览
@ -2682,11 +2718,16 @@
<param name="inDto"></param> <param name="inDto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.CRCConfirmFormList.ClinicalDataLevel"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.CRCClinicalForm.ClinicalDataLevel">
<summary> <summary>
临床级别 临床级别
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetCRCConfirmListOutDto.SubjectId">
<summary>
受试者ID
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetCRCConfirmListOutDto.LatestScanDate"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetCRCConfirmListOutDto.LatestScanDate">
<summary> <summary>
最晚拍片日期 最晚拍片日期
@ -2922,6 +2963,46 @@
是否启用 是否启用
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialClinicalQuestionCalculateRelationInDto.TrialClinicalId">
<summary>
项目临床数据Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialClinicalQuestionCalculateRelationOutDto.QuestionName">
<summary>
问题名称
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialClinicalQuestionCalculateRelationOutDto.CustomCalculateMark">
<summary>
自定义计算标记
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialClinicalQuestionCalculateRelationOutDto.ValueType">
<summary>
数值类型
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialClinicalQuestionCalculateRelationOutDto.Unit">
<summary>
单位
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialClinicalQuestionCalculateRelationOutDto.CustomUnit">
<summary>
自定义单位
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetClinicalCalculateQuestionsInDto.TrialClinicalId">
<summary>
项目临床数据Id
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetClinicalCalculateQuestionsInDto.ClinicalQuestionType">
<summary>
临床问题类型(分组,单选。)
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetSystemClinicalQuestionPreviewDto.SystemClinicalId"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetSystemClinicalQuestionPreviewDto.SystemClinicalId">
<summary> <summary>
系统临床数据Id 系统临床数据Id
@ -2947,6 +3028,11 @@
子问题 子问题
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionPreviewDto.RelationQuestions">
<summary>
关联问题
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionPreviewDto.TableQuestions"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionPreviewDto.TableQuestions">
<summary> <summary>
表格问题 表格问题
@ -3067,6 +3153,16 @@
单位 单位
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.CustomCalculateMark">
<summary>
自定义计算标记
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ClinicalQuestionBase.CalculateQuestions">
<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>
查询临床数据基类 查询临床数据基类
@ -3097,16 +3193,6 @@
项目临床数据Id 项目临床数据Id
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TrialClinicalQuestionDto.ClinicalCalculateMarkEnum">
<summary>
自定义计算标记
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TrialClinicalQuestionDto.CalculateQuestions">
<summary>
自定义计算问题
</summary>
</member>
<member name="T:IRaCIS.Core.Application.Service.Reading.Dto.SystemClinicalQuestionQuery"> <member name="T:IRaCIS.Core.Application.Service.Reading.Dto.SystemClinicalQuestionQuery">
<summary> <summary>
获取系统临床数据 获取系统临床数据
@ -10576,9 +10662,9 @@
<param name="_trialRepository"></param> <param name="_trialRepository"></param>
<returns></returns> vvv <returns></returns> vvv
</member> </member>
<member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetReReadingApprovalToBeDoneToBeDoneList(IRaCIS.Core.Application.Contracts.ReReadingApprovalToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTaskReReading},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})"> <member name="M:IRaCIS.Core.Application.PersonalWorkstation.GetSPMReReadingApprovalToBeDoneList(IRaCIS.Core.Application.Contracts.ReReadingApprovalToBeDoneQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTaskReReading},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial})">
<summary> <summary>
重阅审批 SPM 重阅审批
</summary> </summary>
<param name="inQuery"></param> <param name="inQuery"></param>
<param name="_visitTaskReReadingRepository"></param> <param name="_visitTaskReReadingRepository"></param>

View File

@ -871,6 +871,7 @@ namespace IRaCIS.Core.Application
TrialCode = g.Key.TrialCode, TrialCode = g.Key.TrialCode,
CriterionName = g.Key.CriterionName, CriterionName = g.Key.CriterionName,
TrialReadingCriterionId = g.Key.TrialReadingCriterionId, 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(),
@ -906,38 +907,70 @@ namespace IRaCIS.Core.Application
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public async Task<IResponseOutput<PageOutput<MedicalCommentsToBeDoneDto>>> GetMIMMedicalCommentsToBeDoneList(MedicalCommentsToBeDoneQuery inQuery, public async Task<IResponseOutput<PageOutput<MedicalCommentsToBeDoneDto>>> GetMIMMedicalCommentsToBeDoneList(MedicalCommentsToBeDoneQuery inQuery,
[FromServices] IRepository<TaskMedicalReview> _taskMedicalReviewRepository) [FromServices] IRepository<TaskMedicalReview> _taskMedicalReviewRepository,
[FromServices] IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository)
{ {
#region 废弃不能对包含聚合或子查询的表达式执行聚合函数
var query = _taskMedicalReviewRepository var query = _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)
.GroupBy(t => new .GroupBy(t => new
{ {
t.TrialId, t.TrialId,
t.Trial.ResearchProgramNo, t.Trial.ResearchProgramNo,
t.Trial.ExperimentName, t.Trial.ExperimentName,
t.Trial.TrialCode, t.Trial.TrialCode,
t.VisitTask.TrialReadingCriterionId, t.VisitTask.TrialReadingCriterionId,
t.VisitTask.TrialReadingCriterion.CriterionName t.VisitTask.TrialReadingCriterion.CriterionName
}) })
.Select(g => new MedicalCommentsToBeDoneDto() .Select(g => new MedicalCommentsToBeDoneDto()
{ {
TrialId = g.Key.TrialId, TrialId = g.Key.TrialId,
ResearchProgramNo = g.Key.ResearchProgramNo, ResearchProgramNo = g.Key.ResearchProgramNo,
ExperimentName = g.Key.ExperimentName, ExperimentName = g.Key.ExperimentName,
TrialCode = g.Key.TrialCode, TrialCode = g.Key.TrialCode,
CriterionName = g.Key.CriterionName, CriterionName = g.Key.CriterionName,
UrgentCount = g.Where(u => u.VisitTask.IsUrgent UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First())
&& u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(), .Count(t => t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
ToBeReplyedCount = g.Where(u => ToBeReplyedCount = g.Select(t => t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()).Count(t => t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(),
ToBeReviewedCount=g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count() ToBeReviewedCount = g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count()
}); });
#endregion
//var query = _trialReadingCriterionRepository
// .Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
// //.Where(t => t.IsClosedDialog == false)
// .GroupBy(t => new
// {
// t.TrialId,
// t.Trial.ResearchProgramNo,
// t.Trial.ExperimentName,
// t.Trial.TrialCode,
// t.VisitTask.TrialReadingCriterionId,
// t.VisitTask.TrialReadingCriterion.CriterionName
// })
// .Select(g => new MedicalCommentsToBeDoneDto()
// {
// TrialId = g.Key.TrialId,
// ResearchProgramNo = g.Key.ResearchProgramNo,
// ExperimentName = g.Key.ExperimentName,
// TrialCode = g.Key.TrialCode,
// CriterionName = g.Key.CriterionName,
// UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u=>u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First())
// .Count(t=>t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
// ToBeReplyedCount = g.Select(t=>t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()).Count(t=>t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
// ToBeReviewedCount=g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count()
// });
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(MedicalCommentsToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc); var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(MedicalCommentsToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);