diff --git a/IRaCIS.Core.API/appsettings.Prod_IRC.json b/IRaCIS.Core.API/appsettings.Prod_IRC.json index 0a747f712..355f6e87f 100644 --- a/IRaCIS.Core.API/appsettings.Prod_IRC.json +++ b/IRaCIS.Core.API/appsettings.Prod_IRC.json @@ -67,8 +67,8 @@ "AuthorizationCode": "ExtImg@2022", "SiteUrl": "http://irc.extimaging.com/login", "SystemShortName": "IRC", - "OrganizationName": "Extlmaging", - "OrganizationNameCN": "Extlmaging", + "OrganizationName": "ExtImaging", + "OrganizationNameCN": "ExtImaging", "CompanyName": "Extensive Imaging", "CompanyNameCN": "上海展影医疗科技有限公司", "CompanyShortName": "Extensive Imaging", diff --git a/IRaCIS.Core.API/appsettings.Test_IRC.json b/IRaCIS.Core.API/appsettings.Test_IRC.json index 0f43fe7f1..1f8b3569e 100644 --- a/IRaCIS.Core.API/appsettings.Test_IRC.json +++ b/IRaCIS.Core.API/appsettings.Test_IRC.json @@ -138,9 +138,9 @@ // 系统简称 "SystemShortName": "IRC", // 组织英文名称 - "OrganizationName": "Extlmaging", + "OrganizationName": "ExtImaging", // 组织中文名称 - "OrganizationNameCN": "Extlmaging", + "OrganizationNameCN": "ExtImaging", // 公司英文全称 "CompanyName": "Extensive Imaging", // 公司中文全称 diff --git a/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json b/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json index d1a646f83..4f677e98e 100644 --- a/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json +++ b/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json @@ -81,8 +81,8 @@ "AuthorizationCode": "SHzyyl2021", "SiteUrl": "http://irc.test.extimaging.com/login", - "OrganizationName": "Extlmaging", - "OrganizationNameCN": "Extlmaging", + "OrganizationName": "ExtImaging", + "OrganizationNameCN": "ExtImaging", "CompanyName": "Extensive Imaging", "CompanyNameCN": "上海展影医疗科技有限公司", "CompanyShortName": "Extensive Imaging", diff --git a/IRaCIS.Core.API/appsettings.Uat_IRC.json b/IRaCIS.Core.API/appsettings.Uat_IRC.json index 6f64d3f10..368b23195 100644 --- a/IRaCIS.Core.API/appsettings.Uat_IRC.json +++ b/IRaCIS.Core.API/appsettings.Uat_IRC.json @@ -87,8 +87,8 @@ "SiteUrl": "http://irc.uat.extimaging.com/login", "SystemShortName": "IRC", - "OrganizationName": "Extlmaging", - "OrganizationNameCN": "Extlmaging", + "OrganizationName": "ExtImaging", + "OrganizationNameCN": "ExtImaging", "CompanyName": "Extensive Imaging", "CompanyNameCN": "上海展影医疗科技有限公司", "CompanyShortName": "Extensive Imaging", diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs index d156eedd9..19226cbe3 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs @@ -1005,6 +1005,8 @@ namespace IRaCIS.Core.Application.Contracts public string VisitName { get; set; } + public Guid SourceSubjectVisitId { get; set; } + public List DicomStudyList { get; set; } = new List(); diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index e96136e4d..2ae8d7279 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -159,7 +159,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc if (inQuery.IsImageSegmentLabel == true) { - var querySV = _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId) + var querySV = _subjectVisitRepository.WhereIf(inQuery.SubjectVisitId != null, t => t.Id == inQuery.SubjectVisitId) .WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId) .Select(u => new SubjectVisitMarkUploadDto() { @@ -1248,6 +1248,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var dicomStudyList = list.Where(item => item.DicomStudyList.Count > 0) .Select(item => new SubjectVisitMarkStudyDto { + SourceSubjectVisitId=item.SourceSubjectVisitId, VisitTaskId = item.VisitTaskId, SubjectId = item.SubjectId, SubjectCode = item.SubjectCode, @@ -1260,6 +1261,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var noneStudyList = list.Where(item => item.NoneDicomStudyList.Count > 0) .Select(item => new SubjectVisitMarkStudyDto { + SourceSubjectVisitId = item.SourceSubjectVisitId, VisitTaskId = item.VisitTaskId, SubjectId = item.SubjectId, SubjectCode = item.SubjectCode, @@ -1433,7 +1435,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var dirInfolist = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))).SelectMany(t => t.StudyList) .Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) .Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) - .Where(t => inQuery.IsImageSegmentLabel == true ? t.ModalityForEdit == "XA" : true) + .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" : true) .SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading)) .Select(t => new StudyDIRInfo() { @@ -1540,6 +1542,11 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc from leftVisitTask in cc.DefaultIfEmpty() select new ImageDownloadDto() { + TrialId=sv.TrialId, + SubjectId=sv.SubjectId, + TrialSiteCode=sv.TrialSite.TrialSiteCode, + VisitId=sv.Id, + SubjectCode = inQuery.SubjectCode, VisitName = sv.VisitName, TaskBlindName = leftVisitTask.TaskBlindName, @@ -1596,7 +1603,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc }).ToList() , - NoneDicomStudyList = inQuery.IsImageSegmentLabel == null ? sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) + NoneDicomStudyList = inQuery.IsImageSegmentLabel != false ? sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) .Where(t => info.IsImageFilter ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.Modality + "|") : true) .Where(t => t.IsReading) .Select(nd => new DownloadNoneDicomStudyDto() diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs index 08b0f4c16..4b271380f 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs @@ -166,6 +166,7 @@ namespace IRaCIS.Core.Application.Service CreateMap() + .ForMember(d => d.SourceSubjectVisitId, u => u.MapFrom(u => u.Id)) .ForMember(d => d.SubjectCode, u => u.MapFrom(u => u.Subject.Code)) .ForMember(d => d.DicomStudyList, u => u.MapFrom(s => s.StudyList)) .ForMember(d => d.NoneDicomStudyList, u => u.MapFrom(s => s.NoneDicomStudyList.Where(t => t.IsReading))); diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs index 1ad89c57f..386c06524 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoCalculateService.cs @@ -352,7 +352,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, } }, //垂直径乘积之和(SPD) - new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetDecimalFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, + new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetStringFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, // 与基线相比SPD变化的百分比 new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, @@ -1861,15 +1861,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// /// /// - public async Task GetSPD(ReadingCalculateDto inDto) + public async Task GetSPD(ReadingCalculateDto inDto) { - decimal result = 0; var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList(); - var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList(); + if (inDto.IsBaseLine && tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Count() == 0) + { + return string.Empty; + } + decimal result = 0; result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0()); - return result; + return result.ToString(); } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs index 50a04412e..7dbf62e26 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/LuganoWithoutPETCalculateService.cs @@ -352,7 +352,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate new ReadingCalculateData (){QuestionType=QuestionType.ExistPET,GetStringFun=GetExistPET ,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, } }, //垂直径乘积之和(SPD) - new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetDecimalFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, + new ReadingCalculateData (){QuestionType=QuestionType.SPD,GetStringFun=GetSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, // 与基线相比SPD变化的百分比 new ReadingCalculateData (){QuestionType=QuestionType.SPDChange,GetStringFun=CompareBaselineSPD,ComputationTriggerList=new List(){ ComputationTrigger.InitialCalculation, ComputationTrigger.CTSave,ComputationTrigger.RemoveLesion,}}, @@ -1861,15 +1861,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate /// /// /// - public async Task GetSPD(ReadingCalculateDto inDto) + public async Task GetSPD(ReadingCalculateDto inDto) { - decimal result = 0; var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList(); - var tableQuestionList = rowInfo.SelectMany(x => x.TableQuestionList).ToList(); + if (inDto.IsBaseLine && tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Count() == 0) + { + return string.Empty; + } + decimal result = 0; result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.PPD).Sum(x => x.Answer.IsNullOrEmptyReturn0()); - return result; + return result.ToString(); } diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index fb53fe6ab..819c5878e 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -224,7 +224,7 @@ namespace IRaCIS.Core.Application.Services var isImageFilter = false; var criterionModalitys = ""; - if (visitTaskId != null) + if (visitTaskId != null && visitTaskId != Guid.Empty) { var info = await _visitTaskRepository.Where(t => t.Id == visitTaskId) .Select(t => new { t.TrialReadingCriterion.IsImageFilter, t.TrialReadingCriterion.CriterionModalitys }).FirstNotNullAsync();