增加Global Using
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-09-20 10:19:08 +08:00
parent 115017197b
commit fc30cb39ee
408 changed files with 11031 additions and 12556 deletions
@@ -3,12 +3,10 @@
// 生成时间 2022-06-07 13:16:33
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Domain.Share;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.ViewModel
{
@@ -112,18 +110,19 @@ namespace IRaCIS.Core.Application.ViewModel
public List<CriterionReadingCategory> CriterionCategoryList =>
TrialReadingCriterionList.Select(t =>
new CriterionReadingCategory() {
EnrollId = EnrollId,
TrialReadingCriterionId = t.TrialReadingCriterionId,
new CriterionReadingCategory()
{
EnrollId = EnrollId,
TrialReadingCriterionId = t.TrialReadingCriterionId,
ReadingCategorys = CriterionReadingCategoryList.Where(c => c.TrialReadingCriterionId == t.TrialReadingCriterionId).Select(t => t.ReadingCategory).OrderBy(c => c).ToList()
}).ToList();
//CriterionReadingCategoryList.Count == 0 ? TrialReadingCriterionList.Select(t => new CriterionReadingCategory() { EnrollId = EnrollId, TrialReadingCriterionId = t.TrialReadingCriterionId }).ToList() :
// CriterionReadingCategoryList
//.GroupBy(t => new { t.TrialReadingCriterionId, t.EnrollId })
//.Select(g => new CriterionReadingCategory() { EnrollId = g.Key.EnrollId, TrialReadingCriterionId = g.Key.TrialReadingCriterionId, ReadingCategorys = g.Select(t => t.ReadingCategory).OrderBy(t=>t).ToList() }).ToList();
//CriterionReadingCategoryList.Count == 0 ? TrialReadingCriterionList.Select(t => new CriterionReadingCategory() { EnrollId = EnrollId, TrialReadingCriterionId = t.TrialReadingCriterionId }).ToList() :
// CriterionReadingCategoryList
//.GroupBy(t => new { t.TrialReadingCriterionId, t.EnrollId })
//.Select(g => new CriterionReadingCategory() { EnrollId = g.Key.EnrollId, TrialReadingCriterionId = g.Key.TrialReadingCriterionId, ReadingCategorys = g.Select(t => t.ReadingCategory).OrderBy(t=>t).ToList() }).ToList();
}
@@ -212,7 +211,7 @@ namespace IRaCIS.Core.Application.ViewModel
public class GenerateTaskCommand
{
public Guid TrialId { get; set; }
//针对访视产生任务的 有用
public bool IsAssignSubjectToDoctor { get; set; }
@@ -3,9 +3,7 @@
// 生成时间 2022-07-01 15:33:01
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
@@ -81,7 +79,7 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid DoctorUserId { get; set; }
}
public class ConsistentConfirmGenerateCommand: SelfConsistentSimpleQuery
public class ConsistentConfirmGenerateCommand : SelfConsistentSimpleQuery
{
@@ -104,10 +102,10 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsAutoAllocateGenerateTask { get; set; }
}
public class DoctorSelfConsistentSubjectView: ConsistentCommonView
public class DoctorSelfConsistentSubjectView : ConsistentCommonView
{
public string FirstGlobalVisitName { get; set; } = string.Empty;
public string? BlindSubjectCode { get; set; }
public string? BlindSubjectCode { get; set; }
public List<VisitTaskSimpleDTO> VisitTaskList { get; set; }
@@ -130,14 +128,14 @@ namespace IRaCIS.Core.Application.ViewModel
public int? ValidVisitCount { get; set; }
}
public class DoctorGroupConsistentSubjectView: ConsistentCommonView
public class DoctorGroupConsistentSubjectView : ConsistentCommonView
{
public List<VisitTaskGroupSimpleDTO> SubjectTaskVisitList => VisitTaskList.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Select(g => g.First()).OrderBy(t=>t.VisitTaskNum).ToList();
public List<VisitTaskGroupSimpleDTO> SubjectTaskVisitList => VisitTaskList.GroupBy(t => new { t.SubjectId, t.VisitTaskNum }).Where(g => g.Count() == 2).Select(g => g.First()).OrderBy(t => t.VisitTaskNum).ToList();
public List<VisitTaskGroupSimpleDTO> VisitTaskList { get; set; } = new List<VisitTaskGroupSimpleDTO>();
public List<UserSimpleInfo> DoctorUserList { get; set; }=new List<UserSimpleInfo>();
public List<UserSimpleInfo> DoctorUserList { get; set; } = new List<UserSimpleInfo>();
}
public class VisitTaskGroupSimpleDTO
@@ -175,10 +173,10 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsClinicalDataSign { get; set; }
}
public class VisitTaskSimpleDTO :VisitTaskGroupSimpleDTO
public class VisitTaskSimpleDTO : VisitTaskGroupSimpleDTO
{
public Guid? Id { get; set; }
public string TaskCode { get; set; }
@@ -289,7 +287,7 @@ namespace IRaCIS.Core.Application.ViewModel
public class GetConsistentRuleOut
{
public TaskConsistentRuleBasic? ConsistentRuleBasic { get; set; }
public TaskConsistentRuleBasic? ConsistentRuleBasic { get; set; }
/// <summary>
/// 任务展示访视 读片任务显示是否顺序
/// </summary>
@@ -316,7 +314,7 @@ namespace IRaCIS.Core.Application.ViewModel
public string VirtualSiteCode { get; set; }
}
public class UpdateTrialSiteCodeCommandView: UpdateTrialSiteCodeCommand
public class UpdateTrialSiteCodeCommandView : UpdateTrialSiteCodeCommand
{
public DateTime Creatime { get; set; }
}
@@ -3,11 +3,8 @@
// 生成时间 2022-06-29 13:36:46
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.ViewModel
{
@@ -33,7 +30,7 @@ namespace IRaCIS.Core.Application.ViewModel
public List<TaskBasicIdView> ActualTumorTaskList { get; set; }
[JsonIgnore]
public List<TaskBasicIdView> GeneratedVisitTaskList { get; set; }
@@ -3,9 +3,7 @@
// 生成时间 2022-06-29 10:59:50
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.ViewModel
@@ -69,7 +67,7 @@ namespace IRaCIS.Core.Application.ViewModel
{
if (!ReadingDurationTimeSpan.HasValue)
return "";
else return string.Format("{0}h:{1}m:{2}s", (SignTime - FirstReadingTime)?.Hours, (SignTime - FirstReadingTime)?.Minutes, (SignTime - FirstReadingTime)?.Seconds)
else return string.Format("{0}h:{1}m:{2}s", (SignTime - FirstReadingTime)?.Hours, (SignTime - FirstReadingTime)?.Minutes, (SignTime - FirstReadingTime)?.Seconds)
/*string.Format("{0}分钟", (ReadingDurationTimeSpan)?.TotalMinutes)*/;
}
}
@@ -102,18 +100,18 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid? SubjectId { get; set; }
public Guid? MedicalManagerUserId { get; set; }
public Guid? MedicalManagerUserId { get; set; }
public DateTime? BeginSignTime { get; set; }
public AuditAdvice? AuditAdviceEnum { get; set; }
public DateTime? BeginSignTime { get; set; }
public AuditAdvice? AuditAdviceEnum { get; set; }
public DateTime? EndSignTime { get; set; }
public DateTime? EndSignTime { get; set; }
public bool IsGetBeRead { get; set; } = false;
public bool IsGetBeRead { get; set; } = false;
public bool IsGetNextMedicalReviewTask { get; set; } = false;
public bool IsGetNextMedicalReviewTask { get; set; } = false;
public string SubjectCode { get; set; } = String.Empty;
public string SubjectCode { get; set; } = String.Empty;
public string TrialSiteCode { get; set; } = String.Empty;
public string TaskName { get; set; } = String.Empty;
@@ -133,7 +131,7 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid? TrialReadingCriterionId { get; set; }
public MedicalReviewDoctorUserIdea? DoctorUserIdeaEnum { get; set; }
public MedicalReviewDoctorUserIdea? DoctorUserIdeaEnum { get; set; }
public Arm? ArmEnum { get; set; }
@@ -3,11 +3,9 @@
// 生成时间 2022-06-07 14:10:54
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
namespace IRaCIS.Core.Application.ViewModel
{
@@ -86,9 +84,9 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsClinicalDataSign { get; set; }
public CompleteClinicalDataEnum CompleteClinicalDataEnum =>
public CompleteClinicalDataEnum CompleteClinicalDataEnum =>
(IsNeedClinicalDataSign && IsClinicalDataSign) ? CompleteClinicalDataEnum.Complete : (IsNeedClinicalDataSign && IsClinicalDataSign == false) ? CompleteClinicalDataEnum.NotComplete : CompleteClinicalDataEnum.NA;
/// <summary>
@@ -99,7 +97,7 @@ namespace IRaCIS.Core.Application.ViewModel
/// <summary>
/// 任务展示访视 读片任务显示是否顺序
/// </summary>
public ReadingOrder IsReadingTaskViewInOrder { get; set; }
public ReadingOrder IsReadingTaskViewInOrder { get; set; }
/// <summary>
@@ -163,7 +161,7 @@ namespace IRaCIS.Core.Application.ViewModel
public bool IsCanEditUrgentState { get; set; }
public DateTime? FirstReadingTime { get;set; }
public DateTime? FirstReadingTime { get; set; }
public string ReadingDuration
{
@@ -224,7 +222,7 @@ namespace IRaCIS.Core.Application.ViewModel
public int ConsistentClinicalDataCount { get; set; } = 0;
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
public bool IsReReadingOrBackInfluenceAnalysis { get; set; }
}
@@ -318,7 +316,7 @@ namespace IRaCIS.Core.Application.ViewModel
if (this.SuggesteFinishedTime != null)
{
var date = DateTime.Now;
var timeSpan = SuggesteFinishedTime.Value- date;
var timeSpan = SuggesteFinishedTime.Value - date;
if (timeSpan.TotalDays <= 2)
{
return 1;
@@ -339,12 +337,12 @@ namespace IRaCIS.Core.Application.ViewModel
}
}
public int UrgentCount { get; set; }
public int UrgentCount { get; set; }
public List<IRUnreadTaskView> UnReadCanReadTaskList { get; set; } = new List<IRUnreadTaskView>();
public List<IRUnreadTaskView> UnReadCanReadTaskList { get; set; } = new List<IRUnreadTaskView>();
public List<IRUnreadTaskView> UnReadTaskList { get; set; } = new List<IRUnreadTaskView>();
public List<IRUnreadTaskView> UnReadTaskList { get; set; } = new List<IRUnreadTaskView>();
}
public class IRUnreadTaskView
@@ -391,13 +389,13 @@ namespace IRaCIS.Core.Application.ViewModel
}
public class GetReadingIQueryableInDto:PageInput
public class GetReadingIQueryableInDto : PageInput
{
public Guid TrialId { get; set; }
public Guid TrialId { get; set; }
public Guid? SubjectId { get; set; }
public Guid? SubjectId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
public string? SubjectCode { get; set; } = null;
@@ -409,7 +407,7 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid TrialId { get; set; }
public Guid? TrialSiteId { get; set; }
public Guid? TrialSiteId { get; set; }
public Guid? SubjectId { get; set; }
@@ -435,7 +433,7 @@ namespace IRaCIS.Core.Application.ViewModel
public DateTime? BeginSignTime { get; set; }
public DateTime? EndSignTime { get; set; }
public DateTime? EndSignTime { get; set; }
public DateTime? BeginRequestReReadingTime { get; set; }
public DateTime? EndRequestReReadingTime { get; set; }
@@ -553,7 +551,7 @@ namespace IRaCIS.Core.Application.ViewModel
public int? SubjectAllocateState { get; set; }
public List<Arm> ArmList { get; set; }=new List<Arm>() { };
public List<Arm> ArmList { get; set; } = new List<Arm>() { };
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
@@ -6,20 +6,20 @@
using IRaCIS.Core.Application.ViewModel;
namespace IRaCIS.Core.Application.Interfaces
{
/// <summary>
/// ITaskAllocationRuleService
/// </summary>
public interface ITaskAllocationRuleService
{
/// <summary>
/// ITaskAllocationRuleService
/// </summary>
public interface ITaskAllocationRuleService
{
//Task<List<TaskAllocationRuleView>> GetTaskAllocationRuleList(TaskAllocationRuleQuery queryTaskAllocationRule);
Task<IResponseOutput> AddOrUpdateTaskAllocationRule(TaskAllocationRuleAddOrEdit addOrEditTaskAllocationRule);
Task<IResponseOutput> DeleteTaskAllocationRule(Guid taskAllocationRuleId);
//Task<List<TaskAllocationRuleView>> GetTaskAllocationRuleList(TaskAllocationRuleQuery queryTaskAllocationRule);
Task<IResponseOutput> AddOrUpdateTaskAllocationRule(TaskAllocationRuleAddOrEdit addOrEditTaskAllocationRule);
Task<IResponseOutput> DeleteTaskAllocationRule(Guid taskAllocationRuleId);
}
}
}
@@ -6,20 +6,20 @@
using IRaCIS.Core.Application.ViewModel;
namespace IRaCIS.Core.Application.Interfaces
{
/// <summary>
/// ITaskConsistentRuleService
/// </summary>
public interface ITaskConsistentRuleService
{
/// <summary>
/// ITaskConsistentRuleService
/// </summary>
public interface ITaskConsistentRuleService
{
//Task<List<TaskConsistentRuleView>> GetTaskConsistentRuleList(TaskConsistentRuleQuery inQuery);
Task<IResponseOutput> AddOrUpdateTaskConsistentRule(TaskConsistentRuleAddOrEdit addOrEditTaskConsistentRule);
Task<IResponseOutput> DeleteTaskConsistentRule(Guid taskConsistentRuleId);
//Task<List<TaskConsistentRuleView>> GetTaskConsistentRuleList(TaskConsistentRuleQuery inQuery);
Task<IResponseOutput> AddOrUpdateTaskConsistentRule(TaskConsistentRuleAddOrEdit addOrEditTaskConsistentRule);
Task<IResponseOutput> DeleteTaskConsistentRule(Guid taskConsistentRuleId);
}
}
}
@@ -18,6 +18,6 @@ namespace IRaCIS.Core.Application.Service
Task AddConvertedTask(Guid taskId);
Task BaseCritrionGenerateVisitTask(Guid trialId, Guid confirmedTrialReadingCriterionId,bool? isManualSelectVisit=null,List<Guid>? subjectVisitIdList=null);
Task BaseCritrionGenerateVisitTask(Guid trialId, Guid confirmedTrialReadingCriterionId, bool? isManualSelectVisit = null, List<Guid>? subjectVisitIdList = null);
}
}
@@ -4,13 +4,12 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Application.Filter;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.Application.Service
{
@@ -4,23 +4,16 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Domain.Share;
using System.Linq.Expressions;
using IRaCIS.Core.Infra.EFCore.Common;
using System.Linq;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter;
using Medallion.Threading;
using IRaCIS.Core.Infrastructure.Extention;
using System;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using NPOI.SS.Formula.Functions;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infra.EFCore.Common;
using IRaCIS.Core.Infrastructure;
using Medallion.Threading;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.Application.Service
{
@@ -114,7 +107,7 @@ namespace IRaCIS.Core.Application.Service
}
#endregion
var trialTaskConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { IsHaveDoubleReadCriterion = t.TrialReadingCriterionList.Any(t => t.IsSigned && t.IsConfirm && t.ReadingType == ReadingMethod.Double), t.VitrualSiteCode }).FirstOrDefault();
var trialTaskConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { IsHaveDoubleReadCriterion = t.TrialReadingCriterionList.Any(t => t.IsSigned && t.IsConfirm && t.ReadingType == ReadingMethod.Double), t.VitrualSiteCode }).FirstOrDefault();
return ResponseOutput.Ok(pageList, trialTaskConfig);
}
@@ -4,11 +4,10 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Application.Filter;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.Application.Service
{
@@ -21,19 +20,19 @@ namespace IRaCIS.Core.Application.Service
IRepository<TrialUser> _trialUserRepository) : BaseService, ITaskMedicalReviewRuleService
{
[HttpPost]
public async Task<(List<TaskMedicalReviewRuleView>,object)> GetTaskMedicalReviewRuleList(TaskMedicalReviewRuleQuery inQuery)
public async Task<(List<TaskMedicalReviewRuleView>, object)> GetTaskMedicalReviewRuleList(TaskMedicalReviewRuleQuery inQuery)
{
var taskTaskMedicalReviewRuleQueryable = _taskMedicalReviewRuleRepository.Where(t => t.TrialId == inQuery.TrialId)
.ProjectTo<TaskMedicalReviewRuleView>(_mapper.ConfigurationProvider);
var isHaveMIM = await _trialUserRepository.AnyAsync(t => t.User.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId==inQuery.TrialId);
var isHaveMIM = await _trialUserRepository.AnyAsync(t => t.User.UserTypeEnum == Domain.Share.UserTypeEnum.MIM && t.TrialId == inQuery.TrialId);
return (await taskTaskMedicalReviewRuleQueryable.ToListAsync(),new {IsHaveMIM=isHaveMIM});
return (await taskTaskMedicalReviewRuleQueryable.ToListAsync(), new { IsHaveMIM = isHaveMIM });
}
[HttpPost]
@@ -43,7 +42,7 @@ namespace IRaCIS.Core.Application.Service
{
var verifyExp1 = new EntityVerifyExp<TaskMedicalReviewRule>()
{
VerifyExp = t => t.DoctorUserId == addOrEditTaskTaskMedicalReviewRule.DoctorUserId && t.TrialId == addOrEditTaskTaskMedicalReviewRule.TrialId,
//"已有该医生配置,不允许继续增加"
VerifyMsg = _localizer["TaskMedicalRule_TaskAlreadyAssigned"]
@@ -68,7 +67,7 @@ namespace IRaCIS.Core.Application.Service
// return ResponseOutput.NotOk(_localizer["TaskMedicalRule_TaskStarted"]);
//}
var success = await _taskMedicalReviewRuleRepository.DeleteFromQueryAsync(t => t.Id == taskMedicalReviewRuleId,true);
var success = await _taskMedicalReviewRuleRepository.DeleteFromQueryAsync(t => t.Id == taskMedicalReviewRuleId, true);
return ResponseOutput.Ok();
}
@@ -4,14 +4,12 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Application.Filter;
using Microsoft.Extensions.Logging;
using IRaCIS.Core.Infrastructure;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.Application.Service
{
@@ -26,7 +24,7 @@ namespace IRaCIS.Core.Application.Service
IRepository<VisitTask> _visitTaskRepository) : BaseService, ITaskMedicalReviewService
{
/// <summary>
/// PM 医学审核(挑选任务生成后的列表)
@@ -41,7 +39,7 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.TrialSiteId != null, t => t.VisitTask.Subject.TrialSiteId == inQuery.TrialSiteId)
.WhereIf(inQuery.SubjectId != null, t => t.VisitTask.SubjectId == inQuery.SubjectId)
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode) || t.VisitTask.Subject.MedicalNo.Contains(inQuery.SubjectCode))
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode) || t.VisitTask.Subject.MedicalNo.Contains(inQuery.SubjectCode))
.WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.VisitTask.TaskName.Contains(inQuery.TaskName) || t.VisitTask.TaskBlindName.Contains(inQuery.TaskName))
.WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent)
.WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId)
@@ -50,23 +48,23 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.TaskState != null, t => t.VisitTask.TaskState == inQuery.TaskState)
.WhereIf(inQuery.ArmEnum != null, t => t.VisitTask.ArmEnum == inQuery.ArmEnum)
.WhereIf(inQuery.AuditState != null, t => t.AuditState == inQuery.AuditState)
.WhereIf(inQuery.MedicalManagerUserId != null, t => t.MedicalManagerUserId == inQuery.MedicalManagerUserId)
.WhereIf(inQuery.MedicalManagerUserId != null, t => t.MedicalManagerUserId == inQuery.MedicalManagerUserId)
.WhereIf(inQuery.BeginSignTime != null, t => t.VisitTask.SignTime > inQuery.BeginSignTime)
.WhereIf(inQuery.EndSignTime != null, t => t.VisitTask.SignTime < inQuery.EndSignTime)
.WhereIf(inQuery.AuditAdviceEnum != null, t => t.AuditAdviceEnum == inQuery.AuditAdviceEnum)
.WhereIf(inQuery.AuditAdviceEnum != null, t => t.AuditAdviceEnum == inQuery.AuditAdviceEnum)
.WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum)
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
.WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum)
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
.WhereIf(inQuery.IsHaveQuestion != null, t => t.IsHaveQuestion == inQuery.IsHaveQuestion)
.WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime >= inQuery.BeginAllocateDate)
.WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime <= inQuery.EndAllocateDate)
.WhereIf(inQuery.BeginAuditSignTime != null, t => t.AuditSignTime >= inQuery.BeginAuditSignTime)
.WhereIf(inQuery.EndAuditSignTime != null, t => t.AuditSignTime <= inQuery.EndAuditSignTime)
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
var defalutSortArray = new string[] { nameof(TaskMedicalReviewView.AuditState), nameof(TaskMedicalReviewView.SubjectCode), nameof(TaskMedicalReviewView.ArmEnum) , nameof(TaskMedicalReviewView.VisitTaskNum) };
var defalutSortArray = new string[] { nameof(TaskMedicalReviewView.AuditState), nameof(TaskMedicalReviewView.SubjectCode), nameof(TaskMedicalReviewView.ArmEnum), nameof(TaskMedicalReviewView.VisitTaskNum) };
var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery, defalutSortArray);
return pageList;
@@ -82,7 +80,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<PageOutput<GenerateMedicalReviewTaskView>> GetGenerateMedicalReviewTaskList(GenerateMedicalReviewTaskQuery inQuery)
{
var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId)
.Where(t => t.IsAnalysisCreate == false && (t.TaskState == TaskState.Effect||t.TaskState==TaskState.Freeze) && t.ReadingTaskState == ReadingTaskState.HaveSigned)
.Where(t => t.IsAnalysisCreate == false && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.ReadingTaskState == ReadingTaskState.HaveSigned)
.WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId)
.WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId)
@@ -161,16 +159,16 @@ namespace IRaCIS.Core.Application.Service
var result = new TaskMedicalReviewView() { };
if (index+1 == data.CurrentPageData.Count()) // 最后一个
if (index + 1 == data.CurrentPageData.Count()) // 最后一个
{
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
else if (index == -1 || data.CurrentPageData.Count == 1) // 第一个或者只有一个
{
if (data.CurrentPageData[0].Id == inDto.MedicalReviewId)
{
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
result = data.CurrentPageData[0];
}
else
@@ -183,8 +181,8 @@ namespace IRaCIS.Core.Application.Service
}
else
{
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
throw new BusinessValidationFailedException(_localizer["MedicalReview_Finish"]);
}
}
@@ -196,34 +194,34 @@ namespace IRaCIS.Core.Application.Service
/// <param name="inQuery"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput< PageOutput<TaskMedicalReviewView>>> 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)
.WhereIf(inQuery.IsGetNextMedicalReviewTask,
x=>(
!x.IsInvalid&& x.AuditState== MedicalReviewAuditState.Auditing &
( x.ReadingMedicalReviewDialogList.Count()!=0&&
x.ReadingMedicalReviewDialogList.Count()>0&&
x.ReadingMedicalReviewDialogList.OrderByDescending(x=>x.CreateTime).FirstOrDefault().UserTypeEnumInt==(int)UserTypeEnum.IndependentReviewer)
x => (
!x.IsInvalid && x.AuditState == MedicalReviewAuditState.Auditing &
(x.ReadingMedicalReviewDialogList.Count() != 0 &&
x.ReadingMedicalReviewDialogList.Count() > 0 &&
x.ReadingMedicalReviewDialogList.OrderByDescending(x => x.CreateTime).FirstOrDefault().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
) // 审核中最新回复为IR的
|| (!x.IsInvalid&& x.AuditState==MedicalReviewAuditState.WaitAudit)
||x.Id == inQuery.Id // 这里必须找传入id 因为要找到这条的索引 获取下一条
)
|| (!x.IsInvalid && x.AuditState == MedicalReviewAuditState.WaitAudit)
|| x.Id == inQuery.Id // 这里必须找传入id 因为要找到这条的索引 获取下一条
)
.WhereIf(inQuery.SubjectId != null, t => t.VisitTask.SubjectId == inQuery.SubjectId)
.WhereIf(inQuery.TrialSiteId != null, t => t.VisitTask.Subject.TrialSiteId == inQuery.TrialSiteId)
.WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent)
.WhereIf(inQuery.AuditState != null, t => t.AuditState == inQuery.AuditState)
.WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum)
.WhereIf(inQuery.TaskState != null, t => t.VisitTask.TaskState == inQuery.TaskState)
.WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum)
.WhereIf(inQuery.TaskState != null, t => t.VisitTask.TaskState == inQuery.TaskState)
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode) || t.VisitTask.Subject.MedicalNo.Contains(inQuery.SubjectCode))
.WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.VisitTask.TaskName.Contains(inQuery.TaskName) || t.VisitTask.TaskBlindName.Contains(inQuery.TaskName))
.WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId)
.WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory)
.WhereIf(inQuery.ReadingTaskState != null, t => t.VisitTask.ReadingTaskState == inQuery.ReadingTaskState)
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
.WhereIf(inQuery.IsGetBeRead, x => !x.IsInvalid && x.AuditState != MedicalReviewAuditState.HaveSigned)
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
.WhereIf(inQuery.BeginAuditSignTime != null, t => t.AuditSignTime >= inQuery.BeginAuditSignTime)
.WhereIf(inQuery.EndAuditSignTime != null, t => t.AuditSignTime <= inQuery.EndAuditSignTime)
@@ -239,10 +237,10 @@ namespace IRaCIS.Core.Application.Service
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
var defalutSortArray = new string[] { nameof(TaskMedicalReviewView.SubjectCode), nameof(TaskMedicalReviewView.ArmEnum), nameof(TaskMedicalReviewView.VisitTaskNum) };
var defalutSortArray = new string[] { nameof(TaskMedicalReviewView.SubjectCode), nameof(TaskMedicalReviewView.ArmEnum), nameof(TaskMedicalReviewView.VisitTaskNum) };
var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery, defalutSortArray);
return ResponseOutput.Ok(pageList, new
return ResponseOutput.Ok(pageList, new
{
IsConfirmMedicineQuestion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inQuery.TrialReadingCriterionId).Select(x => x.IsConfirmMedicineQuestion).FirstOrDefaultAsync()
@@ -265,7 +263,7 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.NotOk(_localizer["TaskMedical_DirtyData"]);
}
await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(t => command.MedicalReviewIdList.Contains(t.Id), c => new TaskMedicalReview() { IsInvalid = true },true);
await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(t => command.MedicalReviewIdList.Contains(t.Id), c => new TaskMedicalReview() { IsInvalid = true }, true);
return ResponseOutput.Ok();
@@ -4,20 +4,13 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure;
using AutoMapper;
using MassTransit;
using IRaCIS.Core.Infra.EFCore.Common;
using System.Linq.Expressions;
using IRaCIS.Core.Domain.Share.Reading;
using IRaCIS.Core.Application.Service.Reading.Dto;
using System.Runtime.InteropServices;
using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Infra.EFCore.Common;
using MassTransit;
using Microsoft.AspNetCore.Mvc;
using ZiggyCreatures.Caching.Fusion;
namespace IRaCIS.Core.Application.Service
@@ -35,7 +28,7 @@ namespace IRaCIS.Core.Application.Service
IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository,
IRepository<SubjectUser> _subjectUserRepository,
IRepository<ReadModule> _readModuleRepository,
IRepository<ReadingOncologyTaskInfo> _readingOncologyTaskInfoRepository,
IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository,
@@ -44,7 +37,7 @@ namespace IRaCIS.Core.Application.Service
IRepository<ReadingConsistentClinicalData> _readingConsistentClinicalDataRepository) : BaseService, IVisitTaskHelpeService
{
//查询列表的时候,一致性核查通过未产生任务的 自动产生任务 如果是一致性核查,那么还会自动分配
public async Task GenerateVisitTaskAsync(Guid trialId, List<Guid> subjectVisitIdList, bool isAssignSubjectToDoctor = false)
@@ -136,7 +129,7 @@ namespace IRaCIS.Core.Application.Service
var dbMaxCode = _visitTaskRepository.Where(t => t.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max();
var cacheMaxCodeInt =_fusionCache.GetOrDefault<int>(CacheKeys.TrialStudyMaxCode(trialId));
var cacheMaxCodeInt = _fusionCache.GetOrDefault<int>(CacheKeys.TrialStudyMaxCode(trialId));
int currentMaxCodeInt = cacheMaxCodeInt > dbMaxCode ? cacheMaxCodeInt : dbMaxCode;
@@ -432,8 +425,8 @@ namespace IRaCIS.Core.Application.Service
//CRC 的自动签名 不用管 只用处理PM的就好
var haveSignedCount = _readingClinicalDataRepository
.Where(t => t.TrialId == trialId && t.IsSign
&& t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(x=>x.TrialReadingCriterionId== trialReadingCriterionId)
.Where(t => t.TrialId == trialId && t.IsSign
&& t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(x => x.TrialReadingCriterionId == trialReadingCriterionId)
&& t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count();
@@ -575,7 +568,7 @@ namespace IRaCIS.Core.Application.Service
var dbMaxCode = _visitTaskRepository.Where(t => t.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max();
var cacheMaxCodeInt =_fusionCache.GetOrDefault<int>(CacheKeys.TrialStudyMaxCode(trialId));
var cacheMaxCodeInt = _fusionCache.GetOrDefault<int>(CacheKeys.TrialStudyMaxCode(trialId));
int currentMaxCodeInt = cacheMaxCodeInt > dbMaxCode ? cacheMaxCodeInt : dbMaxCode;
@@ -1390,13 +1383,13 @@ namespace IRaCIS.Core.Application.Service
var firsttask = generateTaskCommand.GenerataConsistentTaskList[0];
var clinicalDataList = _readingClinicalDataRepository.Where(t => t.SubjectId == subjectId
&& t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == firsttask.TrialReadingCriterionId)
&& t.ClinicalDataTrialSet.ClinicalDataLevel!= ClinicalLevel.Study
&& t.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Study
&& t.ClinicalDataTrialSet.ClinicalUploadType == ClinicalUploadType.PDF)
// crc受试者和访视的临床数据没上传 一致性分析的时候也不用显示
.Where(x=>x.ClinicalDataTrialSet.UploadRole == UploadRole.PM||x.FileCount>0)
.Where(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.PM || x.FileCount > 0)
.Include(t => t.ReadingClinicalDataPDFList).Include(t => t.ClinicalDataTrialSet).ToList();
foreach (var clinicalData in clinicalDataList)
{
var consistnentClinicalData = _mapper.Map<ReadingConsistentClinicalData>(clinicalData);
@@ -1424,12 +1417,12 @@ namespace IRaCIS.Core.Application.Service
foreach (var task in generateTaskCommand.GenerataConsistentTaskList)
{
var exsitPDF = await _readingClinicalDataRepository
.WhereIf(isReadingTaskViewInOrder== ReadingOrder.Random,t=>t.ReadingId== task.SouceReadModuleId|| t.ReadingId == task.SourceSubjectVisitId)
.WhereIf(isReadingTaskViewInOrder == ReadingOrder.Random, t => t.ReadingId == task.SouceReadModuleId || t.ReadingId == task.SourceSubjectVisitId)
.AnyAsync(t => t.TrialId == trialId &&
t.SubjectId== task.SubjectId&&
t.SubjectId == task.SubjectId &&
t.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == readingCriterionId)
&& t.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Study
@@ -4,24 +4,17 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Infra.EFCore.Common;
using System.Linq.Expressions;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Filter;
using DocumentFormat.OpenXml.Office2010.Word;
using System.Linq.Dynamic.Core;
using System.Linq;
using DocumentFormat.OpenXml.Bibliography;
using IRaCIS.Core.Domain.Share.Reading;
using IRaCIS.Core.Infra.EFCore.Common;
using IRaCIS.Core.Infrastructure;
using MassTransit;
using System.Reactive.Subjects;
using Microsoft.AspNetCore.Mvc;
using System.Linq.Dynamic.Core;
using Subject = IRaCIS.Core.Domain.Models.Subject;
namespace IRaCIS.Core.Application.Service.Allocation;
@@ -73,7 +66,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
TaskUrgentRemake = inDto.TaskUrgentRemake,
});
return await _visitTaskRepository.SaveChangesAsync();
}
@@ -145,7 +138,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
.ProjectTo<SubjectAssignStat>(_mapper.ConfigurationProvider, new { trialReadingCriterionId = inQuery.TrialReadingCriterionId });
var pageList = await subjectQuery.ToPagedListAsync(inQuery,nameof(SubjectAssignStat.SubjectId));
var pageList = await subjectQuery.ToPagedListAsync(inQuery, nameof(SubjectAssignStat.SubjectId));
@@ -1205,7 +1198,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
.ToList()
}).Where(x => x.UnReadCanReadTaskCount > 0);
var pageList = await visitTaskQuery.ToPagedListAsync(inQuery, nameof(IRUnReadSubjectView.UnReadCanReadTaskCount) );
var pageList = await visitTaskQuery.ToPagedListAsync(inQuery, nameof(IRUnReadSubjectView.UnReadCanReadTaskCount));
return pageList;
}
@@ -1,8 +1,6 @@
using AutoMapper;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Core.Application.Service
@@ -59,10 +57,10 @@ namespace IRaCIS.Core.Application.Service
: u.Trial.SubjectList.Where(t => subjectIdList.Contains(t.Id) && t.SubjectVisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Any(c => c.DoctorUserId == null)).Count()
))
//.ForMember(o => o.WaitApplySelfTaskCount, t => t.MapFrom(u =>
//subjectIdList.Count == 0 ? u.Trial.SubjectDoctorUserList.Where(d => d.DoctorUserId == u.DoctorUserId).SelectMany(t => t.SubjectArmVisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null)).Count()
//: u.Trial.SubjectDoctorUserList.Where(d => d.DoctorUserId == u.DoctorUserId && subjectIdList.Contains(d.SubjectId)).SelectMany(t => t.SubjectArmVisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null)).Count()
// ))
//.ForMember(o => o.WaitApplySelfTaskCount, t => t.MapFrom(u =>
//subjectIdList.Count == 0 ? u.Trial.SubjectDoctorUserList.Where(d => d.DoctorUserId == u.DoctorUserId).SelectMany(t => t.SubjectArmVisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null)).Count()
//: u.Trial.SubjectDoctorUserList.Where(d => d.DoctorUserId == u.DoctorUserId && subjectIdList.Contains(d.SubjectId)).SelectMany(t => t.SubjectArmVisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null)).Count()
// ))
.ForMember(o => o.WaitApplyTotalTaskCount, t => t.MapFrom(u =>
subjectIdList.Count == 0 ? u.Trial.VisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null).Count()
@@ -75,7 +73,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.DoctorUser, t => t.MapFrom(u => u.Enroll.DoctorUser))
.ForMember(o => o.CriterionReadingCategoryList, t => t.MapFrom(u => u.Enroll.EnrollReadingCategoryList.Select(t => new TrialCriterionReadingCategory() { EnrollId = t.EnrollId, ReadingCategory = t.ReadingCategory, TrialReadingCriterionId = t.TrialReadingCriterionId })))
.ForMember(o => o.TrialReadingCriterionList, t => t.MapFrom(u => u.Trial.TrialReadingCriterionList.Where(t => t.IsConfirm)))
.ForMember(o => o.ReadingCategoryList, t => t.MapFrom(u => u.Enroll.EnrollReadingCategoryList.Where(t=>t.TrialReadingCriterionId== trialReadingCriterionId).OrderBy(t => t.ReadingCategory).Select(t => t.ReadingCategory).ToList()))
.ForMember(o => o.ReadingCategoryList, t => t.MapFrom(u => u.Enroll.EnrollReadingCategoryList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).OrderBy(t => t.ReadingCategory).Select(t => t.ReadingCategory).ToList()))
;
CreateMap<ReadingQuestionCriterionTrial, TrialReadingCriterionDto>()
@@ -86,25 +84,25 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.AssignedSubjectCount, t => t.MapFrom(u => u.DoctorUser.VisitTaskList.Where(t => t.TrialId == u.TrialId).Select(t => t.SubjectId).Distinct().Count()))
.ForMember(o => o.WaitDealTrialTaskCount, t => t.MapFrom(u => u.DoctorUser.VisitTaskList.Where(t => t.TrialId == u.TrialId).Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect).Count()))
.ForMember(o => o.WaitDealAllTaskCount, t => t.MapFrom(u => u.DoctorUser.VisitTaskList.Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect).Count()));
CreateMap<Subject, SubjectAssignStat>()
.ForMember(o => o.SubjectId, t => t.MapFrom(u => u.Id))
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Code))
.ForMember(o => o.VisitTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Visit && t.TrialReadingCriterionId==trialReadingCriterionId && t.TaskState==TaskState.Effect).Select(t => t.VisitTaskNum).Distinct().Count()))
.ForMember(o => o.VisitTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Visit && t.TrialReadingCriterionId == trialReadingCriterionId && t.TaskState == TaskState.Effect).Select(t => t.VisitTaskNum).Distinct().Count()))
.ForMember(o => o.GlobalTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Global && t.TrialReadingCriterionId == trialReadingCriterionId && t.TaskState == TaskState.Effect).Select(t => t.VisitTaskNum).Distinct().Count()))
.ForMember(o => o.OncologyTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Oncology && t.TrialReadingCriterionId == trialReadingCriterionId && t.TaskState == TaskState.Effect).Select(t => t.VisitTaskNum).Distinct().Count()))
.ForMember(o => o.JudgeTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Judge && t.TrialReadingCriterionId == trialReadingCriterionId && t.TaskState == TaskState.Effect).Select(t => t.VisitTaskNum).Distinct().Count()))
.ForMember(o => o.DoctorUserList, t => t.MapFrom(u => u.SubjectDoctorList.Where(t=>t.TrialReadingCriterionId== trialReadingCriterionId)));
.ForMember(o => o.DoctorUserList, t => t.MapFrom(u => u.SubjectDoctorList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId)));
CreateMap<SubjectUser, SubjectUserView>()
.ForMember(o => o.DoctorUser, t => t.MapFrom(u => u.DoctorUser));
CreateMap<SubjectUser, SubjectUserDTO>().IncludeBase<SubjectUser, SubjectUserView>()
.ForMember(o => o.IsHaveReading, t => t.MapFrom(u => u.Subject.SubjectVisitTaskList.Any(t => t.ReadingTaskState != ReadingTaskState.WaitReading && t.TrialReadingCriterionId==u.TrialReadingCriterionId && t.DoctorUserId==u.DoctorUserId && t.TaskState == TaskState.Effect)));
.ForMember(o => o.IsHaveReading, t => t.MapFrom(u => u.Subject.SubjectVisitTaskList.Any(t => t.ReadingTaskState != ReadingTaskState.WaitReading && t.TrialReadingCriterionId == u.TrialReadingCriterionId && t.DoctorUserId == u.DoctorUserId && t.TaskState == TaskState.Effect)));
CreateMap<SubjectVisit, VisitGenerataTaskDTO>();
@@ -127,13 +125,13 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.TrialSiteId, t => t.MapFrom(u => u.Subject.TrialSiteId))
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => /*u.IsAnalysisCreate == true ? u.BlindTrialSiteCode :*/ u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => /*u.IsAnalysisCreate == true ? u.BlindSubjectCode :*/ u.Subject.Code))
.ForMember(o => o.MedicalNo, t => t.MapFrom(u => u.Subject.MedicalNo))
.ForMember(o => o.MedicalNo, t => t.MapFrom(u => u.Subject.MedicalNo))
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName))
//.ForMember(o => o.IsClinicalDataSigned, t => t.MapFrom(u => u.Subject.ClinicalDataList.Any(c => c.IsSign && (c.ReadingId == u.SouceReadModuleId || c.ReadingId == u.SourceSubjectVisitId))))
//.ForMember(o => o.IsClinicalDataSigned, t => t.MapFrom(u => u.Subject.ClinicalDataList.Any(c => c.IsSign && (c.ReadingId == u.SouceReadModuleId || c.ReadingId == u.SourceSubjectVisitId))))
;
@@ -145,21 +143,21 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.HistoryReadingDoctorUserList, t => t.MapFrom(u => u.JudgeVisitList));
CreateMap<VisitTask, ReadingTaskView>().IncludeBase<VisitTask, VisitTaskView>()
.ForMember(o=>o.IsManualGeneration,t=> t.MapFrom(u => !u.TrialReadingCriterion.IsAutoCreate))
.ForMember(o => o.IsHaveFeedBack, t => t.MapFrom(u => u.UserFeedBackList.Any(t=>t.State==0)))
.ForMember(o => o.IsManualGeneration, t => t.MapFrom(u => !u.TrialReadingCriterion.IsAutoCreate))
.ForMember(o => o.IsHaveFeedBack, t => t.MapFrom(u => u.UserFeedBackList.Any(t => t.State == 0)))
;
CreateMap<VisitTask, AnalysisTaskView>().IncludeBase<VisitTask, VisitTaskView>()
.ForMember(o => o.IsReReadingOrBackInfluenceAnalysis, t => t.MapFrom(u => u.Subject.IsReReadingOrBackInfluenceAnalysis));
CreateMap<CancelDoctorCommand, SubjectCanceDoctor>();
CreateMap<CancelDoctorCommand, SubjectCanceDoctor>();
CreateMap<SubjectCanceDoctor, SubjectCancelDoctorView>();
CreateMap<VisitTaskReReading, ReReadingTaskView>()
.ForMember(o => o.ReReadingNewTaskCode, t => t.MapFrom(u => u.NewReReadingTask.TaskCode))
@@ -239,12 +237,12 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName))
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => /*u.IsAnalysisCreate == true ? u.BlindTrialSiteCode :*/ u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => /*u.IsAnalysisCreate == true ? u.BlindSubjectCode :*/ u.Subject.Code))
.ForMember(o => o.GeneratedMedicalReviewCount, t => t.MapFrom(u => u.TaskMedicalReviewList.Count(t=>t.MedicalManagerUserId!=null)))
.ForMember(o => o.GeneratedMedicalReviewCount, t => t.MapFrom(u => u.TaskMedicalReviewList.Count(t => t.MedicalManagerUserId != null)))
.ForMember(o => o.MedicalNo, t => t.MapFrom(u => u.Subject.MedicalNo))
.ForMember(o => o.IsGeneratedJudge, t => t.MapFrom(u => u.JudgeVisitTaskId != null))
.ForMember(o => o.ReadingDurationTimeSpan, t => t.MapFrom(u => u.SignTime - u.FirstReadingTime))
;
CreateMap<VisitTask, VisitTaskGroupSimpleDTO>();