Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
he 2025-07-17 10:20:58 +08:00
commit 316caa8482
6 changed files with 35 additions and 22 deletions

View File

@ -2587,7 +2587,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
sv.CurrentActionUserId = null; sv.CurrentActionUserId = null;
sv.PreliminaryAuditUserId = null; sv.PreliminaryAuditUserId = null;
sv.ReviewAuditUserId = null; sv.ReviewAuditUserId = null;
sv.SecondReviewState = SecondReviewState.None;
if (sv.IsBaseLine) if (sv.IsBaseLine)
{ {

View File

@ -485,7 +485,7 @@ namespace IRaCIS.Core.Application.Image.QA
var sv = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).FirstNotNullAsync(); var sv = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).FirstNotNullAsync();
if (sv.SecondReviewState == SecondReviewState.None && sv.AuditState == AuditStateEnum.QCPassed) if (sv.AuditState == AuditStateEnum.QCPassed && inDto.CurrentQCEnum != CurrentQC.SecondReview)
{ {
//现在之前历史质控的展示要从答案为主表取数据,添加和编辑按照之前方式 //现在之前历史质控的展示要从答案为主表取数据,添加和编辑按照之前方式

View File

@ -384,6 +384,7 @@ namespace IRaCIS.Core.Application.Image.QA
sv.CurrentActionUserId = null; sv.CurrentActionUserId = null;
sv.PreliminaryAuditUserId = null; sv.PreliminaryAuditUserId = null;
sv.ReviewAuditUserId = null; sv.ReviewAuditUserId = null;
sv.SecondReviewState = SecondReviewState.None;
if (sv.IsBaseLine) if (sv.IsBaseLine)
@ -691,6 +692,7 @@ namespace IRaCIS.Core.Application.Image.QA
sv.CurrentActionUserId = null; sv.CurrentActionUserId = null;
sv.PreliminaryAuditUserId = null; sv.PreliminaryAuditUserId = null;
sv.ReviewAuditUserId = null; sv.ReviewAuditUserId = null;
sv.SecondReviewState = SecondReviewState.None;
//var success1 = _studyRepository.Delete(t => t.SubjectVisitId == subjectVisitId); //var success1 = _studyRepository.Delete(t => t.SubjectVisitId == subjectVisitId);
//var succeess2 = _instanceRepository.Delete(t => t.SubjectVisitId == subjectVisitId); //var succeess2 = _instanceRepository.Delete(t => t.SubjectVisitId == subjectVisitId);

View File

@ -871,12 +871,18 @@ namespace IRaCIS.Core.Application
{ {
var trialConfirmTime = _trialRepository.Where(t => t.Id == signConfirmDTO.TrialId).Select(t => t.QCQuestionConfirmedTime).FirstOrDefault(); var trialConfirmTime = _trialRepository.Where(t => t.Id == signConfirmDTO.TrialId).Select(t => t.QCQuestionConfirmedTime).FirstOrDefault();
if (trialConfirmTime != null)
{
//删除复审中间临时数据
await _qcQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisit.TrialId == signConfirmDTO.TrialId && t.SubjectVisit.SecondReviewState != SecondReviewState.AuditPassed && t.CurrentQCEnum == CurrentQC.SecondReview);
//重复二次复核签名 //重复二次复核签名
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == signConfirmDTO.TrialId && t.AuditState == AuditStateEnum.QCPassed await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == signConfirmDTO.TrialId && t.AuditState == AuditStateEnum.QCPassed
&& !t.TrialQCQuestionAnswerList.Any(t => t.SecondReviewTime == trialConfirmTime), u => new SubjectVisit() { SecondReviewState = SecondReviewState.WaitAudit }); && !t.TrialQCQuestionAnswerList.Any(t => t.SecondReviewTime == trialConfirmTime), u => new SubjectVisit() { SecondReviewState = SecondReviewState.WaitAudit });
//删除复审中间临时数据
await _qcQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisit.TrialId == signConfirmDTO.TrialId && t.SubjectVisit.SecondReviewState != SecondReviewState.AuditPassed && t.CurrentQCEnum == CurrentQC.SecondReview); }
} }
else if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirm).ToString()) else if (signConfirmDTO.SignCode == ((int)SignEnum.TrialQCQuestionConfirm).ToString())
{ {

View File

@ -42,7 +42,7 @@ namespace IRaCIS.Core.Application.Service
var instanceList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber) var instanceList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime) .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)
.Select(t => new { t.SeriesId, t.Id, t.Path, t.NumberOfFrames, t.InstanceNumber }).ToListAsync();//.GroupBy(u => u.SeriesId); .Select(t => new { t.SeriesId, t.Id, t.Path, t.NumberOfFrames, t.InstanceNumber,t.FileSize }).ToListAsync();//.GroupBy(u => u.SeriesId);
foreach (var series in seriesList) foreach (var series in seriesList)
{ {
@ -55,6 +55,7 @@ namespace IRaCIS.Core.Application.Service
//HtmlPath = string.Empty, //HtmlPath = string.Empty,
Path = k.Path, Path = k.Path,
InstanceNumber = k.InstanceNumber, InstanceNumber = k.InstanceNumber,
FileSize=k.FileSize,
}).ToList(); }).ToList();
} }

