diff --git a/healthcareio/x12/__init__.py b/healthcareio/x12/__init__.py index 4f0ad0f..56a53f6 100644 --- a/healthcareio/x12/__init__.py +++ b/healthcareio/x12/__init__.py @@ -286,8 +286,15 @@ class Parser (Process): value = row[index] if 'cast' in config and key in config['cast'] and value.strip() != '' : - if config['cast'][key] in ['float','int'] and (value.isnumeric() or (len(value.split('.')) == 1) and value.replace('.','').isnumeric() ): - value = eval(config['cast'][key])(value) + if config['cast'][key] in ['float','int']: + try: + value = eval(config['cast'][key])(value) + except Exception as e: + pass + # + # Sometimes shit hits the fan when the anchor is missing + # This is typical but using the hardened function helps circumvent this (SV2,SV3) + # elif hasattr(handler,config['cast'][key]): pointer = getattr(handler,config['cast'][key])