diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 49858298f..cfc8e09af 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -17496,17 +17496,17 @@ - ���� + 质疑 - һ���Ժ˲� + 一致性核查 - ���� + 复制 diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index ccdae5dfa..5a48de460 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -873,7 +873,7 @@ namespace IRaCIS.Core.Application.Service { arm1.TaskAllocationState = TaskAllocationState.Allocated; arm1.AllocateTime = DateTime.Now; - arm1.DoctorUserId = task1.DoctorUserId; + arm1.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm1)!.DoctorUserId; arm1.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } @@ -913,7 +913,7 @@ namespace IRaCIS.Core.Application.Service { taskOne.TaskAllocationState = TaskAllocationState.Allocated; taskOne.AllocateTime = DateTime.Now; - taskOne.DoctorUserId = task1!.DoctorUserId; + taskOne.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm1)!.DoctorUserId; taskOne.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } @@ -944,7 +944,7 @@ namespace IRaCIS.Core.Application.Service { arm2.TaskAllocationState = TaskAllocationState.Allocated; arm2.AllocateTime = DateTime.Now; - arm2.DoctorUserId = task2.DoctorUserId; + arm2.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm2)!.DoctorUserId; arm2.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } @@ -986,7 +986,7 @@ namespace IRaCIS.Core.Application.Service { taskTwo.TaskAllocationState = TaskAllocationState.Allocated; taskTwo.AllocateTime = DateTime.Now; - taskTwo.DoctorUserId = task2!.DoctorUserId; + taskTwo.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm2)!.DoctorUserId; taskTwo.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index 1d6230106..caf6c12fd 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -209,7 +209,7 @@ namespace IRaCIS.Core.Application.Service } [AllowAnonymous] - public async Task ExtralUndownloadImages() + public async Task ExtralUndownloadImages(Guid trialId) { var newVisits = MiniExcel.Query(@"C:\Users\PC\Desktop\New.xlsx").ToList(); @@ -219,7 +219,7 @@ namespace IRaCIS.Core.Application.Service foreach (var item in newVisits) { - if (oldVisits.Any(t => t.VisitNum == item.VisitNum && t.SubjectCode == item.SubjectCode)) + if (oldVisits.Any(t => t.VisitNum == item.VisitNum && t.SubjectCode.Trim() == item.SubjectCode.Trim())) { continue; } @@ -231,7 +231,78 @@ namespace IRaCIS.Core.Application.Service string exportPath = @$"C:\Users\PC\Desktop\newDownload.xlsx"; - MiniExcel.SaveAs(exportPath, downloadVisit); + //MiniExcel.SaveAs(exportPath, downloadVisit); + + + #region 数据库查询 + var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new + { + t.ResearchProgramNo, + t.TrialCode, + + VisitList = t.SubjectVisitList.Where(t => t.VisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.SourceSubjectVisitId != null && t.DoctorUserId != null)) + //.Where(t=>subjectCodeList.Contains(t.Subject.Code)) + .Select(sv => new + { + SubjectVisitId = sv.Id, + TrialSiteCode = sv.TrialSite.TrialSiteCode, + SubjectCode = sv.Subject.Code, + VisitName = sv.VisitName, + VisitNum = sv.VisitNum, + StudyList = sv.StudyList.Select(u => new + { + StudyId = u.Id, + u.PatientId, + u.StudyTime, + u.StudyCode, + u.StudyInstanceUid, + u.StudyDIRPath, + + SeriesList = u.SeriesList.Where(t => t.IsReading).Select(z => new + { + z.Modality, + + InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new + { + InstanceId = k.Id, + k.Path, + k.IsEncapsulated, + k.NumberOfFrames, + }).ToList() + }) + + }).ToList(), + + NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => t.IsReading).Select(nd => new + { + nd.Modality, + nd.StudyCode, + nd.ImageDate, + + FileList = nd.NoneDicomFileList.Where(t => t.IsReading).Select(file => new + { + file.FileName, + file.Path, + file.FileType + }).ToList() + }).ToList() + }).OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList() + + }).FirstOrDefault(); + + var acturalDownList = downloadInfo.VisitList.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode && +old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + + + var diffList = downloadVisit.Where(t => !acturalDownList.Any(old => old.SubjectCode.Trim() == t.SubjectCode.Trim() && +old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + + + + string diffPath = @$"C:\Users\PC\Desktop\diff.xlsx"; + MiniExcel.SaveAs(diffPath, diffList); + + #endregion return ResponseOutput.Ok(downloadVisit); }