Mapping ICD-10-CM codes with Their Corresponding general codes

Description

This pretrained model maps ICD-10-CM codes to their generalised 3-digit ICD-10-CM codes and the main concepts. Trained on the ICD-10-CM 20260401 (FY2026, effective April 1, 2026) code set.

Live Demo Open in Colab Copy S3 URI

How to use


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

chunk_assembler = Doc2Chunk()\
    .setInputCols(["document"])\
    .setOutputCol("ner_chunk")

icd10cm_generalised_mapper = ChunkMapperModel.pretrained("icd10cm_generalised_mapper", "en", "clinical/models")\
    .setInputCols(["ner_chunk"])\
    .setOutputCol("mappings")\
    .setRels(["generalised_code"])

pipeline = Pipeline(stages=[document_assembler, chunk_assembler, icd10cm_generalised_mapper])
data = spark.createDataFrame([["A00.0"]]).toDF("text")
result = pipeline.fit(data).transform(data)


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

chunk_assembler = nlp.Doc2Chunk()\
    .setInputCols(["document"])\
    .setOutputCol("ner_chunk")

icd10cm_generalised_mapper = medical.ChunkMapperModel.pretrained("icd10cm_generalised_mapper", "en", "clinical/models")\
    .setInputCols(["ner_chunk"])\
    .setOutputCol("mappings")\
    .setRels(["generalised_code"])

pipeline = nlp.Pipeline(stages=[document_assembler, chunk_assembler, icd10cm_generalised_mapper])
data = spark.createDataFrame([["A00.0"]]).toDF("text")
result = pipeline.fit(data).transform(data)


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

val chunkAssembler = new Doc2Chunk()
    .setInputCols("document")
    .setOutputCol("ner_chunk")

val icd10cm_generalised_mapper = ChunkMapperModel.pretrained("icd10cm_generalised_mapper", "en", "clinical/models")
    .setInputCols(Array("ner_chunk"))
    .setOutputCol("mappings")
    .setRels(Array("generalised_code"))

val pipeline = new Pipeline().setStages(Array(documentAssembler, chunkAssembler, icd10cm_generalised_mapper))
val data = Seq("A00.0").toDF("text")
val result = pipeline.fit(data).transform(data)

Results

| code   | generalised_code                                            |
|:-------|:------------------------------------------------------------|
| A00.0  | ['A00:Certain infectious and parasitic diseases']           |
| E11.9  | ['E11:Endocrine, nutritional and metabolic diseases']       |
| I10    | ['I10:Diseases of the circulatory system']                  |
| J44.9  | ['J44:Diseases of the respiratory system']                  |
| F32.9  | ['F32:Mental, Behavioral and Neurodevelopmental disorders'] |

Model Information

Model Name: icd10cm_generalised_mapper
Compatibility: Healthcare NLP 6.4.0+
License: Licensed
Edition: Official
Input Labels: [ner_chunk]
Output Labels: [mappings]
Language: en
Size: 1.4 MB