197 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			C#
		
	
	
//using IRaCIS.Core.Application.Contracts;
 | 
						|
//using System.Linq.Dynamic.Core;
 | 
						|
//using AutoMapper;
 | 
						|
//using IRaCIS.Application.Contracts;
 | 
						|
//using IRaCIS.Core.Infra.EFCore;
 | 
						|
//using IRaCIS.Core.Domain.Models;
 | 
						|
//using IRaCIS.Core.Infrastructure.Extention;
 | 
						|
//using Microsoft.AspNetCore.Mvc;
 | 
						|
 | 
						|
//namespace IRaCIS.Core.Application.Services
 | 
						|
//{
 | 
						|
//    [ ApiExplorerSettings(GroupName = "Reading")]
 | 
						|
//    public class GlobalReportService : BaseService, IGlobalService
 | 
						|
//    {
 | 
						|
//        private readonly IRepository<GlobalRS> _globalRsRepository;
 | 
						|
//        private readonly IRepository<GlobalResult> _globalResultRepository;
 | 
						|
//        private readonly IRSRepository _rsRepository;
 | 
						|
//        private readonly IRepository<VisitStage> _visitStageRepository;
 | 
						|
        
 | 
						|
//        private readonly IRepository<SubjectVisit> _subjectVisitRepository;
 | 
						|
//        private readonly IWorkloadADRepository _workloadAdRepository;
 | 
						|
//        private readonly IWorkloadGlobalRepository _workloadGlobalRepository;
 | 
						|
//        private readonly IRepository<Trial> _trialRepository;
 | 
						|
//        private readonly IRepository<Subject> _subjectRepository;
 | 
						|
 | 
						|
//        public GlobalReportService(IRepository<GlobalRS> globalRsRepository, IRepository<GlobalResult> globalResultRepository,
 | 
						|
//            IRSRepository rsRepository, IRepository<VisitStage> visitStageRepository,  IRepository<SubjectVisit> subjectVisitRepository, IWorkloadADRepository workloadAdRepository,
 | 
						|
//            IWorkloadGlobalRepository workloadGlobalRepository, IRepository<Trial> trialRepository, IRepository<Subject> subjectRepository)
 | 
						|
//        {
 | 
						|
//            _globalRsRepository = globalRsRepository;
 | 
						|
//            _globalResultRepository = globalResultRepository;
 | 
						|
//            _rsRepository = rsRepository;
 | 
						|
//            _visitStageRepository = visitStageRepository;
 | 
						|
            
 | 
						|
//            _subjectVisitRepository = subjectVisitRepository;
 | 
						|
//            _workloadAdRepository = workloadAdRepository;
 | 
						|
//            _workloadGlobalRepository = workloadGlobalRepository;
 | 
						|
//            _trialRepository = trialRepository;
 | 
						|
//            _subjectRepository = subjectRepository;
 | 
						|
//        }
 | 
						|
 | 
						|
//        [HttpGet("{trialId:guid}/{subjectId:guid}/{visitNum:decimal}/{globalId:guid}/{globalCode}")]
 | 
						|
//        public IEnumerable<HistoryVisitRSDTO> GetHistoryVisitRsList(Guid trialId, Guid subjectId, decimal visitNum, Guid globalId, string globalCode)
 | 
						|
//        {
 | 
						|
            
 | 
						|
//            var tpGroup = 'T' + globalCode.Trim().Substring(globalCode.Trim().Length - 2);
 | 
						|
 | 
						|
 | 
						|
//            var query = from rs in _rsRepository.AsQueryable()
 | 
						|
//                    .Where(t => t.SubjectGuid == subjectId && t.TrialGuid == trialId && t.RSTESTCD == "OVRLRESP" && t.VISITNUM <= visitNum && t.TpCode.Contains(tpGroup))
 | 
						|
 | 
						|
//                        join globalRs in _globalRsRepository.Where(t => t.GlobalId == globalId) on new { rs.TpCode, VisitNum = rs.VISITNUM } equals new { globalRs.TpCode, globalRs.VisitNum } into cc
 | 
						|
//                        from globalRs in cc.DefaultIfEmpty()
 | 
						|
 | 
						|
//                        join visitStage in _visitStageRepository.Where(t => t.TrialId == trialId) on rs.VISITNUM equals visitStage.VisitNum
 | 
						|
