diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index e17955dd1..4aa809bc9 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -5751,6 +5751,11 @@
流程是否确认
+
+
+ QC流程 0 不审,1 单审,2双审
+
+
阅片是否显示受试者信息
@@ -6161,11 +6166,6 @@
影像一致性核查
-
-
- 1 Mint、2 PACS
-
-
是否有 入组评估确认
diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
index f5810471c..3285a1cee 100644
--- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
@@ -354,6 +354,10 @@ namespace IRaCIS.Core.Application.ViewModel
public string SubjectCode { get; set; } = String.Empty;
+ [NotDefault]
+ public Guid TrialReadingCriterionId { get; set; }
+
+
}
public class BatchAssignDoctorToSubjectCommand
diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs
index 5e8cd46ed..9b1db6350 100644
--- a/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/TaskAllocationRuleService.cs
@@ -45,14 +45,14 @@ namespace IRaCIS.Core.Application.Service
///
///
///
- public async Task<(List, object?)> GetDoctorPlanAllocationRuleList(Guid trialId)
+ public async Task> GetDoctorPlanAllocationRuleList(Guid trialId)
{
var list = await _taskAllocationRuleRepository.Where(t => t.TrialId == trialId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
- var trialTaskConfig = _trialRepository.Where(t => t.Id == trialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
+ //var trialTaskConfig = _trialRepository.Where(t => t.Id == trialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
- return (list, trialTaskConfig);
+ return /*(*/list/*, trialTaskConfig)*/;
}
@@ -137,15 +137,15 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
[Obsolete]
- public async Task<(List, object?)> GetTaskAllocationRuleList(TaskAllocationRuleQuery queryTaskAllocationRule)
+ public async Task> GetTaskAllocationRuleList(TaskAllocationRuleQuery queryTaskAllocationRule)
{
var taskAllocationRuleQueryable = _taskAllocationRuleRepository.Where(t => t.TrialId == queryTaskAllocationRule.TrialId /*&& t.IsJudgeDoctor == queryTaskAllocationRule.IsJudgeDoctor*/)
.ProjectTo(_mapper.ConfigurationProvider);
- var trialTaskConfig = _trialRepository.Where(t => t.Id == queryTaskAllocationRule.TrialId).ProjectTo(_mapper.ConfigurationProvider, new { isJudgeDoctor = queryTaskAllocationRule.IsJudgeDoctor }).FirstOrDefault();
+ //var trialTaskConfig = _trialRepository.Where(t => t.Id == queryTaskAllocationRule.TrialId).ProjectTo(_mapper.ConfigurationProvider, new { isJudgeDoctor = queryTaskAllocationRule.IsJudgeDoctor }).FirstOrDefault();
- return (await taskAllocationRuleQueryable.ToListAsync(), trialTaskConfig);
+ return await taskAllocationRuleQueryable.ToListAsync();
}
diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs
index 0796c6460..3780a8e12 100644
--- a/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/TaskConsistentRuleService.cs
@@ -67,7 +67,7 @@ namespace IRaCIS.Core.Application.Service
///
///
[HttpPost]
- public async Task<(PageOutput, object?)> GetAnalysisTaskList(VisitTaskQuery queryVisitTask)
+ public async Task> GetAnalysisTaskList(VisitTaskQuery queryVisitTask)
{
var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId)
.Where(t => t.IsAnalysisCreate)
@@ -95,8 +95,8 @@ namespace IRaCIS.Core.Application.Service
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
- var trialTaskConfig = _repository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
- return (pageList, trialTaskConfig);
+ //var trialTaskConfig = _repository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
+ return pageList;
}
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
index 0779be905..883bca956 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
@@ -80,20 +80,21 @@ namespace IRaCIS.Core.Application.Service.Allocation
///
///
[HttpPost]
- public async Task<(PageOutput, object?)> GetSubjectAssignAndTaskStatList(SubjectAssignStatQuery querySubjectAssign)
+ public async Task/*, object?)*/> GetSubjectAssignAndTaskStatList(SubjectAssignStatQuery querySubjectAssign)
{
var subjectQuery = _subjectRepository.Where(t => t.TrialId == querySubjectAssign.TrialId && t.SubjectVisitTaskList.Any())
.WhereIf(querySubjectAssign.SiteId != null, t => t.SiteId == querySubjectAssign.SiteId)
.WhereIf(querySubjectAssign.SubjectId != null, t => t.Id == querySubjectAssign.SubjectId)
.WhereIf(!string.IsNullOrEmpty(querySubjectAssign.SubjectCode), t => t.Code.Contains(querySubjectAssign.SubjectCode))
- .ProjectTo(_mapper.ConfigurationProvider);
+ .ProjectTo(_mapper.ConfigurationProvider,new { trialReadingCriterionId=querySubjectAssign.TrialReadingCriterionId });
var pageList = await subjectQuery.ToPagedListAsync(querySubjectAssign.PageIndex, querySubjectAssign.PageSize, string.IsNullOrWhiteSpace(querySubjectAssign.SortField) ? nameof(querySubjectAssign.SubjectId) : querySubjectAssign.SortField, querySubjectAssign.Asc);
- var trialTaskConfig = _trialRepository.Where(t => t.Id == querySubjectAssign.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
- return (pageList, trialTaskConfig);
+ //var trialTaskConfig = _trialReadingCriterionRepository.Where(t => t.Id == querySubjectAssign.TrialId && t.Id==querySubjectAssign.TrialReadingCriterionId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
+
+ return pageList;
}
///
@@ -578,7 +579,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
///
///
[HttpPost]
- public async Task<(PageOutput, object?)> GetVisitTaskList(VisitTaskQuery queryVisitTask, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
+ public async Task> GetVisitTaskList(VisitTaskQuery queryVisitTask, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
{
//以前访视未产生任务的,在查询这里要产生
var svIdList = await _subjectVisitRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.CheckState == CheckStateEnum.CVPassed && t.IsVisitTaskGenerated == false).Select(t => t.Id).ToListAsync();
@@ -610,8 +611,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
- var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
- return (pageList, trialTaskConfig);
+ //var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
+ return pageList;
}
@@ -665,7 +666,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
///
///
[HttpPost]
- public async Task<(PageOutput, object?)> GetReadingTaskList(VisitTaskQuery queryVisitTask)
+ public async Task/*, object?)*/> GetReadingTaskList(VisitTaskQuery queryVisitTask)
{
var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.IsAnalysisCreate == false)
.Where(t => t.IsAnalysisCreate == false && t.DoctorUserId != null)
@@ -692,9 +693,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
- var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
+ //var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
- return (pageList, trialTaskConfig);
+ return pageList;
}
diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
index e1b8179e8..d9e7b68bf 100644
--- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
@@ -76,20 +76,19 @@ 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()));
-
-
-
-
+
+
+ Guid trialReadingCriterionId = Guid.Empty;
CreateMap()
.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).Select(t => t.VisitTaskNum).Distinct().Count()))
- .ForMember(o => o.GlobalTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Global).Select(t => t.VisitTaskNum).Distinct().Count()))
- .ForMember(o => o.OncologyTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Oncology).Select(t => t.VisitTaskNum).Distinct().Count()))
- .ForMember(o => o.JudgeTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Judge).Select(t => t.VisitTaskNum).Distinct().Count()))
- .ForMember(o => o.DoctorUserList, t => t.MapFrom(u => u.SubjectDoctorList));
+ .ForMember(o => o.VisitTaskTypeCount, t => t.MapFrom(u => u.SubjectVisitTaskList.Where(t => t.ReadingCategory == ReadingCategory.Visit && t.TrialReadingCriterionId==trialReadingCriterionId).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).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).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).Select(t => t.VisitTaskNum).Distinct().Count()))
+ .ForMember(o => o.DoctorUserList, t => t.MapFrom(u => u.SubjectDoctorList.Where(t=>t.TrialReadingCriterionId== trialReadingCriterionId)));
CreateMap()
.ForMember(o => o.DoctorUser, t => t.MapFrom(u => u.DoctorUser));
diff --git a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
index 205972c99..f20a2b63d 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs
@@ -212,7 +212,7 @@ namespace IRaCIS.Core.Application.Services
.Where(t => t.IsDeleted == false && !t.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.Id) && t.NeedConfirmedUserTypeList.Any(u => u.NeedConfirmUserTypeId == _userInfo.UserTypeId))
.CountAsync();
- var trialTaskConfig = _trialRepository.Where(t => t.Id == querySystemDocument.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
+ var trialTaskConfig = _trialRepository.Where(t => t.Id == querySystemDocument.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault();
return (result, new { NeedSignCount = needSignTrialDocCount + needSignSystemDocCount, NeedSignTrialDocCount = needSignTrialDocCount, NeedSignSystemDocCount = needSignSystemDocCount, TrialStatusStr= trialInfo.TrialStatusStr,TrialConfig= trialTaskConfig });
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
index d91ac95a2..84b91349d 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
@@ -16,11 +16,7 @@ namespace IRaCIS.Core.Application.Contracts
///
public string SubjectCodeRule { get; set; } = string.Empty;
- public List TrialCriterionIds { get; set; } = new List();
- public List TrialCriterionNames { get; set; } = new List();
-
- public List ClinicalDataTrialSetIds { get; set; } = new List();
public bool IsSubjectSecondCodeView { get; set; }
@@ -208,6 +204,17 @@ namespace IRaCIS.Core.Application.Contracts
}
+
+ public class TrialProcessConfigDTO
+ {
+ ///
+ /// QC流程 0 不审,1 单审,2双审
+ ///
+ public TrialQCProcess QCProcessEnum { get; set; } = TrialQCProcess.DoubleAudit;
+
+ public bool IsImageConsistencyVerification { get; set; } = true;
+ }
+
public class TrialTaskConfigView : TrialTaskConfig
{
public ReadingTaskViewMethod ReadingTaskViewEnum { get; set; }
@@ -216,8 +223,6 @@ namespace IRaCIS.Core.Application.Contracts
public ReadingMethod ReadingType { get; set; }
- public ReadingTool ReadingTool { get; set; }
-
///
/// 阅片是否显示受试者信息
///
@@ -226,7 +231,10 @@ namespace IRaCIS.Core.Application.Contracts
///
/// 阅片是否显示既往结果
///
- public bool IsReadingShowPreviousResults { get; set; }
+ public bool IsReadingShowPreviousResults { get; set; }
+
+ public ReadingTool ReadingTool { get; set; }
+
@@ -862,11 +870,13 @@ namespace IRaCIS.Core.Application.Contracts
public class TrialConfigDTO : BasicTrialConfig
{
+ public List TrialCriterionIds { get; set; } = new List();
+
+ public List TrialCriterionNames { get; set; } = new List();
+
+ public List ClinicalDataTrialSetIds { get; set; } = new List();
- public List CriterionIds { get; set; } = new List();
-
- public List ClinicalDataSetNames { get; set; } = new List();
public bool IsTrialProcessConfirmed { get; set; }
@@ -874,9 +884,6 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsTrialUrgentConfirmed { get; set; }
- public int DigitPlaces { get; set; }
-
-
///
/// QC流程 0 不审,1 单审,2双审
@@ -888,32 +895,9 @@ namespace IRaCIS.Core.Application.Contracts
///
public bool IsImageConsistencyVerification { get; set; } = false;
- ///
- /// 1 Mint、2 PACS
- ///
-
- public int ImagePlatform { get; set; } = 1;
-
//阅片方式
public int ReadingMode { get; set; }
- //阅片类型
- public int ReadingType { get; set; }
-
-
- public bool IsGlobalReading { get; set; } = true;
-
- public bool? IsArbitrationReading { get; set; }
-
- public bool? IsClinicalReading { get; set; }
-
-
- public ArbitrationRule ArbitrationRule { get; set; }
-
-
-
-
-
public bool IsSubjectExpeditedView { get; set; } = false;
///
@@ -926,18 +910,42 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsPDProgressView { get; set; }
-
- //public bool IsTrialStart { get; set; } = false;
-
public bool IsQCQuestionConfirmed { get; set; }
public string TrialStatusStr { get; set; } = string.Empty;
+ //public bool IsTrialStart { get; set; } = false;
+ //public List CriterionIds { get; set; } = new List();
+
+ //public List ClinicalDataSetNames { get; set; } = new List();
+ //public bool IsGlobalReading { get; set; } = true;
+
+ //public bool? IsArbitrationReading { get; set; }
+
+ //public bool? IsClinicalReading { get; set; }
+
+
+ //public ArbitrationRule ArbitrationRule { get; set; }
+
+
+ //public int DigitPlaces { get; set; }
+
+ /////
+ ///// 1 Mint、2 PACS
+ /////
+
+ //public int ImagePlatform { get; set; } = 1;
+
+
+
+ ////阅片类型
+ //public int ReadingType { get; set; }
+
//读片任务显示是否顺序
- public bool IsReadingTaskViewInOrder { get; set; }
+ //public bool IsReadingTaskViewInOrder { get; set; }
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
index 4ad64f5ea..0c405873b 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
@@ -17,8 +17,19 @@ namespace IRaCIS.Core.Application.Service
//CreateMap().ForMember(t => t.UserTypes, u => u.MapFrom(k => string.Join(',', k.UserTypeList)));
+
+ //CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)).ReverseMap();
+
+
+ CreateMap();
- CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)).ReverseMap();
+
+ CreateMap ()
+ .ForMember(d => d.QCProcessEnum, u => u.MapFrom(s => s.Trial.QCProcessEnum))
+ .ForMember(d => d.IsImageConsistencyVerification, u => u.MapFrom(s => s.Trial.IsImageConsistencyVerification))
+ .ReverseMap();
+
+
CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)).ReverseMap();
CreateMap().ForMember(d => d.Id, u => u.MapFrom(s => s.TrialId)).ReverseMap();
@@ -153,9 +164,10 @@ namespace IRaCIS.Core.Application.Service
CreateMap().ForMember(t => t.TrialId, u => u.MapFrom(c => c.Id))
.ForMember(t => t.TrialCriterionIds, u => u.MapFrom(c => c.ReadingQuestionCriterionTrialList.Where(v =>v.IsConfirm).Select(r => r.Id)))
.ForMember(t => t.TrialCriterionNames, u => u.MapFrom(c => c.ReadingQuestionCriterionTrialList.Where(v => v.IsConfirm).Select(r => r.CriterionName)))
- .ForMember(t => t.ClinicalDataTrialSetIds, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.Id)))
- .ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.ClinicalDataSetName)))
- .ForMember(t => t.CriterionIds, u => u.MapFrom(c => c.TrialDicList.Where(v => v.KeyName == StaticData.Criterion).Select(r => r.DictionaryId)));
+ .ForMember(t => t.ClinicalDataTrialSetIds, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.Id)))
+ //.ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.ClinicalDataSetName)))
+ //.ForMember(t => t.CriterionIds, u => u.MapFrom(c => c.TrialDicList.Where(v => v.KeyName == StaticData.Criterion).Select(r => r.DictionaryId)))
+ ;
CreateMap();
CreateMap();