diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 21ba2f0ce..906800b7f 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1312,6 +1312,13 @@ + + + 获取阅片的计算数据 + + + + 将上一次的访视病灶添加到这一次 @@ -1352,6 +1359,13 @@ + + + 获取阅片的计算数据 + + + + 获取Sod的值 @@ -1725,6 +1739,13 @@ + + + 获取阅片的计算数据 + + + + 获取Sod的值 @@ -2177,6 +2198,13 @@ + + + 获取阅片的计算数据 + + + + 删除病灶获取起始病灶序号 @@ -2276,6 +2304,13 @@ + + + 获取阅片的计算数据 + + + + 获取Sod的值 @@ -2520,6 +2555,13 @@ + + + 获取阅片的计算数据 + + + + 获取Sod的值 @@ -2824,6 +2866,13 @@ + + + 获取阅片的计算数据 + + + + 删除病灶获取起始病灶序号 @@ -2908,6 +2957,13 @@ + + + 获取阅片的计算数据 + + + + 获取ReadingCalculateDto @@ -2980,6 +3036,13 @@ + + + 获取阅片的计算数据 + + + + SubjectCriteriaEvaluationService @@ -4979,6 +5042,11 @@ 任务Id + + + 任务Id + + 任务Id @@ -13368,6 +13436,13 @@ + + + 获取阅片的计算数据 + + + + 提交自定义标记 diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs index b0de77951..6a7801e43 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs @@ -72,9 +72,10 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum) .WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) - .ProjectTo(_mapper.ConfigurationProvider); + .OrderBy(x => x.AuditState).ThenBy(x => x.VisitTask.SubjectId).ThenBy(x => x.VisitTask.ArmEnum).ThenBy(x => x.VisitTask.VisitTaskNum) + .ProjectTo(_mapper.ConfigurationProvider); - var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TaskMedicalReviewView.Id) : inQuery.SortField, inQuery.Asc); + var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, new string[] { }); return pageList; } @@ -220,7 +221,7 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid) .WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned) .WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) - .OrderBy(x=>x.VisitTask.SubjectId).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum) + .OrderBy(x=>x.AuditState).ThenBy(x=>x.VisitTask.SubjectId).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum) .ProjectTo(_mapper.ConfigurationProvider); diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index eea0729f1..a97afcfed 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -434,7 +434,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid VisitTaskId { get; set; } } - public class ReadingCustomTagDto + public class GetReadingCalculationDataInDto + { + /// + /// 任务Id + /// + public Guid VisitTaskId { get; set; } + } + + public class ReadingCustomTagDto { public Guid? Id { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs index 763e4b7f9..f6f47de0d 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingMedicineQuestionViewModel.cs @@ -89,7 +89,6 @@ namespace IRaCIS.Core.Application.ViewModel public class TrialDataFromSystem : ReadingMedicineTrialQuestion { - public Guid SystemQuestionId { get; set; } } @@ -100,7 +99,7 @@ namespace IRaCIS.Core.Application.ViewModel [NotDefault] public Guid TrialReadingCriterionId { get; set; } - public bool IsEnglish { get; set; } + public LanguageType LanguageType { get; set; } } public class AddTrialDataFromSystemInDto diff --git a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs index 4432c0499..f8ed6ee3a 100644 --- a/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/MedicalAudit/ReadingMedicineQuestionService.cs @@ -180,9 +180,11 @@ namespace IRaCIS.Core.Application.Service var questionList = await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField, inDto.Asc); return (questionList, new { + IsConfirmMedicineQuestion = isConfirmMedicineQuestion, - //QuestionCount = questionList.Count(), - }); + LanguageType=(await _readingMedicineTrialQuestionRepository.FirstOrDefaultAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId&& x.SystemQuestionId != null))?.LanguageType, + //QuestionCount = questionList.Count(), + }); } @@ -501,9 +503,13 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task AddDefaultQuestions(AddDefaultQuestionsInDto inDto) { - if (await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) + if (await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null)) { - throw new BusinessValidationFailedException(_localizer["Medicine_ExistsMedicineQuestion"]); + await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null); + } + else + { + await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType != inDto.LanguageType); } var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync(); List needAddCategory = new List() { ReadingCategory.Visit }; @@ -522,12 +528,11 @@ namespace IRaCIS.Core.Application.Service var maxOrder = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == inDto.TrialReadingCriterionId).OrderByDescending(x => x.ShowOrder).Select(x => x.ShowOrder).FirstOrDefaultAsync(); List needList = await _readingMedicineSystemQuestionRepository - .WhereIf(inDto.IsEnglish, x => x.LanguageType == LanguageType.English) - .WhereIf(!inDto.IsEnglish, x => x.LanguageType == LanguageType.Chinese) + .Where(x=>x.LanguageType==inDto.LanguageType) .Where(x => x.CriterionTypeEnum == criterionInfo.CriterionType && needAddCategory.Contains(x.ReadingCategory)) .Select(x => new TrialDataFromSystem() { - Id = NewId.NextGuid(), + ShowOrder = x.ShowOrder, IsEnable = x.IsEnable, LanguageType = x.LanguageType, @@ -543,6 +548,7 @@ namespace IRaCIS.Core.Application.Service }).ToListAsync(); needList.ForEach(x => { + x.Id = NewId.NextGuid(); maxOrder++; x.ShowOrder = maxOrder; }); diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 4a3d9b81d..8ee67f3ea 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -150,12 +150,27 @@ namespace IRaCIS.Application.Services this._trialEmailNoticeConfigService = trialEmailNoticeConfigService; } + #region 计算 + /// - /// 提交自定义标记 + /// 获取阅片的计算数据 /// /// /// [HttpPost] + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + return await _readingCalculateService.GetReadingCalculationData(inDto); + + } + #endregion + + /// + /// 提交自定义标记 + /// + /// + /// + [HttpPost] public async Task SubmitCustomTag(ReadingCustomTagDto inDto) { var entity = await _readingCustomTagRepository.InsertOrUpdateAsync(inDto, true); diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index 32c61ad1f..9939c4886 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -118,12 +118,26 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate } - /// - /// 将上一次的访视病灶添加到这一次 - /// - /// - /// - public async Task AddTaskLesionAnswerFromLastTask(AddTaskLesionAnswerFromLastTaskInDto inDto) + /// + /// 获取阅片的计算数据 + /// + /// + /// + [HttpPost] + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + var service = await this.GetService(inDto.VisitTaskId); + + return await service.GetReadingCalculationData(inDto); + } + + + /// + /// 将上一次的访视病灶添加到这一次 + /// + /// + /// + public async Task AddTaskLesionAnswerFromLastTask(AddTaskLesionAnswerFromLastTaskInDto inDto) { var service = await this.GetService(inDto.VisitTaskId); var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs index 985a4a638..ac67e20f5 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IRECIST1Point1CalculateService.cs @@ -63,9 +63,21 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate this._logger = logger; } - #region 临时对象 单个请求的生命周期 避免重复查询数据库 + /// + /// 获取阅片的计算数据 + /// + /// + /// + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + return new + { + }; + } - private List visitTaskAnswerList; + #region 临时对象 单个请求的生命周期 避免重复查询数据库 + + private List visitTaskAnswerList; /// /// 获取Sod的值 diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs index 8405d7aeb..5961869b0 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/ICriterionCalculateService.cs @@ -1,5 +1,6 @@ using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; +using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; @@ -52,6 +53,15 @@ namespace IRaCIS.Core.Application.Service /// Task GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto); + /// + /// 获取阅片的计算数据 + /// + /// + /// - } + Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto); + + + + } } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs index 0aad0c08c..f34bef539 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs @@ -51,5 +51,13 @@ namespace IRaCIS.Core.Application.Service /// /// Task GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto); - } + + /// + /// 获取阅片的计算数据 + /// + /// + /// + Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto); + + } } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 961e02b90..c281fcdc8 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -71,9 +71,31 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; } - #region 临时对象 单个请求的生命周期 避免重复查询数据库 + /// + /// 获取阅片的计算数据 + /// + /// + /// + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + ReadingCalculateDto readingData = await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId); + var baseLinePET5PS = 0m; + if (!readingData.IsBaseLine) + { + var baseLineTaskId = await GetBaseLineTaskId(readingData); + baseLinePET5PS = (await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.PET5PS).Select(x => x.Answer).FirstOrDefaultAsync()).IsNullOrEmptyReturn0(); - private List visitTaskAnswerList; + } + return new + { + BaseLinePET5PS= baseLinePET5PS, + + }; + } + + #region 临时对象 单个请求的生命周期 避免重复查询数据库 + + private List visitTaskAnswerList; /// /// 获取Sod的值 @@ -2731,35 +2753,35 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate List data = new List() { - //ND NE NE/NA ND + //1、ND NE NE/NA ND new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA}), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.ND }), }, - //ND/PD/CR/NE/PR/SD PMD PMD/CMR/PMR/NMR/NE/NA PMD/PD + //2、ND/PD/CR/NE/PR/SD PMD PMD/CMR/PMR/NMR/NE/NA PMD/PD new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), Column3=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), }, - //ND/PD/CR/NE/PR/SD NE PMD PMD/PD + //3、ND/PD/CR/NE/PR/SD NE PMD PMD/PD new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD}), Column2=ReadingCommon.EnumToString(new List() {FDGPETOverallAssessment.NE }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, }), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), }, - //PD NE CMR/PMR/NMR/NE/NA PMD/PD + //4、PD NE CMR/PMR/NMR/NE/NA PMD/PD new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PD}), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMDPD }), }, - //NE NE NE/NA NE + //5、NE NE NE/NA NE new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.NE }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), @@ -2767,14 +2789,14 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NE }), }, - //CR、PR、SD、NE、ND、PD CMR CMR/PMR/NMR/PMD/NE/NA CMR/CR + //6、CR、PR、SD、NE、ND、PD CMR CMR/PMR/NMR/PMD/NE/NA CMR/CR new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA }), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), }, - //CR NE NE/NA CMR/CR + //7、CR NE NE/NA CMR/CR new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), @@ -2782,53 +2804,53 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), }, - //CR、PR、SD、NE、ND CMR NE/NA CMR/CR + //8、CR、PR、SD、NE、ND NE CMR CMR/CR new CalculationDto(){ - Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), - Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR }), - Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), + Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), + Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), + Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.CMR,}), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.CMRCR }), }, - //ND/PD/CR/NE/PR/SD PMR PMD/CMR/PMR/NMR/NE PMR/PR + //9、ND/PD/CR/NE/PR/SD PMR PMD/CMR/PMR/NMR/NE PMR/PR new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND, CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR,FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE,FDGPETOverallAssessment.NA, }), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), }, - //PR NE NE PMR/PR + //10、PR NE NE/NA PMR/PR new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.PR }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), }, - //CR/PR/SD/NE/ND NE PMR PMR/PR + //11、CR/PR/SD/NE/ND NE PMR PMR/PR new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.ND }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMR}), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.PMRPR }), }, - //ND/PD/CR/NE/PR/SD NMR PMD/CMR/PMR/NMR/NE NMR/SD + //12、ND/PD/CR/NE/PR/SD NMR PMD/CMR/PMR/NMR/NE NMR/SD new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.ND,CTMRIOverallAssessment.PD,CTMRIOverallAssessment.CR,CTMRIOverallAssessment.NE,CTMRIOverallAssessment.PR,CTMRIOverallAssessment.SD }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.PMD, FDGPETOverallAssessment.CMR, FDGPETOverallAssessment.PMR, FDGPETOverallAssessment.NMR, FDGPETOverallAssessment.NE, FDGPETOverallAssessment.NA,}), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), }, - //CR/PR/SD/ND/NE NE NMR NMR/SD + //13、CR/PR/SD/ND/NE NE NMR NMR/SD new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.CR, CTMRIOverallAssessment.PR, CTMRIOverallAssessment.SD, CTMRIOverallAssessment.ND, CTMRIOverallAssessment.NE }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), Column3=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NMR}), Column4=ReadingCommon.EnumToString(new List() { ImagingOverallAssessment_Lugano.NMRSD }), }, - //SD NE NE NMR/SD + //14、SD NE NE NMR/SD new CalculationDto(){ Column1=ReadingCommon.EnumToString(new List() { CTMRIOverallAssessment.SD }), Column2=ReadingCommon.EnumToString(new List() { FDGPETOverallAssessment.NE }), @@ -2953,7 +2975,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate if (baseLineSPD > 0) { - eqPR = (presentSPD - baseLineSPD) / baseLineSPD > 0.5m; + eqPR = (presentSPD - baseLineSPD) / baseLineSPD <=- 0.5m; } } @@ -2982,7 +3004,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { result = TargetAssessment.CR; } - // 与基线相比SPD变化的百分比 ≥50%,; + // 与基线相比SPD变化的百分比 <=-50%,; else if (eqPR) { result = TargetAssessment.PR; diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs index 63aa8eaab..077e5c47a 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/PCWG3CalculateService.cs @@ -63,13 +63,24 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate private List siteVisitForTumorList = new List(); + /// + /// 获取阅片的计算数据 + /// + /// + /// + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + return new + { + }; + } - #region 删除病灶获取起始病灶序号 - /// - /// 删除病灶获取起始病灶序号 - /// - /// - public async Task GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto) + #region 删除病灶获取起始病灶序号 + /// + /// 删除病灶获取起始病灶序号 + /// + /// + public async Task GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto) { var rowInfo = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.RowId).Include(x => x.ReadingQuestionTrial).FirstNotNullAsync(); if (rowInfo.ReadingQuestionTrial.LesionType == LesionType.NewLesions) diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index af8691ffa..60250e071 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -56,9 +56,21 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; } - #region 临时对象 单个请求的生命周期 避免重复查询数据库 + /// + /// 获取阅片的计算数据 + /// + /// + /// + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + return new + { + }; + } - private List visitTaskAnswerList; + #region 临时对象 单个请求的生命周期 避免重复查询数据库 + + private List visitTaskAnswerList; /// /// 获取Sod的值 diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs index 7b0cde97b..6ab26ada7 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1_BMCalculateService.cs @@ -56,9 +56,21 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; } - #region 临时对象 单个请求的生命周期 避免重复查询数据库 + /// + /// 获取阅片的计算数据 + /// + /// + /// + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + return new + { + }; + } - private List visitTaskAnswerList; + #region 临时对象 单个请求的生命周期 避免重复查询数据库 + + private List visitTaskAnswerList; /// /// 获取Sod的值 diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs index 7166ecf13..e4458bebd 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/SelfDefineCalculateService.cs @@ -63,13 +63,24 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate private List siteVisitForTumorList = new List() ; + /// + /// 获取阅片的计算数据 + /// + /// + /// + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + return new + { + }; + } - #region 删除病灶获取起始病灶序号 - /// - /// 删除病灶获取起始病灶序号 - /// - /// - public async Task GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto) + #region 删除病灶获取起始病灶序号 + /// + /// 删除病灶获取起始病灶序号 + /// + /// + public async Task GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto) { return 1; diff --git a/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs b/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs index afc4cc6e9..e5f90f69c 100644 --- a/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs +++ b/IRaCIS.Core.Domain/Reading/MedicalAudit/ReadingMedicineTrialQuestion.cs @@ -101,6 +101,8 @@ namespace IRaCIS.Core.Domain.Models /// public Guid TrialReadingCriterionId { get; set; } + public Guid? SystemQuestionId { get; set; } + [JsonIgnore] [ForeignKey("ParentId")] public ReadingMedicineTrialQuestion ParentQuestion { get; set; }