Merge branch 'Test.IRC' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test.IRC
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
2654f85c32
|
@ -15,6 +15,7 @@ using Newtonsoft.Json.Linq;
|
||||||
using NPOI.HSSF.UserModel;
|
using NPOI.HSSF.UserModel;
|
||||||
using NPOI.XSSF.UserModel;
|
using NPOI.XSSF.UserModel;
|
||||||
using SkiaSharp;
|
using SkiaSharp;
|
||||||
|
using System.Collections;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service;
|
namespace IRaCIS.Core.Application.Service;
|
||||||
|
@ -51,21 +52,24 @@ public static class ExcelExportHelper
|
||||||
var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslatePropertyList.Select(t => t.DicParentCode).Distinct().ToArray());
|
var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslatePropertyList.Select(t => t.DicParentCode).Distinct().ToArray());
|
||||||
|
|
||||||
|
|
||||||
var dic = (JsonConvert.DeserializeObject<IDictionary<string, object>>(data.ToJsonNotIgnoreNull())).IfNullThrowException();
|
var dic = data.ConvertToDictionary();
|
||||||
|
|
||||||
|
|
||||||
foreach (var key in dic.Keys)
|
foreach (var key in dic.Keys)
|
||||||
{
|
{
|
||||||
//是数组 那么找到对应的属性 进行翻译
|
//是数组 那么找到对应的属性 进行翻译
|
||||||
if (dic[key].GetType().IsAssignableFrom(typeof(JArray)))
|
if (dic[key].GetType().GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IList<>)))
|
||||||
{
|
{
|
||||||
|
|
||||||
var newObjList = new List<object>();
|
var newObjList = new List<object>();
|
||||||
var no = 1;
|
var no = 1;
|
||||||
|
|
||||||
foreach (var item in dic[key] as JArray)
|
foreach (var item in dic[key] as IList )
|
||||||
{
|
{
|
||||||
var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
|
//var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
|
||||||
|
|
||||||
|
var itemDic = item.ConvertToDictionary();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var needTranslateProperty in needTranslatePropertyList)
|
foreach (var needTranslateProperty in needTranslatePropertyList)
|
||||||
|
@ -73,7 +77,7 @@ public static class ExcelExportHelper
|
||||||
//翻译的属性依赖其他属性
|
//翻译的属性依赖其他属性
|
||||||
if (needTranslateProperty.IsTranslateDenpendOtherProperty)
|
if (needTranslateProperty.IsTranslateDenpendOtherProperty)
|
||||||
{
|
{
|
||||||
if (item[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
|
if (itemDic[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
|
||||||
{
|
{
|
||||||
var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
|
var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
|
||||||
|
|
||||||
|
@ -227,29 +231,30 @@ public static class ExcelExportHelper
|
||||||
|
|
||||||
var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslatePropertyList.Select(t => t.DicParentCode).Distinct().ToArray());
|
var translateDataList = await _dictionaryService.GetBasicDataSelect(needTranslatePropertyList.Select(t => t.DicParentCode).Distinct().ToArray());
|
||||||
|
|
||||||
|
var dic = data.ConvertToDictionary();
|
||||||
var dic = (JsonConvert.DeserializeObject<IDictionary<string, object>>(data.ToJsonNotIgnoreNull())).IfNullThrowException();
|
//var dic = (JsonConvert.DeserializeObject<IDictionary<string, object>>(data.ToJsonNotIgnoreNull())).IfNullThrowException();
|
||||||
|
|
||||||
foreach (var key in dic.Keys)
|
foreach (var key in dic.Keys)
|
||||||
{
|
{
|
||||||
//是数组 那么找到对应的属性 进行翻译
|
//是数组 那么找到对应的属性 进行翻译
|
||||||
if (dic[key].GetType().IsAssignableFrom(typeof(JArray)))
|
if (dic[key].GetType().GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IList<>)))
|
||||||
|
//if (dic[key].GetType().IsAssignableFrom(typeof(JArray)))
|
||||||
{
|
{
|
||||||
|
|
||||||
var newObjList = new List<object>();
|
var newObjList = new List<object>();
|
||||||
var no = 1;
|
var no = 1;
|
||||||
|
foreach (var item in dic[key] as IList)
|
||||||
foreach (var item in dic[key] as JArray)
|
//foreach (var item in dic[key] as JArray)
|
||||||
{
|
{
|
||||||
var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
|
//var itemDic = JsonConvert.DeserializeObject<IDictionary<string, object>>(item.ToJsonNotIgnoreNull());
|
||||||
|
var itemDic = item.ConvertToDictionary();
|
||||||
|
|
||||||
foreach (var needTranslateProperty in needTranslatePropertyList)
|
foreach (var needTranslateProperty in needTranslatePropertyList)
|
||||||
{
|
{
|
||||||
//翻译的属性依赖其他属性
|
//翻译的属性依赖其他属性
|
||||||
if (needTranslateProperty.IsTranslateDenpendOtherProperty)
|
if (needTranslateProperty.IsTranslateDenpendOtherProperty)
|
||||||
{
|
{
|
||||||
if (item[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
|
if (itemDic[needTranslateProperty.DependPropertyName]?.ToString().ToLower() == needTranslateProperty.DependPropertyValueStr.ToLower())
|
||||||
{
|
{
|
||||||
var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
|
var beforeValue = itemDic[needTranslateProperty.Name]?.ToString();
|
||||||
|
|
||||||
|
|
|
@ -23,13 +23,13 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
|
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
|
||||||
|
|
||||||
private readonly IRepository<SubjectAdditionalEvaluationResult> _subjectAdditionalEvaluationResultRepository;
|
private readonly IRepository<SubjectAdditionalEvaluationResult> _subjectAdditionalEvaluationResultRepository;
|
||||||
|
private readonly IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository;
|
||||||
|
|
||||||
|
|
||||||
public VisitTaskIsFrontTaskNeedSignButNotSignTrigger(
|
public VisitTaskIsFrontTaskNeedSignButNotSignTrigger(
|
||||||
|
|
||||||
IRepository<VisitTask> visitTaskRepository, IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IRepository<ReadingQuestionTrial> trialReadingQuestionRepository
|
IRepository<VisitTask> visitTaskRepository, IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IRepository<ReadingQuestionTrial> trialReadingQuestionRepository
|
||||||
, IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository, IRepository<SubjectAdditionalEvaluationResult> subjectAdditionalEvaluationResultRepository)
|
, IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository, IRepository<SubjectAdditionalEvaluationResult> subjectAdditionalEvaluationResultRepository, IRepository<ReadingJudgeInfo> readingJudgeInfoRepository)
|
||||||
{
|
{
|
||||||
_trialReadingCriterionRepository = trialReadingCriterionRepository;
|
_trialReadingCriterionRepository = trialReadingCriterionRepository;
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
|
|
||||||
_readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
|
_readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
|
||||||
_subjectAdditionalEvaluationResultRepository = subjectAdditionalEvaluationResultRepository;
|
_subjectAdditionalEvaluationResultRepository = subjectAdditionalEvaluationResultRepository;
|
||||||
|
_readingJudgeInfoRepository = readingJudgeInfoRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
Expression<Func<VisitTask, bool>> visitTaskLambda = x => x.TrialId == visitTask.TrialId && x.SubjectId == visitTask.SubjectId && x.TrialReadingCriterionId == visitTask.TrialReadingCriterionId;
|
Expression<Func<VisitTask, bool>> visitTaskLambda = x => x.TrialId == visitTask.TrialId && x.SubjectId == visitTask.SubjectId && x.TrialReadingCriterionId == visitTask.TrialReadingCriterionId;
|
||||||
if (context.ChangeType == ChangeType.Added)
|
if (context.ChangeType == ChangeType.Added)
|
||||||
{
|
{
|
||||||
|
|
||||||
//判断是否需要临床数据签名 不需要 就不用维护
|
//判断是否需要临床数据签名 不需要 就不用维护
|
||||||
if (visitTask.IsNeedClinicalDataSign)
|
if (visitTask.IsNeedClinicalDataSign)
|
||||||
{
|
{
|
||||||
|
@ -95,101 +96,112 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else if (context.ChangeType == ChangeType.Modified)
|
||||||
|
{
|
||||||
|
if (visitTask.ReadingCategory == ReadingCategory.Judge && (visitTask.TaskState == TaskState.Adbandon || visitTask.TaskState == TaskState.HaveReturned))
|
||||||
|
{
|
||||||
|
var find = _readingJudgeInfoRepository.Where(t => t.JudgeTaskId == visitTask.Id).FirstOrDefault();
|
||||||
|
|
||||||
|
if (find != null)
|
||||||
|
{
|
||||||
|
var ids = new Guid[] { find.TaskIdOne, find.TaskIdTwo };
|
||||||
|
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => ids.Contains(t.Id), u => new VisitTask() { JudgeResultTaskId = null });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
#region 附加评估 暂时废弃
|
#region 附加评估 暂时废弃
|
||||||
// //从未签名状态 改为签名状态时 判断是否进行了附加评估,将附加评估的结果冗余
|
// //从未签名状态 改为签名状态时 判断是否进行了附加评估,将附加评估的结果冗余
|
||||||
// if (context.ChangeType == ChangeType.Modified && visitTask.ReadingTaskState == ReadingTaskState.HaveSigned && context.UnmodifiedEntity.ReadingTaskState != ReadingTaskState.HaveSigned)
|
// if (context.ChangeType == ChangeType.Modified && visitTask.ReadingTaskState == ReadingTaskState.HaveSigned && context.UnmodifiedEntity.ReadingTaskState != ReadingTaskState.HaveSigned)
|
||||||
// {
|
// {
|
||||||
|
|
||||||
// var criterion = _trialReadingCriterionRepository.Where(t => t.Id == visitTask.TrialReadingCriterionId).FirstOrDefault();
|
// var criterion = _trialReadingCriterionRepository.Where(t => t.Id == visitTask.TrialReadingCriterionId).FirstOrDefault();
|
||||||
|
|
||||||
// //如果是附加评估
|
// //如果是附加评估
|
||||||
// if (criterion.IsAdditionalAssessment)
|
// if (criterion.IsAdditionalAssessment)
|
||||||
// {
|
// {
|
||||||
|
|
||||||
|
|
||||||
// if (visitTask.ReadingCategory == ReadingCategory.Visit)
|
// if (visitTask.ReadingCategory == ReadingCategory.Visit)
|
||||||
// {
|
// {
|
||||||
|
|
||||||
|
|
||||||
// switch (criterion.CriterionType)
|
// switch (criterion.CriterionType)
|
||||||
// {
|
// {
|
||||||
// case CriterionType.RECIST1Point1:
|
// case CriterionType.RECIST1Point1:
|
||||||
// var isbaseLine = _visitTaskRepository.Where(t => t.Id == visitTask.Id).Select(t => t.SourceSubjectVisit.IsBaseLine).FirstOrDefault();
|
// var isbaseLine = _visitTaskRepository.Where(t => t.Id == visitTask.Id).Select(t => t.SourceSubjectVisit.IsBaseLine).FirstOrDefault();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if (isbaseLine)
|
// if (isbaseLine)
|
||||||
// {
|
// {
|
||||||
// var currentTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == visitTask.Id &&
|
// var currentTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == visitTask.Id &&
|
||||||
// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group"
|
// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group"
|
||||||
// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync();
|
// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
||||||
// //双重阅片完成了
|
// //双重阅片完成了
|
||||||
// if (criterion.ReadingType == ReadingMethod.Double &&
|
// if (criterion.ReadingType == ReadingMethod.Double &&
|
||||||
//(_visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == 2)
|
//(_visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == 2)
|
||||||
// )
|
// )
|
||||||
// {
|
// {
|
||||||
|
|
||||||
// var otherTaskId = await _visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.Id != visitTask.Id)
|
// var otherTaskId = await _visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.Id != visitTask.Id)
|
||||||
// .Select(t => t.Id).FirstOrDefaultAsync();
|
// .Select(t => t.Id).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
||||||
// var otherTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == otherTaskId &&
|
// var otherTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == otherTaskId &&
|
||||||
// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group"
|
// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group"
|
||||||
// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync();
|
// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult()
|
// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult()
|
||||||
// {
|
// {
|
||||||
// TrialReadingCriterionId = visitTask.TrialReadingCriterionId,
|
// TrialReadingCriterionId = visitTask.TrialReadingCriterionId,
|
||||||
// IsFinalResult = true,
|
// IsFinalResult = true,
|
||||||
// SubjectId = visitTask.SubjectId,
|
// SubjectId = visitTask.SubjectId,
|
||||||
// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId,
|
// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId,
|
||||||
// FinalAnswer = currentTaskAdditionarlAnswer.Answer,
|
// FinalAnswer = currentTaskAdditionarlAnswer.Answer,
|
||||||
// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode,
|
// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode,
|
||||||
|
|
||||||
// });
|
// });
|
||||||
|
|
||||||
// }
|
// }
|
||||||
// if (criterion.ReadingType == ReadingMethod.Single)
|
// if (criterion.ReadingType == ReadingMethod.Single)
|
||||||
// {
|
// {
|
||||||
|
|
||||||
// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult()
|
// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult()
|
||||||
// {
|
// {
|
||||||
// TrialReadingCriterionId = visitTask.TrialReadingCriterionId,
|
// TrialReadingCriterionId = visitTask.TrialReadingCriterionId,
|
||||||
// IsFinalResult = true,
|
// IsFinalResult = true,
|
||||||
// SubjectId = visitTask.SubjectId,
|
// SubjectId = visitTask.SubjectId,
|
||||||
// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId,
|
// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId,
|
||||||
// FinalAnswer = currentTaskAdditionarlAnswer.Answer,
|
// FinalAnswer = currentTaskAdditionarlAnswer.Answer,
|
||||||
// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode,
|
// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode,
|
||||||
|
|
||||||
// });
|
// });
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// break;
|
// break;
|
||||||
// default:
|
// default:
|
||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -198,8 +210,8 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Infrastructure.Extention
|
namespace IRaCIS.Core.Infrastructure.Extention
|
||||||
{
|
{
|
||||||
|
@ -38,7 +40,30 @@ namespace IRaCIS.Core.Infrastructure.Extention
|
||||||
public static string ToJsonNotIgnoreNull(this object obj)
|
public static string ToJsonNotIgnoreNull(this object obj)
|
||||||
{
|
{
|
||||||
|
|
||||||
return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd HH:mm:ss", ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Include });
|
return JsonConvert.SerializeObject(obj, new JsonSerializerSettings { DateFormatString = "yyyy-MM-dd HH:mm:ss", Formatting = Formatting.Indented, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Include });
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public static Dictionary<string, object> ConvertToDictionary(this object obj)
|
||||||
|
{
|
||||||
|
if (obj == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(obj));
|
||||||
|
}
|
||||||
|
|
||||||
|
Type type = obj.GetType();
|
||||||
|
PropertyInfo[] properties = type.GetProperties();
|
||||||
|
|
||||||
|
Dictionary<string, object> dictionary = new Dictionary<string, object>();
|
||||||
|
|
||||||
|
foreach (PropertyInfo property in properties)
|
||||||
|
{
|
||||||
|
string propertyName = property.Name;
|
||||||
|
object propertyValue = property.GetValue(obj);
|
||||||
|
|
||||||
|
dictionary.Add(propertyName, propertyValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return dictionary;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue