修改病灶排序,和拍片日期以及PD

Test_IRC_Net8
hang 2025-11-11 09:58:32 +08:00
parent ae36d4680a
commit f40faa5519
2 changed files with 34 additions and 2 deletions

View File

@ -178,6 +178,8 @@ public class TU_TR_RSBaseModel
/// </summary> /// </summary>
public DateTime? LatestScanDate { get; set; } public DateTime? LatestScanDate { get; set; }
public DateTime? EarliestScanDate { get; set; }
/// <summary> /// <summary>
/// eCRF标识 TUREFID TRREFID RSREFID /// eCRF标识 TUREFID TRREFID RSREFID
/// </summary> /// </summary>
@ -208,8 +210,22 @@ public class TU_TR_RSBaseModel
public string IsJudgeSelectStr => IsJudgeSelect == true ? "Y" : ""; public string IsJudgeSelectStr => IsJudgeSelect == true ? "Y" : "";
public bool IsTargetPD = false;
public bool IsOverallResponsePD = false;
//TR表 靶病灶PD了访视层级的都是最早拍片日期 RS表 整体肿瘤评估PD了那么疗效评估的拍片日期都给最早的
public bool IsPD => Domain == "TR" ? IsTargetPD : IsOverallResponsePD;
public string ArmEnumStr { get; set; } public string ArmEnumStr { get; set; }
public string LatestScanDateStr => LatestScanDate != null ? LatestScanDate?.ToString("yyyy-MM-dd")! : ""; public string LatestScanDateStr
{
get
{
var date = IsPD ? EarliestScanDate : LatestScanDate;
return date?.ToString("yyyy-MM-dd") ?? "";
}
}
public string TrialSiteSubjectCode => ResearchProgramNo + SubjectCode; public string TrialSiteSubjectCode => ResearchProgramNo + SubjectCode;
#endregion #endregion
} }

View File

@ -258,6 +258,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
VisitTaskNum = t.VisitTaskNum, VisitTaskNum = t.VisitTaskNum,
VisitNum = t.VisitTaskNum, VisitNum = t.VisitTaskNum,
VisitName = t.SourceSubjectVisit.VisitName, VisitName = t.SourceSubjectVisit.VisitName,
EarliestScanDate = t.SourceSubjectVisit.EarliestScanDate,
LatestScanDate = t.SourceSubjectVisit.LatestScanDate, LatestScanDate = t.SourceSubjectVisit.LatestScanDate,
VisitTaskId = t.Id, VisitTaskId = t.Id,
CriterionName = t.TrialReadingCriterion.CriterionName, CriterionName = t.TrialReadingCriterion.CriterionName,
@ -449,7 +450,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
foreach (var lessionAnswer in lesion.LessionAnswerList) foreach (var lessionAnswer in lesion.LessionAnswerList.OrderBy(t => t.ShowOrder))
{ {
var trLessionIndex = -1; var trLessionIndex = -1;
@ -560,6 +561,10 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
{ {
var tr = CreatNewTRExport(task, tr_subjectIndexNoDic); var tr = CreatNewTRExport(task, tr_subjectIndexNoDic);
//所有靶病灶的鉴定方法的合集日期取访视点的影像日期默认最晚日期PD时取最早日期
tr.IdentificationMethod = string.Join(",", tuList.Where(t => t.VisitTaskId == tr.VisitTaskId && t.TumorIdentificationResult == "TARGET" && t.IdentificationMethod.IsNotNullOrEmpty()).Select(t => t.IdentificationMethod).Distinct());
//填充固定信息 //填充固定信息
Fill_TR_IndexValue(tr, trValueTypeIndex, trValueList); Fill_TR_IndexValue(tr, trValueTypeIndex, trValueList);
@ -630,6 +635,17 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
rs.IsOveralResponse = true; rs.IsOveralResponse = true;
rs.IsOverallResponsePD = rs.RespondEfficacyAssessment == "PD";
}
if (questionAnswer.QuestionType == QuestionType.TargetLesion && rs.RespondEfficacyAssessment == "PD")
{
//TR表 靶病灶PD了访视层级的都是最早拍片日期
foreach (var tr in trList.Where(t => t.VisitTaskId == rs.VisitTaskId && t.TRGRPID.IsNullOrEmpty() && t.ARM_TumorNo.IsNullOrEmpty()))
{
tr.IsTargetPD = true;
}
} }
var findTask = reReadingList.FirstOrDefault(t => t.UserName == rs.UserName && t.ArmEnum == rs.ArmEnum && t.VisitTaskNum == rs.VisitNum); var findTask = reReadingList.FirstOrDefault(t => t.UserName == rs.UserName && t.ArmEnum == rs.ArmEnum && t.VisitTaskNum == rs.VisitNum);