You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							554 lines
						
					
					
						
							23 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							554 lines
						
					
					
						
							23 KiB
						
					
					
				
								using Microsoft.AspNetCore.Authorization;
							 | 
						|
								using Microsoft.AspNetCore.Http;
							 | 
						|
								using Microsoft.AspNetCore.Mvc;
							 | 
						|
								using Microsoft.Extensions.Configuration;
							 | 
						|
								using Shentun.Peis.Enums;
							 | 
						|
								using Shentun.Peis.GuideTypes;
							 | 
						|
								using Shentun.Peis.Models;
							 | 
						|
								using Shentun.Peis.PatientRegisters;
							 | 
						|
								using System;
							 | 
						|
								using System.Collections.Generic;
							 | 
						|
								using System.Linq;
							 | 
						|
								using System.Text;
							 | 
						|
								using System.Threading.Tasks;
							 | 
						|
								using Volo.Abp;
							 | 
						|
								using Volo.Abp.Application.Services;
							 | 
						|
								using Volo.Abp.Domain.Repositories;
							 | 
						|
								using Volo.Abp.Identity;
							 | 
						|
								
							 | 
						|
								namespace Shentun.Peis.RegisterCheckPictures
							 | 
						|
								{
							 | 
						|
								    /// <summary>
							 | 
						|
								    /// 体检登记组合项目图片
							 | 
						|
								    /// </summary>
							 | 
						|
								    [ApiExplorerSettings(GroupName = "Work")]
							 | 
						|
								    [Authorize]
							 | 
						|
								    public class RegisterCheckPictureAppService : ApplicationService
							 | 
						|
								    {
							 | 
						|
								        private readonly IRepository<IdentityUser, Guid> _userRepository;
							 | 
						|
								        private readonly IRepository<RegisterCheckPicture, Guid> _registerCheckPictureRepository;
							 | 
						|
								        private readonly IRepository<RegisterCheckAsbitem, Guid> _registerCheckAsbitemRepository;
							 | 
						|
								        private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
							 | 
						|
								        private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
							 | 
						|
								        private readonly IRepository<LisRequest, Guid> _lisRequestRepository;
							 | 
						|
								        private readonly RegisterCheckPictureManager _registerCheckPictureManager;
							 | 
						|
								        private readonly IConfiguration _configuration;
							 | 
						|
								
							 | 
						|
								        public RegisterCheckPictureAppService(
							 | 
						|
								            IRepository<RegisterCheckPicture, Guid> registerCheckPictureRepository,
							 | 
						|
								            RegisterCheckPictureManager registerCheckPictureManager,
							 | 
						|
								            IRepository<IdentityUser, Guid> userRepository,
							 | 
						|
								            IRepository<RegisterCheckAsbitem, Guid> registerCheckAsbitemRepository,
							 | 
						|
								            IConfiguration configuration,
							 | 
						|
								            IRepository<RegisterCheck, Guid> registerCheckRepository,
							 | 
						|
								            IRepository<PatientRegister, Guid> patientRegisterRepository,
							 | 
						|
								            IRepository<LisRequest, Guid> lisRequestRepository)
							 | 
						|
								        {
							 | 
						|
								            _registerCheckPictureRepository = registerCheckPictureRepository;
							 | 
						|
								            _registerCheckPictureManager = registerCheckPictureManager;
							 | 
						|
								            _userRepository = userRepository;
							 | 
						|
								            _registerCheckAsbitemRepository = registerCheckAsbitemRepository;
							 | 
						|
								            _configuration = configuration;
							 | 
						|
								            _registerCheckRepository = registerCheckRepository;
							 | 
						|
								            _patientRegisterRepository = patientRegisterRepository;
							 | 
						|
								            _lisRequestRepository = lisRequestRepository;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 根据RegisterCheckId获取列表
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <param name="RegisterCheckId">RegisterCheck表ID</param>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        [HttpGet("api/app/registercheckpicture/getregistercheckpictureinregistercheckid")]
							 | 
						|
								        public async Task<List<RegisterCheckPictureDto>> GetRegisterCheckPictureInRegisterCheckIdAsync(Guid RegisterCheckId)
							 | 
						|
								        {
							 | 
						|
								            var query = from a in await _registerCheckPictureRepository.GetQueryableAsync()
							 | 
						|
								                        join b in await _userRepository.GetQueryableAsync() on a.CreatorId equals b.Id into bb
							 | 
						|
								                        from ab in bb.DefaultIfEmpty()
							 | 
						|
								                        join c in await _userRepository.GetQueryableAsync() on a.LastModifierId equals c.Id into cc
							 | 
						|
								                        from ac in cc.DefaultIfEmpty()
							 | 
						|
								                        where a.RegisterCheckId == RegisterCheckId
							 | 
						|
								                        select new
							 | 
						|
								                        {
							 | 
						|
								                            a,
							 | 
						|
								                            CreatorName = ab != null ? ab.Surname : "",
							 | 
						|
								                            LastModifierName = ac != null ? ac.Surname : ""
							 | 
						|
								                        };
							 | 
						|
								
							 | 
						|
								            var entlistdto = query.Select(s => new RegisterCheckPictureDto
							 | 
						|
								            {
							 | 
						|
								                Id = s.a.Id,
							 | 
						|
								                RegisterCheckId = s.a.RegisterCheckId,
							 | 
						|
								                CreationTime = s.a.CreationTime,
							 | 
						|
								                CreatorId = s.a.CreatorId,
							 | 
						|
								                DisplayOrder = s.a.DisplayOrder,
							 | 
						|
								                IsPrint = s.a.IsPrint,
							 | 
						|
								                LastModificationTime = s.a.LastModificationTime,
							 | 
						|
								                LastModifierId = s.a.LastModifierId,
							 | 
						|
								                PictureFilename = s.a.PictureFilename,
							 | 
						|
								                LastModifierName = s.LastModifierName,
							 | 
						|
								                CreatorName = s.CreatorName
							 | 
						|
								            }).OrderBy(o => o.DisplayOrder).ToList();
							 | 
						|
								
							 | 
						|
								            return entlistdto;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 创建以及更新  批量操作  排序值不传就默认按传过来的顺序生成
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <param name="input"></param>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        [HttpPost("api/app/registercheckpicture/UpdateRegisterCheckPictureStatusMany")]
							 | 
						|
								        public async Task UpdateRegisterCheckPictureStatusManyAsync(List<UpdateRegisterCheckPictureStatusManyDto> input)
							 | 
						|
								        {
							 | 
						|
								
							 | 
						|
								            if (!input.Any())
							 | 
						|
								            {
							 | 
						|
								                throw new UserFriendlyException("请求参数有误");
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            List<RegisterCheckPicture> entlist_insert = new List<RegisterCheckPicture>();
							 | 
						|
								            List<RegisterCheckPicture> entlist_update = new List<RegisterCheckPicture>();
							 | 
						|
								
							 | 
						|
								            string PicName = DateTime.Now.ToString("yyyyMMddHHmmss");
							 | 
						|
								
							 | 
						|
								            foreach (var item in input)
							 | 
						|
								            {
							 | 
						|
								
							 | 
						|
								                var ent = await _registerCheckPictureRepository.FirstOrDefaultAsync(m => m.Id == item.RegisterCheckPictureId);
							 | 
						|
								                if (ent != null)
							 | 
						|
								                {
							 | 
						|
								                    ent.DisplayOrder = input.IndexOf(item) + 1;
							 | 
						|
								                    // ent.PictureFilename = item.PictureFilename;
							 | 
						|
								                    ent.IsPrint = item.IsPrint;
							 | 
						|
								
							 | 
						|
								                    entlist_update.Add(ent);
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								            if (entlist_update.Any())
							 | 
						|
								            {
							 | 
						|
								                await _registerCheckPictureRepository.UpdateManyAsync(entlist_update);
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 图片上传功能 base64  支持批量
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <param name="input"></param>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        /// <exception cref="UserFriendlyException"></exception>
							 | 
						|
								        [HttpPost("api/app/registercheckpicture/uploadregistercheckpicturemany")]
							 | 
						|
								        public async Task<List<string>> UploadRegisterCheckPictureManyAsync(UploadRegisterCheckPictureManyDto input)
							 | 
						|
								        {
							 | 
						|
								
							 | 
						|
								            Random rd = new Random();
							 | 
						|
								
							 | 
						|
								            string AbsolutePath = _configuration.GetValue<string>("VirtualPath:RealPath");
							 | 
						|
								            string AbsoluteName = _configuration.GetValue<string>("VirtualPath:Alias");
							 | 
						|
								
							 | 
						|
								            List<string> msg = new List<string>();
							 | 
						|
								
							 | 
						|
								            if (!input.PictureBaseStrs.Any())
							 | 
						|
								            {
							 | 
						|
								                throw new UserFriendlyException("请求参数有误");
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            string PatientRegisterId = "";
							 | 
						|
								
							 | 
						|
								            var patientRegisterCompleteFlag = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
							 | 
						|
								                                               join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId
							 | 
						|
								                                               where registerCheck.Id == input.RegisterCheckId
							 | 
						|
								                                               select new
							 | 
						|
								                                               {
							 | 
						|
								                                                   CompleteFlag = patientRegister.CompleteFlag
							 | 
						|
								                                               }).ToList();
							 | 
						|
								
							 | 
						|
								            if (patientRegisterCompleteFlag.Count == 0)
							 | 
						|
								                throw new UserFriendlyException("体检人员不存在");
							 | 
						|
								
							 | 
						|
								            if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.PreRegistration)
							 | 
						|
								                throw new UserFriendlyException("预登记人员不能导入图片");
							 | 
						|
								            if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.SumCheck)
							 | 
						|
								                throw new UserFriendlyException("已总检人员不能导入图片");
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            List<RegisterCheckPicture> entlist_insert = new List<RegisterCheckPicture>();
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            foreach (var item in input.PictureBaseStrs)
							 | 
						|
								            {
							 | 
						|
								
							 | 
						|
								                //string PictureUrl = ImageHelper.Base64StrToImageInAbsolutePath(AbsolutePath, item,
							 | 
						|
								                //    PatientRegisterId,
							 | 
						|
								                //    input.RegisterCheckId.ToString(),
							 | 
						|
								                //    PicName + "_" + (input.PictureBaseStrs.IndexOf(item) + 1));
							 | 
						|
								                string PictureUrl = ImageHelper.Base64StrToImageInAbsolutePath(AbsolutePath, item.FileName, item.PictureBaseStr,
							 | 
						|
								                    PatientRegisterId,
							 | 
						|
								                    input.RegisterCheckId.ToString(), AbsoluteName);
							 | 
						|
								
							 | 
						|
								                if (string.IsNullOrEmpty(PictureUrl))
							 | 
						|
								                {
							 | 
						|
								                    throw new UserFriendlyException("图片数据有误");
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                var ent = await _registerCheckPictureRepository.FirstOrDefaultAsync(m => m.RegisterCheckId == input.RegisterCheckId
							 | 
						|
								                   && m.PictureFilename == PictureUrl);
							 | 
						|
								
							 | 
						|
								                if (ent != null)
							 | 
						|
								                {
							 | 
						|
								                    ent.PictureFilename = PictureUrl;
							 | 
						|
								
							 | 
						|
								                    await _registerCheckPictureRepository.UpdateAsync(ent);
							 | 
						|
								                }
							 | 
						|
								                else
							 | 
						|
								                {
							 | 
						|
								                    ent = new RegisterCheckPicture
							 | 
						|
								                    {
							 | 
						|
								                        DisplayOrder = input.PictureBaseStrs.IndexOf(item) + 1,
							 | 
						|
								                        IsPrint = 'Y',
							 | 
						|
								                        PictureFilename = PictureUrl,
							 | 
						|
								                        RegisterCheckId = input.RegisterCheckId,
							 | 
						|
								                        PictureFileType = input.PictureFileType
							 | 
						|
								                    };
							 | 
						|
								
							 | 
						|
								                    await _registerCheckPictureRepository.InsertAsync(ent);
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                msg.Add(PictureUrl);
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            return msg;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        ///  图片上传功能  文件流   支持批量 
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <param name="files"></param>
							 | 
						|
								        /// <param name="RegisterCheckId"></param>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        /// <exception cref="UserFriendlyException"></exception>
							 | 
						|
								        [RemoteService(false)]
							 | 
						|
								        [HttpPost("api/app/registercheckpicture/uploadregistercheckpicturefilemany")]
							 | 
						|
								        public async Task<List<string>> UploadRegisterCheckPictureFileManyAsync([FromForm(Name = "file")] List<IFormFile> files, Guid RegisterCheckId)
							 | 
						|
								        {
							 | 
						|
								
							 | 
						|
								            Random rd = new Random();
							 | 
						|
								
							 | 
						|
								            string AbsolutePath = _configuration.GetValue<string>("VirtualPath:RealPath");
							 | 
						|
								
							 | 
						|
								            List<string> msg = new List<string>();
							 | 
						|
								
							 | 
						|
								            if (!files.Any())
							 | 
						|
								            {
							 | 
						|
								                throw new UserFriendlyException("请求参数有误");
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            string PatientRegisterId = "";
							 | 
						|
								
							 | 
						|
								            var registerAsbitemEntity = await _registerCheckAsbitemRepository.FirstOrDefaultAsync(m => m.RegisterCheckId == RegisterCheckId);
							 | 
						|
								            if (registerAsbitemEntity != null)
							 | 
						|
								            {
							 | 
						|
								                PatientRegisterId = registerAsbitemEntity.PatientRegisterId.ToString();
							 | 
						|
								            }
							 | 
						|
								            else
							 | 
						|
								            {
							 | 
						|
								                throw new UserFriendlyException("体检人员不存在");
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            string PicName = DateTime.Now.ToString("yyyyMMddHHmmss") + rd.Next(1000, 9999);
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            List<RegisterCheckPicture> entlist_insert = new List<RegisterCheckPicture>();
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            foreach (var item in files)
							 | 
						|
								            {
							 | 
						|
								
							 | 
						|
								                string PictureUrl = ImageHelper.Base64StrToImageInAbsolutePath2(AbsolutePath, item,
							 | 
						|
								                    PatientRegisterId,
							 | 
						|
								                    RegisterCheckId.ToString(),
							 | 
						|
								                    PicName + "_" + (files.IndexOf(item) + 1));
							 | 
						|
								
							 | 
						|
								                if (string.IsNullOrEmpty(PictureUrl))
							 | 
						|
								                {
							 | 
						|
								                    throw new UserFriendlyException("图片数据有误");
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                var ent = new RegisterCheckPicture
							 | 
						|
								                {
							 | 
						|
								                    DisplayOrder = files.IndexOf(item) + 1,
							 | 
						|
								                    IsPrint = 'N',
							 | 
						|
								                    PictureFilename = PictureUrl,
							 | 
						|
								                    RegisterCheckId = RegisterCheckId
							 | 
						|
								                };
							 | 
						|
								
							 | 
						|
								                entlist_insert.Add(ent);
							 | 
						|
								
							 | 
						|
								                msg.Add(PictureUrl);
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            if (entlist_insert.Any())
							 | 
						|
								            {
							 | 
						|
								                await _registerCheckPictureRepository.InsertManyAsync(entlist_insert);
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            return msg;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 删除 批量
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <param name="ids"></param>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        /// <exception cref="UserFriendlyException"></exception>
							 | 
						|
								        [HttpPost("api/app/registercheckpicture/deleteregistercheckpicturemany")]
							 | 
						|
								        public async Task DeleteRegisterCheckPictureManyAsync(List<Guid> ids)
							 | 
						|
								        {
							 | 
						|
								            if (ids.Any())
							 | 
						|
								            {
							 | 
						|
								                var patientRegisterCompleteFlag = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
							 | 
						|
								                                                   join registerCheck in await _registerCheckRepository.GetQueryableAsync()
							 | 
						|
								                                                   on patientRegister.Id equals registerCheck.PatientRegisterId
							 | 
						|
								                                                   join registerCheckPicture in await _registerCheckPictureRepository.GetQueryableAsync()
							 | 
						|
								                                                   on registerCheck.Id equals registerCheckPicture.RegisterCheckId
							 | 
						|
								                                                   where ids.Contains(registerCheckPicture.Id)
							 | 
						|
								                                                   select new
							 | 
						|
								                                                   {
							 | 
						|
								                                                       CompleteFlag = patientRegister.CompleteFlag
							 | 
						|
								                                                   }).ToList();
							 | 
						|
								
							 | 
						|
								                if (patientRegisterCompleteFlag.Count == 0)
							 | 
						|
								                    throw new UserFriendlyException("Id不存在");
							 | 
						|
								
							 | 
						|
								                if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.SumCheck)
							 | 
						|
								                {
							 | 
						|
								                    throw new UserFriendlyException("已总检人员不能删除图片");
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								                await _registerCheckPictureRepository.DeleteAsync(m => ids.Contains(m.Id));
							 | 
						|
								            }
							 | 
						|
								            else
							 | 
						|
								            {
							 | 
						|
								                throw new UserFriendlyException("请求参数有误");
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 导入检查图片  根据检查单号
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        [HttpPost("api/app/RegisterCheckPicture/ImportRegisterCheckPicture")]
							 | 
						|
								        public async Task ImportRegisterCheckPictureAsync(ImportRegisterCheckPictureInputDto input)
							 | 
						|
								        {
							 | 
						|
								            var registerCheckEnt = await _registerCheckRepository.FirstOrDefaultAsync(f => f.CheckRequestNo == input.CheckRequestNo);
							 | 
						|
								            if (registerCheckEnt == null)
							 | 
						|
								                throw new UserFriendlyException("检查条码号不正确");
							 | 
						|
								
							 | 
						|
								            if (string.IsNullOrWhiteSpace(input.PictureBase64))
							 | 
						|
								                throw new UserFriendlyException("图片不能为空");
							 | 
						|
								
							 | 
						|
								            var pic = new List<UploadRegisterCheckPictureManyPictureBaseStrsDto>();
							 | 
						|
								            pic.Add(new UploadRegisterCheckPictureManyPictureBaseStrsDto
							 | 
						|
								            {
							 | 
						|
								                FileName = input.PictureName,
							 | 
						|
								                PictureBaseStr = input.PictureBase64
							 | 
						|
								            });
							 | 
						|
								
							 | 
						|
								            await UploadRegisterCheckPictureManyAsync(new UploadRegisterCheckPictureManyDto
							 | 
						|
								            {
							 | 
						|
								                PictureBaseStrs = pic,
							 | 
						|
								                PictureFileType = '0',
							 | 
						|
								                RegisterCheckId = registerCheckEnt.Id
							 | 
						|
								            });
							 | 
						|
								
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 导入检查图片  根据人员条码号+项目ID
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        [HttpPost("api/app/RegisterCheckPicture/ImportRegisterCheckPictureByPatientRegisterNo")]
							 | 
						|
								        public async Task ImportRegisterCheckPictureByPatientRegisterNoAsync(ImportRegisterCheckPictureByPatientRegisterNoInputDto input)
							 | 
						|
								        {
							 | 
						|
								            var registerCheckList = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
							 | 
						|
								                                     join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId
							 | 
						|
								                                     join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
							 | 
						|
								                                     where patientRegister.PatientRegisterNo == input.PatientRegisterNo && registerCheckAsbitem.AsbitemId == input.AsbitemId
							 | 
						|
								                                     select registerCheck).ToList();
							 | 
						|
								
							 | 
						|
								            if (!registerCheckList.Any())
							 | 
						|
								                throw new UserFriendlyException("人员信息或项目信息不正确");
							 | 
						|
								
							 | 
						|
								            if (string.IsNullOrWhiteSpace(input.PictureBase64))
							 | 
						|
								                throw new UserFriendlyException("图片不能为空");
							 | 
						|
								
							 | 
						|
								            var pic = new List<UploadRegisterCheckPictureManyPictureBaseStrsDto>();
							 | 
						|
								            pic.Add(new UploadRegisterCheckPictureManyPictureBaseStrsDto
							 | 
						|
								            {
							 | 
						|
								                FileName = input.PictureName,
							 | 
						|
								                PictureBaseStr = input.PictureBase64
							 | 
						|
								            });
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            foreach (var registerCheck in registerCheckList)
							 | 
						|
								            {
							 | 
						|
								                await UploadRegisterCheckPictureManyAsync(new UploadRegisterCheckPictureManyDto
							 | 
						|
								                {
							 | 
						|
								                    PictureBaseStrs = pic,
							 | 
						|
								                    PictureFileType = '0',
							 | 
						|
								                    RegisterCheckId = registerCheck.Id
							 | 
						|
								                });
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 导入检查图片  根据检验申请号
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        [HttpPost("api/app/RegisterCheckPicture/ImportRegisterCheckPictureByLisRequestNo")]
							 | 
						|
								        public async Task ImportRegisterCheckPictureByLisRequestNoAsync(ImportRegisterCheckPictureByLisRequestNoInputDto input)
							 | 
						|
								        {
							 | 
						|
								            var registerCheckList = (from registerCheck in await _registerCheckRepository.GetQueryableAsync()
							 | 
						|
								                                     join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerCheckAsbitem.RegisterCheckId
							 | 
						|
								                                     join lisRequest in await _lisRequestRepository.GetQueryableAsync() on registerCheckAsbitem.LisRequestId equals lisRequest.Id
							 | 
						|
								                                     where lisRequest.LisRequestNo == input.LisRequestNo && registerCheckAsbitem.AsbitemId == input.AsbitemId
							 | 
						|
								                                     select registerCheck).ToList();
							 | 
						|
								
							 | 
						|
								            if (!registerCheckList.Any())
							 | 
						|
								                throw new UserFriendlyException("人员信息或项目信息不正确");
							 | 
						|
								
							 | 
						|
								            if (string.IsNullOrWhiteSpace(input.PictureBase64))
							 | 
						|
								                throw new UserFriendlyException("图片不能为空");
							 | 
						|
								
							 | 
						|
								            var pic = new List<UploadRegisterCheckPictureManyPictureBaseStrsDto>();
							 | 
						|
								            pic.Add(new UploadRegisterCheckPictureManyPictureBaseStrsDto
							 | 
						|
								            {
							 | 
						|
								                FileName = input.PictureName,
							 | 
						|
								                PictureBaseStr = input.PictureBase64
							 | 
						|
								            });
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            foreach (var registerCheck in registerCheckList)
							 | 
						|
								            {
							 | 
						|
								                await UploadRegisterCheckPictureManyAsync(new UploadRegisterCheckPictureManyDto
							 | 
						|
								                {
							 | 
						|
								                    PictureBaseStrs = pic,
							 | 
						|
								                    PictureFileType = '0',
							 | 
						|
								                    RegisterCheckId = registerCheck.Id
							 | 
						|
								                });
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        /// <summary>
							 | 
						|
								        /// 仪器采图接口
							 | 
						|
								        /// </summary>
							 | 
						|
								        /// <param name="input"></param>
							 | 
						|
								        /// <returns></returns>
							 | 
						|
								        /// <exception cref="UserFriendlyException"></exception>
							 | 
						|
								        [HttpPost("api/app/RegisterCheckPicture/InstrumentMapping")]
							 | 
						|
								        public async Task<List<string>> InstrumentMappingAsync(InstrumentMappingDto input)
							 | 
						|
								        {
							 | 
						|
								
							 | 
						|
								            Random rd = new Random();
							 | 
						|
								
							 | 
						|
								            string AbsolutePath = _configuration.GetValue<string>("PacsVirtualPath:RealPath");
							 | 
						|
								            string AbsoluteName = _configuration.GetValue<string>("PacsVirtualPath:Alias");
							 | 
						|
								
							 | 
						|
								            List<string> msg = new List<string>();
							 | 
						|
								
							 | 
						|
								            if (!input.PictureBaseStrs.Any())
							 | 
						|
								            {
							 | 
						|
								                throw new UserFriendlyException("请求参数有误");
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								            string PatientRegisterId = "";
							 | 
						|
								
							 | 
						|
								            var patientRegisterCompleteFlag = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync()
							 | 
						|
								                                               join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId
							 | 
						|
								                                               where registerCheck.Id == input.RegisterCheckId
							 | 
						|
								                                               select new
							 | 
						|
								                                               {
							 | 
						|
								                                                   CompleteFlag = patientRegister.CompleteFlag
							 | 
						|
								                                               }).ToList();
							 | 
						|
								
							 | 
						|
								            if (patientRegisterCompleteFlag.Count == 0)
							 | 
						|
								                throw new UserFriendlyException("体检人员不存在");
							 | 
						|
								
							 | 
						|
								            if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.PreRegistration)
							 | 
						|
								                throw new UserFriendlyException("预登记人员不能导入图片");
							 | 
						|
								            if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.SumCheck)
							 | 
						|
								                throw new UserFriendlyException("已总检人员不能导入图片");
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            List<RegisterCheckPicture> entlist_insert = new List<RegisterCheckPicture>();
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            foreach (var item in input.PictureBaseStrs)
							 | 
						|
								            {
							 | 
						|
								
							 | 
						|
								                string PictureUrl = ImageHelper.Base64StrToImageInAbsolutePath(AbsolutePath, item.FileName, item.PictureBaseStr,
							 | 
						|
								                    PatientRegisterId,
							 | 
						|
								                    input.RegisterCheckId.ToString(), AbsoluteName);
							 | 
						|
								
							 | 
						|
								                if (string.IsNullOrEmpty(PictureUrl))
							 | 
						|
								                {
							 | 
						|
								                    throw new UserFriendlyException("图片数据有误");
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                var ent = await _registerCheckPictureRepository.FirstOrDefaultAsync(m => m.RegisterCheckId == input.RegisterCheckId
							 | 
						|
								                   && m.PictureFilename == PictureUrl);
							 | 
						|
								
							 | 
						|
								                if (ent != null)
							 | 
						|
								                {
							 | 
						|
								                    ent.PictureFilename = PictureUrl;
							 | 
						|
								
							 | 
						|
								                    await _registerCheckPictureRepository.UpdateAsync(ent);
							 | 
						|
								                }
							 | 
						|
								                else
							 | 
						|
								                {
							 | 
						|
								                    ent = new RegisterCheckPicture
							 | 
						|
								                    {
							 | 
						|
								                        DisplayOrder = input.PictureBaseStrs.IndexOf(item) + 1,
							 | 
						|
								                        IsPrint = 'Y',
							 | 
						|
								                        PictureFilename = PictureUrl,
							 | 
						|
								                        RegisterCheckId = input.RegisterCheckId,
							 | 
						|
								                        PictureFileType = input.PictureFileType,
							 | 
						|
								                        LocalPathName = item.LocalPathName
							 | 
						|
								                    };
							 | 
						|
								
							 | 
						|
								                    await _registerCheckPictureRepository.InsertAsync(ent);
							 | 
						|
								                }
							 | 
						|
								
							 | 
						|
								                msg.Add(PictureUrl);
							 | 
						|
								
							 | 
						|
								            }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								            return msg;
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								}
							 |