diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index c564cfbf..9ca922c6 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -4746,6 +4746,13 @@ + + + 获取阅片器官信息 + + + + 获取项目器官信息 @@ -5421,6 +5428,11 @@ 位置 英文 + + + 病灶类型 + + 病灶类型 @@ -5441,6 +5453,11 @@ 位置 英文 + + + 病灶类型 + + 是否可编辑位置 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs index dfeb901d..16d13063 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs @@ -6,6 +6,8 @@ using System; using IRaCIS.Core.Domain.Share; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; + namespace IRaCIS.Core.Application.ViewModel { @@ -189,6 +191,21 @@ namespace IRaCIS.Core.Application.ViewModel public Guid? SystemCriterionId { get; set; } } + public class GetReadingOrganListOutDto + { + /// + /// 病灶类型 + /// + public LesionType LesionType { get; set; } + + public List OrganList { get; set; } + } + + public class GetReadingOrganListInDto + { + [NotDefault] + public Guid VisitTaskId { get; set; } + } public class SetOrganIsEnableInDto { @@ -252,6 +269,13 @@ namespace IRaCIS.Core.Application.ViewModel public bool IsCheckd { get; set; } } + public class ReadingOrganDto : GetTrialOrganListOutDto + { + /// + /// 病灶类型 + /// + public LesionType LesionType { get; set; } + } public class GetTrialOrganListOutDto { public Guid Id { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs index a7fb2ffd..a3478c5b 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/OrganInfoService.cs @@ -125,6 +125,51 @@ namespace IRaCIS.Core.Application.Service #endregion + /// + /// 获取阅片器官信息 + /// + /// + /// + [HttpPost] + public async Task> GetReadingOrganList(GetReadingOrganListInDto inDto) + { + var trialReadingCriterionId = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Select(x => x.TrialReadingCriterionId).FirstOrDefaultAsync(); + + + var organInfoQueryable = from data in _organInfoRepository.AsQueryable() + + join trialData in _organTrialInfoRepository.AsQueryable().Where( x => x.IsEnable&&x.TrialCriterionId== trialReadingCriterionId) + on data.Id equals trialData.OrganInfoId + join criterionNidus in _criterionNidusRepository.AsQueryable().Where(x=>x.CriterionId== trialReadingCriterionId) + on data.OrganType equals criterionNidus.OrganType + select new ReadingOrganDto() + { + Id = trialData.Id, + Part = data.Part, + TULAT = data.TULAT, + TULOC = data.TULOC, + Remark = data.Remark, + IsLymphNodes = data.IsLymphNodes, + IsCanEditPosition = data.IsCanEditPosition, + IsEnable = trialData.IsEnable, + OrganType = data.OrganType, + PartEN = data.PartEN, + TULATEN = data.TULATEN, + TULOCEN = data.TULOCEN, + LesionType= criterionNidus.LesionType + }; + + var organList = await organInfoQueryable.ToListAsync(); + + List result = organList.GroupBy(x => new { x.LesionType }).Select(x => new GetReadingOrganListOutDto() + { + LesionType = x.Key.LesionType, + OrganList = x.ToList() + }).ToList(); + + return result; + } + #region 项目器官