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
{
///
/// 阅片临床数据配置
///
[ApiExplorerSettings(GroupName = "Reading")]
public class ReadingClinicalDataService : BaseService
{
private readonly IRepository _readingClinicalDataRepository;
private readonly IRepository _clinicalDataTrialSetRepository;
public ReadingClinicalDataService(IRepository readingClinicalDataRepository,
IRepository clinicalDataTrialSetRepository
)
{
this._readingClinicalDataRepository = readingClinicalDataRepository;
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
}
///
/// 新增或者修改
///
///
///
[HttpPost]
public async Task AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto)
{
var entity = await _readingClinicalDataRepository.InsertOrUpdateAsync(indto,true);
return ResponseOutput.Ok(entity.Id.ToString());
}
///
/// 删除
///
///
///
[HttpDelete("{id:guid}")]
public async Task ReadingClinicalData(Guid id)
{
await _readingClinicalDataRepository.DeleteFromQueryAsync(x => x.Id == id, true);
return ResponseOutput.Result(true);
}
///
/// 获取下拉菜单
///
///
///
[HttpPost]
public async Task> GetTrialClinicalDataSelect(GetTrialClinicalDataSelectIndto inDto)
{
List 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;
}
///
/// 获取阅片临床数据列表
///
///
///
[HttpPost]
public async Task> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto)
{
var result = await _readingClinicalDataRepository.Where(x => x.ObjectId == inDto.ObjectId).ProjectTo(_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;
}
}
}