205 lines
12 KiB
C#
205 lines
12 KiB
C#
using AutoMapper;
|
|
using IRaCIS.Application.Contracts;
|
|
using IRaCIS.Core.Application.Contracts;
|
|
using IRaCIS.Core.Application.ViewModel;
|
|
using IRaCIS.Core.Domain.Share;
|
|
|
|
namespace IRaCIS.Core.Application.Service
|
|
{
|
|
public class VisitMapConfig : Profile
|
|
{
|
|
public VisitMapConfig()
|
|
{
|
|
CreateMap<VisitPlanCommand, VisitStage>();
|
|
CreateMap<VisitPlanCommand, SubjectVisit>();
|
|
CreateMap<SubjectCommand, Subject>();
|
|
|
|
CreateMap<VisitStage, VisitStageDTO>();
|
|
|
|
CreateMap<VisitStage, VisitStageSelectDTO>();
|
|
CreateMap<VisitStage, SubjectVisit>()
|
|
.ForMember(d => d.Id, t => t.Ignore())
|
|
.ForMember(d => d.VisitStageId, t => t.MapFrom(u => u.Id));
|
|
|
|
|
|
CreateMap<SubejctVisitDownload, VisitImageDownloadView>()
|
|
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))
|
|
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
|
|
.ForMember(d => d.DownloadTime, u => u.MapFrom(s => s.CreateTime))
|
|
.ForMember(d => d.DownloadUserName, u => u.MapFrom(s => s.CreateUser.UserName))
|
|
.ForMember(d => d.StudyCount, u => u.MapFrom(s => s.SubjectVisit.StudyList.Count()))
|
|
.ForMember(d => d.DownLoadUserFullName, u => u.MapFrom(s => s.CreateUser.FullName))
|
|
.ForMember(d => d.UserTypeEnum, u => u.MapFrom(s => s.CreateUser.UserTypeEnum));
|
|
|
|
CreateMap<SCPImageUpload, SCPImageUploadView>();
|
|
|
|
|
|
CreateMap<VisitPlanInfluenceStat, VisitPlanInfluenceSubjectVisitStatDTO>()
|
|
.ForMember(d => d.CreateUser, u => u.MapFrom(g => g.CreateUser.LastName + " / " + g.CreateUser.FirstName));
|
|
|
|
|
|
|
|
CreateMap<SubjectStatusChangeCommand, Subject>()
|
|
.ForMember(d => d.Id, t => t.MapFrom(u => u.SubjectId));
|
|
CreateMap<VisitStage, VisitStageDTO>();
|
|
|
|
CreateMap<Subject, SubjectQueryView>()
|
|
.ForMember(d => d.SiteName, u => u.MapFrom(s => s.TrialSite.TrialSiteAliasName))
|
|
.ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.TrialSite.TrialSiteCode))
|
|
.ForMember(d => d.LatestBlindName, u => u.MapFrom(s => s.LatestSubjectVisit.BlindName))
|
|
.ForMember(d => d.LatestVisitName, u => u.MapFrom(s => s.LatestSubjectVisit.VisitName))
|
|
|
|
|
|
//.ForMember(d => d.FinalSubjectVisitId, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.IsFinalVisit).Select(c => (Guid?)c.Id).FirstOrDefault()))
|
|
//.ForMember(d => d.FinalSubjectVisitName, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.IsFinalVisit).Select(c => c.VisitName).FirstOrDefault()))
|
|
|
|
.ForMember(d => d.FinalSubjectVisitId, u => u.MapFrom(s => s.FinalSubjectVisitId))
|
|
.ForMember(d => d.FinalSubjectVisitName, u => u.MapFrom(s => s.FinalSubjectVisit.VisitName))
|
|
|
|
//.ForMember(d => d.IsSubjectSexView, u => u.MapFrom(s => s.Trial.IsSubjectSexView))
|
|
//.ForMember(d => d.IsSubjectExpeditedView, u => u.MapFrom(s => s.Trial.IsSubjectExpeditedView))
|
|
|
|
//不能对包含聚合或子查询的表达式执行聚合函数
|
|
//.ForMember(d => d.InPlanStudyCount, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.InPlan).Sum(k => k.StudyList.Count())))
|
|
//.ForMember(d => d.OutPlanStudyCount, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.InPlan==false).Sum(k => k.StudyList.Count())))
|
|
|
|
//.ForMember(d => d.InPlanDicomStudyUploadCount, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.InPlan).SelectMany(k => k.StudyList).Count()))
|
|
//.ForMember(d => d.OutPlanDicomStudyUploadCount, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.InPlan == false).SelectMany(k => k.StudyList).Count()))
|
|
|
|
//.ForMember(d => d.InPlanNoneDicomStudyUploadCount, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.InPlan).SelectMany(k => k.NoneDicomStudyList).Count()))
|
|
//.ForMember(d => d.OutPlanNoneDicomStudyUploadCount, u => u.MapFrom(s => s.SubjectVisitList.Where(t => t.InPlan == false).SelectMany(k => k.NoneDicomStudyList).Count()))
|
|
|
|
.ForMember(d => d.InPlanVisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.InPlan)))
|
|
.ForMember(d => d.OutPlanVisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.InPlan == false)))
|
|
//执行不一定上传了 可能是失访 实际执行过了
|
|
|
|
|
|
.ForMember(d => d.MissingSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.VisitNum < s.LatestSubjectVisit.VisitNum && t.SubmitState != SubmitStateEnum.Submitted && t.IsLostVisit == false)))
|
|
.ForMember(d => d.InPlanVisitSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState == SubmitStateEnum.Submitted && t.InPlan == true)))
|
|
.ForMember(d => d.LostVisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.IsLostVisit)))
|
|
.ForMember(d => d.InPlanVisitSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState == SubmitStateEnum.Submitted && t.InPlan == true)))
|
|
.ForMember(d => d.OutPlanVisitSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState == SubmitStateEnum.Submitted && t.InPlan == false)));
|
|
// .ForMember(d => d.InPlanVisitSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState>=SubmitStateEnum.ToSubmit && t.InPlan == true)))
|
|
//.ForMember(d => d.OutPlanVisitSubmmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState >= SubmitStateEnum.ToSubmit && t.InPlan == false)));
|
|
//.ForMember(d => d.InPlanVisitUploadCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.VisitExecuted == VisitExecutedEnum.Executed && t.InPlan)))
|
|
//.ForMember(d => d.OutPlanVisitUploadCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.VisitExecuted == VisitExecutedEnum.Executed && t.InPlan == false)));
|
|
|
|
|
|
|
|
|
|
CreateMap<SubjectVisitCommand, SubjectVisit>().ForAllMembers(opt => opt.Condition((src, dest, srcMember) => srcMember != null));
|
|
|
|
|
|
|
|
CreateMap<SubjectVisit, DicomTrialSiteSubjectInfo>().IncludeMembers(t => t.Trial)
|
|
.ForMember(d => d.TrialSiteAliasName, u => u.MapFrom(s => s.TrialSite.TrialSiteAliasName))
|
|
.ForMember(d => d.SubjectVisitId, u => u.MapFrom(s => s.Id))
|
|
.ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.TrialSite.TrialSiteCode))
|
|
.ForMember(d => d.TrialCode, u => u.MapFrom(s => s.Trial.TrialCode))
|
|
.ForMember(d => d.Sponsor, u => u.MapFrom(s => s.Trial.Sponsor));
|
|
CreateMap<Trial, DicomTrialSiteSubjectInfo>();
|
|
|
|
CreateMap<VisitPlanInfluenceStudy, VisitPlanInfluenceSubjectVisitDTO>()
|
|
.ForMember(d => d.SubjectVisitId, u => u.MapFrom(s => s.Id))
|
|
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))
|
|
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
|
|
.ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.SubjectVisit.TrialSite.TrialSiteCode));
|
|
|
|
|
|
CreateMap<SCPStudy, PatientStudySelectDto>()
|
|
.ForMember(d => d.SCPStudyId, u => u.MapFrom(s => s.Id));
|
|
|
|
CreateMap<SCPPatient, PatientQueryView>()
|
|
.ForMember(d => d.CalledAEList, u => u.MapFrom(s => s.SCPStudyList.Select(t => t.CalledAE).Distinct()))
|
|
.ForMember(d => d.CallingAEList, u => u.MapFrom(s => s.SCPStudyList.Select(t => t.CallingAE).Distinct()))
|
|
.ForMember(d => d.PatientId, u => u.MapFrom(s => s.Id));
|
|
|
|
CreateMap<SCPStudySubjectVisit, VisitPatientStudyView>().IncludeMembers(t=>t.SCPStudy)
|
|
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName));
|
|
|
|
CreateMap<Subject, PatienSubejctView>()
|
|
.ForMember(d => d.PatientList, u => u.MapFrom(s => s.SubjectPatientList))
|
|
.ForMember(d => d.VisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count()))
|
|
.ForMember(d => d.LatestVisitName, u => u.MapFrom(s => s.SubjectVisitList.OrderByDescending(t => t.VisitNum).First().VisitName))
|
|
;
|
|
|
|
CreateMap<SubjectPatient, PatientBasicInfo>()
|
|
.ForMember(d => d.PatientId, u => u.MapFrom(s => s.Patient.Id))
|
|
.ForMember(d => d.PatientSex, u => u.MapFrom(s => s.Patient.PatientSex))
|
|
.ForMember(d => d.PatientIdStr, u => u.MapFrom(s => s.Patient.PatientIdStr))
|
|
.ForMember(d => d.PatientAge, u => u.MapFrom(s => s.Patient.PatientAge))
|
|
.ForMember(d => d.PatientName, u => u.MapFrom(s => s.Patient.PatientName))
|
|
.ForMember(d => d.PatientBirthDate, u => u.MapFrom(s => s.Patient.PatientBirthDate));
|
|
|
|
CreateMap<Trial, PatientJoinTrialInitView>()
|
|
.ForMember(d => d.TrialId, u => u.MapFrom(s => s.Id));
|
|
|
|
CreateMap<Trial, NewTrialView>()
|
|
.ForMember(d => d.TrialId, u => u.MapFrom(s => s.Id))
|
|
.ForMember(d => d.UnSubmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t=>t.SubmitState==SubmitStateEnum.ToSubmit)))
|
|
.ForMember(d => d.UnReadCount, u => u.MapFrom(s => s.VisitTaskList.Count(t=>t.TaskState==TaskState.Effect && t.SignTime==null)))
|
|
;
|
|
|
|
CreateMap<Trial, TrialInfoDTO>()
|
|
.ForMember(d => d.DictionaryList, u => u.MapFrom(s => s.TrialDicList.Select(t => t.Dictionary).OrderBy(t => t.ShowOrder)));
|
|
|
|
|
|
CreateMap<SCPStudy, VisitPatientStudyView>()
|
|
.ForMember(d => d.SCPStudyId, u => u.MapFrom(s => s.Id));
|
|
|
|
CreateMap<DicomAE, DicomAEView>();
|
|
CreateMap<DicomAE, DicomAEAddOrEdit>().ReverseMap();
|
|
|
|
CreateMap<SubjectPatient, PatientJoinedTrialView>().IncludeMembers(t => t.Subject)
|
|
.ForMember(d => d.TrialId, u => u.MapFrom(s => s.Subject.TrialId))
|
|
.ForMember(d => d.ResearchProgramNo, u => u.MapFrom(s => s.Subject.Trial.ResearchProgramNo))
|
|
.ForMember(d => d.TrialStatusStr, u => u.MapFrom(s => s.Subject.Trial.TrialStatusStr))
|
|
.ForMember(d => d.TrialType, u => u.MapFrom(s => s.Subject.Trial.TrialType))
|
|
.ForMember(d => d.Sponsor, u => u.MapFrom(s => s.Subject.Trial.Sponsor))
|
|
.ForMember(d => d.CreateTime, u => u.MapFrom(s => s.CreateTime))
|
|
.ForMember(d => d.TrialCode, u => u.MapFrom(s => s.Subject.Trial.TrialCode))
|
|
.ForMember(d => d.ExperimentName, u => u.MapFrom(s => s.Subject.Trial.ExperimentName));
|
|
|
|
CreateMap<Subject, PatientJoinedTrialView>();
|
|
|
|
|
|
CreateMap<Trial, PatientJoinedTrialView>();
|
|
|
|
CreateMap<VisitTask, PatientVisitTaskDTO>()
|
|
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.Subject.Code))
|
|
.ForMember(d => d.SubjectShortName, u => u.MapFrom(s => s.Subject.ShortName))
|
|
.ForMember(d => d.TrialReadingCriterionName, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionName))
|
|
.ForMember(d => d.CriterionType, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionType))
|
|
.ForMember(d => d.PatientList, u => u.MapFrom(s => s.Subject.SubjectPatientList));
|
|
|
|
CreateMap<AddOrUpdateSubjectVisitCommand, SubjectVisit>().ReverseMap();
|
|
|
|
CreateMap<SubjectVisitSelectDto, SubjectVisit>();
|
|
|
|
|
|
CreateMap<SCPStudy, DicomStudy>()
|
|
.ForMember(d => d.SeriesList, u => u.Ignore())
|
|
/* .ForMember(d => d.SeriesList, u => u.Ignore())*/;
|
|
|
|
CreateMap<SCPSeries, DicomSeries>();
|
|
CreateMap<SCPInstance, DicomInstance>();
|
|
|
|
CreateMap<Trial, PatientJoinTrialSelectView>()
|
|
.ForMember(d => d.TrialId, u => u.MapFrom(s => s.Id));
|
|
|
|
CreateMap<Trial, AddOrUpdateTrialCommand>().ReverseMap();
|
|
|
|
CreateMap<SubjectVisit, SubjectVisitSelectDto>();
|
|
|
|
CreateMap<AddOrUpdateSubjectCommand, Subject>().ReverseMap();
|
|
|
|
|
|
CreateMap<SCPSeries, PatientSeriesDTO>();
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|