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/QC/DTO/NoneDicomStudyViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyViewModel.cs index bce0b65c3..7162e8c3e 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/NoneDicomStudyViewModel.cs @@ -55,6 +55,8 @@ namespace IRaCIS.Core.Application.Contracts public string Modality { get; set; } = string.Empty; public DateTime ImageDate { get; set; } public string ModifyReason { get; set; } + + public string BodyPartForEditOther { get; set; } } /// NoneDicomStudyAddOrEdit 列表查询参数模型 diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs index 2990696aa..56c35f245 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs @@ -21,6 +21,8 @@ namespace IRaCIS.Core.Application.Contracts.DTO public string BodyPart { get; set; } = String.Empty; public string ModifyReason { get; set; } + + public string BodyPartForEditOther { get; set; } } 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();