//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2023-06-15 15:06:06 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Infra.EFCore.Common; namespace IRaCIS.Core.Application.Service { /// /// 临床数据问题 /// [ ApiExplorerSettings(GroupName = "Reading")] public class ClinicalQuestionService: BaseService { private readonly IRepository _trialClinicalQuestionRepository; private readonly IRepository _systemClinicalQuestionRepository; private readonly IRepository _systemClinicalTableQuestionRepository; private readonly IRepository _trialClinicalTableQuestionRepository; public ClinicalQuestionService(IRepository trialClinicalQuestionRepository, IRepository systemClinicalTableQuestionRepository, IRepository trialClinicalTableQuestionRepository, IRepository systemClinicalQuestionRepository ) { _systemClinicalTableQuestionRepository = systemClinicalTableQuestionRepository; _trialClinicalQuestionRepository = trialClinicalQuestionRepository; _trialClinicalTableQuestionRepository = trialClinicalTableQuestionRepository; _systemClinicalQuestionRepository = systemClinicalQuestionRepository; } #region 项目问题 /// /// 获取项目临床问题 /// /// /// [HttpPost] public async Task> GetTrialClinicalQuestionList(TrialClinicalQuestionQuery inQuery) { var trialClinicalQuestionQueryable =_trialClinicalQuestionRepository .WhereIf(!inQuery.QuestionName.IsNullOrEmpty(),x=>x.QuestionName.Contains(inQuery.QuestionName)||x.QuestionEnName.Contains(inQuery.QuestionName)) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await trialClinicalQuestionQueryable .ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialClinicalQuestion.ShowOrder) : inQuery.SortField, inQuery.Asc); return pageList; } /// /// 新增或者修改项目临床问题 /// /// /// [HttpPost] public async Task AddOrUpdateTrialClinicalQuestion(TrialClinicalQuestionDto inDto) { var entity = await _trialClinicalQuestionRepository.InsertOrUpdateAsync(inDto, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 删除项目临床数据问题 /// /// /// [HttpPost("{id:guid}")] public async Task DeleteTrialClinicalQuestion(Guid id) { var success = await _trialClinicalQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true); return ResponseOutput.Ok(); } /// /// 获取项目问题分组 /// /// /// [HttpPost] public async Task> GetTrialClinicalGroupQuestionList(GetTrialGroupDto inDto) { return await this._trialClinicalQuestionRepository.Where(x=>x.TrialClinicalId== inDto.TrialClinicalId) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } #endregion #region 系统问题 /// /// 获取系统临床问题 /// /// /// [HttpPost] public async Task> GetSystemClinicalQuestionList(SystemClinicalQuestionQuery inQuery) { var systemClinicalQuestionQueryable = _systemClinicalQuestionRepository .WhereIf(!inQuery.QuestionName.IsNullOrEmpty(), x => x.QuestionName.Contains(inQuery.QuestionName) || x.QuestionEnName.Contains(inQuery.QuestionName)) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await systemClinicalQuestionQueryable .ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(SystemClinicalQuestion.ShowOrder) : inQuery.SortField, inQuery.Asc); return pageList; } /// /// 新增或者修改系统临床问题 /// /// /// [HttpPost] public async Task AddOrUpdateSystemClinicalQuestion(SystemClinicalQuestionDto inDto) { var entity = await _systemClinicalQuestionRepository.InsertOrUpdateAsync(inDto, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 删除系统临床数据问题 /// /// /// [HttpPost("{id:guid}")] public async Task DeleteSystemClinicalQuestion(Guid id) { var success = await _systemClinicalQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true); return ResponseOutput.Ok(); } /// /// 获取系统问题分组 /// /// /// [HttpPost] public async Task> GetSystemClinicalGroupQuestionList(GetSystemGroupDto inDto) { return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId) .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } #endregion #region 系统表格问题 /// /// 获取系统表格问题 /// /// /// [HttpPost] public async Task> GetSystemClinicalTableQuestionList(SystemClinicalTableQuestionQuery inQuery) { var systemClinicalTableQuestionQueryable = this._systemClinicalTableQuestionRepository .Where(x=>x.QuestionId==inQuery.QuestionId) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await systemClinicalTableQuestionQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(SystemClinicalTableQuestion.ShowOrder) : inQuery.SortField, inQuery.Asc); return pageList; } /// /// 新增或修改系统表格问题 /// /// /// [HttpPost] public async Task AddOrUpdateSystemClinicalTableQuestion(SystemClinicalTableQuestionDto inDto) { var entity = await _systemClinicalTableQuestionRepository.InsertOrUpdateAsync(inDto, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 删除系统表格问题 /// /// /// [HttpDelete("{id:guid}")] public async Task DeleteSystemClinicalTableQuestion(Guid id) { var success = await _systemClinicalTableQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true); return ResponseOutput.Ok(); } #endregion #region 项目表格问题 /// /// 获取项目表格问题 /// /// /// [HttpPost] public async Task> GetTrialClinicalTableQuestionList(TrialClinicalTableQuestionQuery inQuery) { var trialClinicalTableQuestionQueryable = this._trialClinicalTableQuestionRepository .Where(x => x.QuestionId == inQuery.QuestionId) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await trialClinicalTableQuestionQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialClinicalTableQuestion.ShowOrder) : inQuery.SortField, inQuery.Asc); return pageList; } /// /// 新增或修改项目表格问题 /// /// /// [HttpPost] public async Task AddOrUpdateTrialClinicalTableQuestion(TrialClinicalTableQuestionDto inDto) { var entity = await _trialClinicalTableQuestionRepository.InsertOrUpdateAsync(inDto, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 删除项目表格问题 /// /// /// [HttpDelete("{id:guid}")] public async Task DeleteTrialClinicalTableQuestion(Guid id) { var success = await _trialClinicalTableQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true); return ResponseOutput.Ok(); } #endregion } }