diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
index 243c212e0..8ae02ae17 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs
@@ -77,6 +77,7 @@ namespace IRaCIS.Core.Application.Service.RC
///
///
[HttpPost]
+ [UnitOfWork]
public async Task SetSystemGlobalInfo(SetSystemGlobalInfoInDto inDto)
{
@@ -147,6 +148,7 @@ namespace IRaCIS.Core.Application.Service.RC
///
///
[HttpPost]
+ [UnitOfWork]
public async Task SetSystemOncologyInfo(SetSystemOncologyInfoInDto inDto)
{
diff --git a/IRaCIS.Core.Domain/SQLFile/Test.sql b/IRaCIS.Core.Domain/SQLFile/Test.sql
index c4afca3e0..9894554d3 100644
--- a/IRaCIS.Core.Domain/SQLFile/Test.sql
+++ b/IRaCIS.Core.Domain/SQLFile/Test.sql
@@ -176,7 +176,9 @@ update ReadingClinicalData set ReadingClinicalDataState=3 where IsSign=1 and R
-
+update DataInspection set Identification='ReadingMedicineQuestionAnswer/Add' , ObjectTypeId='E8250000-3E2C-0016-8166-08DA7E8DFF90',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where EntityName='ReadingMedicineQuestionAnswer'
+update DataInspection set ObjectTypeId='A4100000-3E2C-0016-A716-08DA7E8DA9BD',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where Identification='ReadingMedicalReview/saveMedicalReviewInfo/TaskMedicalReview/Update'
+update DataInspection set Identification='ReadingMedicalReviewDialog/Add' , ObjectTypeId='D8270000-3E2C-0016-2A14-08DA3EDB77FD',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where EntityName='ReadingMedicalReviewDialog'
diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
index a4013f792..33cbda861 100644
--- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
+++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs
@@ -154,9 +154,22 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var entity = item.Entity as ReadingQuestionCriterionSystem;
+ var extraIdentification = string.Empty;
+
+ if(_dbContext.Entry(entity).Property(t=>t.IsMustGlobalReading).IsModified == true)
+ {
+ extraIdentification = $"/IsGlobalReading";
+ }
+
+ if (_dbContext.Entry(entity).Property(t => t.IsOncologyReading).IsModified == true)
+ {
+ extraIdentification = $"/IsOncologyReading";
+ }
+
await InsertInspection(entity, type, x => new InspectionConvertDTO()
{
- IsDistinctionInterface = false
+ IsDistinctionInterface = /*type == AuditOpt.Update ? true :*/ false,
+ ExtraIndentification= extraIdentification
});
}
@@ -330,9 +343,6 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
-
-
-
//系统器官
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(OrganInfo)))
{
@@ -415,8 +425,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
{
//系统标准设置 没有翻译的字段
- if (_userInfo.RequestUrl == "ReadingQuestion/setCriterionDictionary")
- {
+ //if (_userInfo.RequestUrl == "ReadingQuestion/setCriterionDictionary")
+ //{
+
var type = AuditOpt.Add;
var list = entitys.Where(x => x.Entity.GetType() == typeof(ReadingCriterionDictionary)).Select(t => t.Entity as ReadingCriterionDictionary).ToList();
@@ -440,13 +451,16 @@ namespace IRaCIS.Core.Infra.EFCore.Common
TrialReadingCriterionId = x.IsSystemCriterion == false ? x.CriterionId : null,
+ //不显示区分接口 通过是否是系统字典 以及字典Code 区分
+ IsDistinctionInterface=false
+
},
new
{
SelectList = selectList.Join(list, t => t.Id, u => u.DictionaryId, (t, u) =>
new
{
- t.Value,
+ t.Value,
t.ValueCN,
t.Description,
t.ShowOrder,
@@ -454,9 +468,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common
u.IsFollowVisitUse
}
).OrderBy(t => t.ShowOrder).ToList()
- });
+ });
- }
+ //}
}
@@ -560,6 +574,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
//byzhouhang
ObjectRelationParentId = x.TaskMedicalReviewId,
+
+ IsDistinctionInterface=false,
}, new
{
QuestionAnswerList = list.Join(questionNameList, t => t.ReadingMedicineQuestionId, u => u.ReadingMedicineQuestionId, (t, u) => new { t.Answer, u.QuestionName, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList(),
@@ -577,6 +593,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
await InsertInspection(entity, type, x => new InspectionConvertDTO()
{
+ IsDistinctionInterface=false,
VisitTaskId = entity.VisitTaskId,
ObjectRelationParentId = entity.TaskMedicalReviewId,
@@ -585,470 +602,6 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
- //肿瘤学阅片结果
-
- foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingOncologyTaskInfo)))
- {
- var type = AuditOpt.Add;
-
- var entity = item.Entity as ReadingOncologyTaskInfo;
-
- await InsertInspection(entity, type, x => new InspectionConvertDTO()
- {
- VisitTaskId = entity.VisitTaskId,
-
- ObjectRelationParentId = entity.VisitTaskId,
-
- });
- }
-
-
- //任务
- foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(VisitTask)))
- {
- var type = GetEntityAuditOpt(item);
-
- var entity = item.Entity as VisitTask;
-
- var obj = new object() { };
-
- //访视任务-- 非Dicom 阅片
- if (_userInfo.RequestUrl == "ReadingImageTask/SubmitVisitTaskQuestions" && entity.ReadingTaskState != ReadingTaskState.HaveSigned && type == AuditOpt.Update)
- {
- //提交访视任务的时候 会多次更新同一个记录 只记录最后一次
- return;
- }
-
-
-
- //Dicom 阅片 签名
- if (_userInfo.RequestUrl == "ReadingImageTask/SubmitDicomVisitTask")
- {
- //跳转阅片结果需要该参数
- var subjectCode = _dbContext.Subject.Where(t => t.Id == entity.SubjectId).Select(t => t.Code).First();
- obj = new { SubjectCode = subjectCode };
- }
-
- #region 裁判、肿瘤学、全局 都是通用的
-
- //裁判任务 结果的保存 和签名提交
- if (entity.JudgeResultTaskId != null && (_userInfo.RequestUrl == "ReadingImageTask/SaveJudgeVisitTaskResult" || _userInfo.RequestUrl == "ReadingImageTask/SubmitJudgeVisitTaskResult"))
- {
- var list = await _dbContext.VisitTask.Where(t => t.TaskState == TaskState.Effect && t.SubjectId == entity.SubjectId && t.VisitTaskNum == entity.VisitTaskNum).Select(t => new { t.Id, t.DoctorUser.FullName, t.ArmEnum }).OrderBy(t => t.ArmEnum).ToListAsync();
-
- var r1 = list.First();
- var r2 = list.Last();
-
-
- obj = new { R1 = r1.FullName, R2 = r2.FullName, SelectResult = entity.ArmEnum == r1.ArmEnum ? "R1" : "R2" };
- }
-
- #region 通过链接跳转 2022 12-19
-
- ////肿瘤学任务
- //if (entity.ReadingTaskState == ReadingTaskState.HaveSigned && _userInfo.RequestUrl == "ReadingImageTask/SubmitOncologyReadingInfo")
- //{
-
-
- // var oncologyAnswerList = await _dbContext.ReadingOncologyTaskInfo.Where(t => t.OncologyTaskId == entity.Id).Select(t => new { t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.EvaluationReason, t.EvaluationResult, t.VisitTask.VisitTaskNum, VisitTaskId = t.VisitTask.Id }).ToListAsync();
-
- // var golbalTaskInfo = await _dbContext.VisitTask.Where(t => t.SubjectId == entity.SubjectId && t.ReadingCategory == ReadingCategory.Global && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == entity.IsAnalysisCreate && t.VisitTaskNum == (entity.VisitTaskNum - ReadingCommon.TaskNumDic[ReadingCategory.Oncology] + ReadingCommon.TaskNumDic[ReadingCategory.Global])).Select(t => new { GlobalTaskId = t.Id }).FirstNotNullAsync();
-
-
- // var globalResultList = await _dbContext.ReadingGlobalTaskInfo.Where(t => t.GlobalTaskId == golbalTaskInfo.GlobalTaskId).ToListAsync();
-
- // var modifyVisitList = globalResultList
- // .GroupBy(t => t.TaskId).Select(g => new
- // {
- // VisitTaskId = g.Key,
- // GlobalResult = g.Select(c => new { c.Answer, c.QuestionId })
- // }).ToList();
-
- // var query = from answer in oncologyAnswerList
- // join modifyVisit in modifyVisitList on answer.VisitTaskId equals modifyVisit.VisitTaskId into cc
- // from modifyVisit in cc.DefaultIfEmpty()
- // select new
- // {
- // answer.TaskBlindName,
- // answer.TaskName,
- // answer.EvaluationReason,
- // answer.EvaluationResult,
- // IsGlobalModify = modifyVisit != null,
- // Reason = modifyVisit != null ? modifyVisit.GlobalResult.Where(t => t.QuestionId == null).FirstOrDefault()?.Answer : String.Empty
- // };
-
- // var result = query.ToList();
-
- // obj = new { OncologyAnswerList = result };
- //}
-
- ////全局任务
- //if (entity.ReadingTaskState == ReadingTaskState.HaveSigned && _userInfo.RequestUrl == "ReadingImageTask/SubmitGlobalReadingInfo")
- //{
-
- // var globalResultList = await _dbContext.ReadingGlobalTaskInfo.Where(t => t.GlobalTaskId == entity.Id).Select(t => new { VisitTaskId = t.TaskId, t.QuestionId, t.Answer, t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.TrialReadingQuestion.QuestionName }).ToListAsync();
-
- // var visitTaskIdList = globalResultList.Select(t => t.VisitTaskId).ToList();
-
- // var visitResultList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => visitTaskIdList.Contains(t.VisitTaskId) && t.ReadingQuestionTrial.IsJudgeQuestion).Select(t => new { t.VisitTaskId, t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.VisitTask.VisitTaskNum, t.ReadingQuestionTrial.QuestionName, t.ReadingQuestionTrial.ShowOrder, t.Answer, t.ReadingQuestionTrialId })
- // .OrderBy(t => t.VisitTaskNum).ToListAsync();
-
- // var query = visitResultList.GroupBy(t => new { t.VisitTaskId, t.VisitTaskNum, t.TaskName, t.TaskBlindName }).Select(g => new
- // {
- // VisitTaskId = g.Key.VisitTaskId,
- // VisitTaskNum = g.Key.VisitTaskNum,
- // TaskName = g.Key.TaskName,
- // TaskBlindName = g.Key.TaskBlindName,
-
- // VisitQuestionAnswerList = g.OrderBy(t => t.ShowOrder).Select(u => new { u.QuestionName, u.Answer }).ToList(),
-
- // GlobalQuestionAnswerList = g.OrderBy(t => t.ShowOrder).Select(u => new { u.QuestionName, Answer = globalResultList.Where(t => t.VisitTaskId == g.Key.VisitTaskId && t.QuestionId == u.ReadingQuestionTrialId).FirstOrDefault()?.Answer ?? String.Empty }).ToList(),
-
- // Reason = globalResultList.Where(t => t.VisitTaskId == g.Key.VisitTaskId && t.QuestionId == null).FirstOrDefault()?.Answer ?? String.Empty
- // });
-
-
- // var result = query.ToList();
-
- // obj = new { GlobalAnswerList = result };
- //}
-
- #endregion
-
- #endregion
-
-
- await InsertInspection(entity, type, x => new InspectionConvertDTO()
- {
- VisitTaskId = x.Id,
-
- IsDistinctionInterface = type == AuditOpt.Update ? true : false,
-
- ObjectRelationParentId = entity.SourceSubjectVisitId != null ? entity.SourceSubjectVisitId : entity.SouceReadModuleId,
-
- ObjectRelationParentId2 = entity.DoctorUserId,
-
- ObjectRelationParentId3 = entity.TrialReadingCriterionId,
-
- }, obj);
- }
-
-
-
- #region 阅片结果
-
-
- #region 暂时不区分标准
-
- //保存影像质量 多条记录,只记录一条稽查
- if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)))
- {
- // 保存影像质量 、 修改整体肿瘤评估结果 、 非dicom 保存访视阅片结果
- if (_userInfo.RequestUrl == "ReadingImageTask/changeDicomReadingQuestionAnswer"
- || _userInfo.RequestUrl == "ReadingImageTask/saveImageQuality"
- || _userInfo.RequestUrl == "ReadingImageTask/saveVisitTaskQuestions")
- {
- var type = AuditOpt.Add;
-
- //具体的答案
- var taskQuestionAnswerList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(t => t.Entity as ReadingTaskQuestionAnswer).ToList();
-
- //获取问题名称 组合成数组
- var quesionList = await _dbContext.ReadingQuestionTrial.Where(t => taskQuestionAnswerList.Select(k => k.ReadingQuestionTrialId).Contains(t.Id)).Select(t => new
- {
- t.QuestionName,
- QuestionId = t.Id,
- t.DictionaryCode,
- t.ShowOrder
- }).OrderBy(t => t.ShowOrder).ToListAsync();
-
-
- var firstEntity = taskQuestionAnswerList.First();
-
- var cloneEntity = firstEntity.Clone();
-
- //保证Id 唯一
- cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.ReadingQuestionCriterionTrialId.ToString(), firstEntity.ReadingQuestionTrialId.ToString(), firstEntity.VisitTaskId.ToString());
-
- await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO()
- {
- VisitTaskId = x.VisitTaskId,
-
- ObjectRelationParentId = x.VisitTaskId,
-
- TrialReadingCriterionId = x.ReadingQuestionCriterionTrialId,
-
- }, new { QuestionAnswerList = taskQuestionAnswerList.Join(quesionList, t => t.ReadingQuestionTrialId, u => u.QuestionId, (t, u) => new { t.Answer, u.DictionaryCode, u.QuestionName, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList() });
-
-
- }
-
-
- }
-
- //病灶这里操作 ReadingTableAnswerRowInfo ReadingTableQuestionAnswer
-
- foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableAnswerRowInfo)))
- {
-
- var type = GetEntityAuditOpt(item);
-
- var entity = item.Entity as ReadingTableAnswerRowInfo;
-
- var tableQuestionAnswerList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableQuestionAnswer)).Select(t => t.Entity as ReadingTableQuestionAnswer).Where(t => t.RowId == entity.Id).ToList();
-
-
- //获取表格问题名称 组合成数组
- var tableQuesionList = await _dbContext.ReadingTableQuestionTrial.Where(t => tableQuestionAnswerList.Select(k => k.TableQuestionId).Contains(t.Id)).Select(t =>
- new
- {
- TrialReadingCriterionId = t.ReadingQuestionTrial.ReadingQuestionCriterionTrialId, //标准Id
- Type = t.ReadingQuestionTrial.QuestionName, //病灶类型
- t.ReadingQuestionTrial.Unit,
- t.ReadingQuestionTrial.CustomUnit,
- t.DictionaryCode,
- t.QuestionName,
- QuestionId = t.Id,
- t.ShowOrder
- })
- .OrderBy(t => t.ShowOrder).ToListAsync();
-
- var trialReadingCriterionId = tableQuesionList.FirstOrDefault()?.TrialReadingCriterionId;
-
- //获取表名称 类型名称(病灶类型) 不用查 从项目问题的稽查记录里面去取
- //var tableName = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == entity.QuestionId).Select(t => t.QuestionName).FirstOrDefaultAsync();
-
- //分裂病灶 需要原病灶的标识
-
- //if (_userInfo.RequestUrl == " ReadingImageTask/splitLesion")
- var originalRowMark = string.Empty;
- if (entity.SplitRowId != null)
- {
-
- originalRowMark = await _dbContext.ReadingTableAnswerRowInfo.Where(t => t.Id == entity.SplitRowId).Select(t => t.RowMark).FirstOrDefaultAsync();
- }
-
- //处理标识 因为触发器在稽查后才进行操作
-
- entity.RowMark = entity.OrderMark + entity.RowIndex.GetLesionMark();
-
-
-
- await InsertInspection(entity, type, x => new InspectionConvertDTO()
- {
- VisitTaskId = x.VisitTaskId,
-
- ObjectRelationParentId = x.VisitTaskId,
-
- TrialReadingCriterionId = trialReadingCriterionId,
-
- ObjectRelationParentId2 = x.QuestionId
-
- }, new
- {
- OriginalRowMark = originalRowMark,
- //TableName = tableName,
- QuestionAnswerList =
-
- //需要手动添加病灶类型
- tableQuestionAnswerList.Join(tableQuesionList, t => t.TableQuestionId, u => u.QuestionId, (t, u) =>
- new
- {
- t.Answer /*u.Unit==ValueUnit.Custom? t.Answer+u.CustomUnit:(u.Unit != ValueUnit.None|| u.Unit != null)*/,
- u.QuestionName,
- u.DictionaryCode,
- u.ShowOrder
- }
- ).OrderBy(t => t.ShowOrder).ToList()
- });
-
-
- ////添加/修改病灶接口 只会对单个病灶进行操作
- //if (_userInfo.RequestUrl == "ReadingImageTask/submitTableQuestion")
- //{
- //}
-
- ////删除病灶接口 里面也有更新
- //if (_userInfo.RequestUrl == "ReadingImageTask/deleteReadingRowAnswer")
- //{
- // //有删除 有修改 多条稽查记录
-
- // var deleteList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableQuestionAnswer) && GetEntityAuditOpt(x) == AuditOpt.Deleted).Select(t => t.Entity as ReadingTableQuestionAnswer).ToList();
-
- // var updateList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableQuestionAnswer) && GetEntityAuditOpt(x) == AuditOpt.Update).Select(t => t.Entity as ReadingTableQuestionAnswer).ToList();
- //}
-
- }
-
-
- #endregion
-
-
-
- #region 肿瘤学阅片结果 记录表格
-
- //if (entitys.Any(x => x.entity.gettype() == typeof(readingoncologytaskinfo)))
- //{
- // var type = auditopt.add;
-
- // var oncologyanswerlist = entitys.where(x => x.entity.gettype() == typeof(readingoncologytaskinfo)).select(t => t.entity as readingoncologytaskinfo);
-
- // var visittaskidlist = oncologyanswerlist.select(t => t.visittaskid).tolist();
-
- // var visittasklist = await _dbcontext.visittask.where(t => visittaskidlist.contains(t.id)).select(t => new { visittaskid = t.id, t.taskname, t.taskblindname, t.visittasknum, t.subjectid }).tolistasync();
-
-
-
- // var modifyvisitlist = await _dbcontext.readingglobaltaskinfo.where(t => visittaskidlist.contains(t.taskid) && t.visittask.taskstate == taskstate.effect).groupby(t => t.taskid).select(g => new
- // {
- // visittaskid = g.key,
- // globalresult = g.select(c => new { c.answer, c.questionid })
- // }).tolistasync();
-
-
- // //var oncologyanswervisitlist = visittasklist.join(oncologyanswerlist, t => t.visittaskid, u => u.visittaskid, (t, u) => new { t.visittaskid, t.taskblindname, t.taskname, u.evaluationreason, u.evaluationresult }).tolist();
-
- // var query = from answer in oncologyanswerlist
- // join visittask in visittasklist on answer.visittaskid equals visittask.visittaskid
- // join modifyvisit in modifyvisitlist on answer.visittaskid equals modifyvisit.visittaskid into cc
- // from modifyvisit in cc.defaultifempty()
- // select new
- // {
- // visittask.taskblindname,
- // visittask.taskname,
- // answer.evaluationreason,
- // answer.evaluationresult,
- // isglobalmodify = modifyvisit != null,
- // reason = modifyvisit != null ? modifyvisit.globalresult.where(t => t.questionid == null).firstordefault()?.answer : string.empty
- // };
- // var result = query.tolist();
-
-
- // var oncologyanswer = oncologyanswerlist.first();
-
- // var cloneentity = oncologyanswer.clone();
-
- // cloneentity.id = newid.nextguid();
-
- // await insertinspection(oncologyanswer, type, x => new inspectionconvertdto()
- // {
- // visittaskid = oncologyanswer.visittaskid,
-
- // objectrelationparentid = oncologyanswer.visittaskid,
-
- // }, new { oncologyanswerlist = result });
- //}
-
- #endregion
-
-
- //访视 阅片结果
-
- //if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)))
- //{
- // var type = AuditOpt.Add;
- // var list = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(t => t.Entity as ReadingTaskQuestionAnswer);
-
-
- // //获取问题名称 组合成数组
- // var quesionList = await _dbContext.ReadingQuestionTrial.Where(t => list.Select(k => k.ReadingQuestionTrialId).Contains(t.Id)).Select(t => new
- // {
- // t.QuestionName,
- // QuestionId = t.Id,
- // t.DictionaryCode,
- // t.ShowOrder
- // }).OrderBy(t => t.ShowOrder).ToListAsync();
-
-
- // var firstEntity = list.First();
-
- // var cloneEntity = firstEntity.Clone();
-
- // //保证Id 唯一
- // cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.ReadingQuestionCriterionTrialId.ToString(), firstEntity.ReadingQuestionTrialId.ToString(), firstEntity.VisitTaskId.ToString());
-
- // await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO()
- // {
- // VisitTaskId = x.VisitTaskId,
-
- // ObjectRelationParentId = x.VisitTaskId,
-
- // TrialReadingCriterionId = x.ReadingQuestionCriterionTrialId,
-
- // }, new { QuestionAnswerList = list.Join(quesionList, t => t.ReadingQuestionTrialId, u => u.QuestionId, (t, u) => new { t.Answer, u.DictionaryCode, u.QuestionName, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList() });
- //}
-
-
-
-
-
- // 全局 阅片结果
- if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingGlobalTaskInfo)))
- {
- var type = AuditOpt.Add;
-
- var list = entitys.Where(x => x.Entity.GetType() == typeof(ReadingGlobalTaskInfo)).Select(t => t.Entity as ReadingGlobalTaskInfo);
-
-
- foreach (var group in list.GroupBy(t => t.TaskId))
- {
- var questionAnswerList = group.Where(t => t.QuestionId != null).ToList();
-
-
- var questionIdList = questionAnswerList.Select(t => t.QuestionId).ToList();
-
- var quesionList = await _dbContext.ReadingQuestionTrial.Where(t => questionIdList.Contains(t.Id)).Select(t => new
- {
-
- t.QuestionName,
- QuestionId = t.Id,
- t.DictionaryCode,
- t.ShowOrder
- }).OrderBy(t => t.ShowOrder).ToListAsync();
-
-
- //获取访视的评估结果 也要记录稽查
- var visitAnswerList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => t.VisitTaskId == group.Key && questionIdList.Contains(t.ReadingQuestionTrialId)).Select(u => new
- {
- QuestionId = u.ReadingQuestionTrialId,
- u.Answer
- }).ToListAsync();
-
-
-
- var firstEntity = questionAnswerList.First();
-
- var cloneEntity = firstEntity.Clone();
-
-
- //保证Id 唯一
- cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.GlobalTaskId.ToString(), firstEntity.TaskId.ToString());
-
- var trialReadingCriterionId = await _dbContext.VisitTask.Where(t => t.Id == cloneEntity.GlobalTaskId).Select(t => t.TrialReadingCriterionId).FirstOrDefaultAsync();
-
-
- await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO()
- {
- VisitTaskId = x.TaskId,
-
- TrialReadingCriterionId = trialReadingCriterionId,
-
- ObjectRelationParentId = x.TaskId,
-
- }, new
- {
- VisitQuestionAnswerList = visitAnswerList.Join(quesionList, t => t.QuestionId, u => u.QuestionId, (t, u) => new { t.Answer, u.QuestionName, u.DictionaryCode, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList(),
- Reason = group.Where(t => t.QuestionId == null && t.GlobalAnswerType == GlobalAnswerType.Reason).FirstOrDefault()?.Answer,
- AgreeOrNot = group.Where(t => t.QuestionId == null && t.GlobalAnswerType == GlobalAnswerType.AgreeOrNot).FirstOrDefault()?.Answer,
- UpdateType = group.Where(t => t.QuestionId == null && t.GlobalAnswerType == GlobalAnswerType.UpdateType).FirstOrDefault()?.Answer,
- QuestionAnswerList = questionAnswerList.Join(quesionList, t => t.QuestionId, u => u.QuestionId, (t, u) => new { t.Answer, u.QuestionName, u.DictionaryCode, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList()
- });
- }
-
- }
-
- #endregion
-
// Qc 问题答案
@@ -1736,32 +1289,6 @@ namespace IRaCIS.Core.Infra.EFCore.Common
});
}
- //if(entitys.Any(x => x.Entity.GetType() == typeof(NoneDicomStudyFile)))
- //{
- // var list = entitys.Where(x => x.Entity.GetType() == typeof(NoneDicomStudyFile)).Select(t=>t.Entity);
-
- // var first = list.First() as NoneDicomStudyFile;
-
- // if(first.NoneDicomStudy == null)
- // {
- // first.NoneDicomStudy = _dbContext.NoneDicomStudy.Find(first.NoneDicomStudyId);
- // }
-
- // await InsertInspection(first, type, x => new InspectionConvertDTO()
- // {
- // GeneralId=first.NoneDicomStudyId,
-
- // SubjectVisitId= first.NoneDicomStudy.SubjectVisitId,
-
-
- // ObjectRelationParentId = x.NoneDicomStudyId,
-
- // });
-
- //}
-
-
-
#region 阅片人入组
@@ -2064,6 +1591,437 @@ namespace IRaCIS.Core.Infra.EFCore.Common
#endregion
+
+ #region 阅片结果
+
+
+ #region 暂时不区分标准
+
+ //保存影像质量 多条记录,只记录一条稽查
+ if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)))
+ {
+ // 保存影像质量 、 修改整体肿瘤评估结果 、 非dicom 保存访视阅片结果
+ if (_userInfo.RequestUrl == "ReadingImageTask/changeDicomReadingQuestionAnswer"
+ || _userInfo.RequestUrl == "ReadingImageTask/saveImageQuality"
+ || _userInfo.RequestUrl == "ReadingImageTask/saveVisitTaskQuestions")
+ {
+ var type = AuditOpt.Add;
+
+ //具体的答案
+ var taskQuestionAnswerList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(t => t.Entity as ReadingTaskQuestionAnswer).ToList();
+
+ //获取问题名称 组合成数组
+ var quesionList = await _dbContext.ReadingQuestionTrial.Where(t => taskQuestionAnswerList.Select(k => k.ReadingQuestionTrialId).Contains(t.Id)).Select(t => new
+ {
+ t.QuestionName,
+ QuestionId = t.Id,
+ t.DictionaryCode,
+ t.ShowOrder
+ }).OrderBy(t => t.ShowOrder).ToListAsync();
+
+
+ var firstEntity = taskQuestionAnswerList.First();
+
+ var cloneEntity = firstEntity.Clone();
+
+ //保证Id 唯一
+ cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.ReadingQuestionCriterionTrialId.ToString(), firstEntity.ReadingQuestionTrialId.ToString(), firstEntity.VisitTaskId.ToString());
+
+ await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO()
+ {
+ VisitTaskId = x.VisitTaskId,
+
+ ObjectRelationParentId = x.VisitTaskId,
+
+ TrialReadingCriterionId = x.ReadingQuestionCriterionTrialId,
+
+ }, new { QuestionAnswerList = taskQuestionAnswerList.Join(quesionList, t => t.ReadingQuestionTrialId, u => u.QuestionId, (t, u) => new { t.Answer, u.DictionaryCode, u.QuestionName, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList() });
+
+
+ }
+
+
+ }
+
+ //病灶这里操作 ReadingTableAnswerRowInfo ReadingTableQuestionAnswer
+
+ foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableAnswerRowInfo)))
+ {
+
+ var type = GetEntityAuditOpt(item);
+
+ var entity = item.Entity as ReadingTableAnswerRowInfo;
+
+ var tableQuestionAnswerList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableQuestionAnswer)).Select(t => t.Entity as ReadingTableQuestionAnswer).Where(t => t.RowId == entity.Id).ToList();
+
+
+ //获取表格问题名称 组合成数组
+ var tableQuesionList = await _dbContext.ReadingTableQuestionTrial.Where(t => tableQuestionAnswerList.Select(k => k.TableQuestionId).Contains(t.Id)).Select(t =>
+ new
+ {
+ TrialReadingCriterionId = t.ReadingQuestionTrial.ReadingQuestionCriterionTrialId, //标准Id
+ Type = t.ReadingQuestionTrial.QuestionName, //病灶类型
+ t.ReadingQuestionTrial.Unit,
+ t.ReadingQuestionTrial.CustomUnit,
+ t.DictionaryCode,
+ t.QuestionName,
+ QuestionId = t.Id,
+ t.ShowOrder
+ })
+ .OrderBy(t => t.ShowOrder).ToListAsync();
+
+ var trialReadingCriterionId = tableQuesionList.FirstOrDefault()?.TrialReadingCriterionId;
+
+ //获取表名称 类型名称(病灶类型) 不用查 从项目问题的稽查记录里面去取
+ //var tableName = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == entity.QuestionId).Select(t => t.QuestionName).FirstOrDefaultAsync();
+
+ //分裂病灶 需要原病灶的标识
+
+ //if (_userInfo.RequestUrl == " ReadingImageTask/splitLesion")
+ var originalRowMark = string.Empty;
+ if (entity.SplitRowId != null)
+ {
+
+ originalRowMark = await _dbContext.ReadingTableAnswerRowInfo.Where(t => t.Id == entity.SplitRowId).Select(t => t.RowMark).FirstOrDefaultAsync();
+ }
+
+ //处理标识 因为触发器在稽查后才进行操作
+
+ entity.RowMark = entity.OrderMark + entity.RowIndex.GetLesionMark();
+
+
+
+ await InsertInspection(entity, type, x => new InspectionConvertDTO()
+ {
+ VisitTaskId = x.VisitTaskId,
+
+ ObjectRelationParentId = x.VisitTaskId,
+
+ TrialReadingCriterionId = trialReadingCriterionId,
+
+ ObjectRelationParentId2 = x.QuestionId
+
+ }, new
+ {
+ OriginalRowMark = originalRowMark,
+ //TableName = tableName,
+ QuestionAnswerList =
+
+ //需要手动添加病灶类型
+ tableQuestionAnswerList.Join(tableQuesionList, t => t.TableQuestionId, u => u.QuestionId, (t, u) =>
+ new
+ {
+ t.Answer /*u.Unit==ValueUnit.Custom? t.Answer+u.CustomUnit:(u.Unit != ValueUnit.None|| u.Unit != null)*/,
+ u.QuestionName,
+ u.DictionaryCode,
+ u.ShowOrder
+ }
+ ).OrderBy(t => t.ShowOrder).ToList()
+ });
+
+
+ ////添加/修改病灶接口 只会对单个病灶进行操作
+ //if (_userInfo.RequestUrl == "ReadingImageTask/submitTableQuestion")
+ //{
+ //}
+
+ ////删除病灶接口 里面也有更新
+ //if (_userInfo.RequestUrl == "ReadingImageTask/deleteReadingRowAnswer")
+ //{
+ // //有删除 有修改 多条稽查记录
+
+ // var deleteList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableQuestionAnswer) && GetEntityAuditOpt(x) == AuditOpt.Deleted).Select(t => t.Entity as ReadingTableQuestionAnswer).ToList();
+
+ // var updateList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableQuestionAnswer) && GetEntityAuditOpt(x) == AuditOpt.Update).Select(t => t.Entity as ReadingTableQuestionAnswer).ToList();
+ //}
+
+ }
+
+
+ #endregion
+
+
+
+ #region 肿瘤学阅片结果 记录表格 废弃
+
+ //if (entitys.Any(x => x.entity.gettype() == typeof(readingoncologytaskinfo)))
+ //{
+ // var type = auditopt.add;
+
+ // var oncologyanswerlist = entitys.where(x => x.entity.gettype() == typeof(readingoncologytaskinfo)).select(t => t.entity as readingoncologytaskinfo);
+
+ // var visittaskidlist = oncologyanswerlist.select(t => t.visittaskid).tolist();
+
+ // var visittasklist = await _dbcontext.visittask.where(t => visittaskidlist.contains(t.id)).select(t => new { visittaskid = t.id, t.taskname, t.taskblindname, t.visittasknum, t.subjectid }).tolistasync();
+
+
+
+ // var modifyvisitlist = await _dbcontext.readingglobaltaskinfo.where(t => visittaskidlist.contains(t.taskid) && t.visittask.taskstate == taskstate.effect).groupby(t => t.taskid).select(g => new
+ // {
+ // visittaskid = g.key,
+ // globalresult = g.select(c => new { c.answer, c.questionid })
+ // }).tolistasync();
+
+
+ // //var oncologyanswervisitlist = visittasklist.join(oncologyanswerlist, t => t.visittaskid, u => u.visittaskid, (t, u) => new { t.visittaskid, t.taskblindname, t.taskname, u.evaluationreason, u.evaluationresult }).tolist();
+
+ // var query = from answer in oncologyanswerlist
+ // join visittask in visittasklist on answer.visittaskid equals visittask.visittaskid
+ // join modifyvisit in modifyvisitlist on answer.visittaskid equals modifyvisit.visittaskid into cc
+ // from modifyvisit in cc.defaultifempty()
+ // select new
+ // {
+ // visittask.taskblindname,
+ // visittask.taskname,
+ // answer.evaluationreason,
+ // answer.evaluationresult,
+ // isglobalmodify = modifyvisit != null,
+ // reason = modifyvisit != null ? modifyvisit.globalresult.where(t => t.questionid == null).firstordefault()?.answer : string.empty
+ // };
+ // var result = query.tolist();
+
+
+ // var oncologyanswer = oncologyanswerlist.first();
+
+ // var cloneentity = oncologyanswer.clone();
+
+ // cloneentity.id = newid.nextguid();
+
+ // await insertinspection(oncologyanswer, type, x => new inspectionconvertdto()
+ // {
+ // visittaskid = oncologyanswer.visittaskid,
+
+ // objectrelationparentid = oncologyanswer.visittaskid,
+
+ // }, new { oncologyanswerlist = result });
+ //}
+
+ #endregion
+
+
+
+
+ // 全局 阅片结果
+ if (entitys.Any(x => x.Entity.GetType() == typeof(ReadingGlobalTaskInfo)))
+ {
+ var type = AuditOpt.Add;
+
+ var list = entitys.Where(x => x.Entity.GetType() == typeof(ReadingGlobalTaskInfo)).Select(t => t.Entity as ReadingGlobalTaskInfo);
+
+
+ foreach (var group in list.GroupBy(t => t.TaskId))
+ {
+ var questionAnswerList = group.Where(t => t.QuestionId != null).ToList();
+
+
+ var questionIdList = questionAnswerList.Select(t => t.QuestionId).ToList();
+
+ var quesionList = await _dbContext.ReadingQuestionTrial.Where(t => questionIdList.Contains(t.Id)).Select(t => new
+ {
+
+ t.QuestionName,
+ QuestionId = t.Id,
+ t.DictionaryCode,
+ t.ShowOrder
+ }).OrderBy(t => t.ShowOrder).ToListAsync();
+
+
+ //获取访视的评估结果 也要记录稽查
+ var visitAnswerList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => t.VisitTaskId == group.Key && questionIdList.Contains(t.ReadingQuestionTrialId)).Select(u => new
+ {
+ QuestionId = u.ReadingQuestionTrialId,
+ u.Answer
+ }).ToListAsync();
+
+
+
+ var firstEntity = questionAnswerList.First();
+
+ var cloneEntity = firstEntity.Clone();
+
+
+ //保证Id 唯一
+ cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.GlobalTaskId.ToString(), firstEntity.TaskId.ToString());
+
+ var trialReadingCriterionId = await _dbContext.VisitTask.Where(t => t.Id == cloneEntity.GlobalTaskId).Select(t => t.TrialReadingCriterionId).FirstOrDefaultAsync();
+
+
+ await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO()
+ {
+ VisitTaskId = x.TaskId,
+
+ TrialReadingCriterionId = trialReadingCriterionId,
+
+ ObjectRelationParentId = x.TaskId,
+
+ }, new
+ {
+ VisitQuestionAnswerList = visitAnswerList.Join(quesionList, t => t.QuestionId, u => u.QuestionId, (t, u) => new { t.Answer, u.QuestionName, u.DictionaryCode, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList(),
+ Reason = group.Where(t => t.QuestionId == null && t.GlobalAnswerType == GlobalAnswerType.Reason).FirstOrDefault()?.Answer,
+ AgreeOrNot = group.Where(t => t.QuestionId == null && t.GlobalAnswerType == GlobalAnswerType.AgreeOrNot).FirstOrDefault()?.Answer,
+ UpdateType = group.Where(t => t.QuestionId == null && t.GlobalAnswerType == GlobalAnswerType.UpdateType).FirstOrDefault()?.Answer,
+ QuestionAnswerList = questionAnswerList.Join(quesionList, t => t.QuestionId, u => u.QuestionId, (t, u) => new { t.Answer, u.QuestionName, u.DictionaryCode, u.ShowOrder }).OrderBy(t => t.ShowOrder).ToList()
+ });
+ }
+
+ }
+
+
+ //肿瘤学阅片结果
+
+ foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingOncologyTaskInfo)))
+ {
+ var type = AuditOpt.Add;
+
+ var entity = item.Entity as ReadingOncologyTaskInfo;
+
+ await InsertInspection(entity, type, x => new InspectionConvertDTO()
+ {
+ VisitTaskId = entity.VisitTaskId,
+
+ ObjectRelationParentId = entity.VisitTaskId,
+
+ });
+ }
+
+
+ #endregion
+
+
+ //任务
+ foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(VisitTask)))
+ {
+ var type = GetEntityAuditOpt(item);
+
+ var entity = item.Entity as VisitTask;
+
+ var obj = new object() { };
+
+ //访视任务-- 非Dicom 阅片
+ if (_userInfo.RequestUrl == "ReadingImageTask/SubmitVisitTaskQuestions" && entity.ReadingTaskState != ReadingTaskState.HaveSigned && type == AuditOpt.Update)
+ {
+ //提交访视任务的时候 会多次更新同一个记录 只记录最后一次
+ return;
+ }
+
+
+
+ //Dicom 阅片 签名
+ if (_userInfo.RequestUrl == "ReadingImageTask/SubmitDicomVisitTask")
+ {
+ //跳转阅片结果需要该参数
+ var subjectCode = _dbContext.Subject.Where(t => t.Id == entity.SubjectId).Select(t => t.Code).First();
+ obj = new { SubjectCode = subjectCode };
+ }
+
+ #region 裁判、肿瘤学、全局 都是通用的
+
+ //裁判任务 结果的保存 和签名提交
+ if (entity.JudgeResultTaskId != null && (_userInfo.RequestUrl == "ReadingImageTask/SaveJudgeVisitTaskResult" || _userInfo.RequestUrl == "ReadingImageTask/SubmitJudgeVisitTaskResult"))
+ {
+
+ var visitTaskNum = entity.VisitTaskNum - ReadingCommon.TaskNumDic[ReadingCategory.Judge];
+ var list = await _dbContext.VisitTask.Where(t => t.TaskState == TaskState.Effect && t.SubjectId == entity.SubjectId && t.VisitTaskNum == visitTaskNum).Select(t => new { t.Id, t.DoctorUser.FullName, t.ArmEnum }).OrderBy(t => t.ArmEnum).ToListAsync();
+
+ var r1 = list.First();
+ var r2 = list.Last();
+
+
+ obj = new { R1 = r1.FullName, R2 = r2.FullName, SelectResult = entity.ArmEnum == r1.ArmEnum ? "R1" : "R2" };
+ }
+
+ #region 通过链接跳转 2022 12-19
+
+ ////肿瘤学任务
+ //if (entity.ReadingTaskState == ReadingTaskState.HaveSigned && _userInfo.RequestUrl == "ReadingImageTask/SubmitOncologyReadingInfo")
+ //{
+
+
+ // var oncologyAnswerList = await _dbContext.ReadingOncologyTaskInfo.Where(t => t.OncologyTaskId == entity.Id).Select(t => new { t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.EvaluationReason, t.EvaluationResult, t.VisitTask.VisitTaskNum, VisitTaskId = t.VisitTask.Id }).ToListAsync();
+
+ // var golbalTaskInfo = await _dbContext.VisitTask.Where(t => t.SubjectId == entity.SubjectId && t.ReadingCategory == ReadingCategory.Global && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == entity.IsAnalysisCreate && t.VisitTaskNum == (entity.VisitTaskNum - ReadingCommon.TaskNumDic[ReadingCategory.Oncology] + ReadingCommon.TaskNumDic[ReadingCategory.Global])).Select(t => new { GlobalTaskId = t.Id }).FirstNotNullAsync();
+
+
+ // var globalResultList = await _dbContext.ReadingGlobalTaskInfo.Where(t => t.GlobalTaskId == golbalTaskInfo.GlobalTaskId).ToListAsync();
+
+ // var modifyVisitList = globalResultList
+ // .GroupBy(t => t.TaskId).Select(g => new
+ // {
+ // VisitTaskId = g.Key,
+ // GlobalResult = g.Select(c => new { c.Answer, c.QuestionId })
+ // }).ToList();
+
+ // var query = from answer in oncologyAnswerList
+ // join modifyVisit in modifyVisitList on answer.VisitTaskId equals modifyVisit.VisitTaskId into cc
+ // from modifyVisit in cc.DefaultIfEmpty()
+ // select new
+ // {
+ // answer.TaskBlindName,
+ // answer.TaskName,
+ // answer.EvaluationReason,
+ // answer.EvaluationResult,
+ // IsGlobalModify = modifyVisit != null,
+ // Reason = modifyVisit != null ? modifyVisit.GlobalResult.Where(t => t.QuestionId == null).FirstOrDefault()?.Answer : String.Empty
+ // };
+
+ // var result = query.ToList();
+
+ // obj = new { OncologyAnswerList = result };
+ //}
+
+ ////全局任务
+ //if (entity.ReadingTaskState == ReadingTaskState.HaveSigned && _userInfo.RequestUrl == "ReadingImageTask/SubmitGlobalReadingInfo")
+ //{
+
+ // var globalResultList = await _dbContext.ReadingGlobalTaskInfo.Where(t => t.GlobalTaskId == entity.Id).Select(t => new { VisitTaskId = t.TaskId, t.QuestionId, t.Answer, t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.TrialReadingQuestion.QuestionName }).ToListAsync();
+
+ // var visitTaskIdList = globalResultList.Select(t => t.VisitTaskId).ToList();
+
+ // var visitResultList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => visitTaskIdList.Contains(t.VisitTaskId) && t.ReadingQuestionTrial.IsJudgeQuestion).Select(t => new { t.VisitTaskId, t.VisitTask.TaskBlindName, t.VisitTask.TaskName, t.VisitTask.VisitTaskNum, t.ReadingQuestionTrial.QuestionName, t.ReadingQuestionTrial.ShowOrder, t.Answer, t.ReadingQuestionTrialId })
+ // .OrderBy(t => t.VisitTaskNum).ToListAsync();
+
+ // var query = visitResultList.GroupBy(t => new { t.VisitTaskId, t.VisitTaskNum, t.TaskName, t.TaskBlindName }).Select(g => new
+ // {
+ // VisitTaskId = g.Key.VisitTaskId,
+ // VisitTaskNum = g.Key.VisitTaskNum,
+ // TaskName = g.Key.TaskName,
+ // TaskBlindName = g.Key.TaskBlindName,
+
+ // VisitQuestionAnswerList = g.OrderBy(t => t.ShowOrder).Select(u => new { u.QuestionName, u.Answer }).ToList(),
+
+ // GlobalQuestionAnswerList = g.OrderBy(t => t.ShowOrder).Select(u => new { u.QuestionName, Answer = globalResultList.Where(t => t.VisitTaskId == g.Key.VisitTaskId && t.QuestionId == u.ReadingQuestionTrialId).FirstOrDefault()?.Answer ?? String.Empty }).ToList(),
+
+ // Reason = globalResultList.Where(t => t.VisitTaskId == g.Key.VisitTaskId && t.QuestionId == null).FirstOrDefault()?.Answer ?? String.Empty
+ // });
+
+
+ // var result = query.ToList();
+
+ // obj = new { GlobalAnswerList = result };
+ //}
+
+ #endregion
+
+ #endregion
+
+
+ await InsertInspection(entity, type, x => new InspectionConvertDTO()
+ {
+ VisitTaskId = x.Id,
+
+ IsDistinctionInterface = type == AuditOpt.Update ? true : false,
+
+ ObjectRelationParentId = entity.SourceSubjectVisitId != null ? entity.SourceSubjectVisitId : entity.SouceReadModuleId,
+
+ ObjectRelationParentId2 = entity.DoctorUserId,
+
+ ObjectRelationParentId3 = entity.TrialReadingCriterionId,
+
+ }, obj);
+ }
+
+
+
#endregion
@@ -2098,7 +2056,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var generalId = (inspection.GeneralId != null && inspection.GeneralId != Guid.Empty) ? inspection.GeneralId : entityObj.Id;
inspection.GeneralId = generalId;
- inspection.Identification = await GetInspectionRecordIdentificationAsync(inspection, entityObj, type, inspection.IsDistinctionInterface);
+ inspection.Identification = await GetInspectionRecordIdentificationAsync(inspection, entityObj, type, inspection.IsDistinctionInterface)+inspection.ExtraIndentification;
//将实体对象属性 映射到稽查实体
MapEntityPropertyToAuditEntity(entityObj, inspection);
@@ -2591,6 +2549,20 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
break;
+
+ //系统 项目公用
+ case nameof(ReadingCriterionDictionary):
+
+ var readingCriterionDictionary = entityObj as ReadingCriterionDictionary;
+
+ if (readingCriterionDictionary.IsSystemCriterion)
+ {
+ type = $"{type}/{readingCriterionDictionary.ParentCode}";
+ }
+
+ break;
+
+
}
#endregion
diff --git a/IRaCIS.Core.Infra.EFCore/Common/Dto/SetDictionaryValueDto.cs b/IRaCIS.Core.Infra.EFCore/Common/Dto/SetDictionaryValueDto.cs
index 11404e29b..9aad9d978 100644
--- a/IRaCIS.Core.Infra.EFCore/Common/Dto/SetDictionaryValueDto.cs
+++ b/IRaCIS.Core.Infra.EFCore/Common/Dto/SetDictionaryValueDto.cs
@@ -150,6 +150,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common.Dto
//标识操作 是否区分接口
public bool IsDistinctionInterface=true;
+ public string ExtraIndentification = string.Empty;
+
}