Spaces:
Paused
Paused
| #!/usr/bin/env python3 | |
| import sqlite3, csv, argparse | |
| from metaphone import doublemetaphone | |
| import sys, os | |
| sys.path.append(os.getcwd()) | |
| from config import DB_PATH, RXNORM_CSV | |
| def build_db(db_path: str, csv_path: str): | |
| conn = sqlite3.connect(db_path) | |
| c = conn.cursor() | |
| c.execute("DROP TABLE IF EXISTS drugs") | |
| c.execute("DROP TABLE IF EXISTS metaphone") | |
| c.execute("CREATE TABLE drugs(name TEXT PRIMARY KEY, cui TEXT)") | |
| c.execute("CREATE TABLE metaphone(meta TEXT, name TEXT, cui TEXT)") | |
| with open(csv_path, newline='', encoding='utf-8') as f: | |
| reader = csv.DictReader(f) | |
| for row in reader: | |
| nm, cui = row['name'], row['cui'] | |
| c.execute("INSERT OR IGNORE INTO drugs VALUES(?,?)", (nm, cui)) | |
| meta = doublemetaphone(nm)[0] | |
| c.execute("INSERT INTO metaphone VALUES(?,?,?)", (meta, nm, cui)) | |
| conn.commit() | |
| conn.close() | |
| if __name__ == "__main__": | |
| build_db(DB_PATH, RXNORM_CSV) | |
| print(f"✅ RxNorm DB built at {DB_PATH}") | |