| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -112,146 +112,146 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //设置结果
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var list = (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 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join registerCheckItem in await _registerCheckItemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on registerCheck.Id equals registerCheckItem.RegisterCheckId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join item in await _itemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on registerCheckItem.ItemId equals item.Id | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join lisRequest in await _lisRequestRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on registerCheckAsbitem.LisRequestId equals lisRequest.Id | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            where input.Select(o => o.LisRequestNo).ToList().Contains(lisRequest.LisRequestNo) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            select new | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                patientRegister, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                registerCheck, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                registerCheckAsbitem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                registerCheckItem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                item, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                lisRequest, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var list = (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 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        join registerCheckItem in await _registerCheckItemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        on registerCheck.Id equals registerCheckItem.RegisterCheckId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        join item in await _itemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        on registerCheckItem.ItemId equals item.Id | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        join lisRequest in await _lisRequestRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        on registerCheckAsbitem.LisRequestId equals lisRequest.Id | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        where input.Select(o => o.LisRequestNo).ToList().Contains(lisRequest.LisRequestNo) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        select new | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            patientRegister, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            registerCheck, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            registerCheckAsbitem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            registerCheckItem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            item, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequest, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var lisRequestNos = input.Select(o => o.LisRequestNo).Distinct().ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var registerChecks = new List<RegisterCheck>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                _referenceRanges = _referenceRangeRepository.GetListAsync().Result; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                foreach (var inputItem in input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var lisRequestNos = input.Select(o => o.LisRequestNo).Distinct().ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var registerChecks = new List<RegisterCheck>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _referenceRanges = _referenceRangeRepository.GetListAsync().Result; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var inputItem in input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var lisRequestItem = list.Where(o => o.lisRequest.LisRequestNo == inputItem.LisRequestNo | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                             && o.registerCheckItem.ItemId == inputItem.ItemId).FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (lisRequestItem == null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var lisRequestItem = list.Where(o => o.lisRequest.LisRequestNo == inputItem.LisRequestNo | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                 && o.registerCheckItem.ItemId == inputItem.ItemId).FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (lisRequestItem == null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        continue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    lisRequestItem.registerCheckItem.Result = inputItem.Result; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //var itemSource = new RegisterCheckItem()
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //{
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //    Result = inputItem.Result,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //    ReferenceRangeValue = inputItem.ReferenceRangeValue,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //    Unit = inputItem.Unit,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //    CriticalRangeValue = inputItem.CriticalRangeValue
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //};
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //修改参考范围
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await UpdateItemReferenceRangeValueAsync(inputItem.ItemId, lisRequestItem.patientRegister.SexId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.patientRegister.Age, inputItem.ReferenceRangeValue); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //修改单位
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await UpdateItemUnitAsync(inputItem.ItemId, inputItem.Unit); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //await _registerCheckItemManager.UpdateRegisterCheckItemAsync(itemSource, lisRequestItem.registerCheckItem);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //await _registerCheckItemRepository.UpdateAsync(lisRequestItem.registerCheckItem,true);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (!registerChecks.Where(o => o.Id == lisRequestItem.registerCheck.Id).ToList().Any()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheck.CheckDoctorId = inputItem.CheckDoctorName; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheck.CheckDate = inputItem.CheckDate; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        registerChecks.Add(lisRequestItem.registerCheck); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    continue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                lisRequestItem.registerCheckItem.Result = inputItem.Result; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //var itemSource = new RegisterCheckItem()
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //{
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //    Result = inputItem.Result,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //    ReferenceRangeValue = inputItem.ReferenceRangeValue,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //    Unit = inputItem.Unit,
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //    CriticalRangeValue = inputItem.CriticalRangeValue
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //};
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //修改参考范围
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await UpdateItemReferenceRangeValueAsync(inputItem.ItemId, lisRequestItem.patientRegister.SexId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    lisRequestItem.patientRegister.Age, inputItem.ReferenceRangeValue); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //修改单位
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await UpdateItemUnitAsync(inputItem.ItemId, inputItem.Unit); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //await _registerCheckItemManager.UpdateRegisterCheckItemAsync(itemSource, lisRequestItem.registerCheckItem);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //await _registerCheckItemRepository.UpdateAsync(lisRequestItem.registerCheckItem,true);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (!registerChecks.Where(o => o.Id == lisRequestItem.registerCheck.Id).ToList().Any()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    lisRequestItem.registerCheck.CheckDoctorId = inputItem.CheckDoctorName; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    lisRequestItem.registerCheck.CheckDate = inputItem.CheckDate; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    registerChecks.Add(lisRequestItem.registerCheck); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //更新参考范围和单位
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                foreach (var registerCheck in registerChecks) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //更新参考范围和单位
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var registerCheck in registerChecks) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var lisRequestItems = list.Where(o => o.registerCheck.Id == registerCheck.Id).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                foreach (var lisRequestItem in lisRequestItems) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var lisRequestItems = list.Where(o => o.registerCheck.Id == registerCheck.Id).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    foreach (var lisRequestItem in lisRequestItems) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var referenceRange = _referenceRangeManager.GetReferenceRangeBySexAgeTemp(_referenceRanges, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.item, lisRequestItem.patientRegister.SexId, lisRequestItem.patientRegister.Age); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (referenceRange != null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        var referenceRange = _referenceRangeManager.GetReferenceRangeBySexAgeTemp(_referenceRanges, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequestItem.item, lisRequestItem.patientRegister.SexId, lisRequestItem.patientRegister.Age); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (referenceRange != null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequestItem.registerCheckItem.ReferenceRangeValue = referenceRange.ReferenceRangeValue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequestItem.registerCheckItem.CriticalRangeValue = referenceRange.CriticalRangeValue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequestItem.registerCheckItem.ReferenceRangeValue = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequestItem.registerCheckItem.CriticalRangeValue = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        var unit = _units.Where(o => o.Id == lisRequestItem.item.UnitId).FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (unit != null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequestItem.registerCheckItem.Unit = unit.DisplayName; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            lisRequestItem.registerCheckItem.Unit = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        await _registerCheckItemRepository.UpdateAsync(lisRequestItem.registerCheckItem, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheckItem.ReferenceRangeValue = referenceRange.ReferenceRangeValue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheckItem.CriticalRangeValue = referenceRange.CriticalRangeValue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheckItem.ReferenceRangeValue = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheckItem.CriticalRangeValue = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var unit = _units.Where(o => o.Id == lisRequestItem.item.UnitId).FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (unit != null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheckItem.Unit = unit.DisplayName; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        lisRequestItem.registerCheckItem.Unit = ""; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await _registerCheckItemRepository.UpdateAsync(lisRequestItem.registerCheckItem, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //保存结果
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                foreach (var registerCheck in registerChecks) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //保存结果
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var registerCheck in registerChecks) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var updateCheckResultDto = new UpdateCheckResultDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var updateCheckResultDto = new UpdateCheckResultDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    RegisterCheckId = registerCheck.Id, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    CheckDoctorId = registerCheck.CheckDoctorId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    CheckDate = registerCheck.CheckDate, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    RegisterCheckItems = list.Where(o => o.registerCheck.Id == registerCheck.Id) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    .Select(o => new UpdateRegisterCheckItemDetail() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        RegisterCheckId = registerCheck.Id, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        CheckDoctorId = registerCheck.CheckDoctorId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        CheckDate = registerCheck.CheckDate, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        RegisterCheckItems = list.Where(o => o.registerCheck.Id == registerCheck.Id) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        .Select(o => new UpdateRegisterCheckItemDetail() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            ItemId = o.registerCheckItem.ItemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            Result = o.registerCheckItem.Result, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ItemId = o.registerCheckItem.ItemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Result = o.registerCheckItem.Result, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        }).ToList() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }).ToList() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var getDiagnosisResultRequestDto = new GetDiagnosisResultRequestDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    RegisterCheckId = registerCheck.Id, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    Items = list.Where(o => o.registerCheck.Id == registerCheck.Id) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    .Select(o => new GetDiagnosisResultRequest_Item() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        RegisterCheckId = registerCheck.Id, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Items = list.Where(o => o.registerCheck.Id == registerCheck.Id) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        .Select(o => new GetDiagnosisResultRequest_Item() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            ItemId = o.registerCheckItem.ItemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            Result = o.registerCheckItem.Result, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        }).ToList() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //生成小结
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var summarry = await _diagnosisFunctionAppService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ItemId = o.registerCheckItem.ItemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Result = o.registerCheckItem.Result, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }).ToList() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //生成小结
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var summarry = await _diagnosisFunctionAppService.GetDoctorCheckDiagnosisResultAsync(getDiagnosisResultRequestDto); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    for (var i = 0; i < summarry.DiagnosisResultDetails.Count; i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                for (var i = 0; i < summarry.DiagnosisResultDetails.Count; i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    updateCheckResultDto.Summarys.Add(new UpdateRegisterCheckSummaryDetail() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        updateCheckResultDto.Summarys.Add(new UpdateRegisterCheckSummaryDetail() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            Summary = summarry.DiagnosisResultDetails[i].DiagnosisResult, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            SummaryFlag = '0' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await _registerCheckAppService.UpdateCheckResult(updateCheckResultDto); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Summary = summarry.DiagnosisResultDetails[i].DiagnosisResult, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        SummaryFlag = '0' | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _registerCheckAppService.UpdateCheckResult(updateCheckResultDto); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private async Task UpdateItemReferenceRangeValueAsync(Guid itemId, char sexId, int? age, string referenceRangeValue) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var referenceRanges = _referenceRanges.Where(o=>o.ItemId == itemId).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var referenceRanges = _referenceRanges.Where(o => o.ItemId == itemId).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (age == null) age = 30; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (string.IsNullOrWhiteSpace(referenceRangeValue)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -262,7 +262,7 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (_referenceRangeManager.IsNumberReferenceRange(referenceRangeValue)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _itemRepository.UpdateAsync(item, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _itemRepository.UpdateAsync(item); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                referenceRange = referenceRanges.Where(o => o.ForSexId == sexId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                && age >= o.AgeLowerLimit && age <= o.AgeUpperLimit | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -271,7 +271,7 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    referenceRange.ReferenceRangeValue = referenceRangeValue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await _referenceRangeRepository.UpdateAsync(referenceRange, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await _referenceRangeRepository.UpdateAsync(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -282,7 +282,7 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Number; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    referenceRange.ReferenceRangeValue = referenceRangeValue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await _referenceRangeRepository.UpdateAsync(referenceRange, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    await _referenceRangeRepository.UpdateAsync(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                referenceRange = new ReferenceRange() | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -295,18 +295,19 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ForSexId = ForSexFlag.All | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                referenceRange = _referenceRangeManager.Create(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _referenceRangeRepository.InsertAsync(referenceRange, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _referenceRangeRepository.InsertAsync(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                referenceRanges.Add(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            item.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            await _itemRepository.UpdateAsync(item, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            await _itemRepository.UpdateAsync(item); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            referenceRange = referenceRanges.Where(o => o.ReferenceRangeTypeFlag == ItemReferenceRangeTypeFlag.Character).FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (referenceRange != null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                referenceRange.ReferenceRangeTypeFlag = ItemReferenceRangeTypeFlag.Character; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                referenceRange.ReferenceRangeValue = referenceRangeValue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _referenceRangeRepository.UpdateAsync(referenceRange, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _referenceRangeRepository.UpdateAsync(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -320,7 +321,8 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                ForSexId = ForSexFlag.All | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            referenceRange = _referenceRangeManager.Create(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            await _referenceRangeRepository.InsertAsync(referenceRange, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            await _referenceRangeRepository.InsertAsync(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            referenceRanges.Add(referenceRange); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -340,7 +342,7 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                item.UnitId = unit.Id; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _itemRepository.UpdateAsync(item, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                await _itemRepository.UpdateAsync(item); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            unit = new Unit() | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -349,7 +351,7 @@ namespace Shentun.Peis.ImportLisResults | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            unit = await _unitManager.CreateAsync(unit); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            await _unitRepository.InsertAsync(unit, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            await _unitRepository.InsertAsync(unit); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _units.Add(unit); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |