using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Share;
using Microsoft.AspNetCore.Http;
using System.Data;

namespace IRaCIS.Core.Application.Service
{
    public interface IGeneralCalculateService
    {

        /// <summary>
        /// 获取ReadingCalculateDto
        /// </summary>
        /// <param name="visitTaskId"></param>
        /// <returns></returns>
        Task<ReadingCalculateDto> GetReadingCalculateDto(Guid visitTaskId);

        /// <summary>
        /// 获取阅片报告任务List
        /// </summary>
        /// <param name="visitTaskId"></param>
        /// <returns></returns>
        Task<List<VisitTaskInfo>> GetReadingReportTaskList(Guid visitTaskId);

        /// <summary>
        /// 添加转化任务病灶信息
        /// </summary>
        /// <param name="visitTaskId"></param>
        /// <param name="beforeConvertedTaskId"></param>
        /// <returns></returns>
        Task AddConvertedTaskFocus(Guid visitTaskId, Guid beforeConvertedTaskId);

        /// <summary>
        /// 添加计算错误日志
        /// </summary>
        /// <param name="inDto"></param>
        /// <param name="lesionName"></param>
        /// <param name="lesionType"></param>
        /// <returns></returns>
        Task LogRecord(ReadingCalculateDto inDto, string lesionName, LesionType lesionType);

        /// <summary>
        /// 从上传文件中获取Datatable
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        Task<FileToDataTableDto> GetDataTableFromUpload(IFormFile file, string pathCode, Guid trialId);
    }
}