Skip to main content
medterm4ds v0.0.3 ยท UMLS 2026AA

Medical Terminology
for Data Science

Walk hierarchies. Crosswalk between systems. Search by natural language. Extract from clinical notes. One engine, four surfaces.

Six capabilities, one engine

medterm4ds handles the full terminology workflow: look up codes, walk hierarchies, crosswalk between systems, search by natural language, get patient-friendly names, and extract concepts from clinical text. No external API calls needed.

Look up any code and get its display name, properties, and metadata.

python
import medterm4ds as mt

terms = mt.connect("/path/to/umls.duckdb")
info = terms.lookup("SNOMEDCT_US", "44054006")
print(info.name)
# โ†’ "Type 2 diabetes mellitus"

# Any code system, same API
info = terms.lookup("RXNORM", "860975")
print(info.name)
# โ†’ "Metformin Oral Product"

Why medterm4ds?

๐Ÿ”Œ

One Engine, Four Surfaces

Python library, CLI, MCP server (38 tools), and FHIR R4 terminology server. Same API, same data โ€” use whichever surface fits your workflow.

๐ŸŒฒ

Walk Any Hierarchy

Traverse SNOMED CT, ICD-10-CM, ATC, LOINC, and more. Find ancestors, descendants, test subsumption, navigate multi-level taxonomies.

๐Ÿ”€

Crosswalk Between Systems

Map SNOMED to ICD-10, RxNorm to ATC, LOINC to SNOMED โ€” any-to-any translation via shared UMLS concepts with equivalence values.

๐Ÿ”

Intelligent Search

Find medical codes by natural language. Four modes: fast keyword, semantic understanding, combined, and canonical anchor resolution.

๐Ÿ“

Clinical Text Extraction

Extract coded concepts from clinical notes. Handles negation ("no evidence of..."), historical context, family history, and lab-vs-medication disambiguation.

๐Ÿ‘ถ

Patient-Friendly Names

1M+ clinical codes resolved to consumer-comprehensible display names. "E11.9" becomes "Diabetes Type 2" for patient-facing interfaces.