diff --git a/fieldExtraction/constants/regex_patterns.py b/fieldExtraction/constants/regex_patterns.py index b5d0653..d32f096 100644 --- a/fieldExtraction/constants/regex_patterns.py +++ b/fieldExtraction/constants/regex_patterns.py @@ -4,10 +4,13 @@ BACKTICK_PATTERN = r"`([^`]+)`" TRIPLE_BACKTICK_PATTERN = r"```([^`]+)```" # TIN and NPI Regex Patterns -TIN_PATTERN = ( - r"\b\d{9}\b|\b\d{2}[-.]\d{7}\b|\b\d{3}[-.]\d{2}[-.]\d{4}\b|\b\d{2}-\d{4}-\d{3}\b" -) -NPI_PATTERN = r"\b\d{10}\b" +# TIN_PATTERN = ( +# r"\b\d{9}\b|\b\d{2}[-.]\d{7}\b|\b\d{3}[-.]\d{2}[-.]\d{4}\b|\b\d{2}-\d{4}-\d{3}\b" +# ) +# NPI_PATTERN = r"\b\d{10}\b" +TIN_PATTERN = r"\b(?:\d[\s\-.]*){9}\b" +NPI_PATTERN = r"\b(?:\d\s*){10}\b" + # OCR-Correctable Patterns # Handles common OCR misinterpretations where letters are mistaken for digits. diff --git a/fieldExtraction/src/investment/tin_npi_funcs.py b/fieldExtraction/src/investment/tin_npi_funcs.py index dbb5315..b19c5c4 100644 --- a/fieldExtraction/src/investment/tin_npi_funcs.py +++ b/fieldExtraction/src/investment/tin_npi_funcs.py @@ -682,10 +682,12 @@ def run_provider_info_fields( page_num for page_num, page_text in text_dict.items() if any( - tin.replace("-", "") in page_text.replace("-", "") for tin in all_tins + re.sub(r"[\s-]", "", tin) in re.sub(r"[\s-]", "", page_text) + for tin in all_tins ) or any( - npi.replace("-", "") in page_text.replace("-", "") for npi in all_npis + re.sub(r"[\s-]", "", npi) in re.sub(r"[\s-]", "", page_text) + for npi in all_npis ) ]