using IRaCIS.Core.Application.Contracts;
using Microsoft.AspNetCore.Mvc;

namespace IRaCIS.Core.Application.Contracts
{
    public interface IStudyService
    {
        IResponseOutput<List<RelationStudyDTO>> GetAllRelationStudyList(Guid subjectVisitId);
        Task<PageOutput<UnionStudyViewModel>> GetDicomAndNoneDicomStudyList(StudyQuery studyQuery);
        Task<PageOutput<UnionStudyMonitorModel>> GetDicomAndNoneDicomStudyMonitorList(StudyQuery studyQuery);
        (List<string> SeriesInstanceUid, List<string> SopInstanceUid) GetHasUploadSeriesAndInstance(Guid studyId);
        DicomTrialSiteSubjectInfo GetSaveToDicomInfo(Guid subjectVisitId);
        IResponseOutput<DicomStudyDTO> Item(Guid studyId);
        Task<FileContentResult> Preview(Guid studyId);
        IResponseOutput<List<VerifyStudyUploadResult>> VerifyStudyAllowUpload(VerifyUploadOrReupload verifyInfo);
    }
}