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; namespace IRaCIS.Application.Services { /// /// 临床数据 /// [ApiExplorerSettings(GroupName = "Reading")] public class ClinicalDataService : BaseService { public IRepository _subjectVisitRepository; private readonly IRepository _clinicalDataRepository; public ClinicalDataService(IRepository subjectVisitRepository, IRepository clinicalDataRepository ) { _subjectVisitRepository = subjectVisitRepository; _clinicalDataRepository = clinicalDataRepository; } /// /// 新增或者修改 /// /// /// [HttpPost] public async Task AddOrUpdateClinicalDataService(ClinicalDataAddOrEdit addOrEditClinicalData) { var entity = await _repository.InsertOrUpdateAsync(addOrEditClinicalData, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 分页获取 /// /// /// [HttpPost] public async Task> GetClinicalDataList(ClinicalDataQuery query) { var readquery = _clinicalDataRepository.AsQueryable() .WhereIf(query.TrialId!=null,x=>x.TrialId==query.TrialId) .ProjectTo(_mapper.ConfigurationProvider); var pageList= await readquery.ToPagedListAsync(query.PageIndex, query.PageSize, query.SortField == null ? "CreateTime" : query.SortField, query.SortAsc); return pageList; } /// /// 删除 /// /// /// [HttpDelete("{ClinicalDataId:guid}")] public async Task DeleteClinicalData(Guid clinicalDataId) { var success = await _repository.BatchDeleteAsync(t => t.Id == clinicalDataId); return ResponseOutput.Result(success); } } }