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; using MassTransit; using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Share; namespace IRaCIS.Core.Application.Service { /// /// 阅片医学审核 /// [ ApiExplorerSettings(GroupName = "Reading")] public class ReadingMedicalReviewService : BaseService { private readonly IRepository _readingMedicineTrialQuestionRepository; private readonly IRepository _trialRepository; private readonly IRepository _visitTaskRepository; private readonly IRepository _readingMedicineSystemQuestionRepository; public ReadingMedicalReviewService( IRepository readingMedicineTrialQuestionRepository, IRepository trialRepository, IRepository visitTaskRepository, IRepository readingMedicineSystemQuestionRepository ) { this._readingMedicineTrialQuestionRepository = readingMedicineTrialQuestionRepository; this._trialRepository = trialRepository; this._visitTaskRepository = visitTaskRepository; this._readingMedicineSystemQuestionRepository = readingMedicineSystemQuestionRepository; } /// /// 获取 /// /// /// public async Task GetMedicalReviewReadingTask(GetMedicalReviewReadingTaskInDto inDto) { var medicalReviewInfo = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => new GetMedicalReviewReadingTaskOutDto() { ReadingType=x.ReadingType, IsReadingTaskViewInOrder=x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync(); var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.TrialId).FirstOrDefaultAsync(); // 单审有序 if (medicalReviewInfo.IsReadingTaskViewInOrder) { switch (medicalReviewInfo.ReadingType) { //case ReadingMethod.Single: // await GetOrderTaskInfo(); // break; //case ReadingMethod.Double: // await GetOrderTaskInfo(); // break; } } //// 有序任务列表 //async Task GetOrderTaskInfo() //{ // medicalReviewInfo.TaskList = await _visitTaskRepository.Where(x => x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId // && x.DoctorUserId == taskInfo.DoctorUserId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReReadingApplyState != ReReadingApplyState.Agree // ).OrderBy(x => x.VisitTaskNum).Select(x => new TaskInfo() // { // Id = x.Id, // ReadingCategory = x.ReadingCategory, // TaskBlindName = x.TaskBlindName, // TaskName = x.TaskName // }).ToListAsync(); //} return medicalReviewInfo; } } }