//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2022-06-29 10:59:39 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- using IRaCIS.Core.Domain.Models; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; namespace IRaCIS.Core.Application.Service { /// /// 任务医学审核 /// [ApiExplorerSettings(GroupName = "Trial")] public class TaskMedicalReviewService : BaseService, ITaskMedicalReviewService { private readonly IRepository _taskMedicalReviewRepository; public TaskMedicalReviewService(IRepository taskMedicalReviewRepository) { _taskMedicalReviewRepository = taskMedicalReviewRepository; } /// /// PM 医学审核(挑选任务生成后的列表) /// /// /// [HttpPost] public async Task> GetMedicalReviewTaskList(TaskMedicalReviewQuery inQuery) { var taskMedicalReviewQueryable = _taskMedicalReviewRepository.Where(t => t.VisitTask.TrialId == inQuery.TrialId) .WhereIf(inQuery.SiteId != null, t => t.VisitTask.Subject.SiteId == inQuery.SiteId) .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode)) .WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent) .WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId) .WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory) .WhereIf(inQuery.ReadingTaskState != null, t => t.VisitTask.ReadingTaskState == inQuery.ReadingTaskState) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TaskMedicalReviewView.Id) : inQuery.SortField, inQuery.Asc); return pageList; } /// /// MIM 医学审核 /// /// /// [HttpPost] public async Task> GetMIMMedicalReviewTaskList(TaskMedicalReviewQuery inQuery) { var taskMedicalReviewQueryable = _taskMedicalReviewRepository.Where(t => t.VisitTask.TrialId == inQuery.TrialId && t.MedicalManagerUserId == _userInfo.Id) .WhereIf(inQuery.SiteId != null, t => t.VisitTask.Subject.SiteId == inQuery.SiteId) .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode)) .WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent) .WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId) .WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory) .WhereIf(inQuery.ReadingTaskState != null, t => t.VisitTask.ReadingTaskState == inQuery.ReadingTaskState) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await taskMedicalReviewQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TaskMedicalReviewView.Id) : inQuery.SortField, inQuery.Asc); return pageList; } /// /// 123 分别是 分配,重新分配,取消分配 /// /// /// public async Task AssignMedicalReviewTask(AssignMedicalReviewTaskCommand command) { var task = await _taskMedicalReviewRepository.FirstOrDefaultAsync(t => t.Id == command.Id); if (command.TaskOptType == MedicalReviewTaskOptType.Assign || command.TaskOptType == MedicalReviewTaskOptType.ReAssign) { task.MedicalManagerUserId = command.MedicalManagerUserId; task.AllocateTime = DateTime.Now; } else if (command.TaskOptType == MedicalReviewTaskOptType.CancelAssign) { task.MedicalManagerUserId = null; task.AllocateTime = null; } await _taskMedicalReviewRepository.SaveChangesAsync(); return ResponseOutput.Ok(); } } }