Mapping National Drug Codes (NDC) with Corresponding HCPCS Codes and Descriptions

Description

This pretrained model establishes mappings between National Drug Codes and their corresponding HCPCS codes along with descriptions. Trained on the PDAC NDC/HCPCS Crosswalk (release pdac-2026-07-05).

Open in Colab Copy S3 URI

How to use


document_assembler = DocumentAssembler()\
    .setInputCol("text")\
    .setOutputCol("document")

doc2chunk = Doc2Chunk()\
    .setInputCols(["document"])\
    .setOutputCol("chunk")

chunkerMapper = ChunkMapperModel.pretrained("ndc_hcpcs_mapper", "en", "clinical/models")\
    .setInputCols(["chunk"])\
    .setOutputCol("hcpcs")\
    .setRels(["hcpcs_code", "hcpcs_description"])

pipeline = Pipeline(stages=[
    document_assembler,
    doc2chunk,
    chunkerMapper
])

data = spark.createDataFrame([["16714-0892-01"], ["00990-6138-03"], ["43598-0650-11"]]).toDF("text")
result = pipeline.fit(data).transform(data)


document_assembler = nlp.DocumentAssembler()\
    .setInputCol("text")\
    .setOutputCol("document")

doc2chunk = nlp.Doc2Chunk()\
    .setInputCols(["document"])\
    .setOutputCol("chunk")

chunkerMapper = medical.ChunkMapperModel.pretrained("ndc_hcpcs_mapper", "en", "clinical/models")\
    .setInputCols(["chunk"])\
    .setOutputCol("hcpcs")\
    .setRels(["hcpcs_code", "hcpcs_description"])

pipeline = nlp.Pipeline(stages=[
    document_assembler,
    doc2chunk,
    chunkerMapper
])

data = spark.createDataFrame([["16714-0892-01"], ["00990-6138-03"], ["43598-0650-11"]]).toDF("text")
result = pipeline.fit(data).transform(data)


val documentAssembler = new DocumentAssembler()
    .setInputCol("text")
    .setOutputCol("document")

val doc2chunk = new Doc2Chunk()
    .setInputCols("document")
    .setOutputCol("chunk")

val chunkerMapper = ChunkMapperModel
    .pretrained("ndc_hcpcs_mapper", "en", "clinical/models")
    .setInputCols(Array("chunk"))
    .setOutputCol("hcpcs")
    .setRels(Array("hcpcs_code", "hcpcs_description"))

val pipeline = new Pipeline().setStages(Array(
    documentAssembler,
    doc2chunk,
    chunkerMapper
))

val data = Seq("16714-0892-01", "00990-6138-03", "43598-0650-11").toDF("text")
val result = pipeline.fit(data).transform(data)

Results

| NDC Code      | HCPCS Code   | HCPCS Description                                  |
|:--------------|:-------------|:---------------------------------------------------|
| 16714-0892-01 | J0878        | INJECTION, DAPTOMYCIN, 1 MG                        |
| 00990-6138-03 | A4217        | STERILE WATER/SALINE, 500 ML                       |
| 43598-0650-11 | J9342        | INJECTION, THIOTEPA, NOT OTHERWISE SPECIFIED, 1 MG |

Model Information

Model Name: ndc_hcpcs_mapper
Compatibility: Healthcare NLP 6.4.0+
License: Licensed
Edition: Official
Input Labels: [ner_chunk]
Output Labels: [mappings]
Language: en
Size: 179.2 KB