112 lines
4.0 KiB
C#
112 lines
4.0 KiB
C#
using IRaCIS.Application.Interfaces;
|
|
using IRaCIS.Core.Infra.EFCore;
|
|
using IRaCIS.Core.Domain.Share;
|
|
using IRaCIS.Core.Application.Filter;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using IRaCIS.Core.Application.Service.WorkLoad.DTO;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using IRaCIS.Core.Application.Auth;
|
|
using IRaCIS.Core.Application.Service.Reading.Dto;
|
|
using IRaCIS.Core.Domain.Share.Reading;
|
|
using MassTransit;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Reflection;
|
|
using IRaCIS.Core.Infra.EFCore.Common;
|
|
|
|
namespace IRaCIS.Application.Services
|
|
{
|
|
/// <summary>
|
|
/// 阅片临床数据配置
|
|
/// </summary>
|
|
[ApiExplorerSettings(GroupName = "Reading")]
|
|
public class ReadingClinicalDataService : BaseService
|
|
{
|
|
private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
|
|
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
|
|
|
|
public ReadingClinicalDataService(IRepository<ReadingClinicalData> readingClinicalDataRepository,
|
|
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository
|
|
)
|
|
{
|
|
this._readingClinicalDataRepository = readingClinicalDataRepository;
|
|
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 新增或者修改
|
|
/// </summary>
|
|
/// <param name="indto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<IResponseOutput> AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto)
|
|
{
|
|
var entity = await _readingClinicalDataRepository.InsertOrUpdateAsync(indto,true);
|
|
return ResponseOutput.Ok(entity.Id.ToString());
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 删除
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete("{id:guid}")]
|
|
public async Task<IResponseOutput> ReadingClinicalData(Guid id)
|
|
{
|
|
await _readingClinicalDataRepository.DeleteFromQueryAsync(x => x.Id == id, true);
|
|
return ResponseOutput.Result(true);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取下拉菜单
|
|
/// </summary>
|
|
/// <param name="inDto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<List<GetTrialClinicalDataSelectOutDto>> GetTrialClinicalDataSelect(GetTrialClinicalDataSelectIndto inDto)
|
|
{
|
|
List<GetTrialClinicalDataSelectOutDto> clinicalList = await _clinicalDataTrialSetRepository.Select(x => new GetTrialClinicalDataSelectOutDto()
|
|
{
|
|
ClinicalDataLevel = x.ClinicalDataLevel,
|
|
ClinicalDataSetName = x.ClinicalDataSetName,
|
|
ClinicalUploadType = x.ClinicalUploadType,
|
|
ClinicalDataLevelName = x.ClinicalDataLevel.GetDisplayName(),
|
|
ClinicalUploadTypeName = x.ClinicalUploadType.GetDisplayName(),
|
|
|
|
Id = x.Id
|
|
}).ToListAsync() ;
|
|
|
|
return clinicalList;
|
|
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取阅片临床数据列表
|
|
/// </summary>
|
|
/// <param name="indto"></param>
|
|
/// <returns></returns>
|
|
[HttpPost]
|
|
public async Task<PageOutput<GetReadingClinicalDataListOutDto>> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto)
|
|
{
|
|
var result = await _readingClinicalDataRepository.Where(x => x.ObjectId == inDto.ObjectId).ProjectTo<GetReadingClinicalDataListOutDto>(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
|
|
inDto.Asc);
|
|
|
|
result.CurrentPageData.ForEach(x => {
|
|
x.ClinicalDataLevelName = x.ClinicalDataLevel.GetDisplayName();
|
|
x.ClinicalUploadTypeName = x.ClinicalUploadType.GetDisplayName();
|
|
});
|
|
|
|
return result;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|