From 5e345418fb10ba8e8077705ab264c30f163e3188 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 2 Jun 2026 14:13:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=86=E9=85=8D=E9=98=85=E7=89=87?= =?UTF-8?q?=E4=BA=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 6 +- .../Allocation/VisitTaskHelpeService.cs | 8 +- IRaCIS.Core.Application/TestService.cs | 77 ++++++++++++++++++- 3 files changed, 81 insertions(+), 10 deletions(-) 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); } From 967c0114d8b228a6e219b7c2f00edcbaae4a3c7a Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 2 Jun 2026 15:03:00 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E8=AE=BF=E8=A7=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/TestService.cs | 116 +++++++++++++------------ 1 file changed, 62 insertions(+), 54 deletions(-) diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index caf6c12fd..34e6f3364 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -206,6 +206,14 @@ namespace IRaCIS.Core.Application.Service public Guid? SubjectVisitId { get; set; } public decimal VisitNum { get; set; } public string VisitName { get; set; } + + public string R1 { get; set; } + + public string R1阅片状态 { get; set; } + + public string R2 { get; set; } + + public string R2阅片状态 { get; set; } } [AllowAnonymous] @@ -231,76 +239,76 @@ 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, +// 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, +// 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, +// 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() - }) +// InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new +// { +// InstanceId = k.Id, +// k.Path, +// k.IsEncapsulated, +// k.NumberOfFrames, +// }).ToList() +// }) - }).ToList(), +// }).ToList(), - NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => t.IsReading).Select(nd => new - { - nd.Modality, - nd.StudyCode, - nd.ImageDate, +// 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() +// 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(); +// }).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 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(); +// 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); +// string diffPath = @$"C:\Users\PC\Desktop\diff.xlsx"; +// MiniExcel.SaveAs(diffPath, diffList); #endregion From 432bf1ae122e1cc81eff12d9a2d93e8f92e7ac9f Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 2 Jun 2026 16:03:55 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=A0=E9=99=A4?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E8=87=B4=E5=8F=82=E4=B8=8E=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/TrialSiteUser/TrialMaintenanceService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs index 47d6a8612..8acfa26dc 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs @@ -35,7 +35,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task>> GetUserJoinedTrialList(IdentityUserJoinedTrialQuery inQuery) { - var list = await _trialIdentityUserRepository.Where(t => t.IdentityUserId == inQuery.IdentityUserId, false, true) + var list = await _trialIdentityUserRepository.Where(t => t.IdentityUserId == inQuery.IdentityUserId && t.Trial.IsDeleted==false, false, true) .WhereIf(!string.IsNullOrEmpty(inQuery.TrialCode), o => o.Trial.TrialCode.Contains(inQuery.TrialCode)) .WhereIf(!string.IsNullOrEmpty(inQuery.ResearchProgramNo), o => o.Trial.ResearchProgramNo.Contains(inQuery.ResearchProgramNo)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.ExperimentName), o => o.Trial.ExperimentName.Contains(inQuery.ExperimentName))