修改医生简历上传
							parent
							
								
									66b9f2dd5c
								
							
						
					
					
						commit
						a9fd1978e1
					
				| 
						 | 
					@ -268,7 +268,7 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
        [DisableFormValueModelBinding]
 | 
					        [DisableFormValueModelBinding]
 | 
				
			||||||
        [DisableRequestSizeLimit]
 | 
					        [DisableRequestSizeLimit]
 | 
				
			||||||
        [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
 | 
					        [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
 | 
				
			||||||
        public async Task<IResponseOutput> ArchiveStudyNew(/*[FromForm] ArchiveStudyCommand archiveStudyCommand,*/ Guid trialId, Guid subjectVisitId, string studyInstanceUid, Guid? abandonStudyId,Guid studyMonitorId,
 | 
					        public async Task<IResponseOutput> ArchiveStudyNew(/*[FromForm] ArchiveStudyCommand archiveStudyCommand,*/ Guid trialId, Guid subjectVisitId, string studyInstanceUid, Guid? abandonStudyId, Guid studyMonitorId,
 | 
				
			||||||
             [FromServices] ILogger<UploadDownLoadController> _logger,
 | 
					             [FromServices] ILogger<UploadDownLoadController> _logger,
 | 
				
			||||||
             [FromServices] IEasyCachingProvider _provider,
 | 
					             [FromServices] IEasyCachingProvider _provider,
 | 
				
			||||||
             [FromServices] IStudyService _studyService,
 | 
					             [FromServices] IStudyService _studyService,
 | 
				
			||||||
| 
						 | 
					@ -302,9 +302,9 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                _provider.Set($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}", _userInfo.Id, TimeSpan.FromMinutes(30));
 | 
					                _provider.Set($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}", _userInfo.Id, TimeSpan.FromMinutes(30));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          
 | 
					
 | 
				
			||||||
      
 | 
					
 | 
				
			||||||
             
 | 
					
 | 
				
			||||||
            //if (_provider.Exists($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}"))
 | 
					            //if (_provider.Exists($"StudyUid_{trialId}_{archiveStudyCommand.StudyInstanceUid}"))
 | 
				
			||||||
            //{
 | 
					            //{
 | 
				
			||||||
            //    //---当前已有人正在上传和归档该检查!
 | 
					            //    //---当前已有人正在上传和归档该检查!
 | 
				
			||||||
| 
						 | 
					@ -407,7 +407,7 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
                    studyMonitor.IsSuccess = true;
 | 
					                    studyMonitor.IsSuccess = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
               
 | 
					
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception e)
 | 
					            catch (Exception e)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
| 
						 | 
					@ -424,7 +424,7 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
                studyMonitor.StudyCode = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.StudyCode;
 | 
					                studyMonitor.StudyCode = archiveResult.ArchivedDicomStudies.FirstOrDefault()?.StudyCode;
 | 
				
			||||||
                studyMonitor.ArchiveFinishedTime = DateTime.Now;
 | 
					                studyMonitor.ArchiveFinishedTime = DateTime.Now;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              await  _studyMonitorRepository.SaveChangesAsync();
 | 
					                await _studyMonitorRepository.SaveChangesAsync();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -528,7 +528,7 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (!fileName.EndsWith(".xlsx") && !fileName.EndsWith(".csv") && !fileName.EndsWith(".xls"))
 | 
					                if (!fileName.EndsWith(".xlsx") && !fileName.EndsWith(".csv") && !fileName.EndsWith(".xls"))
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                //---支持.xlsx、.xls、.csv格式的文件上传。
 | 
					                    //---支持.xlsx、.xls、.csv格式的文件上传。
 | 
				
			||||||
                    throw new BusinessValidationFailedException(StaticData.International("UploadDownLoad_SupportedFormats"));
 | 
					                    throw new BusinessValidationFailedException(StaticData.International("UploadDownLoad_SupportedFormats"));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -686,11 +686,11 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var dt = DateTime.Now;
 | 
					                var dt = DateTime.Now;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                etcCheckList = etcCheckList.Where(t => !(t.Modality == string.Empty || t.SiteCode == string.Empty || t.SubjectCode == string.Empty || t.VisitName == string.Empty || t.StudyDate == string.Empty ||! DateTime.TryParse(t.StudyDate, out dt))).ToList();
 | 
					                etcCheckList = etcCheckList.Where(t => !(t.Modality == string.Empty || t.SiteCode == string.Empty || t.SubjectCode == string.Empty || t.VisitName == string.Empty || t.StudyDate == string.Empty || !DateTime.TryParse(t.StudyDate, out dt))).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (etcCheckList.Count == 0)
 | 
					                if (etcCheckList.Count == 0)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                //---请保证上传数据符合模板文件中的样式,且存在有效数据。
 | 
					                    //---请保证上传数据符合模板文件中的样式,且存在有效数据。
 | 
				
			||||||
                    return ResponseOutput.NotOk(StaticData.International("UploadDownLoad_InvalidData"));
 | 
					                    return ResponseOutput.NotOk(StaticData.International("UploadDownLoad_InvalidData"));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -709,6 +709,38 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #region 医生文件上传下载
 | 
					    #region 医生文件上传下载
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #region DTO
 | 
				
			||||||
 | 
					    public class DoctorDownloadInfo
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public Guid Id { get; set; }
 | 
				
			||||||
 | 
					        public string Name { get; set; }
 | 
				
			||||||
 | 
					        public string ReviewerCode { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public List<DownloadFileInfo> FileList { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    public class DownloadFileInfo
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public string FileName { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public string Path { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public class GetDoctorPathCommand
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public int Language { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public List<Guid> DoctorIdList { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public class GetDoctoreAttachPathCommand
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public Guid DoctorId { get; set; }
 | 
				
			||||||
 | 
					        public List<Guid> AttachmentIdList { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// <summary>医生文件上传下载</summary>
 | 
					    /// <summary>医生文件上传下载</summary>
 | 
				
			||||||
    [ApiExplorerSettings(GroupName = "Common")]
 | 
					    [ApiExplorerSettings(GroupName = "Common")]
 | 
				
			||||||
    [ApiController]
 | 
					    [ApiController]
 | 
				
			||||||
| 
						 | 
					@ -723,55 +755,98 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
        private readonly IFileService _fileService;
 | 
					        private readonly IFileService _fileService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        public FileController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IFileService fileService)
 | 
					        public FileController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IFileService fileService)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            _fileService = fileService;
 | 
					            _fileService = fileService;
 | 
				
			||||||
            _hostEnvironment = hostEnvironment;
 | 
					            _hostEnvironment = hostEnvironment;
 | 
				
			||||||
 | 
					 | 
				
			||||||
            _mapper = mapper;
 | 
					            _mapper = mapper;
 | 
				
			||||||
            _userInfo = userInfo;
 | 
					            _userInfo = userInfo;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 上传文件[FileUpload]
 | 
					        /// New  医生首页 多选 获取多个医生信息+文件路径列表  医生压缩包名称  doctorCode + "_" + doctorName _(时间戳或者随机的Guid)
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="attachmentType">附件类型</param>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        /// <param name="doctorId">医生Id</param>
 | 
					        [HttpPost, Route("file/GetOfficialResume")]
 | 
				
			||||||
        /// <returns>返回文件信息</returns>
 | 
					        public async Task<IResponseOutput<List<DoctorDownloadInfo>>> GetOfficialResume(GetDoctorPathCommand command,
 | 
				
			||||||
        [HttpPost, Route("file/UploadFile/{attachmentType}/{doctorId}")]
 | 
					            [FromServices] IRepository<Attachment> _attachmentrepository)
 | 
				
			||||||
        [DisableFormValueModelBinding]
 | 
					 | 
				
			||||||
        [DisableRequestSizeLimit]
 | 
					 | 
				
			||||||
        public async Task<IResponseOutput> UploadOrdinaryFile(string attachmentType, Guid doctorId)
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return await SingleFileUploadAsync((fileName) => FileStoreHelper.GetDoctorOrdinaryFilePath(_hostEnvironment, fileName, doctorId, attachmentType));
 | 
					            var list = await _attachmentrepository.Where(t => command.DoctorIdList.Contains(t.DoctorId) && command.Language==t.Language).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
 | 
				
			||||||
 | 
					                .Select(g => new DoctorDownloadInfo()
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = g.Key.DoctorId,
 | 
				
			||||||
 | 
					                    Name = g.Key.Name,
 | 
				
			||||||
 | 
					                    ReviewerCode = g.Key.ReviewerCode,
 | 
				
			||||||
 | 
					                    FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
 | 
				
			||||||
 | 
					                }).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return ResponseOutput.Ok(list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 上传文件( 不是医生个人的文件)[FileUpload]
 | 
					        /// New  项目入组  获取医生简历
 | 
				
			||||||
        /// 例如:阅片章程等
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="type">文件类型</param>
 | 
					        /// <param name="command"></param>
 | 
				
			||||||
 | 
					        /// <param name="_doctorService"></param>
 | 
				
			||||||
 | 
					        /// <param name="_attachmentrepository"></param>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
 | 
					        [HttpPost,Route("file/GetTrialDoctorOfficialResume")]
 | 
				
			||||||
        [HttpPost, Route("file/UploadNonDoctorFile/{type}")]
 | 
					        public async Task<IResponseOutput<List<DoctorDownloadInfo>>> GetTrialDoctorOfficialResume(GetDoctorPathCommand command,
 | 
				
			||||||
        [DisableFormValueModelBinding]
 | 
					           [FromServices] IDoctorService _doctorService,
 | 
				
			||||||
        [DisableRequestSizeLimit]
 | 
					           [FromServices] IRepository<Attachment> _attachmentrepository)
 | 
				
			||||||
        public async Task<IResponseOutput> UploadNonDoctorFile(string type)
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return await SingleFileUploadAsync((fileName) => FileStoreHelper.GetNonDoctorFilePath(_hostEnvironment, fileName, type));
 | 
					
 | 
				
			||||||
 | 
					            var list = await _attachmentrepository.Where(t => command.DoctorIdList.Contains(t.DoctorId) && command.Language == t.Language && t.IsOfficial && t.Type.Equals("Resume")).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
 | 
				
			||||||
 | 
					                .Select(g => new DoctorDownloadInfo()
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = g.Key.DoctorId,
 | 
				
			||||||
 | 
					                    Name = g.Key.Name,
 | 
				
			||||||
 | 
					                    ReviewerCode = g.Key.ReviewerCode,
 | 
				
			||||||
 | 
					                    FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
 | 
				
			||||||
 | 
					                }).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return ResponseOutput.Ok(list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// new  医生详情   下载指定简历
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="command"></param>
 | 
				
			||||||
 | 
					        /// <param name="_doctorService"></param>
 | 
				
			||||||
 | 
					        /// <param name="_attachmentrepository"></param>
 | 
				
			||||||
 | 
					        /// <returns></returns>
 | 
				
			||||||
 | 
					        [HttpPost, Route("file/GetDoctorAttachment")]
 | 
				
			||||||
 | 
					        public async Task<IResponseOutput<DoctorDownloadInfo>> GetDoctorAttachment(GetDoctoreAttachPathCommand command,
 | 
				
			||||||
 | 
					         [FromServices] IDoctorService _doctorService,
 | 
				
			||||||
 | 
					         [FromServices] IRepository<Attachment> _attachmentrepository)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var find = await _attachmentrepository.Where(t => command.DoctorId==t.DoctorId && command.AttachmentIdList.Contains(t.Id)).GroupBy(t => new { Name = t.Doctor.FirstName + "_" + t.Doctor.LastName, ReviewerCode = t.Doctor.ReviewerCode, t.DoctorId })
 | 
				
			||||||
 | 
					                .Select(g => new DoctorDownloadInfo()
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    Id = g.Key.DoctorId,
 | 
				
			||||||
 | 
					                    Name = g.Key.Name,
 | 
				
			||||||
 | 
					                    ReviewerCode = g.Key.ReviewerCode,
 | 
				
			||||||
 | 
					                    FileList = g.Select(t => new DownloadFileInfo() { FileName = t.FileName, Path = t.Path }).ToList()
 | 
				
			||||||
 | 
					                }).FirstOrDefaultAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return ResponseOutput.Ok(find);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        #region 废弃
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 下载多个医生的所有附件
 | 
					        /// 下载多个医生的所有附件
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="doctorIds"></param>
 | 
					        /// <param name="doctorIds"></param>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
 | 
					        [Obsolete]
 | 
				
			||||||
        [HttpPost, Route("file/downloadDoctorAttachments")]
 | 
					        [HttpPost, Route("file/downloadDoctorAttachments")]
 | 
				
			||||||
        public async Task<IResponseOutput<UploadFileInfoDTO>> DownloadAttachment(Guid[] doctorIds)
 | 
					        public async Task<IResponseOutput<UploadFileInfoDTO>> DownloadAttachment(Guid[] doctorIds)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					@ -786,24 +861,6 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// 下载医生官方简历
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        /// <param name="language"></param>
 | 
					 | 
				
			||||||
        /// <param name="doctorIds"></param>
 | 
					 | 
				
			||||||
        /// <returns></returns>
 | 
					 | 
				
			||||||
        [HttpPost, Route("file/downloadOfficialCV/{language}")]
 | 
					 | 
				
			||||||
        public async Task<IResponseOutput<UploadFileInfoDTO>> DownloadOfficialResume(int language, Guid[] doctorIds)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            var path = await _fileService.CreateDoctorsAllAttachmentZip(doctorIds);
 | 
					 | 
				
			||||||
            return ResponseOutput.Ok(new UploadFileInfoDTO
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                FilePath = await _fileService.CreateOfficialResumeZip(language, doctorIds),
 | 
					 | 
				
			||||||
                FullFilePath = path + "?access_token=" + HttpContext.Request.Headers["Authorization"].ToString().Substring(7)
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// 下载指定医生的指定附件
 | 
					        /// 下载指定医生的指定附件
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
| 
						 | 
					@ -811,6 +868,7 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
        /// <param name="attachmentIds">要下载的附件Id</param>
 | 
					        /// <param name="attachmentIds">要下载的附件Id</param>
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        [HttpPost, Route("file/downloadByAttachmentId/{doctorId}")]
 | 
					        [HttpPost, Route("file/downloadByAttachmentId/{doctorId}")]
 | 
				
			||||||
 | 
					        [Obsolete]
 | 
				
			||||||
        public async Task<IResponseOutput<UploadFileInfoDTO>> DownloadAttachmentById(Guid doctorId, Guid[] attachmentIds)
 | 
					        public async Task<IResponseOutput<UploadFileInfoDTO>> DownloadAttachmentById(Guid doctorId, Guid[] attachmentIds)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var path = await _fileService.CreateZipPackageByAttachment(doctorId, attachmentIds);
 | 
					            var path = await _fileService.CreateZipPackageByAttachment(doctorId, attachmentIds);
 | 
				
			||||||
| 
						 | 
					@ -822,15 +880,47 @@ namespace IRaCIS.Core.API.Controllers
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// 下载医生官方简历   首页 区分 中文和英文
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="language"></param>
 | 
				
			||||||
 | 
					        /// <param name="doctorIds"></param>
 | 
				
			||||||
 | 
					        /// <returns></returns>
 | 
				
			||||||
 | 
					        [HttpPost, Route("file/downloadOfficialCV/{language}")]
 | 
				
			||||||
 | 
					        [Obsolete]
 | 
				
			||||||
 | 
					        public async Task<IResponseOutput<UploadFileInfoDTO>> DownloadOfficialResume(int language, Guid[] doctorIds)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var path = await _fileService.CreateDoctorsAllAttachmentZip(doctorIds);
 | 
				
			||||||
 | 
					            return ResponseOutput.Ok(new UploadFileInfoDTO
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                FilePath = await _fileService.CreateOfficialResumeZip(language, doctorIds),
 | 
				
			||||||
 | 
					                FullFilePath = path + "?access_token=" + HttpContext.Request.Headers["Authorization"].ToString().Substring(7)
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// 入组 项目下载简历
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="language"></param>
 | 
				
			||||||
 | 
					        /// <param name="trialId"></param>
 | 
				
			||||||
 | 
					        /// <param name="doctorIdArray"></param>
 | 
				
			||||||
 | 
					        /// <returns></returns>
 | 
				
			||||||
        [HttpPost, Route("enroll/downloadResume/{trialId:guid}/{language}")]
 | 
					        [HttpPost, Route("enroll/downloadResume/{trialId:guid}/{language}")]
 | 
				
			||||||
        [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
 | 
					        [TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
 | 
				
			||||||
        [AllowAnonymous]
 | 
					        [AllowAnonymous]
 | 
				
			||||||
 | 
					        [Obsolete]
 | 
				
			||||||
        public async Task<IResponseOutput<string>> DownloadResume(int language, Guid trialId, Guid[] doctorIdArray)
 | 
					        public async Task<IResponseOutput<string>> DownloadResume(int language, Guid trialId, Guid[] doctorIdArray)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var zipPath = await _fileService.CreateOfficialResumeZip(language, doctorIdArray);
 | 
					            var zipPath = await _fileService.CreateOfficialResumeZip(language, doctorIdArray);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ResponseOutput.Ok(zipPath);
 | 
					            return ResponseOutput.Ok(zipPath);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    #endregion
 | 
					    #endregion
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -285,20 +285,19 @@
 | 
				
			||||||
        <member name="T:IRaCIS.Core.API.Controllers.FileController">
 | 
					        <member name="T:IRaCIS.Core.API.Controllers.FileController">
 | 
				
			||||||
            <summary>医生文件上传下载</summary>
 | 
					            <summary>医生文件上传下载</summary>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IRaCIS.Core.API.Controllers.FileController.UploadOrdinaryFile(System.String,System.Guid)">
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.FileController.GetOfficialResume(IRaCIS.Core.API.Controllers.GetDoctorPathCommand,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Attachment})">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            上传文件[FileUpload]
 | 
					            New  医生首页 多选 获取多个医生信息+文件路径列表  医生压缩包名称  doctorCode + "_" + doctorName _(时间戳或者随机的Guid)
 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <param name="attachmentType">附件类型</param>
 | 
					            <returns></returns>
 | 
				
			||||||
            <param name="doctorId">医生Id</param>
 | 
					 | 
				
			||||||
            <returns>返回文件信息</returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IRaCIS.Core.API.Controllers.FileController.UploadNonDoctorFile(System.String)">
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.FileController.GetTrialDoctorOfficialResume(IRaCIS.Core.API.Controllers.GetDoctorPathCommand,IRaCIS.Application.Interfaces.IDoctorService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Attachment})">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            上传文件( 不是医生个人的文件)[FileUpload]
 | 
					            New  项目入组  获取医生简历
 | 
				
			||||||
            例如:阅片章程等
 | 
					 | 
				
			||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <param name="type">文件类型</param>
 | 
					            <param name="command"></param>
 | 
				
			||||||
 | 
					            <param name="_doctorService"></param>
 | 
				
			||||||
 | 
					            <param name="_attachmentrepository"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IRaCIS.Core.API.Controllers.FileController.DownloadAttachment(System.Guid[])">
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.FileController.DownloadAttachment(System.Guid[])">
 | 
				
			||||||
| 
						 | 
					@ -308,14 +307,6 @@
 | 
				
			||||||
            <param name="doctorIds"></param>
 | 
					            <param name="doctorIds"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IRaCIS.Core.API.Controllers.FileController.DownloadOfficialResume(System.Int32,System.Guid[])">
 | 
					 | 
				
			||||||
            <summary>
 | 
					 | 
				
			||||||
            下载医生官方简历
 | 
					 | 
				
			||||||
            </summary>
 | 
					 | 
				
			||||||
            <param name="language"></param>
 | 
					 | 
				
			||||||
            <param name="doctorIds"></param>
 | 
					 | 
				
			||||||
            <returns></returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					 | 
				
			||||||
        <member name="M:IRaCIS.Core.API.Controllers.FileController.DownloadAttachmentById(System.Guid,System.Guid[])">
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.FileController.DownloadAttachmentById(System.Guid,System.Guid[])">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            下载指定医生的指定附件
 | 
					            下载指定医生的指定附件
 | 
				
			||||||
| 
						 | 
					@ -324,6 +315,26 @@
 | 
				
			||||||
            <param name="attachmentIds">要下载的附件Id</param>
 | 
					            <param name="attachmentIds">要下载的附件Id</param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.FileController.DownloadOfficialResume(System.Int32,System.Guid[])">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            下载医生官方简历   首页 区分 中文和英文
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="language"></param>
 | 
				
			||||||
 | 
					            <param name="doctorIds"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.FileController.DownloadResume(System.Int32,System.Guid,System.Guid[])">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            入组 项目下载简历
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="language"></param>
 | 
				
			||||||
 | 
					            <param name="trialId"></param>
 | 
				
			||||||
 | 
					            <param name="doctorIdArray"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.UploadDownLoadController.DownloadCommonFile(System.String,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.CommonDocument})">
 | 
				
			||||||
 | 
					            <summary>  通用文件下载 </summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IRaCIS.Core.API.Controllers.UploadDownLoadController.UploadCommonDoc">
 | 
					        <member name="M:IRaCIS.Core.API.Controllers.UploadDownLoadController.UploadCommonDoc">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            上传通用文档  比如一致性核查的 比如导出的excel 模板
 | 
					            上传通用文档  比如一致性核查的 比如导出的excel 模板
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,17 +51,19 @@ namespace IRaCIS.Core.Application.Helper
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            var ossOptions = options.CurrentValue;
 | 
					            var ossOptions = options.CurrentValue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            _OSSConfig = new AliyunOssOptions()
 | 
					            _OSSConfig= ossOptions;
 | 
				
			||||||
            {
 | 
					
 | 
				
			||||||
                RegionId = ossOptions.RegionId,
 | 
					            //_OSSConfig = new AliyunOssOptions()
 | 
				
			||||||
                AccessKeyId = ossOptions.AccessKeyId,
 | 
					            //{
 | 
				
			||||||
                AccessKeySecret = ossOptions.AccessKeySecret,
 | 
					            //    RegionId = ossOptions.RegionId,
 | 
				
			||||||
                EndPoint = ossOptions.EndPoint,
 | 
					            //    AccessKeyId = ossOptions.AccessKeyId,
 | 
				
			||||||
                BucketName = ossOptions.BucketName,
 | 
					            //    AccessKeySecret = ossOptions.AccessKeySecret,
 | 
				
			||||||
                RoleArn = ossOptions.RoleArn,
 | 
					            //    EndPoint = ossOptions.EndPoint,
 | 
				
			||||||
                Region = ossOptions.Region,
 | 
					            //    BucketName = ossOptions.BucketName,
 | 
				
			||||||
                ViewEndpoint = ossOptions.ViewEndpoint
 | 
					            //    RoleArn = ossOptions.RoleArn,
 | 
				
			||||||
            };
 | 
					            //    Region = ossOptions.Region,
 | 
				
			||||||
 | 
					            //    ViewEndpoint = ossOptions.ViewEndpoint
 | 
				
			||||||
 | 
					            //};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            _ossClient = new OssClient(_OSSConfig.EndPoint, _OSSConfig.AccessKeyId, _OSSConfig.AccessKeySecret);
 | 
					            _ossClient = new OssClient(_OSSConfig.EndPoint, _OSSConfig.AccessKeyId, _OSSConfig.AccessKeySecret);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1954,6 +1954,13 @@
 | 
				
			||||||
            <param name="inDto"></param>
 | 
					            <param name="inDto"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetEvidenceFocalFDG(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            骨髓中是否存在局灶性 FDG亲和病灶的证据
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="inDto"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetLiverAssessment(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
 | 
					        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetLiverAssessment(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            获取肝脏评估
 | 
					            获取肝脏评估
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,7 +98,8 @@ namespace IRaCIS.Application.Services
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        public async Task<string> CreateDoctorsAllAttachmentZip(Guid[] doctorIds)
 | 
					        public async Task<string> CreateDoctorsAllAttachmentZip(Guid[] doctorIds)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            //准备下载文件的临时路径
 | 
					            #region 老版本 存储在服务器
 | 
				
			||||||
 | 
					              //准备下载文件的临时路径
 | 
				
			||||||
            var guidStr = Guid.NewGuid().ToString();
 | 
					            var guidStr = Guid.NewGuid().ToString();
 | 
				
			||||||
            //string uploadFolderPath = HostingEnvironment.MapPath("/UploadFile/");
 | 
					            //string uploadFolderPath = HostingEnvironment.MapPath("/UploadFile/");
 | 
				
			||||||
            string uploadFolderPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "UploadFile");
 | 
					            string uploadFolderPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "UploadFile");
 | 
				
			||||||
| 
						 | 
					@ -134,6 +135,8 @@ namespace IRaCIS.Application.Services
 | 
				
			||||||
            string targetPath = Path.Combine(uploadFolderPath, target + ".zip");
 | 
					            string targetPath = Path.Combine(uploadFolderPath, target + ".zip");
 | 
				
			||||||
            ZipHelper.CreateZip(tempSavePath, targetPath);
 | 
					            ZipHelper.CreateZip(tempSavePath, targetPath);
 | 
				
			||||||
            return Path.Combine("/IRaCISData/UploadFile/", target + ".zip");
 | 
					            return Path.Combine("/IRaCISData/UploadFile/", target + ".zip");
 | 
				
			||||||
 | 
					            #endregion
 | 
				
			||||||
 | 
					         
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,9 @@ namespace IRaCIS.Core.Application.Service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CreateMap<TrialUser, TrialDocumentUserConfirmView>();
 | 
					            CreateMap<TrialUser, TrialDocumentUserConfirmView>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            CreateMap<BatchAddTrialEmailNoticeConfig, TrialEmailNoticeConfig>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CreateMap<AddOrEditTrialDocument, TrialDocument>()
 | 
					            CreateMap<AddOrEditTrialDocument, TrialDocument>()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,6 +119,8 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject.DTO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public class InstancePathDTO
 | 
					    public class InstancePathDTO
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        public string StudyInstanceUid { get; set; }
 | 
				
			||||||
 | 
					        public string SopInstanceUid { get; set; }
 | 
				
			||||||
        public string StudyCode { get; set; }
 | 
					        public string StudyCode { get; set; }
 | 
				
			||||||
        public string InstancePath { get; set; }
 | 
					        public string InstancePath { get; set; }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -194,7 +194,7 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
 | 
				
			||||||
        [HttpPost]
 | 
					        [HttpPost]
 | 
				
			||||||
        public async Task<List<InstancePathDTO>> GetStudyModalityOSSPath(List<Guid> seriesIdList, [FromServices] IRepository<DicomSeries> _dicomSeriesRepository)
 | 
					        public async Task<List<InstancePathDTO>> GetStudyModalityOSSPath(List<Guid> seriesIdList, [FromServices] IRepository<DicomSeries> _dicomSeriesRepository)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return await _dicomSeriesRepository.Where(t => seriesIdList.Contains(t.Id)).SelectMany(t => t.DicomInstanceList).Select(t => new InstancePathDTO() {InstancePath= t.Path,StudyCode=t.DicomStudy.StudyCode } ).ToListAsync();
 | 
					            return await _dicomSeriesRepository.Where(t => seriesIdList.Contains(t.Id)).SelectMany(t => t.DicomInstanceList).Select(t => new InstancePathDTO() {InstancePath= t.Path,StudyCode=t.DicomStudy.StudyCode , SopInstanceUid = t.SopInstanceUid, StudyInstanceUid = t.StudyInstanceUid} ).ToListAsync();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,11 @@ namespace IRaCIS.Core.Domain.Models
 | 
				
			||||||
    [Table("Attachment")]
 | 
					    [Table("Attachment")]
 | 
				
			||||||
    public partial class Attachment : Entity, IAuditAdd
 | 
					    public partial class Attachment : Entity, IAuditAdd
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        public Guid? DoctorId { get; set; }
 | 
					
 | 
				
			||||||
 | 
					        [JsonIgnore]
 | 
				
			||||||
 | 
					        public Doctor Doctor { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public Guid DoctorId { get; set; }
 | 
				
			||||||
        public string Type { get; set; }
 | 
					        public string Type { get; set; }
 | 
				
			||||||
        public bool IsOfficial { get; set; } = false;
 | 
					        public bool IsOfficial { get; set; } = false;
 | 
				
			||||||
        public string Path { get; set; } = string.Empty;
 | 
					        public string Path { get; set; } = string.Empty;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue