//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2023-03-17 11:58:57 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- using IRaCIS.Core.Domain.Models; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; namespace IRaCIS.Core.Application.Service { /// /// SubjectCriteriaEvaluationService /// [ApiExplorerSettings(GroupName = "Trial")] public class SubjectCriteriaEvaluationService : BaseService, ISubjectCriteriaEvaluationService { private readonly IRepository _subjectCriteriaEvaluationRepository; private readonly IRepository _subjectRepository; private readonly IRepository _subjectVisitRepository; private readonly IRepository _subjectCriteriaEvaluationVisitFilterRepository; public SubjectCriteriaEvaluationService(IRepository subjectCriteriaEvaluationRepository, IRepository subjectRepository, IRepository subjectCriteriaEvaluationVisitFilterRepository, IRepository subjectVisitRepository) { _subjectCriteriaEvaluationRepository = subjectCriteriaEvaluationRepository; _subjectRepository = subjectRepository; _subjectCriteriaEvaluationVisitFilterRepository = subjectCriteriaEvaluationVisitFilterRepository; _subjectVisitRepository = subjectVisitRepository; } /// /// subject 某标准 是否评估列表 /// /// /// [HttpPost] public async Task> GetSubjectCriteriaEvaluationList(SubjectCriteriaEvaluationQuery inQuery) { var subjectCriteriaEvaluationQueryable = from subject in _subjectRepository .WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectCode), t => t.Code.Contains(inQuery.SubjectCode)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), t => t.TrialSite.TrialSiteCode.Contains(inQuery.TrialSiteCode)) .WhereIf(inQuery.SubjectStatus != null, t => t.Status == inQuery.SubjectStatus) join subjectCriteriaEvaluation in _subjectCriteriaEvaluationRepository.Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) on subject.Id equals subjectCriteriaEvaluation.SubjectId into d from subjectCriteriaEvaluation in d.DefaultIfEmpty() select new SubjectCriteriaEvaluationView() { SubjectCode = subject.Code, SubjectId = subject.Id, SubjectStatus = subject.Status, TrialSiteCode = subject.TrialSite.TrialSiteCode, Id = subjectCriteriaEvaluation.Id, TrialReadingCriterionId = inQuery.TrialReadingCriterionId, IsImageFiltering=subjectCriteriaEvaluation.IsImageFiltering, IsJoinEvaluation=subjectCriteriaEvaluation.IsJoinEvaluation, }; var pageList = await subjectCriteriaEvaluationQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField == string.Empty ? nameof(SubjectCriteriaEvaluationView.SubjectCode) : inQuery.SortField, inQuery.Asc); return pageList; } /// /// 添加 编辑 是否参与评估 /// /// /// public async Task AddOrUpdateSubjectCriteriaEvaluation(SubjectCriteriaEvaluationAddOrEdit addOrEditSubjectCriteriaEvaluation) { // 在此处拷贝automapper 映射 var entity = await _subjectCriteriaEvaluationRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluation, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 评估访视筛选列表 /// /// /// public async Task> GetSubjectCriteriaEvaluationVisitFilterList(SubjectCriteriaEvaluationVisitFilterQuery inQuery) { var subjectCriteriaEvaluationVisitFilterQueryable = from subjectVisit in _subjectVisitRepository.Where(t => t.SubjectId == inQuery.SubjectId) join subjectCriteriaEvaluationVisitFilter in _subjectCriteriaEvaluationVisitFilterRepository.Where(t => t.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) on subjectVisit.Id equals subjectCriteriaEvaluationVisitFilter.SubjectVisitId into d from subjectCriteriaEvaluationVisitFilter in d.DefaultIfEmpty() select new SubjectCriteriaEvaluationVisitFilterView() { VisitName = subjectVisit.VisitName, SubjectVisitId = subjectVisit.Id, SubjectId = subjectVisit.SubjectId, TrialReadingCriterionId=inQuery.TrialReadingCriterionId, LatestScanDate=subjectVisit.LatestScanDate, EarliestScanDate=subjectVisit.LatestScanDate, ImageDeterminationResultState= subjectCriteriaEvaluationVisitFilter.ImageDeterminationResultState, ImageFilterState= subjectCriteriaEvaluationVisitFilter.ImageFilterState, IsGeneratedTask=subjectCriteriaEvaluationVisitFilter.IsGeneratedTask, }; return await subjectCriteriaEvaluationVisitFilterQueryable.ToListAsync(); } /// /// 评估访视 判断结果 影像筛选状态 手动添加/编辑接口 /// /// /// public async Task AddOrUpdateSubjectCriteriaEvaluationVisitFilter(SubjectCriteriaEvaluationVisitFilterAddOrEdit addOrEditSubjectCriteriaEvaluationVisitFilter) { // 在此处拷贝automapper 映射 //CreateMap(); // CreateMap< SubjectCriteriaEvaluationVisitFilter,SubjectCriteriaEvaluationVisitFilterAddOrEdit>().ReverseMap(); var entity = await _subjectCriteriaEvaluationVisitFilterRepository.InsertOrUpdateAsync(addOrEditSubjectCriteriaEvaluationVisitFilter, true); return ResponseOutput.Ok(entity.Id.ToString()); } //[HttpDelete("{subjectCriteriaEvaluationId:guid}")] // public async Task DeleteSubjectCriteriaEvaluation(Guid subjectCriteriaEvaluationId) //{ // var success = await _subjectCriteriaEvaluationRepository.DeleteFromQueryAsync(t => t.Id == subjectCriteriaEvaluationId,true); // return ResponseOutput.Ok(); //} } }