This commit is contained in:
he
2023-02-23 14:51:27 +08:00
5 changed files with 318 additions and 59 deletions
@@ -6,6 +6,7 @@ using MiniExcelLibs.Attributes;
using Newtonsoft.Json;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Application.Contracts
{
@@ -382,7 +383,7 @@ namespace IRaCIS.Core.Application.Contracts
public List<MouduleProgress> ModuleList { get; set; }
public List<MouduleProgress> TotalList => VisitList .OrderByDescending(t=>t.Inplan).Union(ModuleList.OrderBy(t=>t.ReadingSetType).ThenBy(t=>t.VisitTaskNum)).ToList();
public List<MouduleProgress> TotalList => VisitList.OrderByDescending(t => t.Inplan).Union(ModuleList.OrderBy(t => t.ReadingSetType).ThenBy(t => t.VisitTaskNum)).ToList();
public class MouduleProgress
@@ -392,9 +393,10 @@ namespace IRaCIS.Core.Application.Contracts
public ReadingStatusEnum ReadingStatus { get; set; }
//最终任务
[Column(TypeName = "decimal(18,2)")]
public decimal VisitTaskNum { get; set; }
//访视会有
@@ -406,7 +408,7 @@ namespace IRaCIS.Core.Application.Contracts
//阅片期会有
public ReadingSetType? ReadingSetType { get; set; }
}
}
}
@@ -438,6 +440,72 @@ namespace IRaCIS.Core.Application.Contracts
}
public class UnionStudyMonitorExportDto
{
public string SubjectCode { get; set; } = String.Empty;
public string VisitName { get; set; } = string.Empty;
public string TrialSiteCode { get; set; } = string.Empty;
public string TrialSiteAliasName { get; set; } = string.Empty;
public string Uploader { get; set; } = string.Empty;
public DateTime UploadTime { get; set; }
public string StudyCode { get; set; }
public bool IsDicom { get; set; }
public string IsDicomStr => IsDicom ? "DICOM" : "Non-DICOM";
public string UploadStartTimeStr => UploadStartTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
public string UploadFinishedTimeStr => UploadFinishedTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
public double TotalMillisecondsInterval { get; set; }
public string TimeInterval
{
get
{
var uploadTimeSpan = UploadFinishedTime - UploadStartTime;
return $" {uploadTimeSpan.Hours}:{uploadTimeSpan.Minutes}:{uploadTimeSpan.Seconds}.{uploadTimeSpan.Milliseconds}";
}
}
public DateTime UploadStartTime { get; set; }
public DateTime UploadFinishedTime { get; set; }
public decimal FileSize { get; set; }
public string FileSizeStr => $"{(FileSize / (decimal)Math.Pow(1024, 2)).ToString("F")}M";
public string IP { get; set; } = String.Empty;
public bool IsDicomReUpload { get; set; }
public int FileCount { get; set; }
[DictionaryTranslateAttribute("YesOrNo")]
public bool IsSuccess { get; set; } = true;
public string Note = string.Empty;
}
public class UnionStudyExportDTO
@@ -684,7 +752,7 @@ namespace IRaCIS.Core.Application.Contracts
public string AgainEvaluateResult { get; set; } = String.Empty;
}
public class GroupAnalysisExport: AnalysisExortCommon
public class GroupAnalysisExport : AnalysisExortCommon
{
[DictionaryTranslateAttribute("ArmEnum")]
@@ -706,7 +774,7 @@ namespace IRaCIS.Core.Application.Contracts
}
public class SelftAnalysisExport: AnalysisExortCommon
public class SelftAnalysisExport : AnalysisExortCommon
{
//自身一致性分析任务特有
@@ -769,8 +837,64 @@ namespace IRaCIS.Core.Application.Contracts
}
public class PCWG3LessionInfo
{
//病灶编号
public string LessionCode { get; set; }
[DictionaryTranslateAttribute("LesionType")]
//病灶类型
public string LessionType { get; set; }
//所在部位
public string LessionLocation { get; set; }
//所在器官
[DictionaryTranslate("OrganType")]
public string LessionOrgan { get; set; }
//部位描述
public string BodyPartDescription { get; set; }
[DictionaryTranslateAttribute("TargetState")]
//病灶状态
public string LessionState { get; set; }
}
public class PCWG3DetailedOfEvaluatedLesionExport : OverallTumorEvaluationExport
{
[JsonIgnore]
public List<PCWG3LessionInfo> LesionList = new List<PCWG3LessionInfo>();
//病灶编号
public string LessionCode { get; set; }
[DictionaryTranslateAttribute("LesionType")]
//病灶类型
public string LessionType { get; set; }
//所在部位
public string LessionLocation { get; set; }
//所在器官
public string LessionOrgan { get; set; }
//部位描述
public string BodyPartDescription { get; set; }
[DictionaryTranslateAttribute("EvaluationOfState")]
//病灶状态
public string LessionState { get; set; }
}
//RECIST1.1评估病灶明细表
@@ -799,7 +923,7 @@ namespace IRaCIS.Core.Application.Contracts
//所在器官
[DictionaryTranslate("OrganType")]
public string LessionOrgan { get; set; }
//部位描述
public string BodyPartDescription { get; set; }
@@ -205,7 +205,7 @@ namespace IRaCIS.Core.Application.Service
)
.ForMember(o => o.LessionOrgan, t =>
//t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Organ).FirstOrDefault().Answer)
t.MapFrom(u => isEn_Us ? (int?)u.OrganInfo.OrganType : (int?) u.OrganInfo.OrganType)
t.MapFrom(u => isEn_Us ? u.OrganInfo.TULOCEN : u.OrganInfo.TULOC)
)
.ForMember(o => o.BodyPartDescription, t =>
//t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Part).FirstOrDefault().Answer)
@@ -219,6 +219,31 @@ namespace IRaCIS.Core.Application.Service
.ForMember(o => o.LessionState, t => t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State).FirstOrDefault().Answer));
CreateMap<VisitTask, PCWG3DetailedOfEvaluatedLesionExport>().IncludeBase<VisitTask, OverallTumorEvaluationExport>()
.ForMember(o => o.LesionList, t => t.MapFrom(u => u.LesionList));
CreateMap<ReadingTableAnswerRowInfo, PCWG3LessionInfo>()
.ForMember(o => o.LessionCode, t => t.MapFrom(u => u.RowMark))
.ForMember(o => o.LessionType, t => t.MapFrom(u => (int?)u.ReadingQuestionTrial.LesionType))
//位置可能是自己填写的
.ForMember(o => o.LessionLocation, t =>
//t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Location).FirstOrDefault().Answer)
t.MapFrom(u => u.OrganInfo.IsCanEditPosition ?
u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Location).FirstOrDefault().Answer : isEn_Us ? u.OrganInfo.TULATEN : u.OrganInfo.TULAT)
)
.ForMember(o => o.LessionOrgan, t =>
t.MapFrom(u => isEn_Us ? u.OrganInfo.TULOCEN : u.OrganInfo.TULOC)
)
.ForMember(o => o.BodyPartDescription, t =>
//t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.Part).FirstOrDefault().Answer)
t.MapFrom(u => isEn_Us ? u.OrganInfo.PartEN : u.OrganInfo.Part)
)
.ForMember(o => o.LessionState, t => t.MapFrom(u => u.LesionAnswerList.Where(c => c.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State).FirstOrDefault().Answer));
#endregion