| 
					
					
						
							
						
					
					
				 | 
				@ -7,6 +7,7 @@ using Shentun.Peis.DeviceTypes; | 
			
		
		
	
		
			
				 | 
				 | 
				using Shentun.Peis.Enums; | 
				 | 
				 | 
				using Shentun.Peis.Enums; | 
			
		
		
	
		
			
				 | 
				 | 
				using Shentun.Peis.ForSexs; | 
				 | 
				 | 
				using Shentun.Peis.ForSexs; | 
			
		
		
	
		
			
				 | 
				 | 
				using Shentun.Peis.Models; | 
				 | 
				 | 
				using Shentun.Peis.Models; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				using Shentun.Peis.PatientRegisters; | 
			
		
		
	
		
			
				 | 
				 | 
				using Shentun.Peis.RegisterCheckCriticalValues; | 
				 | 
				 | 
				using Shentun.Peis.RegisterCheckCriticalValues; | 
			
		
		
	
		
			
				 | 
				 | 
				using Shentun.Peis.RegisterCheckItems; | 
				 | 
				 | 
				using Shentun.Peis.RegisterCheckItems; | 
			
		
		
	
		
			
				 | 
				 | 
				using Shentun.Peis.RegisterCheckPictures; | 
				 | 
				 | 
				using Shentun.Peis.RegisterCheckPictures; | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -330,8 +331,79 @@ namespace Shentun.Peis.RegisterAsbitems | 
			
		
		
	
		
			
				 | 
				 | 
				                   OrderBy(o => o.Id).ToList(); | 
				 | 
				 | 
				                   OrderBy(o => o.Id).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				            return entdto; | 
				 | 
				 | 
				            return entdto; | 
			
		
		
	
		
			
				 | 
				 | 
				        } | 
				 | 
				 | 
				        } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        /// <summary>
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        /// 
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        /// </summary>
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        /// <param name="input"></param>
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        /// <returns></returns>
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        [HttpGet("api/app/registerasbitem/GetCanChargeAsbitemsByPatientRegisterId")] | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        public async Task<List<RegisterCheckAsbitemOrAsbitemDto>> GetCanChargeAsbitemsByPatientRegisterIdAsync(PatientRegisterIdInputDto input) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            var patientReigister = await _patientRegisterRepository.GetAsync(input.PatientRegisterId); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            var entlist = (await _registerCheckAsbitemRepository.GetQueryableAsync()) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                .Include(x => x.Asbitem) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                .Include(x => x.Asbitem.ItemType) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                .Include(x => x.RegisterCheck) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				              .Where(m => m.PatientRegisterId == input.PatientRegisterId &&  | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                        m.IsCharge == 'Y' && m.PayTypeFlag == PayTypeFlag.PersonPay).ToList().OrderByDescending(o => o.GroupPackageId).ThenBy(o => o.Asbitem.DisplayOrder); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            var entdto = entlist.Select(s => new RegisterCheckAsbitemOrAsbitemDto | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                Discount = s.StandardPrice == 0 ? 100 : Math.Round(Convert.ToDecimal(s.ChargePrice * 100 / s.StandardPrice), 2), | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                IsLock = s.RegisterCheck.IsLock, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                CreationTime = s.CreationTime, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                CreatorId = s.CreatorId, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                Id = s.Id, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                LastModificationTime = s.LastModificationTime, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                LastModifierId = s.LastModifierId, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                Amount = s.Amount, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                AsbitemId = s.AsbitemId, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                AsbitemName = s.Asbitem.DisplayName, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                ChargePrice = s.ChargePrice, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                IsBelongGroupPackage = 'N', | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                //GroupPackageId = s.GroupPackageId,
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                CheckCompleteFlag = s.RegisterCheck.CompleteFlag, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                DeviceTypeName = s.Asbitem.DeviceTypeId != null ? _cacheService.GetDeviceTypeNameAsync(s.Asbitem.DeviceTypeId.Value).Result : "", | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                IsCharge = s.IsCharge, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                ItemTypeName = s.Asbitem.ItemType.DisplayName, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                LisRequestId = s.LisRequestId, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                PatientRegisterId = s.PatientRegisterId, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                PayTypeFlag = s.PayTypeFlag, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                SexName = _cacheService.GetForSexNameAsync(s.Asbitem.ForSexId).Result, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                StandardPrice = s.StandardPrice, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            }).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            //设置GroupPackageId
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            if (patientReigister.CustomerOrgGroupId != null && patientReigister.CustomerOrgGroupId != Guid.Empty) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                var groupDetails = (await _customerOrgGroupDetailRepository.GetQueryableAsync()).Where(o => o.CustomerOrgGroupId == patientReigister.CustomerOrgGroupId).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                entdto.ForEach(o => | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    if (groupDetails.Where(x => x.AsbitemId == o.AsbitemId).Count() > 0) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                        o.IsBelongGroupPackage = 'Y'; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                }); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            else if (patientReigister.MedicalPackageId != null && patientReigister.MedicalPackageId != Guid.Empty) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                var groupDetails = (await _medicalPackageDetailRepository.GetQueryableAsync()).Where(o => o.MedicalPackageId == patientReigister.MedicalPackageId).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                entdto.ForEach(o => | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    if (groupDetails.Where(x => x.AsbitemId == o.AsbitemId).Count() > 0) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                        o.IsBelongGroupPackage = 'Y'; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                    } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                }); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            } | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            entdto = entdto.OrderByDescending(o => o.IsBelongGroupPackage). | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                   OrderBy(o => o.Id).ToList(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            return entdto; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        } | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				        #region 批量操作组合项目业务,单位操作
 | 
				 | 
				 | 
				        #region 批量操作组合项目业务,单位操作
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |