Compare commits
No commits in common. "5c0917f14e0073058be072fd12b279c444106c23" and "df104ec527c57b7a8664f8872f1ea0d103d584af" have entirely different histories.
5c0917f14e
...
df104ec527
|
|
@ -243,7 +243,6 @@ public static class ExcelExportHelper
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class DynamicColumnConfig
|
public class DynamicColumnConfig
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -2900,9 +2900,6 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
ShowOrder = t.ShowOrder
|
ShowOrder = t.ShowOrder
|
||||||
}).OrderBy(t => t.TableName).ThenBy(t => t.ShowOrder).ToList();
|
}).OrderBy(t => t.TableName).ThenBy(t => t.ShowOrder).ToList();
|
||||||
|
|
||||||
var isMutiTable = trialConfigTableQuestionList.Select(t => t.TableName).Distinct().Count() > 1;
|
|
||||||
|
|
||||||
|
|
||||||
//外层问题处理
|
//外层问题处理
|
||||||
var fistLeveLNameList = trialConfigQuestionList.Select(t => new DynamicColumnConfig.ColumItem()
|
var fistLeveLNameList = trialConfigQuestionList.Select(t => new DynamicColumnConfig.ColumItem()
|
||||||
{
|
{
|
||||||
|
|
@ -2913,128 +2910,96 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
var translateDicNameList = trialConfigQuestionList.Union(trialConfigTableQuestionList).Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(t => t.TranslateDicName).Distinct().ToList();
|
var translateDicNameList = trialConfigQuestionList.Union(trialConfigTableQuestionList).Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(t => t.TranslateDicName).Distinct().ToList();
|
||||||
|
|
||||||
//单表格问题(直接用表格问题名称) 或者没有表格问题
|
#region 表格问题处理 问题名称是 表格名称_表格子问题名
|
||||||
if (isMutiTable == false)
|
|
||||||
|
var isMutiTable = trialConfigTableQuestionList.Select(t => t.TableName).Distinct().Count() > 1;
|
||||||
|
|
||||||
|
//多表格问题
|
||||||
|
if (isMutiTable)
|
||||||
{
|
{
|
||||||
//一个表格,或者没有表格
|
//多表格,增加的一列,就用Guid.Empty 标识
|
||||||
|
//var extralNameList = new List<DynamicColumnConfig.ColumItem>() { new DynamicColumnConfig.ColumItem() { Id = Guid.Empty, Name = _userInfo.IsEn_Us ? "Table Name" : "表格名称" } };
|
||||||
|
|
||||||
|
var tableQuestionNameList = trialConfigTableQuestionList.Select(t => new DynamicColumnConfig.ColumItem() { Id = t.QuestionId, Name = t.TableName + "_" + t.QuestionName, CDISCCode = t.CDISCCode }).ToList();
|
||||||
|
|
||||||
|
configCoumNameList = fistLeveLNameList/*.Union(extralNameList)*/.Union(tableQuestionNameList).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//单表格问题(直接用表格问题名称) 或者没有表格问题
|
||||||
|
|
||||||
var tableNameList = trialConfigTableQuestionList.Select(t => new DynamicColumnConfig.ColumItem() { Id = t.QuestionId, Name = t.QuestionName, CDISCCode = t.CDISCCode }).ToList();
|
var tableNameList = trialConfigTableQuestionList.Select(t => new DynamicColumnConfig.ColumItem() { Id = t.QuestionId, Name = t.QuestionName, CDISCCode = t.CDISCCode }).ToList();
|
||||||
|
|
||||||
configCoumNameList = fistLeveLNameList.Union(tableNameList).ToList();
|
configCoumNameList = fistLeveLNameList.Union(tableNameList).ToList();
|
||||||
|
}
|
||||||
|
|
||||||
//最终的病灶列表 要把裁判的也要加进去,需要处理裁判标记
|
|
||||||
foreach (var item in taskList.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum))
|
|
||||||
|
|
||||||
|
#region 扩展表格问题
|
||||||
|
|
||||||
|
|
||||||
|
//最终的病灶列表 要把裁判的也要加进去,需要处理裁判标记
|
||||||
|
foreach (var item in taskList.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum))
|
||||||
|
{
|
||||||
|
//有病灶,并且至少配置了一个病灶问题
|
||||||
|
if (item.LesionList.Count > 0 && item.LesionList.SelectMany(t => t.LessionAnswerList).Any())
|
||||||
{
|
{
|
||||||
//有病灶,并且至少配置了一个病灶问题
|
foreach (var lession in item.LesionList.OrderBy(t => t.LessionType).ThenBy(t => t.LessionCode))
|
||||||
if (item.LesionList.Count > 0 && item.LesionList.SelectMany(t => t.LessionAnswerList).Any())
|
|
||||||
{
|
{
|
||||||
foreach (var lession in item.LesionList.OrderBy(t => t.LessionType).ThenBy(t => t.LessionCode))
|
//病灶配置了问题 才进行导出
|
||||||
|
if (lession.LessionAnswerList.Count > 0)
|
||||||
{
|
{
|
||||||
//病灶配置了问题 才进行导出
|
var firstLessionAnser = lession.LessionAnswerList.FirstOrDefault();
|
||||||
if (lession.LessionAnswerList.Count > 0)
|
|
||||||
|
var dynamicLessionInfoList = new List<CommonQuesionInfo>();
|
||||||
|
|
||||||
|
if (isMutiTable)
|
||||||
{
|
{
|
||||||
|
var addLessionInfoList = new List<CommonQuesionInfo>();
|
||||||
|
|
||||||
var dynamicLessionInfoList = new List<CommonQuesionInfo>();
|
//addLessionInfoList.Add(new CommonQuesionInfo() { QuestionId = Guid.Empty, QuestionName = _userInfo.IsEn_Us ? "Table Name" : "表格名称", QuestionValue = firstLessionAnser.TableName });
|
||||||
|
|
||||||
|
var dynamicPartialLessionInfoList = lession.LessionAnswerList.Select(t => new CommonQuesionInfo() { QuestionId = t.TableQuesionId, QuestionName = t.TableName + "_" + t.QuestionName, QuestionValue = t.QuestionValue, TranslateDicName = t.TranslateDicName, CDISCCode = t.CDISCCode });
|
||||||
|
|
||||||
|
//有三部分组成 外层问题+ 固定列表格名称 + 动态的表格问题
|
||||||
|
dynamicLessionInfoList = item.QuestionAnswerList.Union(addLessionInfoList).Union(dynamicPartialLessionInfoList).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
var dynamicPartialLessionInfoList = lession.LessionAnswerList.Select(t => new CommonQuesionInfo() { QuestionId = t.TableQuesionId, QuestionName = t.QuestionName, QuestionValue = t.QuestionValue, TranslateDicName = t.TranslateDicName, CDISCCode = t.CDISCCode });
|
var dynamicPartialLessionInfoList = lession.LessionAnswerList.Select(t => new CommonQuesionInfo() { QuestionId = t.TableQuesionId, QuestionName = t.QuestionName, QuestionValue = t.QuestionValue, TranslateDicName = t.TranslateDicName, CDISCCode = t.CDISCCode });
|
||||||
|
|
||||||
//两部分组成 外层问题+ 动态的表格问题
|
//两部分组成 外层问题+ 动态的表格问题
|
||||||
dynamicLessionInfoList = item.QuestionAnswerList.Union(dynamicPartialLessionInfoList).ToList();
|
dynamicLessionInfoList = item.QuestionAnswerList.Union(dynamicPartialLessionInfoList).ToList();
|
||||||
|
|
||||||
var cloneItem = item.Clone();
|
|
||||||
cloneItem.QuestionAnswerList = dynamicLessionInfoList;
|
|
||||||
list.Add(cloneItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var cloneItem = item.Clone();
|
||||||
|
cloneItem.QuestionAnswerList = dynamicLessionInfoList;
|
||||||
|
list.Add(cloneItem);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//要把裁判任务加进去 裁判任务上没有病灶
|
|
||||||
|
|
||||||
list.Add(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else
|
|
||||||
{
|
|
||||||
//多表格问题,需要用新的模板,并且用行的方式展示 (不是之前表格名称_表格子问题名的方式)
|
|
||||||
|
|
||||||
export_Template = StaticData.Export.CDISC_MutiTable_Reading_Export;
|
|
||||||
|
|
||||||
configCoumNameList = fistLeveLNameList.ToList();
|
|
||||||
|
|
||||||
var translateUnitList = await _dictionaryService.GetBasicDataSelect("ValueUnit");
|
|
||||||
|
|
||||||
|
|
||||||
foreach (var item in taskList.OrderBy(t => t.SubjectCode).ThenBy(t => t.ArmEnum).ThenBy(t => t.VisitTaskNum))
|
|
||||||
{
|
{
|
||||||
//有病灶,并且至少配置了一个病灶问题
|
//要把裁判任务加进去 裁判任务上没有病灶
|
||||||
if (item.LesionList.Count > 0 && item.LesionList.SelectMany(t => t.LessionAnswerList).Any())
|
|
||||||
{
|
|
||||||
foreach (var lession in item.LesionList.OrderBy(t => t.LessionType).ThenBy(t => t.LessionCode))
|
|
||||||
{
|
|
||||||
//病灶配置了问题 才进行导出
|
|
||||||
if (lession.LessionAnswerList.Count > 0)
|
|
||||||
{
|
|
||||||
|
|
||||||
//遍历病灶的每个问题
|
|
||||||
foreach (var lessionItem in lession.LessionAnswerList)
|
|
||||||
{
|
|
||||||
|
|
||||||
var cloneItem = item.Clone();
|
|
||||||
|
|
||||||
|
|
||||||
string unitText = lessionItem.Unit switch
|
|
||||||
{
|
|
||||||
ValueUnit.Custom => lessionItem.CustomUnit,
|
|
||||||
null => "",
|
|
||||||
_ => _userInfo.IsEn_Us ? translateUnitList.FirstOrDefault(t => t.Code == ((int)lessionItem.Unit).ToString())?.Value ?? ""
|
|
||||||
: translateUnitList.FirstOrDefault(t => t.Code == ((int)lessionItem.Unit).ToString())?.ValueCN ?? ""
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
cloneItem.Group = lessionItem.TableName;
|
|
||||||
cloneItem.TRLINKID = lessionItem.RowId.ToString();
|
|
||||||
cloneItem.TRORRES = lessionItem.CDISCCode;
|
|
||||||
cloneItem.TRTEST = lessionItem.QuestionValue;
|
|
||||||
cloneItem.TRORRESU = unitText;
|
|
||||||
|
|
||||||
|
|
||||||
list.Add(cloneItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
//var dynamicLessionInfoList = new List<CommonQuesionInfo>();
|
|
||||||
|
|
||||||
//var dynamicPartialLessionInfoList = lession.LessionAnswerList.Select(t => new CommonQuesionInfo() { QuestionId = t.TableQuesionId, QuestionName = t.QuestionName, QuestionValue = t.QuestionValue, TranslateDicName = t.TranslateDicName, CDISCCode = t.CDISCCode });
|
|
||||||
|
|
||||||
////两部分组成 外层问题+ 动态的表格问题
|
|
||||||
//dynamicLessionInfoList = item.QuestionAnswerList.Union(dynamicPartialLessionInfoList).ToList();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//要把裁判任务加进去 裁判任务上没有病灶
|
|
||||||
|
|
||||||
list.Add(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
list.Add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
dynamicColumnConfig = new DynamicColumnConfig()
|
dynamicColumnConfig = new DynamicColumnConfig()
|
||||||
{
|
{
|
||||||
AutoColumnTitleRowIndex = 1,
|
AutoColumnTitleRowIndex = 1,
|
||||||
AutoColumnStartIndex = 6,
|
AutoColumnStartIndex = 6,
|
||||||
TempalteLastColumnIndex = 15,
|
TempalteLastColumnIndex = 10,
|
||||||
DynamicItemDicName = "TranslateDicName",
|
DynamicItemDicName = "TranslateDicName",
|
||||||
DynamicItemValueName = "QuestionValue",
|
DynamicItemValueName = "QuestionValue",
|
||||||
DynamicItemTitleName = "QuestionName",
|
DynamicItemTitleName = "QuestionName",
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,5 @@ namespace IRaCIS.Application.Interfaces
|
||||||
|
|
||||||
Task<Dictionary<string, List<BasicDicSelectCopy>>> GetBasicDataSelect(string[] searchArray);
|
Task<Dictionary<string, List<BasicDicSelectCopy>>> GetBasicDataSelect(string[] searchArray);
|
||||||
|
|
||||||
Task<List<BasicDicSelect>> GetBasicDataSelect(string searchKey);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1310,7 +1310,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
//阅片完成时间
|
//阅片完成时间
|
||||||
public DateTime? SignTime { get; set; }
|
public DateTime? SignTime { get; set; }
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 肿瘤学结果
|
#region 肿瘤学结果
|
||||||
|
|
@ -1323,23 +1322,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public string OncologyUserName { get; set; }
|
public string OncologyUserName { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region CDISC 固定字段
|
|
||||||
//组
|
|
||||||
public string Group { get; set; }
|
|
||||||
|
|
||||||
//行标识
|
|
||||||
public string TRLINKID { get; set; }
|
|
||||||
|
|
||||||
//列名
|
|
||||||
public string TRTEST { get; set; }
|
|
||||||
|
|
||||||
//值
|
|
||||||
public string TRORRES { get; set; }
|
|
||||||
|
|
||||||
//单位
|
|
||||||
public string TRORRESU { get; set; }
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CommonLessionExport : CommonEvaluationExport
|
public class CommonLessionExport : CommonEvaluationExport
|
||||||
|
|
@ -1374,17 +1356,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public string CDISCCode { get; set; }
|
public string CDISCCode { get; set; }
|
||||||
|
|
||||||
|
|
||||||
//病灶Id
|
|
||||||
public Guid RowId { get; set; }
|
|
||||||
|
|
||||||
//如果是4 就取CustomUnit 否则就是字典翻译
|
|
||||||
[Comment("单位")]
|
|
||||||
public ValueUnit? Unit { get; set; }
|
|
||||||
|
|
||||||
[Comment("自定义单位")]
|
|
||||||
public string CustomUnit { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -300,11 +300,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
CreateMap<ReadingTableQuestionAnswer, CommonLessionQuestionAnswerInfo>()
|
CreateMap<ReadingTableQuestionAnswer, CommonLessionQuestionAnswerInfo>()
|
||||||
//.ForMember(o => o.LessionCode, t => t.MapFrom(u => u.Lesion.RowMark))
|
//.ForMember(o => o.LessionCode, t => t.MapFrom(u => u.Lesion.RowMark))
|
||||||
//.ForMember(o => o.LessionType, t => t.MapFrom(u => (int?)u.ReadingQuestionTrial.LesionType))
|
//.ForMember(o => o.LessionType, t => t.MapFrom(u => (int?)u.ReadingQuestionTrial.LesionType))
|
||||||
|
|
||||||
.ForMember(o => o.CustomUnit, t => t.MapFrom(u => u.ReadingTableQuestionTrial.CustomUnit))
|
|
||||||
.ForMember(o => o.Unit, t => t.MapFrom(u => u.ReadingTableQuestionTrial.Unit))
|
|
||||||
.ForMember(o => o.TableQuesionId, t => t.MapFrom(u => u.ReadingTableQuestionTrial.Id))
|
|
||||||
.ForMember(o => o.QuestionMark, t => t.MapFrom(u => u.ReadingTableQuestionTrial.QuestionMark))
|
.ForMember(o => o.QuestionMark, t => t.MapFrom(u => u.ReadingTableQuestionTrial.QuestionMark))
|
||||||
|
.ForMember(o => o.TableQuesionId, t => t.MapFrom(u => u.ReadingTableQuestionTrial.Id))
|
||||||
.ForMember(o => o.QuestionName, t => t.MapFrom(u => isEn_Us ? u.ReadingTableQuestionTrial.QuestionEnName : u.ReadingTableQuestionTrial.QuestionName))
|
.ForMember(o => o.QuestionName, t => t.MapFrom(u => isEn_Us ? u.ReadingTableQuestionTrial.QuestionEnName : u.ReadingTableQuestionTrial.QuestionName))
|
||||||
.ForMember(o => o.QuestionValue, t => t.MapFrom(u => u.Answer))
|
.ForMember(o => o.QuestionValue, t => t.MapFrom(u => u.Answer))
|
||||||
.ForMember(o => o.CDISCCode, t => t.MapFrom(u => u.ReadingTableQuestionTrial.CDISCCode))
|
.ForMember(o => o.CDISCCode, t => t.MapFrom(u => u.ReadingTableQuestionTrial.CDISCCode))
|
||||||
|
|
|
||||||
|
|
@ -284,9 +284,7 @@ public static class StaticData
|
||||||
public const string OCT_ReadingLession_Export = "OCT_ReadingLession_Export";
|
public const string OCT_ReadingLession_Export = "OCT_ReadingLession_Export";
|
||||||
|
|
||||||
public const string CDISC_Reading_Export = "CDISC_Reading_Export";
|
public const string CDISC_Reading_Export = "CDISC_Reading_Export";
|
||||||
public const string CDISC_MutiTable_Reading_Export = "CDISC_MutiTable_Reading_Export";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public const string IVUSTheMeasuredValueOfEachMatchedFragment = "IVUS_TheMeasuredValueOfEachMatchedFragment";
|
public const string IVUSTheMeasuredValueOfEachMatchedFragment = "IVUS_TheMeasuredValueOfEachMatchedFragment";
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue