From 21acd1639a6af0ce8ae21216d77e52c3a6e901bd Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Mon, 7 Nov 2022 18:07:31 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 7 +++
.../Document/TrialEmailNoticeConfigService.cs | 46 +++++++++++++------
.../Service/QC/DTO/QCListViewModel.cs | 37 +++++++++++++++
.../Service/QC/QCListService.cs | 27 ++++++++++-
.../Service/QC/_MapConfig.cs | 15 ++++++
.../Reading/ReadingPeriod/ReadModule.cs | 16 ++++---
6 files changed, 126 insertions(+), 22 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index df0cb8e0..f4e8c551 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -7010,6 +7010,13 @@
+
+
+ 阅片期信息表
+
+
+
+
CRC 访视上传列表
diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
index cbd10fed..e153f41f 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs
@@ -633,7 +633,19 @@ namespace IRaCIS.Core.Application.Service
throw new BusinessValidationFailedException("不应有 除访视、裁判、全局其他类型的任务进行发送邮件,请核查业务逻辑");
}
- break;
+ if (answer == OverallAssessment.PD.GetEnumInt())
+ {
+ return "是";
+ }
+ if (answer == OverallAssessment.NA.GetEnumInt())
+ {
+ return "NA";
+ }
+ else
+ {
+ return "否";
+ }
+
case CriterionType.PCWG3:
if (readingCategory == ReadingCategory.Visit)
{
@@ -661,7 +673,23 @@ namespace IRaCIS.Core.Application.Service
{
throw new BusinessValidationFailedException("不应有 除访视、裁判、全局其他类型的任务进行发送邮件,请核查业务逻辑");
}
- break;
+
+ if (answer == VisitTumorEvaluation.PD.GetEnumInt())
+ {
+ return "是";
+ }
+ if (answer == VisitTumorEvaluation.ND.GetEnumInt())
+ {
+ return "ND";
+ }
+ if (answer == VisitTumorEvaluation.NE.GetEnumInt())
+ {
+ return "NE";
+ }
+ else
+ {
+ return "否";
+ }
case CriterionType.SelfDefine:
case CriterionType.mRECISTMesothelioma:
case CriterionType.RECIL:
@@ -680,7 +708,6 @@ namespace IRaCIS.Core.Application.Service
default:
throw new BusinessValidationFailedException("该标准任务还未定义PD获取逻辑,联系业务和后台开发协商后补充");
- break;
}
@@ -689,18 +716,7 @@ namespace IRaCIS.Core.Application.Service
- if (answer == OverallAssessment.PD.GetEnumInt())
- {
- return "是";
- }
- if (answer == OverallAssessment.NA.GetEnumInt())
- {
- return "NA";
- }
- else
- {
- return "否";
- }
+
}
diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
index 227e8f94..c3eb9369 100644
--- a/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
+++ b/IRaCIS.Core.Application/Service/QC/DTO/QCListViewModel.cs
@@ -275,6 +275,10 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsMissingImages => MissingSubmmitCount > 0;
+ public bool IsEnrollmentConfirmed { get; set; }
+
+ public bool IsPDProgress { get; set; }
+
public int? RadiologyClinicalDataCount { get; set; }
public bool IsHaveRadiologyClinicalData => RadiologyClinicalDataCount != null && RadiologyClinicalDataCount > 0;
@@ -284,6 +288,39 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsHaveOncologyClinicalData => OncologyClinicalDataCount != null && OncologyClinicalDataCount > 0;
+ }
+
+
+ public class ReadPeriodQuery
+ {
+ public Guid TrialId { get; set; }
+ }
+
+ public class ReadPeriodExportDto
+ {
+ public string SubjectCode { get; set; }
+
+ public string TrialSiteCode { get; set; }
+
+ public SubjectStatus SubjectStatus { get; set; }
+
+
+ public DateTime? FirstGiveMedicineTime { get; set; }
+
+ public string ModuleName { get; set; }
+
+
+
+
+ public string TrialReadingCriterionName { get; set; }
+
+ public string DeadlineVisitName { get; set; }
+
+
+ public DateTime? EarliestScanDate { get; set; }
+ public DateTime? LatestScanDate { get; set; }
+
+
}
#endregion
diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs
index 79898013..c1f59bc1 100644
--- a/IRaCIS.Core.Application/Service/QC/QCListService.cs
+++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs
@@ -149,7 +149,32 @@ namespace IRaCIS.Core.Application.Image.QA
exportInfo.List = list;
- return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(QCChanllengeExportDto));
+ return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(SubjectExportDTO));
+
+ }
+
+
+
+ ///
+ /// 阅片期信息表
+ ///
+ ///
+ ///
+ public async Task GetReadingPeriodList_Export(ReadPeriodQuery param,
+ [FromServices] IRepository _commonDocumentRepository,
+ [FromServices] IDictionaryService _dictionaryService)
+ {
+
+ var list = await _repository.Where(u => u.TrialId == param.TrialId)
+
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+
+ var exportInfo = (await _trialRepository.Where(t => t.Id == param.TrialId).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
+
+ exportInfo.List = list;
+
+ return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(ReadPeriodExportDto));
}
diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
index fcee0adb..82106404 100644
--- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs
@@ -53,8 +53,23 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.LostVisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.IsLostVisit)))
.ForMember(d => d.OutPlanVisitSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState == SubmitStateEnum.Submitted && t.InPlan == false)))
+ .ForMember(d => d.IsPDProgress, u => u.MapFrom(s => s.SubjectVisitList.Any(t=>t.IsEnrollmentConfirm==true)))
+ .ForMember(d => d.IsEnrollmentConfirmed, u => u.MapFrom(s => s.SubjectVisitList.Any(t => t.PDState == PDStateEnum.PDProgress)))
+
.ForMember(d => d.RadiologyClinicalDataCount, u => u.MapFrom(s => s.ClinicalDataList.Count(t => t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.ImageRead)))
.ForMember(d => d.OncologyClinicalDataCount, u => u.MapFrom(s => s.ClinicalDataList.Count(t => t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead)));
+
+
+ CreateMap()
+ .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteCode))
+ .ForMember(d => d.DeadlineVisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
+ .ForMember(d => d.EarliestScanDate, u => u.MapFrom(s => s.SubjectVisit.EarliestScanDate))
+ .ForMember(d => d.LatestScanDate, u => u.MapFrom(s => s.SubjectVisit.LatestScanDate))
+ .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.Subject.Code))
+ .ForMember(d => d.SubjectStatus, u => u.MapFrom(s => s.Subject.Status))
+ .ForMember(d => d.FirstGiveMedicineTime, u => u.MapFrom(s => s.Subject.FirstGiveMedicineTime))
+ .ForMember(d => d.TrialReadingCriterionName, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionName));
+
#endregion
diff --git a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs
index 202022b1..3996e483 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingPeriod/ReadModule.cs
@@ -14,6 +14,10 @@ namespace IRaCIS.Core.Domain.Models
public class ReadModule : Entity, IAuditAdd
{
+ [JsonIgnore]
+ public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
+
+
///
/// 受试者ID
///
@@ -68,12 +72,12 @@ namespace IRaCIS.Core.Domain.Models
/////
//public decimal VisitNum { get; set; }
- [JsonIgnore]
- ///
- /// 对应
- ///
- [ForeignKey("ReadModuleId")]
- public ReadModule ReadModuleModel { get; set; }
+ // [JsonIgnore]
+ /////
+ ///// 对应
+ /////
+ //[ForeignKey("ReadModuleId")]
+ //public ReadModule ReadModuleModel { get; set; }
[JsonIgnore]
///