Medical Device Text Matcher

Description

This is a TextMatcher model that identifies medical device entities in clinical text. It recognizes devices including ventilator, defibrillator, stent, insulin pump, glucometer, nebulizer, and more.

Predicted Entities

MEDICAL_DEVICE

Copy S3 URI

How to use


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

sentence_detector = SentenceDetector()\
    .setInputCols(["document"])\
    .setOutputCol("sentence")

tokenizer = Tokenizer()\
    .setInputCols(["sentence"])\
    .setOutputCol("token")

medical_device_matcher = TextMatcherInternalModel.pretrained("medical_device_matcher", "en", "clinical/models")\
    .setInputCols(["sentence", "token"])\
    .setOutputCol("matched_medical_device")

pipeline = Pipeline().setStages([
    document_assembler,
    sentence_detector,
    tokenizer,
    medical_device_matcher
])

text = """The patient was placed on a ventilator for respiratory support. A pacemaker was implanted to regulate heart rhythm. Blood glucose levels were monitored using a glucometer, and insulin was delivered via an insulin pump."""

data = spark.createDataFrame([[text]]).toDF("text")

result = pipeline.fit(data).transform(data)


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

sentence_detector = nlp.SentenceDetector()\
    .setInputCols(["document"])\
    .setOutputCol("sentence")

tokenizer = nlp.Tokenizer()\
    .setInputCols(["sentence"])\
    .setOutputCol("token")

medical_device_matcher = medical.TextMatcherModel.pretrained("medical_device_matcher", "en", "clinical/models")\
    .setInputCols(["sentence", "token"])\
    .setOutputCol("matched_medical_device")

pipeline = nlp.Pipeline().setStages([
    document_assembler,
    sentence_detector,
    tokenizer,
    medical_device_matcher
])

text = """The patient was placed on a ventilator for respiratory support. A pacemaker was implanted to regulate heart rhythm. Blood glucose levels were monitored using a glucometer, and insulin was delivered via an insulin pump."""

data = spark.createDataFrame([[text]]).toDF("text")

result = pipeline.fit(data).transform(data)


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

val sentenceDetector = new SentenceDetector()
    .setInputCols(Array("document"))
    .setOutputCol("sentence")

val tokenizer = new Tokenizer()
    .setInputCols(Array("sentence"))
    .setOutputCol("token")

val medicalDeviceMatcher = TextMatcherInternalModel.pretrained("medical_device_matcher", "en", "clinical/models")
    .setInputCols(Array("sentence", "token"))
    .setOutputCol("matched_medical_device")

val pipeline = new Pipeline().setStages(Array(
    documentAssembler,
    sentenceDetector,
    tokenizer,
    medicalDeviceMatcher
))

val data = Seq("""The patient was placed on a ventilator for respiratory support. A pacemaker was implanted to regulate heart rhythm. Blood glucose levels were monitored using a glucometer, and insulin was delivered via an insulin pump.""").toDF("text")

val result = pipeline.fit(data).transform(data)

Results


+-----------+-----+---+--------------+
|chunk      |begin|end|label         |
+-----------+-----+---+--------------+
|ventilator |30   |39 |MEDICAL_DEVICE|
|pacemaker  |65   |73 |MEDICAL_DEVICE|
|glucometer |145  |153|MEDICAL_DEVICE|
|insulin pump|193 |203|MEDICAL_DEVICE|
+-----------+-----+---+--------------+

Model Information

Model Name: medical_device_matcher
Compatibility: Healthcare NLP 6.2.0+
License: Licensed
Edition: Official
Input Labels: [sentence, token]
Output Labels: [matched_medical_device]
Language: en
Size: 947.3 KB
Case sensitive: false