210 lines
10 KiB
C#
210 lines
10 KiB
C#
using AutoMapper;
|
|
using AutoMapper.EquivalencyExpression;
|
|
using IRaCIS.Application.Contracts;
|
|
using IRaCIS.Core.Application.Contracts;
|
|
using IRaCIS.Core.Application.Contracts.DTO;
|
|
using IRaCIS.Core.Application.ViewModel;
|
|
using IRaCIS.Core.Domain.Models;
|
|
using IRaCIS.Core.Domain.Share;
|
|
|
|
namespace IRaCIS.Core.Application.Service
|
|
{
|
|
public class TrialSiteUserConfig : Profile
|
|
{
|
|
public TrialSiteUserConfig()
|
|
{
|
|
//CreateMap<TrialAttachment, AcquisitionSpecificationDTO>();
|
|
//CreateMap<TrialAttachmentCommand, TrialAttachment>().ForMember(t => t.UserTypes, u => u.MapFrom(k => string.Join(',', k.UserTypeList)));
|
|
|
|
|
|
CreateMap<UserTrialCommand, TrialUser>();
|
|
|
|
CreateMap<TrialSiteCommand, TrialSite>()
|
|
.ForMember(d => d.TrialSiteAliasName, u => u.MapFrom(s => s.SiteName))
|
|
.ForMember(x => x.Id, x => x.Ignore());
|
|
|
|
CreateMap<EditTrialSiteCommand, TrialSite>();
|
|
|
|
CreateMap<UpdateTrialUserCommand, TrialUser>();
|
|
|
|
|
|
|
|
CreateMap<AssginSiteCRCCommand, TrialUser>();
|
|
|
|
CreateMap<TrialUserAddCommand, TrialUser>();
|
|
|
|
CreateMap<SiteCRCCommand, TrialUser>();
|
|
|
|
|
|
//临床项目
|
|
CreateMap<TrialCommand, Trial>().ForAllMembers(opt => opt.Condition((src, dest, srcMember) => srcMember != null));
|
|
|
|
CreateMap<Dictionary, TrialDictionaryView>();
|
|
|
|
var userId = Guid.Empty;
|
|
var userTypeEnumInt = 0;
|
|
CreateMap<Trial, TrialDetailDTO>()
|
|
.ForMember(d => d.DictionaryList, u => u.MapFrom(s => s.TrialDicList.Select(t => t.Dictionary).OrderBy(t => t.ShowOrder)))
|
|
//.ForMember(d => d.Code, u => u.MapFrom(s => s.TrialCode))
|
|
.ForMember(d => d.Sponsor, u => u.MapFrom(s => s.Sponsor.SponsorName))
|
|
.ForMember(d => d.Phase, u => u.MapFrom(s => s.Phase.Value))
|
|
.ForMember(d => d.DeclarationType, u => u.MapFrom(s => s.DeclarationType.Value))
|
|
.ForMember(d => d.IndicationType, u => u.MapFrom(s => s.IndicationType.Value))
|
|
.ForMember(d => d.CRO, u => u.MapFrom(s => s.CRO.CROName))
|
|
.ForMember(d => d.ReviewMode, u => u.MapFrom(s => s.ReviewMode.Value))
|
|
//.ForMember(d => d.ReviewType, u => u.MapFrom(s => s.ReviewType.Value))
|
|
.ForMember(d => d.IsLocked, u => u.MapFrom(s => s.WorkloadList.Any(u => u.DataFrom == (int)WorkLoadFromStatus.FinalConfirm)))
|
|
.ForMember(d => d.SiteCount, u => u.MapFrom(s => userTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator ? s.TrialSiteUserList.Count(k => k.UserId == userId) : s.TrialSiteList.Count()))
|
|
.ForMember(d => d.StudyCount, u => u.MapFrom(s => userTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator ? s.StudyList.Count(t => t.TrialSite.CRCUserList.Any(t => t.UserId == userId)) : s.StudyList.Count()))
|
|
.ForMember(d => d.SubjectCount, u => u.MapFrom(s => userTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator ? s.SubjectList.Count(t => t.TrialSite.CRCUserList.Any(t => t.UserId == userId)) : s.SubjectList.Count()));
|
|
|
|
|
|
|
|
|
|
CreateMap<TrialUser, TrialMaintenanceDTO>().IncludeMembers(t => t.User)
|
|
.ForMember(d => d.UserRealName, u => u.MapFrom(s => s.User.LastName + " / " + s.User.FirstName))
|
|
.ForMember(t => t.UserType, u => u.MapFrom(t => t.User.UserTypeRole.UserTypeShortName));
|
|
CreateMap<User, TrialMaintenanceDTO>();
|
|
|
|
var siteId = Guid.Empty;
|
|
CreateMap<TrialUser, AssginSiteCRCListDTO>().IncludeMembers(t => t.User)
|
|
.ForMember(d => d.UserRealName, u => u.MapFrom(s => s.User.LastName + " / " + s.User.FirstName))
|
|
.ForMember(d => d.SiteId, u => u.MapFrom(t => siteId))
|
|
.ForMember(d => d.UserType, u => u.MapFrom(t => t.User.UserTypeRole.UserTypeShortName))
|
|
.ForMember(d => d.IsSelect, u => u.MapFrom(t => t.SiteList.Any(k => k.SiteId == siteId)));
|
|
CreateMap<User, AssginSiteCRCListDTO>();
|
|
|
|
var trialId = Guid.Empty;
|
|
CreateMap<User, TrialUserScreeningDTO>()
|
|
.ForMember(d => d.UserRealName, u => u.MapFrom(s => s.LastName + " / " + s.FirstName))
|
|
.ForMember(d => d.UserType, u => u.MapFrom(s => s.UserTypeRole.UserTypeShortName))
|
|
.ForMember(d => d.UserId, u => u.MapFrom(s => s.Id))
|
|
.ForMember(d => d.TrialId, u => u.MapFrom(s => trialId))
|
|
.ForMember(d => d.IsSelect, u => u.MapFrom(t => t.UserTrials.Any(t => t.TrialId == trialId)));
|
|
|
|
|
|
CreateMap<Site, SiteSelectDTO>()
|
|
.ForMember(d => d.HospitalName, u => u.MapFrom(s => s.Hospital.HospitalName));
|
|
|
|
//trial site 选择列表 subjectVisit pannel 模式添加的时候
|
|
CreateMap<Site, TrialSiteScreeningDTO>()
|
|
.ForMember(d => d.IsSelect, u => u.MapFrom(s => s.TrialSiteList.Where(t => t.TrialId == trialId).Any(k => k.SiteId == s.Id)));
|
|
|
|
#region 项目 stie pannel
|
|
|
|
#region site 也有country hospital 也有 注意区分
|
|
CreateMap<TrialSite, SiteStatDTO>()
|
|
.ForMember(d => d.SiteCode, u => u.MapFrom(s => s.Site.SiteCode))
|
|
.ForMember(d => d.City, u => u.MapFrom(s => s.Site.City))
|
|
.ForMember(d => d.Country, u => u.MapFrom(s => s.Site.Country))
|
|
.ForMember(d => d.Hospital, u => u.MapFrom(s => s.Site.Hospital.HospitalName))
|
|
|
|
|
|
.ForMember(d => d.DirectorName, u => u.MapFrom(s => s.Site.DirectorName))
|
|
.ForMember(d => d.DirectorPhone, u => u.MapFrom(s => s.Site.DirectorPhone))
|
|
.ForMember(d => d.ContactPhone, u => u.MapFrom(s => s.Site.ContactPhone))
|
|
.ForMember(d => d.Address, u => u.MapFrom(s => s.Site.Address))
|
|
.ForMember(d => d.Site, u => u.MapFrom(s => s.Site.SiteName))
|
|
.ForMember(d => d.VisitCount, u => u.MapFrom(s => s.SubjectVisitList.Count()))
|
|
.ForMember(d => d.SubjectCount, u => u.MapFrom(s => s.SubjectList.Count()))
|
|
|
|
|
|
|
|
.ForMember(d => d.UserCount, u => u.MapFrom(s => s.CRCUserList.Count()))
|
|
.ForMember(d => d.UserNameList, u => u.MapFrom(s => s.CRCUserList.Where(t => t.IsDeleted == false).Select(u => u.User.LastName + " / " + u.User.FirstName)));
|
|
#endregion
|
|
|
|
|
|
|
|
CreateMap<TrialExternalUserAddOrEdit, User>();
|
|
|
|
CreateMap<TrialSite, SiteStatSimpleDTO>().IncludeMembers(t => t.Site)
|
|
.ForMember(d => d.Id, u => u.MapFrom(s => s.Id))
|
|
.ForMember(d => d.UpdateTime, u => u.MapFrom(s => s.UpdateTime))
|
|
.ForMember(d => d.Site, u => u.MapFrom(s => s.Site.SiteName))
|
|
.ForMember(d => d.Hospital, u => u.MapFrom(s => s.Site.Hospital.HospitalName))
|
|
.ForMember(d => d.UserCount, u => u.MapFrom(s => s.CRCUserList.Count()))
|
|
.ForMember(d => d.UserNameList, u => u.MapFrom(s => s.CRCUserList.Where(t=>t.IsDeleted==false).Select(u=>u.User.LastName+" / "+u.User.FirstName)));
|
|
CreateMap<Site, SiteStatSimpleDTO>();
|
|
|
|
|
|
|
|
CreateMap<TrialSiteUser, UserTrialDTO>().IncludeMembers(t => t.User)
|
|
.ForMember(d => d.UserType, u => u.MapFrom(s => s.User.UserTypeRole.UserTypeShortName))
|
|
.ForMember(d => d.UserRealName, u => u.MapFrom(s => s.User.LastName + " / " + s.User.FirstName));
|
|
CreateMap<User, UserTrialDTO>();
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
CreateMap<AssginSiteCRCCommand, TrialSiteUser>();
|
|
CreateMap<Domain.Models.Trial, TrialConfigDTO>().ForMember(t=>t.TrialId,u=>u.MapFrom(c=>c.Id))
|
|
.ForMember(t => t.CriterionIds, u => u.MapFrom(c => c.TrialDicList.Where(v=>v.KeyName== StaticData.Criterion).Select(r=>r.DictionaryId)));
|
|
CreateMap<Domain.Models.Trial, TrialSubjectConfig>();
|
|
CreateMap<Domain.Models.Trial, TrialSubjectAndSVConfig>();
|
|
|
|
|
|
CreateMap<BasicTrialConfig, Trial>();
|
|
|
|
CreateMap<TrialProcessConfig, Trial>().ForMember(t=>t.TrialDicList,u=>u.MapFrom(k=>k.CriterionIds));
|
|
CreateMap<Guid, TrialDictionary>().EqualityComparison((odto, o) => odto == o.DictionaryId)
|
|
.ForMember(t => t.DictionaryId, u => u.MapFrom(c => c))
|
|
.ForMember(t => t.KeyName, u => u.MapFrom(c=> StaticData.Criterion) );
|
|
|
|
|
|
CreateMap<Trial, TrialSelectDTO>();
|
|
|
|
CreateMap<TrialUrgentConfig, Trial>();
|
|
|
|
CreateMap<SignDTO, TrialSign>();
|
|
|
|
|
|
CreateMap<SignDTO, TrialSign>();
|
|
|
|
CreateMap<TrialStateChange, TrialStateChangeDTO>()
|
|
.ForMember(t => t.UserRealName, u => u.MapFrom(c => c.User.LastName +" / "+c.User.FirstName))
|
|
.ForMember(t => t.UserName, u => u.MapFrom(c => c.User.UserName));
|
|
|
|
|
|
|
|
CreateMap<TrialExternalUser, TrialExternalUserAddOrEdit>().ReverseMap();
|
|
|
|
CreateMap<TrialExternalUser, TrialExternalUserView>();
|
|
|
|
|
|
CreateMap<User, TrialExternalUser>().ReverseMap();
|
|
|
|
|
|
CreateMap<TrialUserPreparation, TrialUserPreparationView>()
|
|
|
|
.ForMember(t => t.UserRealName, u => u.MapFrom(c => c.User.LastName + " / " + c.User.FirstName))
|
|
.ForMember(t => t.UserName, u => u.MapFrom(c => c.User.UserName))
|
|
.ForMember(t => t.UserTypeShortName, u => u.MapFrom(c => c.User.UserTypeRole.UserTypeShortName));
|
|
|
|
|
|
CreateMap<TrialExternalUser, TrialInfoWithPreparationInfo>().IncludeMembers(t => t.Trial)
|
|
.ForMember(t => t.UserId, u => u.MapFrom(c => c.SystemUserId));
|
|
CreateMap<Trial, TrialInfoWithPreparationInfo>();
|
|
|
|
CreateMap<TrialSiteUserSurvey, TrialInfoWithPreparationInfo>().IncludeMembers(t => t.TrialSiteSurvey.Trial)
|
|
.ForMember(t => t.UserId, u => u.MapFrom(c => c.SystemUserId))
|
|
.ForMember(t => t.TrialId, u => u.MapFrom(c => c.TrialSiteSurvey.TrialId));
|
|
|
|
|
|
CreateMap<TrialExternalUserConfirm, TrialExternalUser>();
|
|
|
|
CreateMap<TrialExternalUserConfirm, TrialSiteUserSurvey>();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|