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

Uat_IRC_Net10
he 2026-07-08 14:42:20 +08:00
commit 36f1e9e8dd
4 changed files with 50 additions and 46 deletions

View File

@ -7,7 +7,7 @@
}
},
"ConnectionStrings": {
"RemoteNew": "Server=101.132.193.237,1433;Database=Prod_IRC_pidr_restore;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
"RemoteNew": "Server=101.132.193.237,1433;Database=Prod_IRC_pidr_restore_new;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
"Hangfire": "Server=101.132.193.237,1433;Database=irc_Hangfire_bak;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
//"RemoteNew": "Server=prod_mssql_standard,1433;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
//"Hangfire": "Server=prod_mssql_standard,1433;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"

View File

@ -2079,29 +2079,27 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
//申请表 设置新任务Id
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
//拷贝原始表单
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
CopyImages(newTask, influenceTask);
//拷贝原始表单
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
{
CopyForms(newTask, origenalTask);
}
}
//拷贝后续表单
if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum)
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
//拷贝后续表单
if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum)
{
newTask.IsCopyLesionAnswer = true;
//CopyForms(newTask, origenalTask);
}
}
}
}
@ -2190,6 +2188,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
//申请表 设置新任务Id
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
@ -2199,16 +2198,16 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
}
//拷贝后续表单
if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum)
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{
newTask.IsCopyLesionAnswer = true;
//CopyForms(newTask, origenalTask);
////拷贝后续表单
//if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum)
//{
// if (origenalTask.ReadingCategory == ReadingCategory.Visit)
// {
// newTask.IsCopyLesionAnswer = true;
// //CopyForms(newTask, origenalTask);
}
}
// }
//}
}
}
});
@ -2228,22 +2227,9 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
}
}
private void CopyForms(VisitTask newTask, VisitTask origenalTask)
private void CopyImages(VisitTask newTask, VisitTask origenalTask)
{
newTask.IsCopyLesionAnswer = true;
//自定义
//var readingCustomTagList = _readingCustomTagRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
//foreach (var item in readingCustomTagList)
//{
// item.Id = Guid.Empty;
// item.VisitTaskId = newTask.Id;
// item.MeasureData = item.MeasureData.Replace(origenalTask.Id.ToString(), newTask.Id.ToString());
//}
//_ = _readingCustomTagRepository.AddRangeAsync(readingCustomTagList).Result;
//拷贝后处理绑定的的Dicom影像
var newTaskId = newTask.Id;
@ -2285,17 +2271,17 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
foreach (var instance in studyInstanceList)
{
var newInstanceId = IdentifierHelper.CreateGuid(newStudy.StudyInstanceUid, newSeries.SeriesInstanceUid, instance.SopInstanceUid, newStudy.TrialId.ToString(), newStudy.ToString());
var newInstanceId = IdentifierHelper.CreateGuid(newStudy.StudyInstanceUid, newSeries.SeriesInstanceUid, instance.SopInstanceUid, newStudy.TrialId.ToString(), newTaskId.ToString());
var newInstance = instance.Clone();
newInstance.Id = newInstanceId;
newInstance.SeqId = NewId.NextSequentialGuid();
newInstance.StudyId = newStudyId;
newInstance.SeriesId = newSeriesId;
newInstance.VisitTaskId = newTaskId;
Console.WriteLine($"StudyInstanceUid:{newStudy.StudyInstanceUid} SeriesInstanceUid:{newSeries.SeriesInstanceUid} SopInstanceUid: {instance.SopInstanceUid},newInstanceId:{newInstanceId} ");
_ = _taskInstanceRepository.AddAsync(newInstance).Result;
}
@ -2315,8 +2301,26 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
newFile.Id = NewId.NextSequentialGuid();
newFile.VisitTaskId = newTaskId;
_= _noneDicomStudyFileRepository.AddAsync(newFile).Result;
_ = _noneDicomStudyFileRepository.AddAsync(newFile).Result;
}
}
private void CopyForms(VisitTask newTask, VisitTask origenalTask)
{
newTask.IsCopyLesionAnswer = true;
//自定义
//var readingCustomTagList = _readingCustomTagRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
//foreach (var item in readingCustomTagList)
//{
// item.Id = Guid.Empty;
// item.VisitTaskId = newTask.Id;
// item.MeasureData = item.MeasureData.Replace(origenalTask.Id.ToString(), newTask.Id.ToString());
//}
//_ = _readingCustomTagRepository.AddRangeAsync(readingCustomTagList).Result;

View File

@ -56,10 +56,10 @@ namespace IRaCIS.Core.Application.Triggers
// 出组 状态发生了变更
if ( context.Entity.Status != context.UnmodifiedEntity?.Status)
if (context.Entity.Status != context.UnmodifiedEntity?.Status)
{
//设置末次方式
if (context.Entity.Status == SubjectStatus.OutOfVisit && context.Entity.FinalSubjectVisitId != null )
if (context.Entity.Status == SubjectStatus.OutOfVisit && context.Entity.FinalSubjectVisitId != null)
{
if (await _subjectVisitRepository.AnyAsync(t => t.SubjectId == dbSubject.Id && t.IsFinalVisit && t.Id != dbSubject.FinalSubjectVisitId))
{
@ -87,7 +87,7 @@ namespace IRaCIS.Core.Application.Triggers
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == dbSubject.Id && t.VisitNum > sv.VisitNum, u => new SubjectVisit() { VisitExecuted = VisitExecutedEnum.Unavailable });
}
//撤销状态
else if(context.UnmodifiedEntity?.Status== SubjectStatus.OutOfVisit && context.UnmodifiedEntity.FinalSubjectVisitId != null)
else if (context.UnmodifiedEntity?.Status == SubjectStatus.OutOfVisit && context.UnmodifiedEntity.FinalSubjectVisitId != null && context.Entity.Status == SubjectStatus.OnVisit)
{
var sv = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == context.UnmodifiedEntity.FinalSubjectVisitId).IfNullThrowException();
@ -100,9 +100,9 @@ namespace IRaCIS.Core.Application.Triggers
}
}
}
}

View File

@ -2578,7 +2578,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
if (entity.VisitTaskId != null)
{
extraIdentification = "/VisitTask";
var obj = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).Select(x => new { x.ArmEnum, x.SourceSubjectVisitId }).FirstOrDefaultAsync();
var obj = await _dbContext.VisitTask.FindAsync( entity.VisitTaskId);
armEnum = obj?.ArmEnum;
subjectVisitId = obj.SourceSubjectVisitId;
}