diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 5b5d1d667..ce7fb263e 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1934,6 +1934,13 @@ + + + 是否存在PET + + + + 影像学整体肿瘤评估 diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 2a1e48f84..5e816b314 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -29,6 +29,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate private readonly IRepository _organInfoRepository; private readonly IRepository _subjectVisitRepository; private readonly IRepository _tumorAssessmentRepository; + private readonly ISubjectVisitService _subjectVisitService; private readonly IGeneralCalculateService _generalCalculateService; private readonly IRepository _readingTaskQuestionAnswerRepository; @@ -43,6 +44,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate IRepository organInfoRepository, IRepository subjectVisitRepository, IRepository tumorAssessmentRepository, + ISubjectVisitService subjectVisitService, IGeneralCalculateService generalCalculateService, IRepository readingTaskQuestionAnswerRepository ) @@ -57,6 +59,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate this._organInfoRepository = organInfoRepository; this._subjectVisitRepository = subjectVisitRepository; this._tumorAssessmentRepository = tumorAssessmentRepository; + this._subjectVisitService = subjectVisitService; this._generalCalculateService = generalCalculateService; this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; } @@ -502,12 +505,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetUptakeChange}, // FDG-PET 评估结果 - new ReadingCalculateData (){QuestionType=QuestionType.UptakeChange,GetStringFun=GetFDGPETOverallAssessment}, + new ReadingCalculateData (){QuestionType=QuestionType.FDGPET,GetStringFun=GetFDGPETOverallAssessment}, // 影像学整体肿瘤评估 new ReadingCalculateData (){QuestionType=QuestionType.ImgOncology,GetStringFun=GetImgOncology}, - + // 是否存在Pet + new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET}, //SUVmax new ReadingCalculateData (){QuestionType=QuestionType.SUVmax,GetDecimalFun=GetSuvMax}, @@ -835,6 +839,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var baseLineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskinfo.SubjectId && x.IsBaseLine).Select(x => x.Id).FirstOrDefaultAsync(); + + ReadingCalculateDto readingData = await _generalCalculateService.GetReadingCalculateDto(visitTaskId); + await ReadingCalculate(readingData, new List() { QuestionType.ExistPET }); + + // 判断当前任务是否是基线 if (taskinfo.SourceSubjectVisitId != baseLineVisitId) { @@ -959,7 +968,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate FirstAddTaskId=x.FirstAddTaskId, QuestionId=x.QuestionId, QuestionType=x.QuestionType, - + OrderMarkName=x.OrderMarkName, }).ToListAsync(); questionMarkList.ForEach(x => { @@ -2020,6 +2029,23 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } #endregion + /// + /// 是否存在PET + /// + /// + /// + public async Task GetExistPET(ReadingCalculateDto inDto) + { + var studyList = await this._subjectVisitService.GetReadingVisitStudyList(new Contracts.GetReadingVisitStudyListIndto() + { + TrialId = inDto.TrialId, + SujectVisitId = inDto.SubjectVisitId, + VisitTaskId=inDto.VisitTaskId, + }); + + return studyList.Any(x => x.Modalities.Contains("CT")) ? ReadingYesOrNo.Yes.GetEnumInt() : ReadingYesOrNo.No.GetEnumInt(); + } + #region 影像学整体肿瘤评估 /// /// 影像学整体肿瘤评估 diff --git a/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs index 67be25a04..91e782963 100644 --- a/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/Interface/ISubjectVisitService.cs @@ -10,5 +10,7 @@ namespace IRaCIS.Core.Application.Interfaces Task SetSVExecuted(Guid subjectVisitId); Task SetSubjectVisitUrgent(Guid subjectVisitId, bool isUrgent); + + Task> GetReadingVisitStudyList(GetReadingVisitStudyListIndto indto); } } \ No newline at end of file