diff --git a/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/TumorEvaluation_IRECIST1.1_CN_V1.docx b/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/TumorEvaluation_IRECIST1.1_CN_V1.docx index b42cbdbb8..f0e240a93 100644 Binary files a/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/TumorEvaluation_IRECIST1.1_CN_V1.docx and b/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/TumorEvaluation_IRECIST1.1_CN_V1.docx differ diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 14dda6423..e19efdf09 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -7357,6 +7357,11 @@ 签名时间 + + + 是否为转变任务 + + 医生签名时间 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs index 0a783ab17..3b4e2162d 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs @@ -283,6 +283,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string OneDoctorSign { get; set; } = string.Empty; + public bool OneIsConvertedTask { get; set; } = false; + public string TwoVisitName { get; set; } = string.Empty; public string TwoCheckDate { get; set; } = string.Empty; @@ -339,6 +341,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string TwoDoctorSign { get; set; } = string.Empty; + public bool TwoIsConvertedTask { get; set; } = false; + public string ThreeVisitName { get; set; } = string.Empty; public string ThreeCheckDate { get; set; } = string.Empty; @@ -393,6 +397,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string ThreeDoctorSignTime { get; set; } = string.Empty; public string ThreeDoctorSign { get; set; } = string.Empty; + + public bool ThreeIsConvertedTask { get; set; } = false; } public class ExportVisitData @@ -488,6 +494,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public string SignTime { get; set; } = string.Empty; + /// + /// 是否为转变任务 + /// + public bool IsConvertedTask { get; set; } = false; + /// /// 医生签名时间 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 4a53cae18..7559633f2 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -101,6 +101,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate .Include(x => x.SourceSubjectVisit).Include(x => x.SourceSubjectVisit.StudyList) .Include(x => x.DoctorUser).ToListAsync(); + var isConvertedTaskList= await _visitTaskRepository.Where(x => relatedTaskIds.Contains(x.Id)).Select(x => new { x.Id, x.IsConvertedTask }).ToListAsync(); + string getHavePreviousNewLesions(Guid visitId) @@ -134,8 +136,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate HaveNewLesion = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.NewLesions), // 是否有明确既往新病灶 // 结果为IPUD就是有 其他的是无 HavePreviousNewLesions = getHavePreviousNewLesions(x.Id), - - // 是否有明确既往新病灶 + IsConvertedTask= isConvertedTaskList.Where(y=>y.Id==x.Id).Select(x=>x.IsConvertedTask).FirstOrDefault(), + // 是否有触发iRECIST后新病灶 HaveTriggeringIRECSITNewLesions = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.IRECISTNewTargetLesion), NewTargetResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.NewTargetLesion), @@ -232,6 +234,19 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var subjectName = subjectInfo.ShortName; var subjectCode = string.Join(",", patientIdStrList); //患者编号; + foreach (var item in exportVisitDatas) + { + if (!item.IsConvertedTask) + { + item.HavePreviousNewLesions = "NA"; + item.HaveTriggeringIRECSITNewLesions = "NA"; + item.NewTargetResult = "NA"; + item.NewNoTargetResult = "NA"; + item.OtherPreviousNewLesionResult = "NA"; + item.TriggeringIRECSITResult = "NA"; + item.NewLesionEvaluationResult = "NA"; + } + } List resultdata = new List(); @@ -252,6 +267,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate "OtherPreviousNewLesionResult", "TriggeringIRECSITResult", "NewLesionEvaluationResult", + "IsConvertedTask", }; var forCount = (int)Math.Ceiling((double)exportVisitDatas.Count() / 3); @@ -518,6 +534,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ExportReportQuestion (){QuestionType=QuestionType.LowVisit}, }; + var evaluationList= new List() + { new ExportReportQuestion (){QuestionType=QuestionType.TargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.NoTargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.NewLesions}, + new ExportReportQuestion (){ QuestionType=QuestionType.ExistDisease}, + new ExportReportQuestion (){ QuestionType=QuestionType.Tumor } + }; + var isConvertedTask = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.IsConvertedTask).FirstOrDefaultAsync(); if (isConvertedTask) @@ -529,6 +553,22 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); + evaluationList = new List() + { + new ExportReportQuestion (){QuestionType=QuestionType.TargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.NoTargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.NewLesions}, + + new ExportReportQuestion (){ QuestionType=QuestionType.NewTargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.NewNoTargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.OtherNewTargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.IRECISTNewTargetLesion}, + new ExportReportQuestion (){ QuestionType=QuestionType.NewLesionEvaluation}, + + new ExportReportQuestion (){ QuestionType=QuestionType.ExistDisease}, + new ExportReportQuestion (){ QuestionType=QuestionType.Tumor } + }; + } var assessmentResult = string.Empty; @@ -585,13 +625,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { "TNMValue",taskinfo.TNMValue}, // TNM分期 { "Result",getQuestionAnswerList(resultList)}, // 评估结果 - { "Curative",getQuestionAnswerList(new List() - { new ExportReportQuestion (){QuestionType=QuestionType.TargetLesion}, - new ExportReportQuestion (){ QuestionType=QuestionType.NoTargetLesion}, - new ExportReportQuestion (){ QuestionType=QuestionType.NewLesions}, - new ExportReportQuestion (){ QuestionType=QuestionType.ExistDisease}, - new ExportReportQuestion (){ QuestionType=QuestionType.Tumor}, - })}, // 疗效结果 + { "Curative",getQuestionAnswerList(evaluationList)}, // 疗效结果 { "ReportNo",await _generalCalculateService.GetReportExportNo(taskinfo) } , }; diff --git a/IRaCIS.Core.Domain/Allocation/VisitTask.cs b/IRaCIS.Core.Domain/Allocation/VisitTask.cs index 3d19b26b4..0b1bf7a90 100644 --- a/IRaCIS.Core.Domain/Allocation/VisitTask.cs +++ b/IRaCIS.Core.Domain/Allocation/VisitTask.cs @@ -255,7 +255,7 @@ public class VisitTask : BaseFullAuditEntity [Projectable] [JsonIgnore] public bool IsConvertedTask => BeforeConvertedTaskId != null || IsHistoryConvertedTask || Subject.SubjectVisitTaskList.Where(t => t.TrialReadingCriterionId == TrialReadingCriterionId - && t.DoctorUserId == DoctorUserId && t.BeforeConvertedTaskId != null + && t.BeforeConvertedTaskId != null && t.TaskState == TaskState.Effect && t.VisitTaskNum < VisitTaskNum && t.IsSelfAnalysis == IsSelfAnalysis