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>
<returns></returns>
</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">
<summary>
临床数据问题
</summary>
</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)">
<summary>
获取系统临床数据预览
@ -2682,11 +2718,16 @@
<param name="inDto"></param>
<returns></returns>
</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>
</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">
<summary>
最晚拍片日期
@ -2922,6 +2963,46 @@
是否启用
</summary>
</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">
<summary>
系统临床数据Id
@ -2947,6 +3028,11 @@
子问题
</summary>
</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">
<summary>
表格问题
@ -3067,6 +3153,16 @@
单位
</summary>
</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">
<summary>
查询临床数据基类
@ -3097,16 +3193,6 @@
项目临床数据Id
</summary>
</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">
<summary>
获取系统临床数据
@ -10576,9 +10662,9 @@
<param name="_trialRepository"></param>
<returns></returns> vvv
</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>
重阅审批
SPM 重阅审批
</summary>
<param name="inQuery"></param>
<param name="_visitTaskReReadingRepository"></param>

View File

@ -871,6 +871,7 @@ namespace IRaCIS.Core.Application
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(),
@ -906,38 +907,70 @@ namespace IRaCIS.Core.Application
/// <returns></returns>
[HttpPost]
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
.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,
.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
&& u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(),
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.Where(u =>
u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count(),
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()
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);