Test.EIImageViewer
hang 2022-11-07 18:07:31 +08:00
parent c9bb0f677c
commit 21acd1639a
6 changed files with 126 additions and 22 deletions

View File

@ -7010,6 +7010,13 @@
<param name="param"></param> <param name="param"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Image.QA.QCListService.GetReadingPeriodList_Export(IRaCIS.Core.Application.Contracts.ReadPeriodQuery,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument},IRaCIS.Application.Interfaces.IDictionaryService)">
<summary>
阅片期信息表
</summary>
<param name="param"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Image.QA.QCListService.GetCRCVisitList(IRaCIS.Core.Application.Contracts.CRCVisitSearchDTO)"> <member name="M:IRaCIS.Core.Application.Image.QA.QCListService.GetCRCVisitList(IRaCIS.Core.Application.Contracts.CRCVisitSearchDTO)">
<summary> <summary>
CRC 访视上传列表 CRC 访视上传列表

View File

@ -633,7 +633,19 @@ namespace IRaCIS.Core.Application.Service
throw new BusinessValidationFailedException("不应有 除访视、裁判、全局其他类型的任务进行发送邮件,请核查业务逻辑"); throw new BusinessValidationFailedException("不应有 除访视、裁判、全局其他类型的任务进行发送邮件,请核查业务逻辑");
} }
break; if (answer == OverallAssessment.PD.GetEnumInt())
{
return "是";
}
if (answer == OverallAssessment.NA.GetEnumInt())
{
return "NA";
}
else
{
return "否";
}
case CriterionType.PCWG3: case CriterionType.PCWG3:
if (readingCategory == ReadingCategory.Visit) if (readingCategory == ReadingCategory.Visit)
{ {
@ -661,7 +673,23 @@ namespace IRaCIS.Core.Application.Service
{ {
throw new BusinessValidationFailedException("不应有 除访视、裁判、全局其他类型的任务进行发送邮件,请核查业务逻辑"); 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.SelfDefine:
case CriterionType.mRECISTMesothelioma: case CriterionType.mRECISTMesothelioma:
case CriterionType.RECIL: case CriterionType.RECIL:
@ -680,7 +708,6 @@ namespace IRaCIS.Core.Application.Service
default: default:
throw new BusinessValidationFailedException("该标准任务还未定义PD获取逻辑联系业务和后台开发协商后补充"); 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 "否";
}
} }

View File

@ -275,6 +275,10 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsMissingImages => MissingSubmmitCount > 0; public bool IsMissingImages => MissingSubmmitCount > 0;
public bool IsEnrollmentConfirmed { get; set; }
public bool IsPDProgress { get; set; }
public int? RadiologyClinicalDataCount { get; set; } public int? RadiologyClinicalDataCount { get; set; }
public bool IsHaveRadiologyClinicalData => RadiologyClinicalDataCount != null && RadiologyClinicalDataCount > 0; public bool IsHaveRadiologyClinicalData => RadiologyClinicalDataCount != null && RadiologyClinicalDataCount > 0;
@ -284,6 +288,39 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsHaveOncologyClinicalData => OncologyClinicalDataCount != null && OncologyClinicalDataCount > 0; 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 #endregion

View File

@ -149,7 +149,32 @@ namespace IRaCIS.Core.Application.Image.QA
exportInfo.List = list; 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));
}
/// <summary>
/// 阅片期信息表
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public async Task<IActionResult> GetReadingPeriodList_Export(ReadPeriodQuery param,
[FromServices] IRepository<CommonDocument> _commonDocumentRepository,
[FromServices] IDictionaryService _dictionaryService)
{
var list = await _repository.Where<ReadModule>(u => u.TrialId == param.TrialId)
.ProjectTo<ReadPeriodExportDto>(_mapper.ConfigurationProvider).ToListAsync();
var exportInfo = (await _trialRepository.Where(t => t.Id == param.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
exportInfo.List = list;
return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSubjectList_Export, exportInfo, "", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(ReadPeriodExportDto));
} }

View File

@ -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.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.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.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))); .ForMember(d => d.OncologyClinicalDataCount, u => u.MapFrom(s => s.ClinicalDataList.Count(t => t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.OncologyRead)));
CreateMap<ReadModule, ReadPeriodExportDto>()
.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 #endregion

View File

@ -14,6 +14,10 @@ namespace IRaCIS.Core.Domain.Models
public class ReadModule : Entity, IAuditAdd public class ReadModule : Entity, IAuditAdd
{ {
[JsonIgnore]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
/// <summary> /// <summary>
/// 受试者ID /// 受试者ID
/// </summary> /// </summary>
@ -68,12 +72,12 @@ namespace IRaCIS.Core.Domain.Models
///// </summary> ///// </summary>
//public decimal VisitNum { get; set; } //public decimal VisitNum { get; set; }
[JsonIgnore] // [JsonIgnore]
/// <summary> ///// <summary>
/// 对应 ///// 对应
/// </summary> ///// </summary>
[ForeignKey("ReadModuleId")] //[ForeignKey("ReadModuleId")]
public ReadModule ReadModuleModel { get; set; } //public ReadModule ReadModuleModel { get; set; }
[JsonIgnore] [JsonIgnore]
/// <summary> /// <summary>