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-08-04 09:32:44 +08:00
commit 83f9a66f7a
2 changed files with 52 additions and 49 deletions

View File

@ -1415,11 +1415,10 @@ namespace IRaCIS.Core.Application.Image.QA
.WhereIf(isDistinguishType, t => isSecondReview == true ? t.SecondReviewState == SecondReviewState.WaitAudit : t.SecondReviewState == SecondReviewState.None) .WhereIf(isDistinguishType, t => isSecondReview == true ? t.SecondReviewState == SecondReviewState.WaitAudit : t.SecondReviewState == SecondReviewState.None)
.WhereIf(isDistinguishType, t => ishaveQCChallenge == true ? t.QCChallengeList.Any() : !t.QCChallengeList.Any()) .WhereIf(isDistinguishType, t => ishaveQCChallenge == true ? t.QCChallengeList.Any() : !t.QCChallengeList.Any())
//区分类型,当前做的不是复核任务 //区分类型,当前做的不是复核任务
.WhereIf(isDistinguishType && isSecondReview == false, t => t.AuditState != AuditStateEnum.QCPassed) .WhereIf(isDistinguishType && isSecondReview == false, t => t.AuditState != AuditStateEnum.QCPassed && t.PreliminaryAuditUserId != _userInfo.UserRoleId)
.WhereIf(isDistinguishType && isSecondReview == false, t => t.AuditState >= AuditStateEnum.PrimaryQCPassed ? t.PreliminaryAuditUserId != _userInfo.UserRoleId : true)
//不区分任务类型, 当前做完的任何类型都要默认满足下面条件 //不区分任务类型, 当前做完的任何类型都要默认满足下面条件
.WhereIf(isDistinguishType == false, t => (t.SecondReviewState == SecondReviewState.WaitAudit && t.AuditState == AuditStateEnum.QCPassed) || (t.AuditState != AuditStateEnum.QCPassed)) .WhereIf(isDistinguishType == false, t => (t.SecondReviewState == SecondReviewState.WaitAudit && t.AuditState == AuditStateEnum.QCPassed) || (t.AuditState != AuditStateEnum.QCPassed && t.PreliminaryAuditUserId != _userInfo.UserRoleId))
.Where(x => !x.SubjectVisitImageBackRecordList.Any(t => t.ImageBackState == ImageBackStateEnum.None)) .Where(x => !x.SubjectVisitImageBackRecordList.Any(t => t.ImageBackState == ImageBackStateEnum.None))

View File

