using IRaCIS.Application.ViewModels; using IRaCIS.Core.Application.Contracts.RequestAndResponse; using System; using System.Collections.Generic; using IRaCIS.Core.Application.Contracts.Dicom.DTO; using System.Threading.Tasks; namespace IRaCIS.Application.Interfaces { public interface IStudyService { /// 根据项目Id,医生Id,获取受试者访视点(不分页) IEnumerable GetStudyStatList(Guid trialId, Guid subjectId, Guid siteId); bool UpdateReUploadNewStudyCode(Guid studyId,Guid newStudyId); VerifyStudyUploadResult VerifyStudyAllowUpload(string studyInstanceUid, Guid trialId, Guid? studyId); PageOutput GetStudyList(StudyQueryDTO queryDto); /// 添加或更新访视点 Task UpdateStudyBinding(StudyEditCommand param); /// 删除项目访视计划 IResponseOutput DeleteStudy(Guid id); DicomTrialSiteSubjectInfo GetSaveToDicomInfo(StudyCommand dicomAddtionalCommand); Guid AddSubjectVisit(Guid subjectId,Guid siteId, Guid visitStageId, DateTime? SVSTDTC, DateTime? SVENDTC); void UpdateSubjectLatestInfo(Guid subjectId, Guid trialId); bool UpdateSubjectVisit(Guid subjectVisitId, DateTime? SVSTDTC, DateTime? SVENDTC); bool DistributeStudy(StudyReviewerCommand studyReviewer); IResponseOutput EditStudyReviewer(StudyReviewerEditCommand studyReviewerEditCommand); List GetReviewerListByTrialId(Guid trialId); /// /// 更新Study 表中的Status,并且往 StudyStatusDetail详情表中插入一条状态变化记录 /// /// bool UpdateStudyStatus(StudyStatusDetailCommand studyStatusDetailDTO, string optUserName); bool UpdateStudyModaliyAndComment(Guid studyId,string modaliy,string comment); bool UpdateStudyStatus(List studyStatus, string optUserName); List GetStudyStatusDetailList(Guid studyId); PageOutput GetDistributeStudyList(StudyStatusQueryDTO studyStatusQueryDto); IEnumerable GetRelationVisitList(decimal visitNum, string tpCode); List GetSubjectVisitStudyList(Guid trialId, Guid siteId, Guid subjectId, Guid subjectVisitId); Task DicomAnonymize(Guid studyId,string optuserName); } }