diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
index 84d052758..e1a995262 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ClinicalAnswerService.cs
@@ -466,25 +466,39 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataTrialSetId= x.ClinicalDataTrialSet.Id,
ClinicalDataSetName =x.ClinicalDataTrialSet.ClinicalDataSetName,
ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName,
+ IsHaveTableQuestion=x.ClinicalDataTrialSet.TrialClinicalQuestionList.Any(y=>y.ClinicalQuestionType== ReadingQestionType.Table),
}).ToListAsync();
- var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId).Include(x=>x.ClinicalForm).Include(x=>x.ClinicalForm.ClinicalDataTrialSet).ToListAsync();
+ var confirmList = await _readModuleCriterionFromRepository.Where(x => x.TrialId == inDto.TrialId)
+ .Select(x => new GetCRCBeConfirm
+ {
+ CheckDate = x.ClinicalForm.CheckDate ?? default(DateTime),
+ ClinicalDataSetName = x.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetName,
+ ClinicalDataSetEnName = x.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetEnName,
+ ClinicalFormId = x.ClinicalFormId,
+ ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSet.Id,
+ ReadModuleId=x.ReadModuleId,
+ IsHaveTableQuestion=x.ClinicalForm.ClinicalDataTrialSet.TrialClinicalQuestionList.Any(y => y.ClinicalQuestionType == ReadingQestionType.Table)
+ }).ToListAsync();
+
+
result.CurrentPageData.ForEach(x =>
{
if (x.IsCRCConfirm)
{
- x.ClinicalFormIdList = confirmList.Where(y => y.ReadModuleId == x.ReadModuleId).Select(y=>new GetCRCBeConfirmListOutDto() {
- CheckDate = y.ClinicalForm.CheckDate??default(DateTime),
- ClinicalDataSetName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetName,
- ClinicalDataSetEnName= y.ClinicalForm.ClinicalDataTrialSet.ClinicalDataSetEnName,
+ x.ClinicalFormList = confirmList.Where(y => y.ReadModuleId == x.ReadModuleId).Select(y=>new GetCRCBeConfirmListOutDto() {
+ CheckDate = y.CheckDate,
+ ClinicalDataSetName= y.ClinicalDataSetName,
+ ClinicalDataSetEnName= y.ClinicalDataSetEnName,
ClinicalFormId=y.ClinicalFormId,
- ClinicalDataTrialSetId=y.ClinicalForm.ClinicalDataTrialSet.Id,
+ ClinicalDataTrialSetId=y.ClinicalDataTrialSetId,
+ IsHaveTableQuestion=y.IsHaveTableQuestion,
}).ToList();
}
else
{
if (x.ReadingSetType == ReadingSetType.ImageReading)
{
- x.ClinicalFormIdList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.ImageRead&&y.CheckDate <= x.LatestScanDate)
+ x.ClinicalFormList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.ImageRead&&y.CheckDate <= x.LatestScanDate)
.Select(y => new GetCRCBeConfirmListOutDto()
{
CheckDate = y.CheckDate ?? default(DateTime),
@@ -492,11 +506,12 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetEnName = y.ClinicalDataSetEnName,
ClinicalFormId = y.ClinicalFormId,
ClinicalDataTrialSetId = y.ClinicalDataTrialSetId,
+ IsHaveTableQuestion = y.IsHaveTableQuestion,
}).ToList();
}
else
{
- x.ClinicalFormIdList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.OncologyRead&&y.CheckDate <= x.LatestScanDate)
+ x.ClinicalFormList = formList.Where(y => y.ClinicalDataLevel == ClinicalLevel.OncologyRead&&y.CheckDate <= x.LatestScanDate)
.Select(y => new GetCRCBeConfirmListOutDto()
{
CheckDate = y.CheckDate ?? default(DateTime),
@@ -504,6 +519,7 @@ namespace IRaCIS.Core.Application.Service
ClinicalDataSetEnName = y.ClinicalDataSetEnName,
ClinicalFormId = y.ClinicalFormId,
ClinicalDataTrialSetId = y.ClinicalDataTrialSetId,
+ IsHaveTableQuestion = y.IsHaveTableQuestion,
}).ToList();
}
}
@@ -526,7 +542,7 @@ namespace IRaCIS.Core.Application.Service
PageIndex=1,
PageSize=9999,
- })).CurrentPageData.SelectMany(x => x.ClinicalFormIdList).ToList();
+ })).CurrentPageData.SelectMany(x => x.ClinicalFormList).ToList();
result.ForEach(x => {
@@ -569,7 +585,7 @@ namespace IRaCIS.Core.Application.Service
};
confirmlist.ForEach(x =>
{
- x.ClinicalFormIdList.ForEach(y =>
+ x.ClinicalFormList.ForEach(y =>
{
needAddList.Add(new ReadModuleCriterionFrom()
{
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
index 8eab4e74f..d6f7c5a4a 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalAnswerDto.cs
@@ -125,8 +125,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid ReadModuleId { get; set; }
}
+ public class GetCRCBeConfirm: GetCRCBeConfirmListOutDto
+ {
+ public Guid ReadModuleId { get; set; }
+ }
- public class GetCRCBeConfirmListOutDto
+
+ public class GetCRCBeConfirmListOutDto
{
public Guid ClinicalDataTrialSetId { get; set; }
@@ -137,6 +142,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string ClinicalDataSetEnName { get; set; }
public DateTime CheckDate { get; set; }
+
+ public bool IsHaveTableQuestion { get; set; }
}
public class CRCConfirmClinicalInDto
@@ -165,6 +172,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string ClinicalDataSetName { get; set; }
+ public bool IsHaveTableQuestion { get; set; }
+
public string ClinicalDataSetEnName { get; set; }
}
@@ -184,20 +193,28 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public bool IsCRCConfirm { get; set; } = false;
- public string SubjectCode { get; set; }
+ public string SubjectCode { get; set; }
+
+ public bool IsHaveTableQuestion
+ {
+ get
+ {
+ return ClinicalFormList.Any(x => x.IsHaveTableQuestion);
+ }
+ }
///
/// 最晚拍片日期
///
public DateTime? LatestScanDate { get; set; }
- public List ClinicalFormIdList { get; set; }
+ public List ClinicalFormList { get; set; }
public int FormCount
{
get
{
- return this.ClinicalFormIdList.Count();
+ return this.ClinicalFormList.Count();
}
}
}
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
index fef381af9..4eb814256 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalData/ClinicalDataTrialSet.cs
@@ -100,8 +100,11 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore]
public List TrialClinicalDataSetCriteriaList { get; set; }
+ [JsonIgnore]
+ public List TrialClinicalQuestionList { get; set; }
- public string CriterionEnumListStr { get; set; } = String.Empty;
+
+ public string CriterionEnumListStr { get; set; } = String.Empty;
public List CriterionEnumList => CriterionEnumListStr.Split('|', StringSplitOptions.RemoveEmptyEntries).Where(t => !string.IsNullOrEmpty(t) && int.TryParse(t.Trim(), out var s)).Select(t => int.Parse(t.Trim())).ToList();
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
index f741b2f93..40e757e4a 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalQuestion/TrialClinicalQuestion.cs
@@ -162,7 +162,11 @@ namespace IRaCIS.Core.Domain.Models
/// 单位
///
public string Unit { get; set; } = string.Empty;
- }
+
+ [JsonIgnore]
+ [ForeignKey("TrialClinicalId")]
+ public ClinicalDataTrialSet ClinicalDataTrialSet { get; set; }
+ }
}