using AutoMapper; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Infra.EFCore.Common; namespace IRaCIS.Core.Application.Service { public class ReadingConfig : Profile { public ReadingConfig() { CreateMap<ReadingPeriodSetAddOrEdit, ReadingPeriodSet>(); CreateMap<AddOrUpdateTumorAssessmentInDto, TumorAssessment>(); CreateMap<ReadingPeriodSet, ReadingPeriodSetView>() .ForMember(d => d.SubjectVisitName, u => u.MapFrom(s => s.VisitStage==null?string.Empty: s.VisitStage.VisitName)) .ForMember(d => d.SiteIds, u => u.MapFrom(s => s.ReadingPeriodSites.Select(x => x.SiteId))) .ForMember(d => d.SiteCodes, u => u.MapFrom(s => s.ReadingPeriodSites.Select(x => x.TrialSite.TrialSiteCode))) .ForMember(d => d.PlanCount, u => u.MapFrom(s => s.ReadingPeriodPlanList.Count)); CreateMap<ReadingCriterionDictionary, CriterionDictionaryInfo>() .ForMember(d => d.ChildGroup, u => u.MapFrom(s => s.Dictionary.ChildGroup)) .ForMember(d => d.Code, u => u.MapFrom(s => s.Dictionary.Code)) .ForMember(d => d.Description, u => u.MapFrom(s => s.Dictionary.Description)) .ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.Dictionary.ShowOrder)) .ForMember(d => d.ParentCode, u => u.MapFrom(s => s.Dictionary.Parent.Code)) .ForMember(d => d.Value, u => u.MapFrom(s => s.Dictionary.Value)) .ForMember(d => d.ValueCN, u => u.MapFrom(s => s.Dictionary.ValueCN)); //CreateMap<ReadingClinicalDataView, GetReadingClinicalDataListOutDto>(); // CreateMap<ReadingClinicalData, GetReadingClinicalDataListOutDto>() //.ForMember(d => d.ClinicalDataLevel, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataLevel)) //.ForMember(d => d.ClinicalDataLevelName, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataSetName)) //.ForMember(d => d.ClinicalUploadType, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalUploadType)); //.ForMember(d => d.FileCount, u => u.MapFrom(s => s.ReadingClinicalDataPDFList.Count())); CreateMap<ReadingClinicalDataPDF, GetReadingClinicalDataPDFListOutDto>(); //.ForMember(d => d.SiteNames, u => u.MapFrom(s => s.ReadingPeriodSites.SelectMany(x => x.Site.SiteName).ToList())); CreateMap<ReadingClinicalData, AddOrUpdateReadingClinicalDataDto>().ReverseMap(); CreateMap<ReadingClinicalDataPDF, AddOrUpdateReadingClinicalDataPDFDto>().ReverseMap(); CreateMap<ClinicalDataTrialSet, ClinicalDataTrialSetAddOrEdit>().ReverseMap(); CreateMap<ClinicalDataSystemSet, ClinicalDataSystemSetAddOrEdit>().ReverseMap(); CreateMap<ClinicalDataTrialSet, ClinicalDataTrialSetView>() //.ForMember(t => t.TrialCriterionNameList, u => u.MapFrom(c => c.TrialClinicalDataCriterionList.Select(t => t.TrialReadingCriterion.CriterionName))) //.ForMember(t => t.TrialCriterionIdList, u => u.MapFrom(c => c.TrialClinicalDataCriterionList.Select(t => t.TrialReadingCriterion.Id))) .ForMember(d => d.IsUsed, u => u.MapFrom(s => s.ReadingClinicalDataList.Count()>0)); CreateMap<ClinicalDataSystemSet, ClinicalDataSystemSetView>(); //.ForMember(t=>t.SystemCriterionNameList,u=>u.MapFrom(c=>c.SystemClinicalDataCriterionList.Select(t=>t.SystemReadingCriterion.CriterionName))) //.ForMember(t => t.SystemCriterionIdList, u => u.MapFrom(c => c.SystemClinicalDataCriterionList.Select(t => t.SystemReadingCriterion.Id))); CreateMap<PreviousPDF, PreviousPDFAddOrEdit>().ReverseMap(); CreateMap<PreviousPDF, PreviousPDFView>(); CreateMap<ReadModuleAddOrEdit, ReadModule>(); CreateMap<TumorAssessment, TumorAssessmentView>(); CreateMap<ReadingTableAnswerRowInfo, CopyTableAnswerRowInfo>() .ForMember(d => d.OriginalId, u => u.MapFrom(s => s.Id)) .ForMember(dest => dest.ReadingQuestionTrial, opt => opt.Ignore()); #region 阅片问题 // 忽略列 CreateMap<ReadingQuestionTrial, DicomReadingQuestionAnswer>() .ForMember(dest => dest.ReadingCriterionPage, opt => opt.Ignore()) .ForMember(dest => dest.ParentReadingQuestionTrial, opt => opt.Ignore()) .ForMember(dest => dest.RelevanceReadingQuestionTrial, opt => opt.Ignore()) .ForMember(dest => dest.ReadingQuestionCriterionTrial, opt => opt.Ignore()); CreateMap<ReadingTableAnswerRowInfo, GetTableAnswerRowInfoOutDto>() .ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.ReadingQuestionTrial.ShowOrder)) .ForMember(d => d.OrderMark, u => u.MapFrom(s => s.ReadingQuestionTrial.OrderMark)) .ForMember(d => d.RowIndex, u => u.MapFrom(s => s.RowIndex.ToString())) .ForMember(d => d.RowIndexNum, u => u.MapFrom(s => s.RowIndex)) .ForMember(d => d.RowId, u => u.MapFrom(s => s.Id)); CreateMap<ReadingTableQuestionTrial, TableQuestionTrial>(); CreateMap<ReadingTableQuestionAnswer, ReadingTableQuestionAnswerInfo>() .ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.ReadingQuestionTrial.ShowOrder)); CreateMap<ReadingQuestionTrial, TrialReadQuestionData>() .ForMember(d => d.PageShowOrder, u => u.MapFrom(s => s.ReadingCriterionPage.ShowOrder)) .ForMember(d => d.PageName, u => u.MapFrom(s => s.ReadingCriterionPage.PageName)) .ForMember(d => d.IsPublicPage, u => u.MapFrom(s => s.ReadingCriterionPage.IsPublicPage)); CreateMap<ReadingQuestionSystem, GetSystemReadingQuestionOutDto>(); CreateMap<ReadingTableQuestionSystem, TableQuestionDataInfo>(); CreateMap<ReadingTableQuestionTrial, TableQuestionDataInfo>(); CreateMap<ReadingTableQuestionSystem, ReadingTableQuestionSystemView>() .ForMember(d => d.DependShowOrder, u => u.MapFrom(s => s.DependParentQuestion.ShowOrder)); CreateMap<ReadingTableQuestionTrial, ReadingTableQuestionTrialView>() .ForMember(d => d.DependShowOrder, u => u.MapFrom(s => s.DependParentQuestion.ShowOrder)); CreateMap<ReadingTableQuestionSystemAddOrEdit, ReadingTableQuestionSystem>(); CreateMap<ReadingTableQuestionTrialAddOrEdit, ReadingTableQuestionTrial>(); CreateMap<ReadingCriterionPageAddOrEdit, ReadingCriterionPage>(); CreateMap<ReadingQuestionTrial, ReadingQuestionSystem>(); CreateMap<Dictionary, OrganDictionary>(); CreateMap<ReadingQuestionSystem, ReadingQuestionSystemData>() .ForMember(d => d.OriginalId, u => u.MapFrom(s => s.Id)); CreateMap<ReadingTableQuestionSystem, ReadingTableQuestionSystemData>() .ForMember(d => d.OriginalId, u => u.MapFrom(s => s.Id)); CreateMap<ReadingQuestionSystem, ReadingQuestionTrial>() .ForMember(d => d.ReadingQuestionSystemId, u => u.MapFrom(s => s.Id)); CreateMap<ReadingTableAnswerRowInfo, TableAnsweRowInfo>() .ForMember(d => d.MergeName, u => u.MapFrom(s => s.MergeRow == null ? string.Empty : s.MergeRow.ReadingQuestionTrial.OrderMark + s.MergeRow.RowIndex.GetLesionMark())) .ForMember(d => d.SplitName, u => u.MapFrom(s => s.SplitRow == null ? string.Empty : s.SplitRow.ReadingQuestionTrial.OrderMark + s.SplitRow.RowIndex.GetLesionMark())); CreateMap<ReadingTableQuestionSystem, ReadingTrialTableQuestionData>() .ForMember(dest => dest.DependParentQuestion, opt => opt.Ignore()) .ForMember(d => d.OriginalId, u => u.MapFrom(s => s.Id)); CreateMap<ReadingTableQuestionTrial, ReadingTrialTableQuestionData>() .ForMember(d => d.OriginalId, u => u.MapFrom(s => s.Id)); CreateMap<ReadingQuestionCriterionSystem, ReadingQuestionCriterionTrial>() .ForMember(dest => dest.ReadingQuestionTrialList, opt => opt.Ignore()) .ForMember(d => d.ReadingQuestionCriterionSystemId, u => u.MapFrom(s => s.Id)); ; CreateMap<AddOrUpdateReadingQuestionCriterionSystemInDto, ReadingQuestionCriterionSystem>(); CreateMap<ReadingQuestionCriterionSystem, ReadingQuestionCriterionSystemView>() .ForMember(d => d.QuestionCount, u => u.MapFrom(s => s.ReadingQuestionSystemList.Count())); //.ForMember(d => d.IsEnable, u => u.MapFrom(s => s.Dictionary.IsEnable)) //.ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.Dictionary.ShowOrder)); CreateMap<AddOrUpdateReadingQuestionSystemInDto, ReadingQuestionSystem>(); CreateMap<ReadingQuestionSystem, ReadingQuestionSystemView>() .ForMember(d => d.ParentQuestionName, u => u.MapFrom(s => s.ParentReadingQuestionSystem==null?string.Empty: s.ParentReadingQuestionSystem.QuestionName)) .ForMember(d => d.ParentQuestionShowOrder, u => u.MapFrom(s => s.ParentReadingQuestionSystem.ShowOrder)) .ForMember(d => d.RelevanceShowOrder, u => u.MapFrom(s => s.RelevanceReadingQuestionSystem.ShowOrder)); CreateMap<AddOrUpdateReadingQuestionCriterionTrialInDto, ReadingQuestionCriterionTrial>(); CreateMap<ReadingQuestionCriterionTrial, ReadingQuestionCriterionTrialView>() .ForMember(d => d.QuestionCount, u => u.MapFrom(s => s.ReadingQuestionTrialList.Count())); CreateMap<AddOrUpdateReadingQuestionTrialInDto, ReadingQuestionTrial>(); CreateMap<ReadingQuestionTrial, ReadingQuestionTrialView>() .ForMember(d => d.ParentQuestionName, u => u.MapFrom(s => s.ParentReadingQuestionTrial == null ? string.Empty : s.ParentReadingQuestionTrial.QuestionName)) .ForMember(d => d.ParentQuestionShowOrder, u => u.MapFrom(s => s.ParentReadingQuestionTrial.ShowOrder)) .ForMember(d => d.RelevanceShowOrder, u => u.MapFrom(s => s.RelevanceReadingQuestionTrial.ShowOrder)); #endregion #region IR阅片 CreateMap<ReadingQuestionTrial, GetTrialReadingQuestionOutDto>() .ForMember(x=>x.Id, y=>y.MapFrom(z=>z.Id)); CreateMap<VisitTask, GetReadingPastResultListOutDto>() .ForMember(x => x.VisitTaskId, y => y.MapFrom(z => z.Id)); #endregion #region 医学审核 CreateMap<ReadingMedicineSystemQuestionAddOrEdit, ReadingMedicineSystemQuestion>(); CreateMap<ReadingMedicineSystemQuestion, ReadingMedicineSystemQuestionView>() .ForMember(x => x.ParentShowOrder, y => y.MapFrom(n => n.ParentQuestion.ShowOrder)); CreateMap<TrialDataFromSystem, ReadingMedicineTrialQuestion>(); CreateMap<ReadingMedicineTrialQuestionAddOrEdit, ReadingMedicineTrialQuestion>(); CreateMap<ReadingMedicineTrialQuestion, ReadingMedicineTrialQuestionView>() .ForMember(x=>x.ParentShowOrder,y=>y.MapFrom(n=>n.ParentQuestion.ShowOrder)); CreateMap<ReadingMedicineTrialQuestion, GetMedicineQuestionPreviewOutDto>(); CreateMap<TaskMedicalReview, MedicalReviewInfo>() .ForMember(x => x.TaskMedicalReviewId, y => y.MapFrom(n => n.Id)); CreateMap<ReadingMedicalReviewDialog, GetMedicalReviewDialogOutDto>() .ForMember(x => x.CreateUserName, y => y.MapFrom(n => n.CreateUser.UserName)); #endregion #region 阅片部位 CreateMap<CriterionNidus, CriterionNidusView>(); CreateMap<CriterionNidus, CriterionNidusAddOrEdit>().ReverseMap(); CreateMap<OrganInfoAddOrEdit, OrganInfo>(); CreateMap<OrganInfo, OrganInfoView>(); #endregion } } }