修改上传

Test_HIR_Net8
hang 2025-09-08 18:00:50 +08:00
parent 076d99c6ba
commit 56a15f3b61
1 changed files with 38 additions and 25 deletions

View File

@ -258,7 +258,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
} }
[TrialGlobalLimit( "AfterStopCannNotOpt" )] [TrialGlobalLimit("AfterStopCannNotOpt")]
public async Task<IResponseOutput> PreArchiveDicomStudy(PriArchiveTaskStudyCommand preArchiveStudyCommand) public async Task<IResponseOutput> PreArchiveDicomStudy(PriArchiveTaskStudyCommand preArchiveStudyCommand)
{ {
@ -357,7 +357,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
} }
[TrialGlobalLimit( "AfterStopCannNotOpt" )] [TrialGlobalLimit("AfterStopCannNotOpt")]
public async Task<IResponseOutput> AddOrUpdateArchiveTaskStudy(TaskArchiveStudyCommand incommand) public async Task<IResponseOutput> AddOrUpdateArchiveTaskStudy(TaskArchiveStudyCommand incommand)
{ {
#region 获取该subject 已生成任务的访视的检查 #region 获取该subject 已生成任务的访视的检查
@ -557,29 +557,42 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
//新的序列 那么 检查的序列数量+1 //新的序列 那么 检查的序列数量+1
findStudy.SeriesCount += 1; findStudy.SeriesCount += 1;
} }
else //else
{ //{
//该序列掉了instance // //该序列掉了instance
dicomSeries.InstanceCount += seriesItem.InstanceList.Count; // dicomSeries.InstanceCount += seriesItem.InstanceList.Count;
} //}
//找到该序列已经存在的instanceId
var existInstanceIdList = _taskInstanceRepository.Where(t => t.SeriesId == dicomSeries.Id).Select(t => t.Id).ToList();
foreach (var instanceItem in seriesItem.InstanceList) foreach (var instanceItem in seriesItem.InstanceList)
{ {
var insntance = _mapper.Map<TaskInstance>(instanceItem); var insntance = _mapper.Map<TaskInstance>(instanceItem);
insntance.Id = IdentifierHelper.CreateGuid(insntance.StudyInstanceUid, insntance.SeriesInstanceUid, insntance.SopInstanceUid, trialId.ToString(), visiTaskId.ToString());
insntance.StudyId = findStudy.Id;
insntance.SeriesId = dicomSeries.Id;
insntance.TrialId = incommand.TrialId; var instanceId = IdentifierHelper.CreateGuid(insntance.StudyInstanceUid, insntance.SeriesInstanceUid, insntance.SopInstanceUid, trialId.ToString(), visiTaskId.ToString());
insntance.SubjectId = incommand.SubjectId;
insntance.VisitTaskId = visiTaskId;
if (!existInstanceIdList.Any(t => t == instanceId))
{
insntance.Id = instanceId;
insntance.StudyId = findStudy.Id;
insntance.SeriesId = dicomSeries.Id;
insntance.TrialId = incommand.TrialId;
insntance.SubjectId = incommand.SubjectId;
insntance.VisitTaskId = visiTaskId;
await _taskInstanceRepository.AddAsync(insntance);
dicomSeries.InstanceCount++;
findStudy.InstanceCount++;
}
await _taskInstanceRepository.AddAsync(insntance);
} }
//// 不管是新的序列 还是 该序列 掉了Instance 重传的时候 检查的instance 数量都会增加
// 不管是新的序列 还是 该序列 掉了Instance 重传的时候 检查的instance 数量都会增加 //findStudy.InstanceCount += seriesItem.InstanceList.Count;
findStudy.InstanceCount += seriesItem.InstanceList.Count;
} }
@ -690,7 +703,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
SubjectCode = u.IsSelfAnalysis == true ? u.BlindSubjectCode : u.Subject.Code, SubjectCode = u.IsSelfAnalysis == true ? u.BlindSubjectCode : u.Subject.Code,
TaskBlindName = u.TaskBlindName, TaskBlindName = u.TaskBlindName,
TaskName = u.TaskName, TaskName = u.TaskName,
ReadingTaskState=u.ReadingTaskState, ReadingTaskState = u.ReadingTaskState,
SourceSubjectVisitId = u.SourceSubjectVisitId, SourceSubjectVisitId = u.SourceSubjectVisitId,
VisitTaskId = u.Id, VisitTaskId = u.Id,
@ -762,9 +775,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
select new select new
{ {
TrialId = sv.TrialId, TrialId = sv.TrialId,
SubjectId=sv.SubjectId, SubjectId = sv.SubjectId,
SubjectCode = sv.Subject.Code, SubjectCode = sv.Subject.Code,
TrialSiteCode=sv.TrialSite.TrialSiteCode, TrialSiteCode = sv.TrialSite.TrialSiteCode,
VisitName = sv.VisitName, VisitName = sv.VisitName,
StudyList = sv.StudyList.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) StudyList = sv.StudyList.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false)
@ -972,7 +985,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
var subjectVisitIdList = inQuery.SubjectVisitTaskList.Select(t => t.SubjectVisitId).ToList(); var subjectVisitIdList = inQuery.SubjectVisitTaskList.Select(t => t.SubjectVisitId).ToList();
var trialSiteCode = _visitTaskRepository.Where(t => t.Id == taskIdList.FirstOrDefault()).Select(t => t.IsAnalysisCreate ? t.BlindTrialSiteCode : t.Subject.TrialSite.TrialSiteCode).FirstOrDefault()??string.Empty; var trialSiteCode = _visitTaskRepository.Where(t => t.Id == taskIdList.FirstOrDefault()).Select(t => t.IsAnalysisCreate ? t.BlindTrialSiteCode : t.Subject.TrialSite.TrialSiteCode).FirstOrDefault() ?? string.Empty;
var query = from sv in _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))) var query = from sv in _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id)))
//一致性分析,导致查询出来两条数据 //一致性分析,导致查询出来两条数据
@ -1033,9 +1046,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
{ {
Id = NewId.NextSequentialGuid(), Id = NewId.NextSequentialGuid(),
TrialId = info.TrialId, TrialId = info.TrialId,
SubjectId=inQuery.SubjectId, SubjectId = inQuery.SubjectId,
SubjectCode = inQuery.SubjectCode, SubjectCode = inQuery.SubjectCode,
TrialSiteCode= trialSiteCode, TrialSiteCode = trialSiteCode,
IP = _userInfo.IP, IP = _userInfo.IP,
DownloadStartTime = DateTime.Now, DownloadStartTime = DateTime.Now,
IsSuccess = false, IsSuccess = false,
@ -1155,7 +1168,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
return ResponseOutput.Ok(); return ResponseOutput.Ok();
} }
#region 影像汇总页面 #region 影像汇总页面
[HttpPost] [HttpPost]
public async Task<IResponseOutput<PageOutput<TrialVisitImageStatView>>> GetTrialVisitImageStatList(TrialVisitImageQuery inQuery) public async Task<IResponseOutput<PageOutput<TrialVisitImageStatView>>> GetTrialVisitImageStatList(TrialVisitImageQuery inQuery)
{ {