//                        select new HistoryVisitRSDTO
 | 
						|
//                        {
 | 
						|
//                            StudyId = rs.StudyGuid,
 | 
						|
//                            StudyCode = rs.STUDYID,
 | 
						|
//                            VisitNum = visitStage.VisitNum,
 | 
						|
//                            VisitName = visitStage.VisitName,
 | 
						|
//                            OverallResponse = rs.RSORRES,
 | 
						|
//                            TpCode = rs.TpCode,
 | 
						|
//                            GlobalRSSelect = new GlobalRSSelectView()
 | 
						|
//                            {
 | 
						|
//                                Agree = globalRs.Agree,
 | 
						|
//                                NewRS = globalRs.NewRS,
 | 
						|
//                                Note = globalRs.Note
 | 
						|
//                            }
 | 
						|
//                        };
 | 
						|
 | 
						|
//            var visitRsList = query.OrderBy(t => t.VisitNum).ToList();
 | 
						|
 | 
						|
//            return visitRsList;
 | 
						|
 | 
						|
//        }
 | 
						|
//        #pragma warning disable
 | 
						|
//        [HttpGet("{trialId:guid}/{subjectId:guid}/{visitNum:decimal}/{globalId:guid}")]
 | 
						|
//        public PreviousGlobalReadsView GetHistoryGlobalRsList(Guid trialId, Guid subjectId, decimal visitNum,
 | 
						|
//            Guid globalId)
 | 
						|
//        {
 | 
						|
//            //subjectCode = subjectCode.Trim();
 | 
						|
 | 
						|
//            var query = from globalResult in _globalResultRepository.AsQueryable()
 | 
						|
//                    .Where(t => t.SubjectId == subjectId && t.VisitNum < visitNum)
 | 
						|
//                        join visitStage in _visitStageRepository.Where(t => t.TrialId == trialId) on globalResult.VisitNum equals visitStage.VisitNum
 | 
						|
//                        select new HistoryGlobalRsDTO
 | 
						|
//                        {
 | 
						|
//                            VisitNum = visitStage.VisitNum,
 | 
						|
//                            VisitName = visitStage.VisitName,
 | 
						|
//                            OverallResponse = globalResult.Result
 | 
						|
//                        };
 | 
						|
 | 
						|
//            var subjectNote = _globalResultRepository.FirstOrDefault(t => t.GlobalId == globalId)?.SubjectNote;
 | 
						|
 | 
						|
//            return new PreviousGlobalReadsView()
 | 
						|
//            {
 | 
						|
//                PreviousGlobalReadsList = query.ToList(),
 | 
						|
//                SubjectNote = subjectNote
 | 
						|
//            };
 | 
						|
 | 
						|
//        }
 | 
						|
 | 
						|
//        public IResponseOutput AddGlobalReport(GlobalTaskReportCommand globalTaskReportCommand)
 | 
						|
//        {
 | 
						|
//            //删除上一次保存得记录
 | 
						|
//            _globalResultRepository.Delete(t => t.GlobalId == globalTaskReportCommand.GlobalId);
 | 
						|
//            _globalRsRepository.Delete(t => t.GlobalId == globalTaskReportCommand.GlobalId);
 | 
						|
 | 
						|
 | 
						|
//            var globalRsList = _mapper.Map<List<GlobalRS>>(globalTaskReportCommand.GlobalRSReportList);
 | 
						|
 | 
						|
//            _globalRsRepository.AddRange(globalRsList);
 | 
						|
 | 
						|
//            var first = globalRsList.OrderByDescending(t => t.VisitNum).First();
 | 
						|
 | 
						|
//            var globalResult = new GlobalResult()
 | 
						|
//            {
 | 
						|
//                VisitNum = first.VisitNum,
 | 
						|
//                SubjectCode = globalTaskReportCommand.SubjectCode,
 | 
						|
//                SubjectNote = globalTaskReportCommand.SubjectNote,
 | 
						|
//                SubjectId = globalTaskReportCommand.SubjectId,
 | 
						|
 | 
						|
//                GlobalId = first.GlobalId,
 | 
						|
//                Result = first.NewRS
 | 
						|
//            };
 | 
						|
 | 
						|
//            _globalResultRepository.Add(globalResult);
 | 
						|
 | 
						|
