Skip to content

Extract Medical Conditions from Text (ICD-10-CM) v1.0.0 Help

Detects possible medical conditions as entities and links them to codes from the 2022 version of the International Classification of Diseases, 10th Revision, Clinical Modification (ICD-10-CM). Refers to Named entity recognition (NER).

How can I use the Step?

The Step lets you find potential medical conditions in unstructured clinical text such as physician's notes, discharge summaries, test results, and medical records. You can use the Step to help with clinical research and trials, early disease detection and diagnosis, or assist with professional medical record coding.

Warning: This Step is not a substitute for professional medical advice, diagnosis, or treatment. In any medical scenario, review and validate results before use.

How does the Step work?

The Step returns the matching ICD-10-CM codes and descriptions for each detected medical condition, listing them in descending order according to the confidence scores. These scores indicate confidence in the accuracy of the entities matched to the ICD-10-CM concepts. To learn more, review Entity categories and Output example.

Input settings

  • To set up this section, provide the text to analyze in the Input text field. You can enter text manually or use the Merge fields here.

Input text

The input text must be a UTF-8 string. The string must contain at least one character. The maximum string size is 10 KB. English is the only valid language.

Entity categories

This Step detects entities in the following categories:

Each entity category has its types, attributes, and traits, that provide additional information related to found entities to help you manage the particular task.

Medical condition category

The medicalCondition category includes entities related to a health condition, such as pain, nausea, fever, anorexia, or chills.

Types

  • dxName: All medical conditions listed. The dxName type includes present illness, reason for visit, and medical history.

Attributes

  • acuity: Determination of disease instance, such as chronic, acute, sudden, persistent, or gradual.
  • direction: Directional terms. For example, left, right medial, lateral, upper, lower, posterior, anterior, distal, proximal, contralateral, bilateral, ipsilateral, dorsal, or ventral.
  • systemOrganSite: anatomical location.

Traits

  • diagnosis: A medical condition that is determined as the cause or result of the symptoms. Symptoms can be found through physical findings, laboratory or radiological reports, or any other means. Applies only to the dxName type.
  • negation: An indication that a result or action is negative or not being performed.
  • sign: A medical condition that the physician reported. Applies only to the dxName type.
  • symptom: A medical condition reported by the patient. Applies only to the dxName type.

Time expression category

The timeExpression category includes entities related to the dates and time expressions, such as three days ago, today, currently, day of admission, last month, or 16 days.

Types

  • timeToMedicationName: The date medication was taken. The attributes specific to this type are brandName and genericName.
  • timeToDxName: The date a medical condition occurred. The attribute for this type is dxName.
  • timeToTestName: The date a test was performed. The attribute for this type is testName.
  • timeToProcedureName: The date a procedure was performed. The attribute for this type is procedureName.
  • timeToTreatmentName: The date treatment was administered. The attribute for this type is treatmentName.

Relationship Type

The relationship between an entity and an attribute. The recognized relationshipType is: overlap – The timeExpression concurs with the entity detected.

Merge field settings

The Step returns the result as a JSON object and stores it in the Merge field variable. Thus you can access the output JSON object from any point of your Flow.

Output example

The Step's output contains information about each entity detected, including its category, type, score, attributes, traits, and ICD-10-CM concepts.

For example, using the input text "Yesterday, the patient was diagnosed with influenza," the Step returns two following entities:

json
{ 
  ...
  "entities": [
    {
      "id": 0,
      "text": "Yesterday",
      "category": "timeExpression",
      "type": "timeToDxName",
      "score": 0.9999809265136719,
      "beginOffset": 0,
      "endOffset": 9,
      "attributes": [
        {
          "type": "dxName",
          "score": 0.9401737451553345,
          "relationshipScore": 0.646794855594635,
          "id": 1,
          "beginOffset": 42,
          "endOffset": 51,
          "text": "influenza",
          "traits": []
        }
      ],
      "traits": [],
      "iCD10CMConcepts": []
    },
    {
      "id": 1,
      "text": "influenza",
      "category": "medicalCondition",
      "type": "dxName",
      "score": 0.9401737451553345,
      "beginOffset": 42,
      "endOffset": 51,
      "attributes": [],
      "traits": [],
      "iCD10CMConcepts": [
        {
          "description": "Influenza due to unidentified influenza virus with other respiratory manifestations",
          "code": "J11.1",
          "score": 0.6440569162368774
        },
        {
          "description": "Influenza due to other identified influenza virus with other respiratory manifestations",
          "code": "J10.1",
          "score": 0.46903014183044434
        },
        ...
      ]
    }
  ]
}
{ 
  ...
  "entities": [
    {
      "id": 0,
      "text": "Yesterday",
      "category": "timeExpression",
      "type": "timeToDxName",
      "score": 0.9999809265136719,
      "beginOffset": 0,
      "endOffset": 9,
      "attributes": [
        {
          "type": "dxName",
          "score": 0.9401737451553345,
          "relationshipScore": 0.646794855594635,
          "id": 1,
          "beginOffset": 42,
          "endOffset": 51,
          "text": "influenza",
          "traits": []
        }
      ],
      "traits": [],
      "iCD10CMConcepts": []
    },
    {
      "id": 1,
      "text": "influenza",
      "category": "medicalCondition",
      "type": "dxName",
      "score": 0.9401737451553345,
      "beginOffset": 42,
      "endOffset": 51,
      "attributes": [],
      "traits": [],
      "iCD10CMConcepts": [
        {
          "description": "Influenza due to unidentified influenza virus with other respiratory manifestations",
          "code": "J11.1",
          "score": 0.6440569162368774
        },
        {
          "description": "Influenza due to other identified influenza virus with other respiratory manifestations",
          "code": "J10.1",
          "score": 0.46903014183044434
        },
        ...
      ]
    }
  ]
}

Error Handling

By default, the Step handles errors using a separate exit. So if any error occurs during the Step execution, the Flow proceeds down the error exit.

Note: If you disable the Handle error toggle, the Step does not handle errors. With this setup, if any error occurs during the Step execution, the Flow fails immediately after exceeding the Flow's timeout. To prevent the Flow from being suspended while continuing to handle errors in the Flow, place the Flow Error Handling Step before the main Flow logic.

Reporting

The Step reports once after its execution. You can change the Step log level and add new tags in the section.

Log level

By default, the Step inherits its log level from Flow's log level. You can change the Step's log level by selecting an appropriate option from the Log level list.

Tags

Tags help organize and filter session information when generating reports. You can specify the tag category, label, and value when adding a new tag.

Service dependencies

  • flow builder - v2.28.3
  • event-manager - v2.3.0
  • deployer - v2.6.0
  • comprehend medical provider - v1.0.0

Release notes

v1.0.0

  • Initial release