@ -101,14 +101,14 @@ namespace IRaCIS.Core.Infra.EFCore.Common
/// <returns></returns> /// <returns></returns>
public string Translationunit(string answerType, ValueUnit? unit, string customUnit, List<UnitData> unitDataList, string? answer) public string Translationunit(string answerType, ValueUnit? unit, string customUnit, List<UnitData> unitDataList, string? answer)
{ {
if (answer == null|| answer==string.Empty) if (answer == null || answer == string.Empty)
{ {
return string.Empty; return string.Empty;
} }
if (answerType == "upload") if (answerType == "upload")
{ {
return "❄❅❆❇❈❉❊"+ answer; return "❄❅❆❇❈❉❊" + answer;
} }
if (unit == ValueUnit.Custom) if (unit == ValueUnit.Custom)
@ -231,7 +231,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
await InsertInspection<Trial>(item.Entity as Trial, type, x => new InspectionConvertDTO() await InsertInspection<Trial>(item.Entity as Trial, type, x => new InspectionConvertDTO()
{ {
TrialId = x.Id, TrialId = x.Id,
ExtraIndentification = extraIdentification, ExtraIndentification = extraIdentification,
}, new }, new
{ {
@ -281,9 +281,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
await InsertInspection<ReadingImportFile>(entity, type, x => new InspectionConvertDTO() await InsertInspection<ReadingImportFile>(entity, type, x => new InspectionConvertDTO()
{ {
VisitTaskId = entity.VisitTaskId, VisitTaskId = entity.VisitTaskId,
TrialReadingCriterionId=entity.TrialReadingCriterionId, TrialReadingCriterionId = entity.TrialReadingCriterionId,
SubjectVisitId= entity.SubjectVisitId, SubjectVisitId = entity.SubjectVisitId,
SubjectId=entity.SubjectId, SubjectId = entity.SubjectId,
TrialId = entity.TrialId, TrialId = entity.TrialId,
ObjectRelationParentId = entity.VisitTaskId, ObjectRelationParentId = entity.VisitTaskId,
@ -549,9 +549,12 @@ namespace IRaCIS.Core.Infra.EFCore.Common
ExtraIndentification = extraIdentification ExtraIndentification = extraIdentification
}, new { ParentQuestionShowOrder = parentQuestionShowOrder, }, new
OperatingTime=DateTime.Now, {
RelavantQuestionShowOrder = relavantQuestionShowOrder }); ParentQuestionShowOrder = parentQuestionShowOrder,
OperatingTime = DateTime.Now,
RelavantQuestionShowOrder = relavantQuestionShowOrder
});
} }
//系统标准表格问题 //系统标准表格问题
@ -1369,9 +1372,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
} }
else else
{ {
isHaveQuestion = await _dbContext.TaskMedicalReview.Where(x => x.Id == entity.TaskMedicalReviewId).Select(t => t.IsHaveQuestion).FirstOrDefaultAsync(); isHaveQuestion = await _dbContext.TaskMedicalReview.Where(x => x.Id == entity.TaskMedicalReviewId).Select(t => t.IsHaveQuestion).FirstOrDefaultAsync();
} }
var extraIdentification = string.Empty; var extraIdentification = string.Empty;
@ -1389,13 +1392,14 @@ namespace IRaCIS.Core.Infra.EFCore.Common
{ {
IsDistinctionInterface = false, IsDistinctionInterface = false,
VisitTaskId = entity.VisitTaskId, VisitTaskId = entity.VisitTaskId,
ObjectRelationParentId = entity.TaskMedicalReviewId, ObjectRelationParentId = entity.TaskMedicalReviewId,
ExtraIndentification = extraIdentification ExtraIndentification = extraIdentification
},new { }, new
IsHaveQuestion= isHaveQuestion, {
IsHaveQuestion = isHaveQuestion,
}); });
} }
@ -2015,7 +2019,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var isDistinctionInterface = true; var isDistinctionInterface = true;
var reason = type== AuditOpt.Add? entity.ApplyReason: entity.ResultRemark; var reason = type == AuditOpt.Add ? entity.ApplyReason : entity.ResultRemark;
#region 处理标识 #region 处理标识
@ -2109,8 +2113,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
extraIdentification = "/DeleteNoneDicomFileZero"; extraIdentification = "/DeleteNoneDicomFileZero";
} }
if(_userInfo.RequestUrl== "QCOperation/addCheckChallengeReply" || _userInfo.RequestUrl == "QCOperation/UploadVisitCheckExcel") if (_userInfo.RequestUrl == "QCOperation/addCheckChallengeReply" || _userInfo.RequestUrl == "QCOperation/UploadVisitCheckExcel")
{ {
if (entity.CheckChallengeState == CheckChanllengeTypeEnum.CRCWaitPMReply || entity.CheckChallengeState == CheckChanllengeTypeEnum.PMWaitCRCReply) if (entity.CheckChallengeState == CheckChanllengeTypeEnum.CRCWaitPMReply || entity.CheckChallengeState == CheckChanllengeTypeEnum.PMWaitCRCReply)
{ {
@ -2258,7 +2262,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
{ {
ObjectRelationParentId = x.SubjectVisitId, ObjectRelationParentId = x.SubjectVisitId,
ExtraIndentification = extraIdentification, ExtraIndentification = extraIdentification,
Reason=entity.ModifyReason Reason = entity.ModifyReason
}); });
} }
@ -2278,12 +2282,12 @@ namespace IRaCIS.Core.Infra.EFCore.Common
armEnum = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).Select(x => x.ArmEnum).FirstOrDefaultAsync(); armEnum = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).Select(x => x.ArmEnum).FirstOrDefaultAsync();
} }
var noneDicomStudy = await _dbContext.NoneDicomStudy.Where(x => x.Id == entity.NoneDicomStudyId).IgnoreQueryFilters().FirstNotNullAsync(); //var noneDicomStudy = await _dbContext.NoneDicomStudy.FindAsync(entity.NoneDicomStudyId);
await InsertInspection<NoneDicomStudyFile>(item.Entity as NoneDicomStudyFile, type, x => new InspectionConvertDTO() await InsertInspection<NoneDicomStudyFile>(item.Entity as NoneDicomStudyFile, type, x => new InspectionConvertDTO()
{ {
SubjectVisitId = noneDicomStudy.SubjectVisitId, //SubjectVisitId = noneDicomStudy.SubjectVisitId,
SubjectId = noneDicomStudy.SubjectId, //SubjectId = noneDicomStudy.SubjectId,
ObjectRelationParentId = x.VisitTaskId, ObjectRelationParentId = x.VisitTaskId,
ObjectRelationParentId2 = x.NoneDicomStudyId, ObjectRelationParentId2 = x.NoneDicomStudyId,
ObjectRelationParentId3 = x.OriginNoneDicomStudyId, ObjectRelationParentId3 = x.OriginNoneDicomStudyId,
@ -2523,16 +2527,16 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var entity = item.Entity as ReadingClinicalDataPDF; var entity = item.Entity as ReadingClinicalDataPDF;
string extraIndentification=string.Empty; string extraIndentification = string.Empty;
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager) if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
{ {
extraIndentification= "/PM"; extraIndentification = "/PM";
} }
var clinicalData = await _dbContext.ReadingClinicalData.Where(t => t.Id == entity.ReadingClinicalDataId).FirstOrDefaultAsync(); var clinicalData = await _dbContext.ReadingClinicalData.Where(t => t.Id == entity.ReadingClinicalDataId).FirstOrDefaultAsync();
if(clinicalData==null) if (clinicalData == null)
{ {
clinicalData = entitys.Where(x => x.Entity.GetType() == typeof(ReadingClinicalData)).Select(x => x.Entity as ReadingClinicalData).FirstOrDefault(); clinicalData = entitys.Where(x => x.Entity.GetType() == typeof(ReadingClinicalData)).Select(x => x.Entity as ReadingClinicalData).FirstOrDefault();
@ -2549,7 +2553,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var trialReadingCriterionIdList = await _dbContext.TrialClinicalDataSetCriterion.Where(t => t.TrialClinicalDataSetId == clinicalDataTrialSet.Id).Select(t => t.TrialReadingCriterionId).ToListAsync(); var trialReadingCriterionIdList = await _dbContext.TrialClinicalDataSetCriterion.Where(t => t.TrialClinicalDataSetId == clinicalDataTrialSet.Id).Select(t => t.TrialReadingCriterionId).ToListAsync();
var trialReadingCriterionId=await _dbContext.ReadModule.Where(t => t.Id == clinicalData.ReadingId).Select(t => t.TrialReadingCriterionId).FirstOrDefaultAsync(); var trialReadingCriterionId = await _dbContext.ReadModule.Where(t => t.Id == clinicalData.ReadingId).Select(t => t.TrialReadingCriterionId).FirstOrDefaultAsync();
//阅片标准 //阅片标准
@ -2753,7 +2757,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
); );
} }
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingConsistentClinicalData))) foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingConsistentClinicalData)))
{ {
@ -3275,14 +3279,14 @@ namespace IRaCIS.Core.Infra.EFCore.Common
bool isDistinctionInterface = true; bool isDistinctionInterface = true;
var customPrefix=string.Empty; var customPrefix = string.Empty;
// 对于一个标记绑定两个问题的不计稽查 // 对于一个标记绑定两个问题的不计稽查
var existsMark = await _dbContext.ReadingTaskQuestionMark.AnyAsync(t => t.MarkId == entity.MarkId); var existsMark = await _dbContext.ReadingTaskQuestionMark.AnyAsync(t => t.MarkId == entity.MarkId);
// 自定义表格 和问题添加标记的时候 要记录为 添加标记 // 自定义表格 和问题添加标记的时候 要记录为 添加标记
if ((_userInfo.RequestUrl == "SaveTaskQuestion/-10" if ((_userInfo.RequestUrl == "SaveTaskQuestion/-10"
|| _userInfo.RequestUrl == "saveTableQuestionMark/-10") && type== "Add"&&!existsMark) || _userInfo.RequestUrl == "saveTableQuestionMark/-10") && type == "Add" && !existsMark)
{ {
isDistinctionInterface = false; isDistinctionInterface = false;
customPrefix = "ReadingImageTask/submitCustomTag"; customPrefix = "ReadingImageTask/submitCustomTag";
@ -3302,7 +3306,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
TableQuestionName = tableQuestionName, TableQuestionName = tableQuestionName,
Answer = answer, Answer = answer,
LiverSegmentation = liverSegmentation, LiverSegmentation = liverSegmentation,
},string.Empty, customPrefix); }, string.Empty, customPrefix);
} }
//保存影像质量 多条记录,只记录一条稽查 //保存影像质量 多条记录,只记录一条稽查
@ -3409,7 +3413,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var markList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)).Select(x => x.Entity as ReadingTaskQuestionMark).ToList(); var markList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)).Select(x => x.Entity as ReadingTaskQuestionMark).ToList();
var questionids = taskQuestionAnswerList.Select(x => x.ReadingQuestionTrialId as Guid?).ToList(); var questionids = taskQuestionAnswerList.Select(x => x.ReadingQuestionTrialId as Guid?).ToList();
var mark= markList.Where(x=> questionids.Contains(x.QuestionId)).FirstOrDefault(); var mark = markList.Where(x => questionids.Contains(x.QuestionId)).FirstOrDefault();
var markName = string.Empty; var markName = string.Empty;
if (mark != null) if (mark != null)
{ {
@ -3420,7 +3424,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
string otherPicturePath = mark != null ? mark.OtherPicturePath : string.Empty; string otherPicturePath = mark != null ? mark.OtherPicturePath : string.Empty;
if (_userInfo.AuditIdentification== "DeleteMark") if (_userInfo.AuditIdentification == "DeleteMark")
{ {
markName = string.Empty; markName = string.Empty;
picturePath = string.Empty; picturePath = string.Empty;
@ -3428,7 +3432,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
} }
// 这里本来就批量展示问题的 现在又需要单个展示 // 这里本来就批量展示问题的 现在又需要单个展示
var thisQuestinonAnswer = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(x => x.Entity as ReadingTaskQuestionAnswer).FirstOrDefault(); var thisQuestinonAnswer = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(x => x.Entity as ReadingTaskQuestionAnswer).FirstOrDefault();
var question = await _dbContext.ReadingQuestionTrial.Where(x => x.Id == thisQuestinonAnswer.ReadingQuestionTrialId).FirstOrDefaultAsync(); var question = await _dbContext.ReadingQuestionTrial.Where(x => x.Id == thisQuestinonAnswer.ReadingQuestionTrialId).FirstOrDefaultAsync();
@ -3437,14 +3441,14 @@ namespace IRaCIS.Core.Infra.EFCore.Common
if (thisQuestinonAnswer != null) if (thisQuestinonAnswer != null)
{ {
questionName = _userInfo.IsEn_Us ? question.QuestionEnName : question.QuestionName; questionName = _userInfo.IsEn_Us ? question.QuestionEnName : question.QuestionName;
questionAnswer = Translationunit(question.Type, question.Unit, question.CustomUnit, unitDataList, thisQuestinonAnswer.Answer) ; questionAnswer = Translationunit(question.Type, question.Unit, question.CustomUnit, unitDataList, thisQuestinonAnswer.Answer);
} }
await InsertInspection<ReadingTaskQuestionAnswer>(cloneEntity, type, x => new InspectionConvertDTO() await InsertInspection<ReadingTaskQuestionAnswer>(cloneEntity, type, x => new InspectionConvertDTO()
{ {
VisitTaskId = x.VisitTaskId, VisitTaskId = x.VisitTaskId,
GeneralId = IdentifierHelper.CreateGuid(cloneEntity.VisitTaskId.ToString(), cloneEntity.ReadingQuestionTrialId.ToString(),"ReadingTaskQuestionAnswer"), GeneralId = IdentifierHelper.CreateGuid(cloneEntity.VisitTaskId.ToString(), cloneEntity.ReadingQuestionTrialId.ToString(), "ReadingTaskQuestionAnswer"),
ObjectRelationParentId = x.VisitTaskId, ObjectRelationParentId = x.VisitTaskId,
@ -3457,7 +3461,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
MarkName = markName, MarkName = markName,
PicturePath = picturePath, PicturePath = picturePath,
OtherPicturePath= otherPicturePath, OtherPicturePath = otherPicturePath,
QuestinonAnswer = questionAnswer, QuestinonAnswer = questionAnswer,
QuestionName = questionName, QuestionName = questionName,
QuestionAnswerList = taskQuestionAnswerList.Join(quesionList, QuestionAnswerList = taskQuestionAnswerList.Join(quesionList,
@ -3501,8 +3505,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var markList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)).Select(x => x.Entity as ReadingTaskQuestionMark).ToList(); var markList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)).Select(x => x.Entity as ReadingTaskQuestionMark).ToList();
var mark = markList.Where(x => x.RowId== entity.RowId&&x.TableQuestionId==entity.TableQuestionId).FirstOrDefault(); var mark = markList.Where(x => x.RowId == entity.RowId && x.TableQuestionId == entity.TableQuestionId).FirstOrDefault();
var markName = string.Empty; var markName = string.Empty;
if (mark != null) if (mark != null)
{ {
@ -3524,19 +3528,19 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}, new }, new
{ {
Answer= Translationunit(tableQuestion.Type, tableQuestion.Unit, tableQuestion.CustomUnit, unitDataList, entity.Answer), Answer = Translationunit(tableQuestion.Type, tableQuestion.Unit, tableQuestion.CustomUnit, unitDataList, entity.Answer),
MarkName = markName, MarkName = markName,
PicturePath = mark != null ? mark.PicturePath : string.Empty, PicturePath = mark != null ? mark.PicturePath : string.Empty,
QuestionName = questionName, QuestionName = questionName,
RowMark = rowMark, RowMark = rowMark,
TableQuestionName = _userInfo.IsEn_Us ? tableQuestion.QuestionEnName : tableQuestion.QuestionName, TableQuestionName = _userInfo.IsEn_Us ? tableQuestion.QuestionEnName : tableQuestion.QuestionName,
}, _userInfo.AuditIdentification); }, _userInfo.AuditIdentification);
} }
} }
//病灶这里操作 ReadingTableAnswerRowInfo ReadingTableQuestionAnswer //病灶这里操作 ReadingTableAnswerRowInfo ReadingTableQuestionAnswer
@ -3602,7 +3606,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
entity.RowMark = entity.OrderMark; entity.RowMark = entity.OrderMark;
string extraIdentification = string.Empty; string extraIdentification = string.Empty;
@ -3917,7 +3921,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
extraIdentification = "/" + (int)entity.ReReadingApplyState; extraIdentification = "/" + (int)entity.ReReadingApplyState;
break; break;
@ -3942,7 +3946,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
if (entity.PMBackReason.IsNotNullOrEmpty()) if (entity.PMBackReason.IsNotNullOrEmpty())
{ {
extraIdentification = "/" + "Reason"; extraIdentification = "/" + "Reason";
reason= entity.PMBackReason; reason = entity.PMBackReason;
} }
break; break;
@ -4124,7 +4128,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
VisitTaskId = x.Id, VisitTaskId = x.Id,
IsDistinctionInterface = isDistinctionInterface, IsDistinctionInterface = isDistinctionInterface,
Reason= reason, Reason = reason,
ExtraIndentification = extraIdentification, ExtraIndentification = extraIdentification,
ObjectRelationParentId = entity.SourceSubjectVisitId != null ? entity.SourceSubjectVisitId : entity.SouceReadModuleId, ObjectRelationParentId = entity.SourceSubjectVisitId != null ? entity.SourceSubjectVisitId : entity.SouceReadModuleId,
@ -4389,7 +4393,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
/// <param name="auditIdentification"></param> /// <param name="auditIdentification"></param>
/// <param name="customPrefix">自定义前缀 某些接口需要用同一个稽查</param> /// <param name="customPrefix">自定义前缀 某些接口需要用同一个稽查</param>
/// <returns></returns> /// <returns></returns>
public string GetInspectionRecordIdentification<T>(T entityObj, string type, bool IsDistinctionInterface = true, bool isSelfDefine = false, string auditIdentification = "",string customPrefix="") public string GetInspectionRecordIdentification<T>(T entityObj, string type, bool IsDistinctionInterface = true, bool isSelfDefine = false, string auditIdentification = "", string customPrefix = "")
{ {
//var entityType = _dbContext.Model.FindEntityType(entityObj.GetType()); //var entityType = _dbContext.Model.FindEntityType(entityObj.GetType());
//var tableName = entityType.GetTableName(); //var tableName = entityType.GetTableName();