using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Domain.Share; using MediatR; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace IRaCIS.Core.Application.Image.QA { public interface IQCOperationService { Task CheckBack(Guid subjectVisitId); Task SetNeedReupload(Guid trialId, Guid signId, Guid qcChallengeId); Task QCPassedOrFailed(Guid trialId, Guid subjectVisitId, Guid signId, [FromRoute] AuditStateEnum auditState); Task SetCheckPass(Guid subjectVisitId); Task> AddCheckChallengeReply(CheckChallengeDialogCommand checkDialogCommand); Task AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType); Task AddOrUpdateQCQuestionAnswerList(QCQuestionAnswerCommand[] qcQuestionAnswerCommands, Guid trialId, Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType); Task AddQCChallengeReply(QADialogCommand qaDialogCommand); Task CloseCheckChallenge(Guid subjectVisitId); Task CloseQCChallenge(Guid qcChallengeId, Guid subjectVisitId, [FromRoute] QCChallengeCloseEnum closeEnum, [FromRoute] string closeReason); Task CRCRequestReUpload(Guid qcChallengeId); Task CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand); Task CRCRequstCheckBack(Guid subjectVisitId); Task DeleteQCChallenge(Guid qcChallengeId); Task DeleteStudyList(Guid[] ids, Guid subjectVisitId, Guid trialId); Task ObtainOrCancelQCTask(Guid trialId, Guid subjectVisitId, bool obtaionOrCancel); Task SetReuploadFinished(CRCReuploadFinishedCommand cRCReuploadFinishedCommand); Task SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state); Task SetVisitUrgent(Guid trialId, Guid subjectVisitId, bool setOrCancel); Task UpdateModality(Guid id, int type, [FromQuery] string modality, [FromQuery] string bodyPart); Task UpdateSubjectAndSVInfo(UploadSubjectAndVisitCommand command); Task UploadVisitCheckExcel(IFormFile file, [FromServices] IMediator _mediator, Guid trialId, [FromServices] IWebHostEnvironment _hostEnvironment); Task VerifyCanQCPassedOrFailed(Guid subjectVisitId); } }