//--------------------------------------------------------------------
// 此代码由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;
using IRaCIS.Core.Domain.Share;
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&&x.ClinicalQuestionTypeEnum== ClinicalQuestionType.Group)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
///
/// 获取项目标准其他问题
///
///
///
[HttpPost]
public async Task> GetTrialClinicalOtherQuestionList(GetTrialGroupDto inDto)
{
return await this._trialClinicalQuestionRepository.Where(x => x.TrialClinicalId == inDto.TrialClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select)
.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 && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Group)
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
///
/// 获取系统其他问题
///
///
///
[HttpPost]
public async Task> GetSystemClinicalOtherQuestionList(GetSystemGroupDto inDto)
{
return await this._systemClinicalQuestionRepository.Where(x => x.SystemClinicalId == inDto.SystemClinicalId && x.ClinicalQuestionTypeEnum == ClinicalQuestionType.Select)
.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());
}
///
/// 删除系统表格问题
///
///
///
[HttpPost("{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());
}
///
/// 删除项目表格问题
///
///
///
[HttpPost("{id:guid}")]
public async Task DeleteTrialClinicalTableQuestion(Guid id)
{
var success = await _trialClinicalTableQuestionRepository.DeleteFromQueryAsync(t => t.Id == id, true);
return ResponseOutput.Ok();
}
#endregion
}
}