View File

@ -249,7 +249,7 @@ namespace IRaCIS.Core.Application.Services
var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId)).IgnoreQueryFilters() var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId)).IgnoreQueryFilters()
.WhereIf(isReading == 1, s => s.IsReading && s.IsDeleted == false) .WhereIf(isReading == 1, s => s.IsReading && s.IsDeleted == false)
.WhereIf(isQCFinished, t => t.IsDeleted == false) .WhereIf(isQCFinished, t => t.IsDeleted == false)
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.HtmlPath, t.IsReading, t.IsDeleted }).ToListAsync(); .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.HtmlPath, t.IsReading, t.IsDeleted, t.FileSize }).ToListAsync();
foreach (var t in studyList) foreach (var t in studyList)
{ {
@ -273,6 +273,7 @@ namespace IRaCIS.Core.Application.Services
InstanceNumber = k.InstanceNumber, InstanceNumber = k.InstanceNumber,
IsReading = k.IsReading, IsReading = k.IsReading,
IsDeleted = k.IsDeleted, IsDeleted = k.IsDeleted,
FileSize = k.FileSize,
}).ToList(); }).ToList();
series.InstanceCount = series.InstanceInfoList.Count(); series.InstanceCount = series.InstanceInfoList.Count();
@ -304,7 +305,7 @@ namespace IRaCIS.Core.Application.Services
DicomSeriesDTO series = await _dicomSeriesRepository.Where(s => s.Id == inDto.SeriesId).ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).FirstNotNullAsync(); DicomSeriesDTO series = await _dicomSeriesRepository.Where(s => s.Id == inDto.SeriesId).ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).FirstNotNullAsync();
var instanceList = await _dicomInstanceRepository.Where(t => t.SeriesId == inDto.SeriesId) var instanceList = await _dicomInstanceRepository.Where(t => t.SeriesId == inDto.SeriesId)
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation }).ToListAsync(); .Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.SliceLocation, t.FileSize }).ToListAsync();
@ -316,6 +317,7 @@ namespace IRaCIS.Core.Application.Services
HtmlPath = k.HtmlPath, HtmlPath = k.HtmlPath,
Path = k.Path, Path = k.Path,
InstanceNumber = k.InstanceNumber, InstanceNumber = k.InstanceNumber,
FileSize = k.FileSize
}).ToList(); }).ToList();
@ -392,7 +394,7 @@ namespace IRaCIS.Core.Application.Services
var seriesIds = ctseriesIds.Union(ptseriesIds).ToList(); //并集 var seriesIds = ctseriesIds.Union(ptseriesIds).ToList(); //并集
var instanceList = await _dicomInstanceRepository.Where(t => seriesIds.Contains(t.SeriesId)) var instanceList = await _dicomInstanceRepository.Where(t => seriesIds.Contains(t.SeriesId))
.Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath }).ToListAsync(); .Select(t => new { t.SeriesId, t.StudyId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.FileSize }).ToListAsync();
var studyIds = instanceList.Select(x => x.StudyId).Distinct().ToList(); var studyIds = instanceList.Select(x => x.StudyId).Distinct().ToList();
@ -423,7 +425,7 @@ namespace IRaCIS.Core.Application.Services
HtmlPath = k.HtmlPath, HtmlPath = k.HtmlPath,
Path = k.Path, Path = k.Path,
InstanceNumber = k.InstanceNumber, InstanceNumber = k.InstanceNumber,
FileSize = k.FileSize
}).ToList(); }).ToList();
@ -517,7 +519,7 @@ namespace IRaCIS.Core.Application.Services
var studyIds = dicomStudyList.Select(t => t.StudyId).ToList(); var studyIds = dicomStudyList.Select(t => t.StudyId).ToList();
var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId) && t.IsReading) var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId) && t.IsReading)
.Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.IsReading }).ToListAsync(); .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.IsReading, t.FileSize }).ToListAsync();
List<DicomSeriesDTO> seriesLists = await _dicomSeriesRepository.Where(s => studyIds.Contains(s.StudyId)) List<DicomSeriesDTO> seriesLists = await _dicomSeriesRepository.Where(s => studyIds.Contains(s.StudyId))
.WhereIf(isManualGenerate == false, t => t.IsReading) .WhereIf(isManualGenerate == false, t => t.IsReading)
@ -538,6 +540,7 @@ namespace IRaCIS.Core.Application.Services
HtmlPath = k.HtmlPath, HtmlPath = k.HtmlPath,
Path = k.Path, Path = k.Path,
InstanceNumber = k.InstanceNumber, InstanceNumber = k.InstanceNumber,
FileSize = k.FileSize
}).ToList(); }).ToList();
@ -638,6 +641,7 @@ namespace IRaCIS.Core.Application.Services
InstanceNumber = k.InstanceNumber, InstanceNumber = k.InstanceNumber,
StudyId = k.StudyId, StudyId = k.StudyId,
SeriesId = k.SeriesId, SeriesId = k.SeriesId,
FileSize = k.FileSize
}).ToListAsync(); }).ToListAsync();
item.InstanceInfoList.ForEach(x => item.InstanceInfoList.ForEach(x =>