using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Application.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

        /// <summary>
        /// 自动计算 并修改值
        /// </summary>
        /// <param name="inDto"></param>
        /// <returns></returns>
        Task CalculateTask(CalculateTaskInDto inDto);

        /// <summary>
        /// 验证检查批次提交
        /// </summary>
        /// <param name="inDto"></param>
        /// <returns></returns>
        Task VerifyVisitTaskQuestions(VerifyVisitTaskQuestionsInDto inDto);

        /// <summary>
        /// 将上一次的检查批次病灶添加到这一次
        /// </summary>
        /// <param name="inDto"></param>
        /// <returns></returns>
        Task<AddTaskLesionAnswerFromLastTaskOutDto> AddTaskLesionAnswerFromLastTask(AddTaskLesionAnswerFromLastTaskInDto inDto);

        /// <summary>
        /// 获取报告验证的信息(这里每个标准可能不一样 返回用object)
        /// </summary>
        /// <param name="inDto"></param>
        /// <returns></returns>
        Task<object> GetReportVerify(GetReportVerifyInDto inDto);

        /// <summary>
        /// 获取阅片报告
        /// </summary>
        /// <param name="indto"></param>
        /// <returns></returns>
        Task<GetReadingReportEvaluationOutDto> GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto);

        /// <summary>
        /// 删除病灶获取起始病灶序号
        /// </summary>
        /// <returns></returns>
        Task<int> GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto);


    }
}
