Skip to content

v0.2.0: RxNorm drug crosswalks + offline NDC decode

Choose a tag to compare

@cyanheads cyanheads released this 22 Jun 01:26
v0.2.0
ba9096b

RxNorm drug crosswalks + offline NDC decode

RxNorm joins the bundled corpus, closing the one gap from v1 — the drug-crosswalk directions and a first-class offline NDC decode go live. Runtime stays offline and keyless; RxNorm is acquired once at build time over the keyless RxNav REST API.

Added:

  • RxNorm bundled — current normalized drug set (55,867 concepts, 77,199 edges, 248,093 NDC maps) with NDC and ingredient/brand edges, reported by medcode_list_systems (#9)
  • medcode_map_codes drug directions live: name_to_rxcui, ndc_to_rxcui, rxcui_to_ndc, rxcui_to_ingredients, rxcui_to_brands (#9)
  • medcode_get_code decodes an NDC (hyphenated or 10/11-digit) directly to its RxNorm product, tagged source: NDC, via a new optional source result field (#10)
  • scripts/ingest/fetch-rxnav.ts — build-time RxNav fetcher caching concepts, NDCs, and edges under /rxnav/

Changed:

  • RxNorm acquisition moved off the UMLS-gated RRF files to the keyless RxNav REST API; parseRxNorm() replaced by parseRxNav() reading the JSON cache (#9)
  • direction_unavailable is now a fallback for builds without RxNorm tables, not the default; phase-2 caveats dropped across tool descriptions, instructions, and README
  • medcode_browse_hierarchy on RXNORM returns empty with a steering notice — RxNorm is a flat vocabulary

99 tests pass; bun run devcheck clean.