//            return  ResponseOutput.Result(_globalResultRepository.SaveChanges()) ;
 | 
						|
 | 
						|
//        }
 | 
						|
 | 
						|
//        //public string GetCommentsForSubject(Guid globalId)
 | 
						|
//        //{
 | 
						|
//        //  return  _globalResultRepository.FirstOrDefault(t => t.GlobalId == globalId)?.SubjectNote;
 | 
						|
//        //}
 | 
						|
//        [HttpGet("{adId}")]
 | 
						|
//        public AdReportDTO GetAdReport(Guid adId)
 | 
						|
//        {
 | 
						|
//            var adReport = new AdReportDTO();
 | 
						|
//            var ad = _workloadAdRepository.FirstOrDefault(t => t.Id == adId);
 | 
						|
//            var globalId1 = ad.Global1Id;
 | 
						|
//            var globalId2 = ad.Global2Id;
 | 
						|
 | 
						|
//            var query = from global in _workloadGlobalRepository.Where(t => t.Id == globalId1 || t.Id == globalId2)
 | 
						|
//                        join trial in _trialRepository.Where(t => t.Id == ad.TrialId) on global.TrialId equals trial.Id
 | 
						|
//                        join subject in _subjectRepository.AsQueryable() on global.SubjectId equals subject.Id
 | 
						|
//                        select new WorkloadReadingDTO
 | 
						|
//                        {
 | 
						|
//                            Id = global.Id,
 | 
						|
//                            WorkloadId = global.Id,
 | 
						|
//                            WorkloadType = 1,
 | 
						|
//                            Status = global.Status,
 | 
						|
//                            UpdateTime = global.UpdateTime,
 | 
						|
//                            TrialId = global.TrialId,
 | 
						|
//                            SubjectId = global.SubjectId,
 | 
						|
//                            SubjectCode = subject.Code,
 | 
						|
//                            //VisitNum = visit.VisitNum,
 | 
						|
//                            //VisitName = visit.VisitName,
 | 
						|
//                            VisitNum = global.VisitNum,
 | 
						|
//                            VisitName = global.VisitName,
 | 
						|
 | 
						|
//                            Expedited = trial.Expedited,
 | 
						|
//                            TrialCode = trial.TrialCode,
 | 
						|
//                            TrialIndication = trial.Indication,
 | 
						|
//                            WorkloadCode = global.GlobalCode
 | 
						|
//                        };
 | 
						|
 | 
						|
//            var globalList = query.ToList();
 | 
						|
 | 
						|
//            var global1 = globalList.First(t => t.Id == globalId1);
 | 
						|
//            var global2 = globalList.First(t => t.Id == globalId2);
 | 
						|
 | 
						|
//            adReport.Global1VisitRS = GetHistoryVisitRsList(global1.TrialId, global1.SubjectId, 
 | 
						|
//                 global1.VisitNum, global1.Id, global1.WorkloadCode);
 | 
						|
 | 
						|
//            adReport.Global2VisitRS = GetHistoryVisitRsList(global2.TrialId, global2.SubjectId
 | 
						|
//                ,global2.VisitNum, global2.Id, global2.WorkloadCode);
 | 
						|
 | 
						|
//            adReport.Global1 = GetHistoryGlobalRsList(global1.TrialId, global1.SubjectId, global1.VisitNum, global1.Id);
 | 
						|
//            adReport.Global2 = GetHistoryGlobalRsList(global2.TrialId, global2.SubjectId, global2.VisitNum, global2.Id);
 | 
						|
 | 
						|
//            adReport.ADInfo = ad;
 | 
						|
 | 
						|
//            return adReport;
 | 
						|
 | 
						|
//        }
 | 
						|
 | 
						|
//        public IResponseOutput AddAdjudicationReport(ADReportCommand adReportCommand)
 | 
						|
//        {
 | 
						|
//          return ResponseOutput.Result(_workloadAdRepository.Update(t => t.Id == adReportCommand.AdId,
 | 
						|
//              u => new WorkloadAD()
 | 
						|
//                  { AdNote = adReportCommand.ADNote, SelectGlobalId = adReportCommand.SelectGlobalId }))  ;
 | 
						|
//        }
 | 
						|
//    }
 | 
						|
//} |