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 IRaCIS.Core.Application.Service.Reading;
using IRaCIS.Core.Infra.EFCore.Common;
using Panda.DynamicWebApi.Attributes;
namespace IRaCIS.Application.Services
{
///
/// IR影像阅片
///
[ApiExplorerSettings(GroupName = "Reading")]
public class ReadingImageTaskService : BaseService
{
private readonly IRepository _noneDicomStudyRepository;
private readonly IRepository _visitTaskRepository;
private readonly IRepository _readingQuestionCriterionTrialRepository;
private readonly IRepository _readingQuestionTrialRepository;
public ReadingImageTaskService(
IRepository noneDicomStudyRepository,
IRepository visitTaskRepository,
IRepository readingQuestionCriterionTrialRepository,
IRepository readingQuestionTrialRepository
)
{
this._noneDicomStudyRepository = noneDicomStudyRepository;
this._visitTaskRepository = visitTaskRepository;
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
this._readingQuestionTrialRepository = readingQuestionTrialRepository;
}
///
/// 获取阅片非Dicom文件
///
///
///
[HttpPost]
public async Task> GetReadingImageFile(GetReadingImgInDto inDto)
{
List imgList =await _noneDicomStudyRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId)
.SelectMany(x => x.NoneDicomFileList).Select(x=> new GetReadingImgOutDto() {
FileName=x.FileName,
Path=x.Path
}).ToListAsync();
return imgList;
}
///
/// 获取项目已确认的标准
///
///
///
[HttpPost]
public async Task> GetTrialConfirmCriterionList(GetConfirmCriterionInDto inDto)
{
var result= await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == inDto.TrialId&&x.IsConfirm)
.Select(x => new GetTrialConfirmCriterionListOutDto()
{
CriterionId = x.Id,
CriterionName = x.CriterionName
}).ToListAsync();
return result;
}
///
/// 获取项目的阅片问题
///
///
///
[HttpPost]
public async Task> GetTrialReadingQuestion(GetTrialReadingQuestionInDto inDto)
{
var result = await _readingQuestionTrialRepository.Where(x => x.Id == inDto.CriterionId)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
return result;
}
/////
/////
/////
/////
/////
//public async Task SubmitVisitTaskQuestions(SubmitVisitTaskQuestionsInDto InDto)
//{
//}
}
}