Files
doczyai-pipelines/fieldExtraction/crosswalk
Alex Galarce bfbd8d6b8b Merged in feature/daip2-7-crosswalk (pull request #341)
Feature/daip2-7-crosswalk

* add crosswalk framework

* remove erroneous print statements

* fix mypy error, format to black and isort

* add README.md

* Merged main into feature/daip2-7-crosswalk


Approved-by: Katon Minhas
2025-01-06 15:07:44 +00:00
..

This framework allows flexible serialization and application of crosswalk tables.

Features

  • Create crosswalks from Excel files or dictionaries
  • Save crosswalks as JSON for easy reuse
  • Apply crosswalks with customizable default behavior
  • Metadata tracking for column mappings

Creating a Crosswalk

from crosswalk_utils import CrosswalkBuilder

# From Excel
builder = CrosswalkBuilder()
builder.from_excel(
    path="CROSSWALK_PROVIDER_TYPE.20220106.xlsx",
    sheet_name='Prac',
    from_col="Practitioner Specialty",
    to_col="Taxonomy"
).save('crosswalk_provider_type.json')

# You can also create from a dictionary
builder.from_dict(
    mapping={'Acupuncturist': '171100000X'},
    from_col='Specialty',
    to_col='Taxonomy'
)

Applying a Crosswalk

import json
from crosswalk_utils import apply_crosswalk

# Load the mapping
with open('crosswalk_provider_type.json') as f:
    data = json.load(f)
    
# Apply the crosswalk
result = apply_crosswalk(
    val="Acupuncturist",
    mapping=data['mapping'],
    default=None  # Optional: specify default for unmapped values
)
# Result: '171100000X'