141 lines
4.7 KiB
C#
141 lines
4.7 KiB
C#
|
|
//--------------------------------------------------------------------
|
|
// 此代码由liquid模板自动生成 byzhouhang 20240909
|
|
// 生成时间 2026-03-10 06:17:28Z
|
|
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
|
|
//--------------------------------------------------------------------
|
|
using IRaCIS.Core.Domain.Models;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using IRaCIS.Core.Application.Interfaces;
|
|
using IRaCIS.Core.Application.ViewModel;
|
|
using IRaCIS.Core.Infrastructure.Extention;
|
|
using System.Threading.Tasks;
|
|
using IRaCIS.Core.Infra.EFCore;
|
|
namespace IRaCIS.Core.Application.Service;
|
|
|
|
/// <summary>
|
|
/// 分割
|
|
/// </summary>
|
|
/// <param name="_segmentationRepository"></param>
|
|
/// <param name="_mapper"></param>
|
|
/// <param name="_userInfo"></param>
|
|
/// <param name="_localizer"></param>
|
|
[ ApiExplorerSettings(GroupName = "Reading")]
|
|
public class SegmentationService(IRepository<Segmentation> _segmentationRepository,
|
|
IRepository<Segment> _segmentRepository,
|
|
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer): BaseService, ISegmentationService
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
/// 获取分割组
|
|
/// </summary>
|
|
/// <param name="inQuery"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<PageOutput<SegmentationView>> GetSegmentationList(SegmentationQuery inQuery)
|
|
{
|
|
|
|
var segmentationQueryable =_segmentationRepository
|
|
.WhereIf(inQuery.SegmentationName.IsNotNullOrEmpty(),x=>x.SegmentationName.Contains(inQuery.SegmentationName))
|
|
.WhereIf(inQuery.TrialId != null, x => x.TrialId == inQuery.TrialId)
|
|
.WhereIf(inQuery.SeriesId != null, x => x.SeriesId == inQuery.SeriesId)
|
|
.WhereIf(inQuery.StudyId != null, x => x.StudyId == inQuery.StudyId)
|
|
.WhereIf(inQuery.SubjectId != null, x => x.SubjectId == inQuery.SubjectId)
|
|
.WhereIf(inQuery.SubjectVisitId != null, x => x.TrialId == inQuery.SubjectVisitId)
|
|
.WhereIf(inQuery.VisitTaskId != null, x => x.VisitTaskId == inQuery.VisitTaskId)
|
|
.ProjectTo<SegmentationView>(_mapper.ConfigurationProvider);
|
|
|
|
var pageList= await segmentationQueryable.ToPagedListAsync(inQuery);
|
|
|
|
return pageList;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 新增修改分割组
|
|
/// </summary>
|
|
/// <param name="addOrEditSegmentation"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<IResponseOutput> AddOrUpdateSegmentation(SegmentationAddOrEdit addOrEditSegmentation)
|
|
{
|
|
|
|
|
|
|
|
var entity = await _segmentationRepository.InsertOrUpdateAsync(addOrEditSegmentation, true);
|
|
|
|
return ResponseOutput.Ok(entity.Id.ToString());
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 删除分割组
|
|
/// </summary>
|
|
/// <param name="segmentationId"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete("{segmentationId:guid}")]
|
|
public async Task<IResponseOutput> DeleteSegmentation(Guid segmentationId)
|
|
{
|
|
var success = await _segmentationRepository.DeleteFromQueryAsync(t => t.Id == segmentationId,true);
|
|
return ResponseOutput.Ok();
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取分割
|
|
/// </summary>
|
|
/// <param name="inQuery"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<PageOutput<SegmentView>> GetSegmentList(SegmentQuery inQuery)
|
|
{
|
|
|
|
var segmentQueryable = _segmentRepository
|
|
|
|
.WhereIf(inQuery.SegmentationId != null, x => x.SegmentationId == inQuery.SegmentationId)
|
|
.WhereIf(inQuery.SegmentName.IsNotNullOrEmpty(), x => x.SegmentName.Contains(inQuery.SegmentName))
|
|
.WhereIf(inQuery.VisitTaskId != null, x => x.VisitTaskId == inQuery.VisitTaskId)
|
|
.ProjectTo<SegmentView>(_mapper.ConfigurationProvider);
|
|
|
|
var pageList = await segmentQueryable.ToPagedListAsync(inQuery);
|
|
|
|
return pageList;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 新增修改分割
|
|
/// </summary>
|
|
/// <param name="addOrEditSegment"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<IResponseOutput> AddOrUpdateSegment(SegmentAddOrEdit addOrEditSegment)
|
|
{
|
|
|
|
|
|
|
|
var entity = await _segmentRepository.InsertOrUpdateAsync(addOrEditSegment, true);
|
|
|
|
return ResponseOutput.Ok(entity.Id.ToString());
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除分割
|
|
/// </summary>
|
|
/// <param name="inQuery"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete("{segmentId:guid}")]
|
|
public async Task<IResponseOutput> DeleteSegment(Guid segmentId)
|
|
{
|
|
var success = await _segmentRepository.DeleteFromQueryAsync(t => t.Id == segmentId, true);
|
|
return ResponseOutput.Ok();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|