using IRaCIS.Core.Domain.Models; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Infra.EFCore.Common; namespace IRaCIS.Core.Application.Service { /// /// 医学审核问题 /// [ ApiExplorerSettings(GroupName = "Reading")] public class ReadingMedicineQuestionService: BaseService { private readonly IRepository _readingMedicineTrialQuestionRepository; private readonly IRepository _readingMedicineSystemQuestionRepository; public ReadingMedicineQuestionService( IRepository readingMedicineTrialQuestionRepository, IRepository readingMedicineSystemQuestionRepository ) { this._readingMedicineTrialQuestionRepository = readingMedicineTrialQuestionRepository; this._readingMedicineSystemQuestionRepository = readingMedicineSystemQuestionRepository; } /// /// 获取系统的医学审核问题 /// /// /// [HttpPost] public async Task> GetReadingMedicineSystemQuestionList(ReadingMedicineSystemQuestionQuery inDto) { var query = _readingMedicineSystemQuestionRepository.AsQueryable() .WhereIf(!inDto.TypeValue.IsNullOrEmpty(), x => x.TypeValue.Contains(inDto.TypeValue)) .WhereIf(!inDto.ParentTriggerValue.IsNullOrEmpty(), x => x.ParentTriggerValue.Contains(inDto.ParentTriggerValue)) .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.IsNullOrEmpty() ? nameof(ReadingMedicineSystemQuestionView.ShowOrder) : inDto.SortField, inDto.Asc); } /// /// 新增或修改系统医学审核问题 /// /// /// [HttpPost] public async Task AddOrUpdateReadingMedicineSystemQuestion(ReadingMedicineSystemQuestionAddOrEdit addOrEditReadingMedicineSystemQuestion) { var entity = await _readingMedicineSystemQuestionRepository.InsertOrUpdateAsync(addOrEditReadingMedicineSystemQuestion); await _readingMedicineSystemQuestionRepository.SaveChangesAsync(); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 删除系统的医学审核问题 /// /// /// [HttpDelete("{id:guid}")] public async Task DeleteReadingMedicineSystemQuestion(Guid id) { var success = await _readingMedicineSystemQuestionRepository.DeleteFromQueryAsync(t => t.Id == id); var result = await _readingMedicineSystemQuestionRepository.SaveChangesAsync(); return ResponseOutput.Result(result); } /// /// 获取项目的医学审核问题 /// /// /// [HttpPost] public async Task> GetReadingMedicineTrialQuestionList(ReadingMedicineTrialQuestionQuery inDto) { var query = _readingMedicineTrialQuestionRepository.AsQueryable() .Where(x=>x.TrialId==inDto.TrialId) .WhereIf(!inDto.TypeValue.IsNullOrEmpty(), x => x.TypeValue.Contains(inDto.TypeValue)) .WhereIf(!inDto.ParentTriggerValue.IsNullOrEmpty(), x => x.ParentTriggerValue.Contains(inDto.ParentTriggerValue)) .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.IsNullOrEmpty() ? nameof(ReadingMedicineTrialQuestionView.ShowOrder) : inDto.SortField, inDto.Asc); } /// /// 新增或修改项目医学审核问题 /// /// /// [HttpPost] public async Task AddOrUpdateReadingMedicineTrialQuestion(ReadingMedicineTrialQuestionAddOrEdit addOrEditReadingMedicineTrialQuestion) { var entity = await _readingMedicineTrialQuestionRepository.InsertOrUpdateAsync(addOrEditReadingMedicineTrialQuestion); await _readingMedicineTrialQuestionRepository.SaveChangesAsync(); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 删除项目的医学审核问题 /// /// /// [HttpDelete("{id:guid}")] public async Task DeleteReadingMedicineTrialQuestion(Guid id) { var success = await _readingMedicineTrialQuestionRepository.DeleteFromQueryAsync(t => t.Id == id); var result = await _readingMedicineTrialQuestionRepository.SaveChangesAsync(); return ResponseOutput.Result(result); } } }