| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -64,7 +64,9 @@ class Formatters :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        pass
 | 
					 | 
					 | 
					 | 
					                        pass
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    else:
 | 
					 | 
					 | 
					 | 
					                    else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        value += row_value.split('>')   if row.startswith('CLM') is False else [row_value]
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        value += [row_value]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        # value += row_value.split('>')   if row.startswith('CLM') is False else [row_value]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                else :
 | 
					 | 
					 | 
					 | 
					                else :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    
 | 
					 | 
					 | 
					 | 
					                    
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -169,8 +171,12 @@ class Formatters :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                _value = {"type":value.split(xchar)[0].strip(),"code":value.split(xchar)[1].strip()}
 | 
					 | 
					 | 
					 | 
					                _value = {"type":value.split(xchar)[0].strip(),"code":value.split(xchar)[1].strip()}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                
 | 
					 | 
					 | 
					 | 
					                
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                if len(value.split(xchar)) >2 :
 | 
					 | 
					 | 
					 | 
					                if len(value.split(xchar)) >2 :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    _value['modifier'] = value.split(xchar)[2]
 | 
					 | 
					 | 
					 | 
					                    index = 1;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    for modifier in value.split(xchar)[2:]  :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        _value['modifier_'+str(index)] = modifier
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        index += 1
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                break
 | 
					 | 
					 | 
					 | 
					                break
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            else:
 | 
					 | 
					 | 
					 | 
					            else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                _value = str(value)
 | 
					 | 
					 | 
					 | 
					                _value = str(value)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return _value
 | 
					 | 
					 | 
					 | 
					        return _value
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -240,10 +246,13 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            pointer = getattr(handler,config['apply'])
 | 
					 | 
					 | 
					 | 
					            pointer = getattr(handler,config['apply'])
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            object_value = pointer(row)            
 | 
					 | 
					 | 
					 | 
					            object_value = pointer(row)            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            return object_value
 | 
					 | 
					 | 
					 | 
					            return object_value
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        # Pull the goto configuration that skips  rows
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        omap = config['map'] if not version or version not in config else config[version]
 | 
					 | 
					 | 
					 | 
					        omap = config['map'] if not version or version not in config else config[version]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        anchors = config['anchors'] if 'anchors' in config else []
 | 
					 | 
					 | 
					 | 
					        anchors = config['anchors'] if 'anchors' in config else []
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        
 | 
					 | 
					 | 
					 | 
					        rewrite = config['rewrite'] if 'rewrite' in config else {}
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if type(row[0]) == str:        
 | 
					 | 
					 | 
					 | 
					        if type(row[0]) == str:        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            object_value = {}
 | 
					 | 
					 | 
					 | 
					            object_value = {}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            for key in omap :
 | 
					 | 
					 | 
					 | 
					            for key in omap :
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -265,10 +274,12 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            
 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            pointer = getattr(handler,config['cast'][key])                            
 | 
					 | 
					 | 
					 | 
					                            pointer = getattr(handler,config['cast'][key])                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            value   = pointer(value)
 | 
					 | 
					 | 
					 | 
					                            value   = pointer(value)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        else:
 | 
					 | 
					 | 
					 | 
					                        else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            print ("Missing Pointer ",config['cast'][key])
 | 
					 | 
					 | 
					 | 
					                            print ("Missing Pointer ",key,config['cast'])
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        # print (key,value)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    if type(value) == dict :
 | 
					 | 
					 | 
					 | 
					                    if type(value) == dict :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        for objkey in value :
 | 
					 | 
					 | 
					 | 
					                        for objkey in value :
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -278,20 +289,35 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if 'syn' in config and value[objkey] in config['syn'] :
 | 
					 | 
					 | 
					 | 
					                            if 'syn' in config and value[objkey] in config['syn'] :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                value[objkey] = config['syn'][ value[objkey]]
 | 
					 | 
					 | 
					 | 
					                                value[objkey] = config['syn'][ value[objkey]]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            
 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        value = {key:value} if key not  in value else value
 | 
					 | 
					 | 
					 | 
					                        if key in rewrite :
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            _key = rewrite[key]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            if _key in value :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                value = value[_key]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                value = ""
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            value = {key:value} if key not  in value else value
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            
 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    else:
 | 
					 | 
					 | 
					 | 
					                    else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        if 'syn' in config and value in config['syn'] :
 | 
					 | 
					 | 
					 | 
					                        if 'syn' in config and value in config['syn'] :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            value = config['syn'][value]
 | 
					 | 
					 | 
					 | 
					                            value = config['syn'][value]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    if type(value) == dict :  
 | 
					 | 
					 | 
					 | 
					                    if type(value) == dict :  
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        object_value = dict(object_value, **value) 
 | 
					 | 
					 | 
					 | 
					                        object_value = dict(object_value, **value) 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    else:
 | 
					 | 
					 | 
					 | 
					                    else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        object_value[key] = value
 | 
					 | 
					 | 
					 | 
					                        object_value[key] = value
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        else:
 | 
					 | 
					 | 
					 | 
					        else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            #
 | 
					 | 
					 | 
					 | 
					            #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # we are dealing with a complex object
 | 
					 | 
					 | 
					 | 
					            # we are dealing with a complex object
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -301,6 +327,7 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                
 | 
					 | 
					 | 
					 | 
					                
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                value = self.get.value(row_item,config,version)            
 | 
					 | 
					 | 
					 | 
					                value = self.get.value(row_item,config,version)            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                object_value.append(value)
 | 
					 | 
					 | 
					 | 
					                object_value.append(value)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                #
 | 
					 | 
					 | 
					 | 
					                #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                # We need to add the index of the object it matters in determining the claim types
 | 
					 | 
					 | 
					 | 
					                # We need to add the index of the object it matters in determining the claim types
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                #
 | 
					 | 
					 | 
					 | 
					                #
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -322,24 +349,22 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            
 | 
					 | 
					 | 
					 | 
					            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            
 | 
					 | 
					 | 
					 | 
					            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            row     = util.split(row.replace('\n','').replace('~',''))
 | 
					 | 
					 | 
					 | 
					            row     = util.split(row.replace('\n','').replace('~',''))
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            _info   = util.get.config(self.config[_code][0],row)
 | 
					 | 
					 | 
					 | 
					            _info   = util.get.config(self.config[_code][0],row)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if self._custom_config and _code in self._custom_config:
 | 
					 | 
					 | 
					 | 
					            if self._custom_config and _code in self._custom_config:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                _cinfo   = util.get.config(self._custom_config[_code],row)
 | 
					 | 
					 | 
					 | 
					                _cinfo   = util.get.config(self._custom_config[_code],row)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            else:
 | 
					 | 
					 | 
					 | 
					            else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                _cinfo = {}
 | 
					 | 
					 | 
					 | 
					                _cinfo = {}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # _info   = self.consolidate(row=row,type=_code,config=_info,util=util)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # print ([row[0],_info])
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # print ()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # continue
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # _cinfo   = util.get.config(self._custom_config[_code],row)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            
 | 
					 | 
					 | 
					 | 
					            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if _info :
 | 
					 | 
					 | 
					 | 
					            if _info :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                try:
 | 
					 | 
					 | 
					 | 
					                try:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    _info = jsonmerge.merge(_info,_cinfo)         
 | 
					 | 
					 | 
					 | 
					                    _info = jsonmerge.merge(_info,_cinfo)         
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    tmp = self.get.value(row,_info)
 | 
					 | 
					 | 
					 | 
					                    tmp = self.get.value(row,_info)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    
 | 
					 | 
					 | 
					 | 
					                    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    if not tmp :
 | 
					 | 
					 | 
					 | 
					                    if not tmp :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        continue 
 | 
					 | 
					 | 
					 | 
					                        continue 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    if 'label' in _info :
 | 
					 | 
					 | 
					 | 
					                    if 'label' in _info :
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -351,23 +376,12 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            
 | 
					 | 
					 | 
					 | 
					                            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        else:
 | 
					 | 
					 | 
					 | 
					                        else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            if label not in value:   
 | 
					 | 
					 | 
					 | 
					                            if label not in value:   
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                                
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                value[label] = [tmp]
 | 
					 | 
					 | 
					 | 
					                                value[label] = [tmp]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            # elif len(list(tmp.keys())) == 1 :
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            #     # print "\t",len(claim[label]),tmp
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            #     index = len(value[label]) -1 
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            #     value[label][index] = dict(value[label][index],**tmp)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                            else:
 | 
					 | 
					 | 
					 | 
					                            else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                value[label].append(tmp)    
 | 
					 | 
					 | 
					 | 
					                                value[label].append(tmp)    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        tmp['_index'] = len(value[label]) -1 
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                        
 | 
					 | 
					 | 
					 | 
					                                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        # if len(value[label]) > 0 :                    
 | 
					 | 
					 | 
					 | 
					                        tmp['_index'] = len(value[label]) -1 
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        #     labels = []
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        #     for item in value[label] :
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        #         item['_index'] = len(labels)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        #         if item not in labels :
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                    
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        #             labels.append(item)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        #     value[label] = labels
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    elif 'field' in _info :
 | 
					 | 
					 | 
					 | 
					                    elif 'field' in _info :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                                           
 | 
					 | 
					 | 
					 | 
					                                           
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        name = _info['field']
 | 
					 | 
					 | 
					 | 
					                        name = _info['field']
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -376,7 +390,6 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                      
 | 
					 | 
					 | 
					 | 
					                      
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    else:
 | 
					 | 
					 | 
					 | 
					                    else:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        
 | 
					 | 
					 | 
					 | 
					                        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        value = dict(value,**tmp)
 | 
					 | 
					 | 
					 | 
					                        value = dict(value,**tmp)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    
 | 
					 | 
					 | 
					 | 
					                    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    pass
 | 
					 | 
					 | 
					 | 
					                    pass
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -409,6 +422,7 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            value['provider_id'] = SENDER_ID
 | 
					 | 
					 | 
					 | 
					            value['provider_id'] = SENDER_ID
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        #
 | 
					 | 
					 | 
					 | 
					        #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        # Let's parse this for default values            
 | 
					 | 
					 | 
					 | 
					        # Let's parse this for default values            
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        return value
 | 
					 | 
					 | 
					 | 
					        return value
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    def read(self,filename) :
 | 
					 | 
					 | 
					 | 
					    def read(self,filename) :
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -431,11 +445,7 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                INITIAL_ROWS = file[:4]
 | 
					 | 
					 | 
					 | 
					                INITIAL_ROWS = file[:4]
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            if len(INITIAL_ROWS) < 3 :
 | 
					 | 
					 | 
					 | 
					            if len(INITIAL_ROWS) < 3 :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                return None,[{"name":filename,"completed":False}],None
 | 
					 | 
					 | 
					 | 
					                return None,[{"name":filename,"completed":False}],None
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # section = 'HL' if INITIAL_ROWS[1].split('*')[1] == 'HC' else 'CLP'       
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # _code   = '837' if section == 'HL' else '835'
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # print ([_code,section])
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            _code = INITIAL_ROWS[2].split('*')[1].strip()
 | 
					 | 
					 | 
					 | 
					            _code = INITIAL_ROWS[2].split('*')[1].strip()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # section = 'CLP' if _code == '835' else 'HL'
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            section  = self.config[_code][0]['SECTION'].strip()
 | 
					 | 
					 | 
					 | 
					            section  = self.config[_code][0]['SECTION'].strip()
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            #
 | 
					 | 
					 | 
					 | 
					            #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            # adjusting the 
 | 
					 | 
					 | 
					 | 
					            # adjusting the 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -466,13 +476,8 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    #
 | 
					 | 
					 | 
					 | 
					                    #
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    # process the segment somewhere (create a thread maybe?)
 | 
					 | 
					 | 
					 | 
					                    # process the segment somewhere (create a thread maybe?)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    # 
 | 
					 | 
					 | 
					 | 
					                    # 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    # default_claim = dict({"index":index},**DEFAULT_VALUE)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    # print (_toprows)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    _claim = self.apply(segment,_code)
 | 
					 | 
					 | 
					 | 
					                    _claim = self.apply(segment,_code)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    
 | 
					 | 
					 | 
					 | 
					                    
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    # if _claim['claim_id'] == 'P1080351470' :
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    #     print (_claim)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        # _claim = dict(DEFAULT_VALUE,**_claim)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                    if _claim :
 | 
					 | 
					 | 
					 | 
					                    if _claim :
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        _claim['index'] = index #len(claims)
 | 
					 | 
					 | 
					 | 
					                        _claim['index'] = index #len(claims)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                        claims.append(dict(DEFAULT_VALUE,**_claim))
 | 
					 | 
					 | 
					 | 
					                        claims.append(dict(DEFAULT_VALUE,**_claim))
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -536,15 +541,3 @@ class Parser (Process):
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# p = Parser('/home/steve/.healthcareio/config.json')
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# p.set.files(['../../data/small/claims/ssiUB1122042711220427127438.clm_191122T043504'])
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# path = '../../data/small/claims/ssiUB1122042711220427127438.clm_191122T043504'
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# path = '../../data/small/claims/problems-with-procs'
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# path = '../../data/small/remits/1SG03927258.dat_181018T074559'
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# _path = "../../data/small/remits/1TR21426701.dat_180703T074559"
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# p.start()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# p.join()
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# claims,logs = p.read(path)
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# print (json.dumps(claims[3]))
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# print (logs)
 | 
					 | 
					 | 
					 | 
					 |