diff --git a/IRaCIS.Core.Application/Helper/FileFormatConvertHelper.cs b/IRaCIS.Core.Application/Helper/FileFormatConvertHelper.cs new file mode 100644 index 000000000..bca41c8f0 --- /dev/null +++ b/IRaCIS.Core.Application/Helper/FileFormatConvertHelper.cs @@ -0,0 +1,16 @@ +using DocumentFormat.OpenXml.Bibliography; +using NPOI.XWPF.UserModel; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IRaCIS.Core.Application.Helper +{ + public class FileFormatConvertHelper + { + + + } +} diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index d175dc64c..0e87a6845 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -1067,10 +1067,18 @@ namespace IRaCIS.Core.Application.Service var reReadingVisitTask = generateTaskCommand.ReReadingTask; - + Guid? subjectVisitId = Guid.Empty; + if (reReadingVisitTask.SourceSubjectVisitId == null) + { + subjectVisitId= _readModuleRepository.Where(t=>t.Id==reReadingVisitTask.SouceReadModuleId).Select(t=>t.SubjectVisitId).FirstOrDefault(); + } + else + { + subjectVisitId = reReadingVisitTask.SourceSubjectVisitId; + } - var subjectVisitUrgentInfo = await _subjectVisitRepository.Where(x => x.Id == reReadingVisitTask.SourceSubjectVisitId).Select(x => new + var subjectVisitUrgentInfo = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Select(x => new { x.PDState, x.IsEnrollmentConfirm, diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 34ec95891..4019c776b 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -783,7 +783,9 @@ namespace IRaCIS.Core.Application.Service.Allocation //var defalutSortArray = new string[] { nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.IsUrgent) + " desc", nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.SubjectId), nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.VisitTaskNum) }; - var defalutSortArray = new string[] { nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.TaskState), nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.IsUrgent) + " desc", + var defalutSortArray = new string[] { nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.TaskState), + nameof(ReReadingTaskView.RequestReReadingResultEnum) , + nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.IsUrgent) + " desc", nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.SubjectId),nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.VisitTaskNum) }; diff --git a/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs b/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs index a896d0f7f..2ec831eda 100644 --- a/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs +++ b/IRaCIS.Core.Application/Service/Inspection/FrontAuditConfigService.cs @@ -798,7 +798,7 @@ namespace IRaCIS.Core.Application.Service foreach (var translateInfo in translateInfoList) { //Json 解析后 true 变为了True - jsonObject[translateInfo.ColumnValue] = translateDataList[translateInfo.TranslateDictionaryName].Where(t => t.Code.ToLower() == jsonObject[translateInfo.ColumnValue].ToString().ToLower()).Select(t => t.ValueCN).FirstOrDefault(); + jsonObject[translateInfo.ColumnValue] = translateDataList[translateInfo.TranslateDictionaryName].Where(t => t.Code.ToLower() == jsonObject[translateInfo.ColumnValue]?.ToString().ToLower()).Select(t => t.ValueCN).FirstOrDefault(); } //处理动态翻译 diff --git a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs index 618ddda12..282306370 100644 --- a/IRaCIS.Core.Application/Service/QC/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/QC/_MapConfig.cs @@ -179,15 +179,15 @@ namespace IRaCIS.Core.Application.Service .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code)) .ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName)); - CreateMap() - .ForMember(o => o.OverallTumorEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstOrDefault().Answer)) + CreateMap().IncludeBase() .ForMember(o => o.TargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).FirstOrDefault().Answer)) .ForMember(o => o.NoneTargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NoTargetLesion).FirstOrDefault().Answer)) .ForMember(o => o.IsExistNewlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NewLesions).FirstOrDefault().Answer)) - .ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode)) - .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code)) - .ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName)); + //.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode)) + //.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code)) + //.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName)) + ; CreateMap().IncludeBase() diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index 047af8fc5..7ab3f8a3b 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -1917,8 +1917,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common var cloneEntity = firstEntity.Clone(); - - + //保证Id 唯一 cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.ReadingQuestionCriterionTrialId.ToString(), firstEntity.ReadingQuestionTrialId.ToString(), firstEntity.VisitTaskId.ToString()); @@ -2159,6 +2158,19 @@ namespace IRaCIS.Core.Infra.EFCore.Common var list = entitys.Where(x => x.Entity.GetType() == typeof(ReadingGlobalTaskInfo)).Select(t => t.Entity as ReadingGlobalTaskInfo); + //不是固定问题的问题 + var firstEntity = list.Where(t => t.QuestionId != null).First(); + + var cloneEntity = firstEntity.Clone(); + + var criterion = await _dbContext.VisitTask.Where(t => t.Id == cloneEntity.GlobalTaskId).Select(t => new { t.TrialReadingCriterionId,t.TrialReadingCriterion.CriterionType } ).FirstOrDefaultAsync(); + + //保证Id 唯一 + cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.GlobalTaskId.ToString(), criterion.TrialReadingCriterionId.ToString()); + + var extraIdentification = string.Empty; + + var objList = new List(); foreach (var group in list.GroupBy(t => t.TaskId)) @@ -2177,62 +2189,73 @@ namespace IRaCIS.Core.Infra.EFCore.Common }).OrderBy(t => t.ShowOrder).ToListAsync(); - //获取访视的评估结果 也要记录稽查 - var visitAnswerList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => t.VisitTaskId == group.Key && questionIdList.Contains(t.ReadingQuestionTrialId)).Select(u => new + //pcwg3 的问题没有提交过来,是通过固定的方式去查询出来 + if (criterion.CriterionType == CriterionType.PCWG3) { - TaskBlindName = u.VisitTask.TaskBlindName, - QuestionId = u.ReadingQuestionTrialId, - u.Answer - }).ToListAsync(); + + extraIdentification = "/PCWG3"; + //获取访视的评估结果 也要记录稽查 + var visitAnswerList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => t.VisitTaskId == group.Key &&t.ReadingQuestionTrial.GlobalReadingShowType != GlobalReadingShowType.NotShow).Select(u => new + { + TaskBlindName = u.VisitTask.TaskBlindName, + QuestionId = u.ReadingQuestionTrialId, + u.ReadingQuestionTrial.QuestionName, + u.ReadingQuestionTrial.DictionaryCode, + u.ReadingQuestionTrial.ShowOrder, + u.Answer + }).OrderBy(t=>t.ShowOrder).ToListAsync(); - var obj = new + var obj = new + { + TaskBlindName = visitAnswerList.Select(t => t.TaskBlindName).FirstOrDefault(), + VisitQuestionAnswerList = visitAnswerList, + + + Reason = group.Where(t => t.QuestionId == null && t.GlobalAnswerType == GlobalAnswerType.Reason).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() + }; + + objList.Add(obj); + + + + } + else { - TaskBlindName = visitAnswerList.Select(t => t.TaskBlindName).FirstOrDefault(), - 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() - }; - - objList.Add(obj); + //获取访视的评估结果 也要记录稽查 + var visitAnswerList = await _dbContext.ReadingTaskQuestionAnswer.Where(t => t.VisitTaskId == group.Key && questionIdList.Contains(t.ReadingQuestionTrialId)).Select(u => new + { + TaskBlindName = u.VisitTask.TaskBlindName, + QuestionId = u.ReadingQuestionTrialId, + u.Answer + }).ToListAsync(); - #region 因为要记录一个表 所以这里屏蔽 - //var firstEntity = questionAnswerList.First(); + var obj = new + { + TaskBlindName = visitAnswerList.Select(t => t.TaskBlindName).FirstOrDefault(), + 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() + }; - //var cloneEntity = firstEntity.Clone(); + objList.Add(obj); - ////保证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, - //}, obj); - #endregion } - var firstEntity = list.Where(t => t.QuestionId != null).First(); - - var cloneEntity = firstEntity.Clone(); - - var trialReadingCriterionId = await _dbContext.VisitTask.Where(t => t.Id == cloneEntity.GlobalTaskId).Select(t => t.TrialReadingCriterionId).FirstOrDefaultAsync(); - - //保证Id 唯一 - cloneEntity.Id = IdentifierHelper.CreateGuid(firstEntity.GlobalTaskId.ToString(), trialReadingCriterionId.ToString()); - await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO() { VisitTaskId = x.GlobalTaskId, - TrialReadingCriterionId = trialReadingCriterionId, + TrialReadingCriterionId = criterion.TrialReadingCriterionId, ObjectRelationParentId = x.TaskId, + ExtraIndentification=extraIdentification }, new { GlobalAnswerList = objList }); }