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": { "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" "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", //"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" //"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 //申请表 设置新任务Id
visitTaskReReadingAppply.NewReReadingTaskId = newTask.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); CopyForms(newTask, origenalTask);
} }
} //拷贝后续表单
if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum)
//拷贝后续表单
if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum)
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{ {
newTask.IsCopyLesionAnswer = true; newTask.IsCopyLesionAnswer = true;
//CopyForms(newTask, origenalTask);
} }
} }
} }
} }
@ -2190,6 +2188,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
//申请表 设置新任务Id //申请表 设置新任务Id
visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id; visitTaskReReadingAppply.NewReReadingTaskId = newTask.Id;
if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id) if (visitTaskReReadingAppply.IsCopyOrigenalForms && influenceTask.Id == origenalTask.Id)
{ {
if (origenalTask.ReadingCategory == ReadingCategory.Visit) if (origenalTask.ReadingCategory == ReadingCategory.Visit)
@ -2199,16 +2198,16 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
} }
//拷贝后续表单 ////拷贝后续表单
if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum) //if (visitTaskReReadingAppply.IsCopyFollowForms && origenalTask.VisitTaskNum != influenceTask.VisitTaskNum)
{ //{
if (origenalTask.ReadingCategory == ReadingCategory.Visit) // if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{ // {
newTask.IsCopyLesionAnswer = true; // newTask.IsCopyLesionAnswer = true;
//CopyForms(newTask, origenalTask); // //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影像 //拷贝后处理绑定的的Dicom影像
var newTaskId = newTask.Id; var newTaskId = newTask.Id;
@ -2285,17 +2271,17 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
foreach (var instance in studyInstanceList) 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(); var newInstance = instance.Clone();
newInstance.Id = newInstanceId; newInstance.Id = newInstanceId;
newInstance.SeqId = NewId.NextSequentialGuid(); newInstance.SeqId = NewId.NextSequentialGuid();
newInstance.StudyId = newStudyId; newInstance.StudyId = newStudyId;
newInstance.SeriesId = newSeriesId; newInstance.SeriesId = newSeriesId;
newInstance.VisitTaskId = newTaskId; newInstance.VisitTaskId = newTaskId;
Console.WriteLine($"StudyInstanceUid:{newStudy.StudyInstanceUid} SeriesInstanceUid:{newSeries.SeriesInstanceUid} SopInstanceUid: {instance.SopInstanceUid},newInstanceId:{newInstanceId} ");
_ = _taskInstanceRepository.AddAsync(newInstance).Result; _ = _taskInstanceRepository.AddAsync(newInstance).Result;
} }
@ -2315,8 +2301,26 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
newFile.Id = NewId.NextSequentialGuid(); newFile.Id = NewId.NextSequentialGuid();
newFile.VisitTaskId = newTaskId; 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)) 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 }); 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(); 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) if (entity.VisitTaskId != null)
{ {
extraIdentification = "/VisitTask"; 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; armEnum = obj?.ArmEnum;
subjectVisitId = obj.SourceSubjectVisitId; subjectVisitId = obj.SourceSubjectVisitId;
} }