From 3e4def27ee37fa37beb15f412adaec8f24148c1e Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Fri, 17 Mar 2023 16:54:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=84=E5=8A=A0=E8=AF=84=E4=BC=B0=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tCriteriaEvaluationVisitFilterViewModel.cs | 36 ++++++++++- ...eriaEvaluationVisitStudyFilterViewModel.cs | 51 ++++++++-------- .../SubjectCriteriaEvaluationService.cs | 59 ++++++++++++------- .../Service/Reading/_MapConfig.cs | 11 ++-- 4 files changed, 102 insertions(+), 55 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs index bfc66a559..ee0c048e5 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitFilterViewModel.cs @@ -35,6 +35,23 @@ namespace IRaCIS.Core.Application.ViewModel public Guid TrialReadingCriterionId { get; set; } + [NotDefault] + public Guid SubjectId { get; set; } + + + public int? ImageFilterState { get; set; } + + public int? ImageDeterminationResultState { get; set; } + + public bool? IsGeneratedTask { get; set; } + } + + public class HaveGeneratedTaskQuery : PageInput + { + [NotDefault] + public Guid TrialReadingCriterionId { get; set; } + + [NotDefault] public Guid SubjectId { get; set; } } @@ -66,6 +83,19 @@ namespace IRaCIS.Core.Application.ViewModel } + public class HaveGeneratedTaskDto + { + public string VisitName { get; set; } + + public string TaskCode { get; set; } + + public string TaskName { get; set; } + + public string TaskBlindName { get; set; } + + public DateTime CreateTime { get; set; } + } + public class SelctStudySeriesView { @@ -129,14 +159,14 @@ namespace IRaCIS.Core.Application.ViewModel public string BodyPartExamined { get; set; } = String.Empty; - public Guid[] InstanceList = new Guid[0]; - - public List InstancePathList = new List(); + //public Guid[] InstanceList = new Guid[0]; + //public List InstancePathList = new List(); + public Guid? Id { get; set; } public DateTime? CreateTime { get; set; } public Guid? TrialReadingCriterionId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs index b28d3740b..02831b9cb 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/DTO/SubjectCriteriaEvaluationVisitStudyFilterViewModel.cs @@ -7,35 +7,36 @@ using System; using IRaCIS.Core.Domain.Share; using System.Collections.Generic; namespace IRaCIS.Core.Application.ViewModel -{ - /// SubjectCriteriaEvaluationVisitStudyFilterView 列表视图模型 - public class SubjectCriteriaEvaluationVisitStudyFilterView - { - public Guid Id { get; set; } - public Guid SubjectId { get; set; } - public Guid TrialReadingCriterionId { get; set; } - public DateTime CreateTime { get; set; } - public Guid CreateUserId { get; set; } - public Guid UpdateUserId { get; set; } - public DateTime UpdateTime { get; set; } - public Guid SubjectVisitId { get; set; } - public Guid StudyId { get; set; } - public Guid SeriesId { get; set; } - public bool IsConfirmed { get; set; } - } +{ + /// SubjectCriteriaEvaluationVisitStudyFilterView 列表视图模型 + public class SubjectCriteriaEvaluationVisitStudyFilterView + { + public Guid Id { get; set; } + public Guid SubjectId { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public DateTime CreateTime { get; set; } + public Guid CreateUserId { get; set; } + public Guid UpdateUserId { get; set; } + public DateTime UpdateTime { get; set; } + public Guid SubjectVisitId { get; set; } + public Guid StudyId { get; set; } + public Guid SeriesId { get; set; } + public bool IsConfirmed { get; set; } + } - /// SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit 列表查询参数模型 - public class SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit - { - public Guid TrialReadingCriterionId { get; set; } - public Guid SubjectVisitId { get; set; } - public Guid StudyId { get; set; } - public Guid SeriesId { get; set; } - } + /// SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit 列表查询参数模型 + public class SubjectCriteriaEvaluationVisitStudyFilterAddOrEdit + { + public Guid? Id { get; set; } + public Guid TrialReadingCriterionId { get; set; } + public Guid SubjectVisitId { get; set; } + public Guid StudyId { get; set; } + public Guid SeriesId { get; set; } + } + - } diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs index d9cee8427..31003d425 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs @@ -114,7 +114,12 @@ namespace IRaCIS.Core.Application.Service var subjectCriteriaEvaluationVisitFilterQueryable = from subjectVisit in _subjectVisitRepository.Where(t => t.SubjectId == inQuery.SubjectId) - join subjectCriteriaEvaluationVisitFilter in _subjectCriteriaEvaluationVisitFilterRepository.Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) on subjectVisit.Id equals subjectCriteriaEvaluationVisitFilter.SubjectVisitId into d + join subjectCriteriaEvaluationVisitFilter in _subjectCriteriaEvaluationVisitFilterRepository + .Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) + .WhereIf(inQuery.ImageDeterminationResultState != null, t => t.ImageDeterminationResultState == inQuery.ImageDeterminationResultState) + .WhereIf(inQuery.ImageFilterState != null, t => t.ImageFilterState == inQuery.ImageFilterState) + .WhereIf(inQuery.IsGeneratedTask != null, t => t.IsGeneratedTask == inQuery.IsGeneratedTask) + on subjectVisit.Id equals subjectCriteriaEvaluationVisitFilter.SubjectVisitId into d from subjectCriteriaEvaluationVisitFilter in d.DefaultIfEmpty() select new SubjectCriteriaEvaluationVisitFilterView() @@ -132,14 +137,22 @@ namespace IRaCIS.Core.Application.Service }; - - - - - return await subjectCriteriaEvaluationVisitFilterQueryable.ToListAsync(); } + /// + /// 已生成任务列表 + /// + /// + /// + public async Task> GetHaveGeneratedTaskList(HaveGeneratedTaskQuery inQuery) + { + var list = await _repository.Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId && t.SubjectId == inQuery.SubjectId) + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + return list; + } + /// /// 评估访视 判断结果 影像筛选状态 手动添加/编辑接口 /// @@ -155,6 +168,9 @@ namespace IRaCIS.Core.Application.Service } + + + /// /// 获取dicom 访视检查列表 (序列的 CreateTime 是否为空 代表了记录是否创建、IsConfirmed 代表 保存 确认) /// @@ -172,24 +188,25 @@ namespace IRaCIS.Core.Application.Service select new SelectSeriesView() { - Description=series.Description, - BodyPartExamined=series.BodyPartExamined, - BodyPartForEdit=series.BodyPartForEdit, - Modality=series.Modality, - SeriesInstanceUid=series.SeriesInstanceUid, - StudyCode=series.DicomStudy.StudyCode, - SeriesNumber=series.SeriesNumber, - SeriesTime=series.SeriesTime, - + Description = series.Description, + BodyPartExamined = series.BodyPartExamined, + BodyPartForEdit = series.BodyPartForEdit, + Modality = series.Modality, + SeriesInstanceUid = series.SeriesInstanceUid, + StudyCode = series.DicomStudy.StudyCode, + SeriesNumber = series.SeriesNumber, + SeriesTime = series.SeriesTime, + StudyTime = series.DicomStudy.StudyTime, StudyId = series.StudyId, SeriesId = series.Id, - SubjectVisitId =series.SubjectVisitId, - TrialReadingCriterionId= inQuery.TrialReadingCriterionId, + SubjectVisitId = series.SubjectVisitId, + TrialReadingCriterionId = inQuery.TrialReadingCriterionId, + Id = visitStudyFilter.Id, CreateTime = visitStudyFilter.CreateTime, - IsConfirmed=visitStudyFilter.IsConfirmed, + IsConfirmed = visitStudyFilter.IsConfirmed, }; @@ -206,10 +223,12 @@ namespace IRaCIS.Core.Application.Service /// 批量保存或者确认 选择的序列 /// /// - public async Task BatchAddSubjectCriteriaEvaluationVisitStudyFilter( List batchList) + public async Task BatchAddSubjectCriteriaEvaluationVisitStudyFilter(List batchList) { - + var ids = batchList.Select(t => t.Id).ToList(); + await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => ids.Contains(t.Id)); + await _subjectCriteriaEvaluationVisitStudyFilterRepository.AddRangeAsync(_mapper.Map >(batchList)); //var entity = await _subjectCriteriaEvaluationVisitStudyFilterRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluationVisitStudyFilter, true); diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index 56119836d..7abf0c702 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -257,19 +257,16 @@ namespace IRaCIS.Core.Application.Service CreateMap().ReverseMap(); CreateMap().ReverseMap(); + CreateMap().ReverseMap(); + CreateMap() .ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime)) .ForMember(o => o.Uploader, t => t.MapFrom(u => u.Uploader.LastName + " / " + u.Uploader.FirstName)) .ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id)); + CreateMap() + .ForMember(o => o.VisitName, t => t.MapFrom(u => u.SourceSubjectVisit.VisitName)); - CreateMap() - .ForMember(o => o.StudyTime, t => t.MapFrom(u => u.DicomStudy.StudyTime)) - .ForMember(o => o.SeriesId, t => t.MapFrom(u => u.Id)) - .ForMember(o => o.StudyCode, t => t.MapFrom(u => u.DicomStudy.StudyCode)) - .ForMember(o => o.InstanceList, t => t.MapFrom(u => u.DicomInstanceList.Select(t => t.Id).ToArray())) - .ForMember(o => o.InstancePathList, t => t.MapFrom(u => u.DicomInstanceList.OrderBy(t => t.InstanceNumber).Select(t => t.Path))) - ; #endregion } }