导表co表修改
parent
6d11fc68b4
commit
b712abd1d5
|
|
@ -74,6 +74,7 @@ public class TumorGlobalQuestionAnserInfo
|
|||
[Comment("原任务ID")]
|
||||
public Guid TaskId { get; set; }
|
||||
|
||||
public GlobalAnswerType GlobalAnswerType { get; set; }
|
||||
|
||||
[Comment("问题答案")]
|
||||
public string Answer { get; set; } = string.Empty;
|
||||
|
|
@ -89,6 +90,8 @@ public class TumorExportBaseModel : TU_TR_RSBaseModel
|
|||
|
||||
#region 后续处理额外添加字段
|
||||
|
||||
|
||||
|
||||
public DateTime? JudgeSignTime { get; set; }
|
||||
|
||||
public Guid? SourceSubjectVisitId { get; set; }
|
||||
|
|
@ -204,7 +207,9 @@ public class TU_TR_RSBaseModel
|
|||
|
||||
#endregion
|
||||
|
||||
public DateTime? SignTime { get; set; }
|
||||
|
||||
public string TaskName { get; set; }
|
||||
|
||||
#region 额外翻译字段
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using Amazon.Runtime.Internal.Transform;
|
||||
using DocumentFormat.OpenXml.Bibliography;
|
||||
using DocumentFormat.OpenXml.Office2010.CustomUI;
|
||||
using DocumentFormat.OpenXml.Office2021.DocumentTasks;
|
||||
using DocumentFormat.OpenXml.Spreadsheet;
|
||||
using IRaCIS.Application.Contracts;
|
||||
|
|
@ -253,6 +254,8 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
UserName = t.DoctorUser.UserName,
|
||||
ArmEnum = t.ArmEnum,
|
||||
|
||||
TaskName = t.TaskName,
|
||||
SignTime = t.SignTime,
|
||||
JudgeSignTime = t.ReadingCategory == ReadingCategory.Judge ? t.SignTime : null,
|
||||
SourceSubjectVisitId = t.SourceSubjectVisitId,
|
||||
VisitTaskNum = t.VisitTaskNum,
|
||||
|
|
@ -285,9 +288,10 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
//全局 访视上修改会要求填写
|
||||
VisitNote = t.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.AdjustReason).FirstOrDefault()!.Answer,
|
||||
|
||||
GlobalResultList = t.GlobalVisitResultList.Where(t => t.GlobalAnswerType == GlobalAnswerType.Reason).Select(t => new TumorGlobalQuestionAnserInfo()
|
||||
GlobalResultList = t.GlobalVisitResultList.Where(t => t.GlobalAnswerType == GlobalAnswerType.Reason || t.GlobalAnswerType == GlobalAnswerType.UpdateType).Select(t => new TumorGlobalQuestionAnserInfo()
|
||||
{
|
||||
TaskId = t.TaskId,
|
||||
GlobalAnswerType = t.GlobalAnswerType,
|
||||
Answer = t.Answer
|
||||
}).ToList(),
|
||||
|
||||
|
|
@ -379,7 +383,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
|
||||
var dicNameList = taskList.SelectMany(t => t.QuestionAnswerList).Select(t => t.TranslateDicName)
|
||||
.Union(taskList.SelectMany(t => t.LesionList).SelectMany(t => t.LessionAnswerList).Where(t => t.TranslateDicName.IsNotNullOrEmpty()).Select(c => c.TranslateDicName))
|
||||
.Union(new List<string>() { "ArmEnum", "ValueUnit" })
|
||||
.Union(new List<string>() { "ArmEnum", "ValueUnit", "GlobalAssessType" })
|
||||
.Distinct().ToArray();
|
||||
|
||||
//翻译字典
|
||||
|
|
@ -405,13 +409,49 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
|
||||
foreach (var task in taskList)
|
||||
{
|
||||
task.ArmEnumStr = translateDataList["ArmEnum"].Where(t => t.Code.ToLower() == ((int)task.ArmEnum).ToString().ToLower()).Select(t => isEn_Us ? t.Value : t.ValueCN).FirstOrDefault() ?? String.Empty;
|
||||
|
||||
#region 初始化
|
||||
if (task.SourceSubjectVisitId == null)
|
||||
|
||||
if (task.ReadingCategory == ReadingCategory.Judge)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (task.ReadingCategory == ReadingCategory.Global)
|
||||
{
|
||||
// co 处理部分 处理部分3 全局修改备注
|
||||
foreach (var vTaskGroup in task.GlobalResultList.Where(t => t.GlobalAnswerType == GlobalAnswerType.Reason).GroupBy(t => t.TaskId))
|
||||
{
|
||||
var visiTaskId = vTaskGroup.Key;
|
||||
|
||||
var reason = vTaskGroup.FirstOrDefault()?.Answer ?? "";
|
||||
|
||||
var firstTuTask = tuList.FirstOrDefault(t => t.VisitTaskId == visiTaskId);
|
||||
|
||||
if (reason.IsNotNullOrEmpty() && firstTuTask != null)
|
||||
{
|
||||
|
||||
var co = CreatNewCOExport(task, coList.Count + 1);
|
||||
|
||||
co.RemarksQuote = $"{co.ArmEnumStr}_{co.TaskName}";
|
||||
|
||||
co.VisitNum = firstTuTask.VisitNum;
|
||||
|
||||
co.Remarks = reason;
|
||||
|
||||
co.CODTC = firstTuTask.SignTime?.ToString("yyyy-MM-dd");
|
||||
|
||||
coList.Add(co);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
#region 初始化
|
||||
|
||||
|
||||
//处理按照访视维度 给出索引号
|
||||
var subjectVisitId = (Guid)task.SourceSubjectVisitId;
|
||||
|
||||
|
|
@ -430,7 +470,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
rs_subjectIndexNoDic.Add(task.SubjectCode, 0);
|
||||
}
|
||||
|
||||
task.ArmEnumStr = translateDataList["ArmEnum"].Where(t => t.Code.ToLower() == ((int)task.ArmEnum).ToString().ToLower()).Select(t => isEn_Us ? t.Value : t.ValueCN).FirstOrDefault() ?? String.Empty;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
|
@ -579,7 +619,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
{
|
||||
if (questionAnswer.ValueType == ValueOfType.Percentage)
|
||||
{
|
||||
tr.OriginalMeasurements = questionAnswer.QuestionValue +"%";
|
||||
tr.OriginalMeasurements = questionAnswer.QuestionValue + "%";
|
||||
|
||||
}
|
||||
else
|
||||
|
|
@ -671,10 +711,35 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region co 处理部分 处理部分1 质量备注
|
||||
|
||||
if (questionAnswer.QuestionType == QuestionType.ImageQualityAssessment)
|
||||
{
|
||||
var co = CreatNewCOExport(task, coList.Count + 1);
|
||||
|
||||
co.RemarksQuote = $"{co.ArmEnumStr}_{co.TaskName}";
|
||||
|
||||
if (questionAnswer.TranslateDicName.IsNotNullOrEmpty())
|
||||
{
|
||||
co.Remarks = translateDataList[questionAnswer.TranslateDicName].Where(t => t.Code.ToLower() == questionAnswer.QuestionValue?.ToLower()).Select(t => isEn_Us ? t.Value : t.ValueCN).FirstOrDefault() ?? String.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
co.Remarks = questionAnswer.QuestionValue;
|
||||
}
|
||||
|
||||
co.CODTC = task.SignTime?.ToString("yyyy-MM-dd");
|
||||
|
||||
coList.Add(co);
|
||||
}
|
||||
|
||||
|
||||
#region co 处理部分
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
#region co 处理部分 处理部分2 访视点,裁判备注
|
||||
|
||||
//非基线
|
||||
if (task.VisitNum > 0)
|
||||
|
|
@ -682,50 +747,67 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
|
|||
//整体肿瘤评估结果备注
|
||||
var rs_Tumor = rsList.Where(t => t.VisitTaskId == task.VisitTaskId && t.IsOveralResponse == true).FirstOrDefault();
|
||||
|
||||
if (rs_Tumor != null)
|
||||
//访视点备注必须有值才导出
|
||||
if (rs_Tumor != null && task.VisitNote.IsNotNullOrEmpty())
|
||||
{
|
||||
var co = CreatNewCOExport(task, coList.Count + 1);
|
||||
co.RDOMAIN = "RS";
|
||||
co.IdentificationVariable = "RSSEQ";
|
||||
co.Identification = rs_Tumor.RSSEQ.ToString();
|
||||
co.RemarksQuote = $"{co.ArmEnum} {co.VisitName}";
|
||||
co.RemarksQuote = $"{co.ArmEnumStr}_{co.VisitName}";
|
||||
co.Remarks = task.VisitNote;
|
||||
|
||||
coList.Add(co);
|
||||
}
|
||||
|
||||
if (task.IsTrigerJudge == true && task.IsJudgeSelect == true)
|
||||
}
|
||||
|
||||
if (task.IsTrigerJudge == true && task.IsJudgeSelect == true && task.JudgeNote.IsNotNullOrEmpty())
|
||||
{
|
||||
var co = CreatNewCOExport(task, coList.Count + 1);
|
||||
|
||||
co.RemarksQuote = $"{co.ArmEnum} {co.VisitName}";
|
||||
co.RemarksQuote = $"{co.ArmEnumStr}_{co.VisitName}";
|
||||
co.Remarks = task.JudgeNote;
|
||||
co.CODTC = task.JudgeSignTime?.ToString("yyyy-MM-dd");
|
||||
|
||||
coList.Add(co);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#region 全局更新数据--rs 全局更新原因
|
||||
|
||||
foreach (var task in taskList.Where(t => t.ReadingCategory == ReadingCategory.Global))
|
||||
{
|
||||
var globalReson = task.GlobalResultList.FirstOrDefault();
|
||||
//var globalList = taskList.Where(t => t.ReadingCategory == ReadingCategory.Global).GroupBy(t => new { t.SubjectCode, t.ArmEnum }).Select(g => g.OrderByDescending(t => t.VisitNum).FirstOrDefault()).ToList();
|
||||
|
||||
if (globalReson != null)
|
||||
|
||||
|
||||
|
||||
//全局会对每个访视的结果进行更改 rs表只取最新的一次全局
|
||||
foreach (var task in taskList.Where(t => t.ReadingCategory == ReadingCategory.Global).GroupBy(t => new { t.SubjectCode, t.ArmEnum }).Select(g => g.OrderByDescending(t => t.VisitNum).FirstOrDefault()))
|
||||
{
|
||||
|
||||
foreach (var item in rsList.Where(t => t.VisitTaskId == globalReson.TaskId))
|
||||
foreach (var vTaskGroup in task.GlobalResultList.GroupBy(t => t.TaskId))
|
||||
{
|
||||
item.UpdateAssessmentReason = globalReson.Answer;
|
||||
var visiTaskId = vTaskGroup.Key;
|
||||
|
||||
var type = vTaskGroup.FirstOrDefault(t => t.GlobalAnswerType == GlobalAnswerType.UpdateType)?.Answer ?? "";
|
||||
|
||||
|
||||
var updateType = translateDataList["GlobalAssessType"].Where(t => t.Code.ToLower() == (type)?.ToString().ToLower()).Select(t => isEn_Us ? t.Value : t.ValueCN).FirstOrDefault() ?? String.Empty;
|
||||
|
||||
var reason = vTaskGroup.FirstOrDefault(t => t.GlobalAnswerType == GlobalAnswerType.Reason)?.Answer ?? "";
|
||||
|
||||
|
||||
if (reason.IsNotNullOrEmpty())
|
||||
{
|
||||
foreach (var item in rsList.Where(t => t.VisitTaskId == visiTaskId))
|
||||
{
|
||||
item.UpdateAssessmentReason = $"{updateType} {reason}";
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue