using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.Service.Inspection.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<IResponseOutput> CheckBack(Guid subjectVisitId); Task<IResponseOutput> SetNeedReupload(Guid trialId, Guid qcChallengeId); Task<IResponseOutput> QCPassedOrFailed(Guid trialId, Guid subjectVisitId, [FromRoute] AuditStateEnum auditState); Task<IResponseOutput> SetCheckPass(SetCheckPassDt data); Task<IResponseOutput> AddCheckChallengeReply(CheckChallengeDialogCommand checkDialogCommand); Task<IResponseOutput> AddOrUpdateQCChallenge(QCChallengeCommand qaQuestionCommand, Guid trialId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType); Task<IResponseOutput> AddOrUpdateQCQuestionAnswerList(QCQuestionAnswerCommand[] qcQuestionAnswerCommands, Guid trialId, Guid subjectVisitId, [FromRoute] TrialQCProcess trialQCProcess, [FromRoute] CurrentQC currentQCType); Task<IResponseOutput> AddQCChallengeReply(QADialogCommand qaDialogCommand); Task<IResponseOutput> CloseCheckChallenge(CloseCheckChallengeDto input); Task<IResponseOutput> CloseQCChallenge(CloseQCChallengeInDto input); Task<IResponseOutput> CRCRequestReUpload(Guid qcChallengeId); Task<IResponseOutput> CRCRequestToQC(CRCRequestToQCCommand cRCRequestToQCCommand); Task<IResponseOutput> CRCRequstCheckBack(Guid subjectVisitId); Task<IResponseOutput> DeleteQCChallenge(Guid qcChallengeId); Task<IResponseOutput> DeleteStudyList(Guid[] ids, Guid subjectVisitId, Guid trialId); Task<IResponseOutput> ObtainOrCancelQCTask(Guid trialId, Guid subjectVisitId, bool obtaionOrCancel); Task<IResponseOutput> SetReuploadFinished(CRCReuploadFinishedCommand cRCReuploadFinishedCommand); Task<IResponseOutput> SetSeriesState(Guid subjectVisitId, Guid studyId, Guid seriesId, int state); Task<IResponseOutput> SetVisitUrgent(Guid trialId, Guid subjectVisitId, bool setOrCancel); Task<IResponseOutput> UpdateModality(UpdateModalityCommand updateModalityCommand); Task<IResponseOutput> UpdateSubjectAndSVInfo(UploadSubjectAndVisitCommand command); //Task<IResponseOutput> UploadVisitCheckExcel(IFormFile file, Guid trialId); Task<IResponseOutput> VerifyCanQCPassedOrFailed(Guid subjectVisitId); Task<IResponseOutput> ForwardSVDicomImage(Guid[] subjectVisitIdList); } }