using IRaCIS.Application.Interfaces; using IRaCIS.Core.Infra.EFCore; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Application.Filter; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Service.WorkLoad.DTO; using Microsoft.AspNetCore.Authorization; using IRaCIS.Core.Application.Auth; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Share.Reading; using MassTransit; using IRaCIS.Core.Application.Service.Reading; using IRaCIS.Core.Infra.EFCore.Common; namespace IRaCIS.Application.Services { /// /// 阅片问题.标准 /// [ApiExplorerSettings(GroupName = "Reading")] public class ReadingQuestionService : BaseService { public IRepository _subjectVisitRepository; private readonly IRepository _readingQuestionCriterionSystemRepository; private readonly IRepository _readingQuestionSystemRepository; private readonly IRepository _clinicalDataTrialSetRepository; private readonly IRepository _clinicalDataSystemSetRepository; private readonly IRepository _previousPDFRepository; public ReadingQuestionService(IRepository subjectVisitRepository, IRepository readingQuestionCriterionSystemRepository, IRepository readingQuestionSystemRepository, IRepository ClinicalDataTrialSetRepository, IRepository ClinicalDataSystemSetRepository, IRepository previousPDFRepository ) { _subjectVisitRepository = subjectVisitRepository; this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository; this._readingQuestionSystemRepository = readingQuestionSystemRepository; _clinicalDataTrialSetRepository = ClinicalDataTrialSetRepository; _clinicalDataSystemSetRepository = ClinicalDataSystemSetRepository; this._previousPDFRepository = previousPDFRepository; } /// /// 新增修改系统问题标准 /// /// /// [HttpPost] public async Task AddOrUpdateReadingQuestionCriterionSystem(AddOrUpdateReadingQuestionCriterionSystemInDto indto) { var entity = await _readingQuestionCriterionSystemRepository.InsertOrUpdateAsync(indto,true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 获取系统问题标准 /// /// [HttpPost] public async Task> GetReadingQuestionCriterionSystemList(ReadingQuestionCriterionSystemViewInDto inDto) { var query= _readingQuestionCriterionSystemRepository.AsQueryable() .WhereIf(!inDto.CriterionName.IsNullOrEmpty(), x => x.CriterionName.Contains(inDto.CriterionName)) .ProjectTo(_mapper.ConfigurationProvider); return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(ReadingQuestionCriterionSystemView.CriterionName) : inDto.SortField, inDto.Asc); } /// /// 删除系统问题标准 /// /// /// [HttpDelete("{readingQuestionCriterionSystemId:guid}")] public async Task DeleteReadingQuestionCriterionSystem(Guid readingQuestionCriterionSystemId) { await _readingQuestionCriterionSystemRepository.DeleteFromQueryAsync(t => t.Id == readingQuestionCriterionSystemId); var success = await _readingQuestionCriterionSystemRepository.SaveChangesAsync(); return ResponseOutput.Result(success); } /// /// 新增修改系统问题 /// /// /// [HttpPost] public async Task AddOrUpdateReadingQuestionSystem(AddOrUpdateReadingQuestionSystemInDto indto) { var entity = await _readingQuestionSystemRepository.InsertOrUpdateAsync(indto, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 获取系统问题 /// /// [HttpPost] public async Task> GetReadingQuestionSystemList(ReadingQuestionSystemViewInDto inDto) { var query = _readingQuestionSystemRepository.AsQueryable() .Where(x=>x.ReadingQuestionCriterionSystemId==inDto.ReadingQuestionCriterionSystemId) .WhereIf(!inDto.QuestionName.IsNullOrEmpty(), x => x.QuestionName.Contains(inDto.QuestionName)) .WhereIf(!inDto.Type.IsNullOrEmpty(), x => x.Type.Contains(inDto.Type)) .ProjectTo(_mapper.ConfigurationProvider); return await query.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(ReadingQuestionSystemView.QuestionName) : inDto.SortField, inDto.Asc); } /// /// 删除系统问题 /// /// /// [HttpDelete("{readingQuestionSystemId:guid}")] public async Task DeleteReadingQuestionSystem(Guid readingQuestionSystemId) { await _readingQuestionSystemRepository.DeleteFromQueryAsync(t => t.Id == readingQuestionSystemId); var success = await _readingQuestionSystemRepository.SaveChangesAsync(); return ResponseOutput.Result(success); } } }