154 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			C#
		
	
	
using AutoMapper;
 | 
						|
using IRaCIS.Core.Application.Contracts;
 | 
						|
using IRaCIS.Core.Application.Contracts.Dicom.DTO;
 | 
						|
using IRaCIS.Core.Application.Contracts.DTO;
 | 
						|
using IRaCIS.Core.Application.Service.ImageAndDoc.DTO;
 | 
						|
using IRaCIS.Core.Application.ViewModel;
 | 
						|
 | 
						|
namespace IRaCIS.Core.Application.Service
 | 
						|
{
 | 
						|
    public class ImageAndDocConfig : Profile
 | 
						|
    {
 | 
						|
        public ImageAndDocConfig()
 | 
						|
        {
 | 
						|
            CreateMap<AddOrUpdateStudyDto, DicomStudy>()
 | 
						|
               .ForMember(d => d.SeriesList, u => u.Ignore());
 | 
						|
            CreateMap<AddOrUpdateSeriesDto, DicomSeries>()
 | 
						|
                 .ForMember(d => d.DicomInstanceList, u => u.Ignore());
 | 
						|
 | 
						|
            CreateMap<AddOrUpdateStudyDto, TaskStudy>()
 | 
						|
                 .ForMember(d => d.SeriesList, u => u.Ignore());
 | 
						|
            CreateMap<AddOrUpdateSeriesDto, TaskSeries>()
 | 
						|
                 .ForMember(d => d.InstanceList, u => u.Ignore());
 | 
						|
 | 
						|
            CreateMap<AddInstanceDto, DicomInstance>();
 | 
						|
 | 
						|
            CreateMap<AddInstanceDto, TaskInstance>();
 | 
						|
 | 
						|
 | 
						|
            CreateMap<DicomSeries, DicomSeriesWithLabelDTO>();
 | 
						|
 | 
						|
            //影像上传 检查
 | 
						|
            CreateMap<DicomStudy, VerifyStudyDto>()
 | 
						|
                .ForMember(d => d.SubjectId, u => u.MapFrom(s => s.Subject.Id))
 | 
						|
                .ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
 | 
						|
                .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.Subject.Code))
 | 
						|
                .ForMember(d => d.FirstName, u => u.MapFrom(s => s.Subject.FirstName))
 | 
						|
                .ForMember(d => d.LastName, u => u.MapFrom(s => s.Subject.LastName));
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            CreateMap<DicomStudy, StudyDTO>().IncludeMembers(t => t.Subject, u => u.SubjectVisit)
 | 
						|
            .ForMember(d => d.SiteName, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteName))
 | 
						|
            .ForMember(d => d.UploaderFirstName, u => u.MapFrom(s => s.CreateUserRole.IdentityUser.FirstName))
 | 
						|
            .ForMember(d => d.UploaderLastName, u => u.MapFrom(s => s.CreateUserRole.IdentityUser.LastName))
 | 
						|
              .ForMember(d => d.UploadedTime, u => u.MapFrom(s => s.CreateTime));
 | 
						|
 | 
						|
            CreateMap<Subject, StudyDTO>();
 | 
						|
 | 
						|
            CreateMap<SubjectVisit, StudyDTO>();
 | 
						|
 | 
						|
            CreateMap<DicomStudy, RelationStudyDTO>()
 | 
						|
                .ForMember(d => d.StudyId, u => u.MapFrom(s => s.Id))
 | 
						|
                .ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName));
 | 
						|
 | 
						|
            CreateMap<DicomStudy, DicomStudyBasicDTO>();
 | 
						|
 | 
						|
 | 
						|
            CreateMap<DicomSeries, QASeriesInfoDto>()
 | 
						|
                  .ForMember(o => o.StudyTime, t => t.MapFrom(u => u.DicomStudy.StudyTime))
 | 
						|
 | 
						|
                .ForMember(o => o.StudyCode, t => t.MapFrom(u => u.DicomStudy.StudyCode))
 | 
						|
                //.ForMember(o => o.InstanceList, t => t.MapFrom(u => u.DicomInstanceList.Select(t=>t.Id).ToArray()))
 | 
						|
                // .ForMember(o => o.InstancePathList, t => t.MapFrom(u => u.DicomInstanceList.OrderBy(t=>t.InstanceNumber).Select(t => t.Path)))
 | 
						|
                ;
 | 
						|
 | 
						|
            CreateMap<DicomStudy, QAStudyInfoDTO>()
 | 
						|
                .ForMember(o => o.IsCompleteClinicalData, t => t.MapFrom(u => !u.ReadingClinicalDataList.Any(x => x.ReadingClinicalDataPDFList.Count() == 0)))
 | 
						|
                .ForMember(o => o.UploadedTime, t => t.MapFrom(u => u.CreateTime))
 | 
						|
                .ForMember(o => o.Uploader, t => t.MapFrom(u => u.CreateUserRole.IdentityUser.FullName))
 | 
						|
                .ForMember(o => o.StudyId, t => t.MapFrom(u => u.Id))
 | 
						|
                 .ForMember(o => o.IsHaveUploadFailed, t => t.MapFrom(u => u.DicomStudyMonitorList.Any(t => t.FailedFileCount > 0)))
 | 
						|
                .ForMember(o => o.Modalities, t => t.MapFrom(u => string.Join('、', u.SeriesList.Select(t => t.Modality).Distinct())));
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            CreateMap<StudyCommand, DicomStudy>();
 | 
						|
 | 
						|
            //CreateMap<ImageQACommand, ImageQA>();
 | 
						|
 | 
						|
            CreateMap<ImageShareCommand, ImageShare>();
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            CreateMap<DicomInstance, DicomInstanceDTO>()
 | 
						|
                 .ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted))
 | 
						|
                 .ForMember(o => o.SliceThickness, t => t.MapFrom(u => u.DicomSerie.SliceThickness))
 | 
						|
                  .ForMember(o => o.IsReading, t => t.MapFrom(u => u.DicomSerie.IsReading));
 | 
						|
            CreateMap<DicomStudy, DicomStudyDTO>();
 | 
						|
            CreateMap<DicomSeries, DicomSeriesDTO>();
 | 
						|
            CreateMap<SCPSeries, DicomSeriesDTO>();
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            CreateMap<SystemAnonymization, SystemAnonymizationAddOrEdit>().ReverseMap();
 | 
						|
 | 
						|
            CreateMap<SystemAnonymization, SystemAnonymizationView>();
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            CreateMap<DicomStudy, UnionStudyViewModel>()
 | 
						|
                //.ForMember(d => d.DicomStudyCode, u => u.MapFrom(s => s.StudyCode))
 | 
						|
                //.ForMember(d => d.Modality, u => u.MapFrom(s => s.Modalities))
 | 
						|
                .ForMember(d => d.Bodypart, u => u.MapFrom(s => s.BodyPartExamined))
 | 
						|
                .ForMember(d => d.StudyTime, u => u.MapFrom(s => s.StudyTime))
 | 
						|
                .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteCode))
 | 
						|
                .ForMember(d => d.TrialSiteAliasName, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteAliasName))
 | 
						|
                .ForMember(d => d.IsDicom, u => u.MapFrom(s => true))
 | 
						|
                 .ForMember(d => d.Count, u => u.MapFrom(s => s.SeriesCount))
 | 
						|
                .ForMember(d => d.VisitNum, u => u.MapFrom(s => s.SubjectVisit.VisitNum))
 | 
						|
                .ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName));
 | 
						|
 | 
						|
            CreateMap<NoneDicomStudy, UnionStudyViewModel>()
 | 
						|
                //.ForMember(d => d.NoneDicomCode, u => u.MapFrom(s => s.Code))
 | 
						|
                //.ForMember(d => d.Modality, u => u.MapFrom(s => s.Modalities))
 | 
						|
                .ForMember(d => d.Bodypart, u => u.MapFrom(s => s.BodyPart))
 | 
						|
                .ForMember(d => d.StudyTime, u => u.MapFrom(s => s.ImageDate))
 | 
						|
                .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteCode))
 | 
						|
                .ForMember(d => d.TrialSiteAliasName, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteAliasName))
 | 
						|
                .ForMember(d => d.IsDicom, u => u.MapFrom(s => false))
 | 
						|
                 .ForMember(d => d.Count, u => u.MapFrom(s => s.NoneDicomFileList.Count()))
 | 
						|
                .ForMember(d => d.VisitNum, u => u.MapFrom(s => s.SubjectVisit.VisitNum))
 | 
						|
                .ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName));
 | 
						|
 | 
						|
            CreateMap<VisitTask, SubjectUploadTaskInfo>()
 | 
						|
             .ForMember(d => d.VisitTaskId, u => u.MapFrom(s => s.Id))
 | 
						|
                .ForMember(d => d.IsImageFilter, u => u.MapFrom(s => s.TrialReadingCriterion.IsImageFilter))
 | 
						|
                 .ForMember(d => d.CriterionModalitys, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionModalitys))
 | 
						|
                .ForMember(d => d.SubjectCode, u => u.MapFrom(u => u.IsAnalysisCreate == true ? u.BlindSubjectCode : u.Subject.Code));
 | 
						|
 | 
						|
            CreateMap<DicomStudy, DicomStudyBasicInfo>();
 | 
						|
            CreateMap<NoneDicomStudy, NoneDicomStudyBasicInfo>();
 | 
						|
            CreateMap<VisitTask, SubjectCRCImageUploadedDto>()
 | 
						|
                .ForMember(d => d.VisitTaskId, u => u.MapFrom(s => s.Id))
 | 
						|
                .ForMember(d => d.IsImageFilter, u => u.MapFrom(s => s.TrialReadingCriterion.IsImageFilter))
 | 
						|
                 .ForMember(d => d.CriterionModalitys, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionModalitys))
 | 
						|
                .ForMember(d => d.SubjectCode, u => u.MapFrom(u => u.IsAnalysisCreate == true ? u.BlindSubjectCode : u.Subject.Code))
 | 
						|
                .ForMember(d => d.DicomStudyList, u => u.MapFrom(s => s.SourceSubjectVisit.StudyList))
 | 
						|
                .ForMember(d => d.NoneDicomStudyList, u => u.MapFrom(s => s.SourceSubjectVisit.NoneDicomStudyList))
 | 
						|
                ;
 | 
						|
 | 
						|
            CreateMap<TrialImageDownload, TrialImageDownloadView>()
 | 
						|
                .ForMember(d => d.UserFullName, u => u.MapFrom(s => s.CreateUserRole.FullName))
 | 
						|
                 .ForMember(d => d.UserTypeEnum, u => u.MapFrom(s => s.CreateUserRole.UserTypeEnum))
 | 
						|
                .ForMember(d => d.UserName, u => u.MapFrom(s => s.CreateUserRole.IdentityUser.UserName))
 | 
						|
                .ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.Subject.TrialSite.TrialSiteCode))
 | 
						|
                ;
 | 
						|
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
}
 |