bfbd8d6b8b
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
1.1 KiB
1.1 KiB
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'