Text Analytics for health Guide Overview

Text Analytics for health is one of the prebuilt features offered by Azure AI Language. It is a cloud-based API service that applies machine-learning intelligence to extract and label relevant medical information from a variety of unstructured texts such as doctor's notes, discharge summaries, clinical documents, and electronic health records.

Overview

ℹ️

Text Analytics for health is a capability provided “AS IS” and “WITH ALL FAULTS.” Text Analytics for health is not intended or made available for use as a medical device, clinical support, diagnostic tool, or other technology intended to be used in the diagnosis, cure, mitigation, treatment, or prevention of disease or other conditions, and no license or right is granted by Microsoft to use this capability for such purposes. This capability is not designed or intended to be implemented or deployed as a substitute for professional medical advice or healthcare opinion, diagnosis, treatment, or the clinical judgment of a healthcare professional, and should not be used as such. The customer is solely responsible for any use of Text Analytics for health. The customer must separately license any and all source vocabularies it intends to use under the terms set for that UMLS Metathesaurus License Agreement Appendix or any future equivalent link. The customer is responsible for ensuring compliance with those license terms, including any geographic or other applicable restrictions.

Text Analytics for health now allows extraction of Social Determinants of Health (SDOH) and ethnicity mentions in text. This capability may not cover all potential SDOH and does not derive inferences based on SDOH or ethnicity (for example, substance use information is surfaced, but substance abuse is not inferred). All decisions leveraging outputs of the Text Analytics for health that impact individuals or resource allocation (including, but not limited to, those related to billing, human resources, or treatment managing care) should be made with human oversight and not be based solely on the findings of the model. The purpose of the SDOH and ethnicity extraction capability is to help providers improve health outcomes and it should not be used to stigmatize or draw negative inferences about the users or consumers of SDOH data, or patient populations beyond the stated purpose of helping providers improving health outcomes.

Text Analytics for health is one of the prebuilt features offered by Azure AI Language. It is a cloud-based API service that applies machine-learning intelligence to extract and label relevant medical information from a variety of unstructured texts such as doctor's notes, discharge summaries, clinical documents, and electronic health records.

Text Analytics for Health Features

Microsoft’s Text Analytics for health is a cloud-based API service that applies machine-learning intelligence to convert unstructured healthcare data into structured healthcare data to enable further processing. It performs 4 key functions in a single API call:

  • Named Entity Recognition — extracts and categorizes words and phrases
  • Relation Extraction — identifies meaningful connections between concepts
  • Entity Linking — associates extracted entities with preferred names and codes from the biomedical vocabularies supported by EMLA Metathesaurus
  • Assertion Detection — adds contextual certainty, conditional, association, and temporal modifiers to words and phrases

Text Analytics for health can receive unstructured text in English, German, French, Italian, Spanish, Portuguese, and Hebrew.

Additionally, Text Analytics for health can return the processed output using the Fast Healthcare Interoperability Resources (FHIR) structure which enables the service's integration with other electronic health systems.

Usage Scenarios

Text Analytics for health can be used in multiple scenarios across a variety of industries. Some common customer motivations for using Text Analytics for health include:

  • Assisting and automating the processing of medical documents by proper medical coding to ensure accurate care and billing.
  • Increasing the efficiency of analyzing healthcare data to help drive the success of value-based care models similar to Medicare.
  • Minimizing healthcare provider effort by automating the aggregation of key patient data for trend and pattern monitoring.
  • Facilitating and supporting the adoption of HL7 standards for improved exchange, integration, sharing, retrieval, and delivery of electronic health information in all healthcare services.
  • Utilizing Fast Healthcare Interoperability Resources (FHIR) structuring

Utilizing Fast Healthcare Interoperability Resources (FHIR) structuring in Text Analytics for Health

When you process unstructured data using Text Analytics for health, you can request that the output response includes a Fast Healthcare Interoperability Resources (FHIR) resource bundle. The FHIR resource bundle output is enabled by passing the FHIR version as part of the options in each request. How you pass the FHIR version differs depending on whether you're using the SDK or the REST API.

Use the REST API

When you use the REST API as part of building the request payload, you include a Tasks object. Each of the Tasks can have parameters. One of the options for parameters is fhirVersion. By including the fhirVersion parameter in the Task object parameters, you're requesting the output to include an FHIR resource bundle in addition to the normal Text Analytics for health output. The following example shows the inclusion of fhirVersion in the request parameters.

{
      "analysis input": {
            "documents:"[
                {
                text:"54 year old patient had pain in the left elbow with no relief from 100 mg Ibuprofen",
                "language":"en",
                "id":"1"
                }
            ]
        },
    "tasks"[
       {
       "taskId":"analyze 1",
       "kind":"Healthcare",
       "parameters":
            {
            "fhirVersion":"4.0.1"
            }
        }
    ]
}

Once the request has completed processing by Text Analytics for health and you pull the response from the REST API, you'll find the FHIR resource bundle in the output. You can locate the FHIR resource bundle inside each document processed using the property name fhirBundle. The following partial sample is output highlighting the fhirBundle.

Get the operation-location from the response header. The value will look similar to the following URL:
/language/analyze-text/jobs/{JOB-ID}?api-version=2022-05-15-preview

To get the results of the request, use the cURL command. Be sure to replace {JOB-ID} with the numerical ID value you received from the previous operation-location response header:

{
  "jobID":"50d11b05-7a03-a611-6f1e95ebde07",
  "lastUpdatedDateTime":"2024-06-05T17:29:51Z",
  "createdDateTime:"2024-06-05T17:29:40Z",
  "expirationDateTime":"2024-06-05T17:29:40Z",
  "status":"succeeded",
  "errors":[],
  "tasks":{
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
        {
          "kind":"HealthcareLROResults",
          "lastUpdatedDateTime":"2024-06-05T17:29:51.5839858Z",
          "status":"succeeded",
          "results": {
              "documents": [
                  {
                    "id": "1",
                    "entities": [...
                    ],
                    "relations": [...
                    ].
                    "warnings":[],
                    "fhirBundle": {
                        "resourceType": "Bundle",
                        "id": "b4d907ed-0334-4186-9e21-8ed4d79e709f",
                        "meta": {
                            "profile": [
                                "http://hl7.org/fhir/4.0.1/StructureDefinition/Bundle"
                                  ]
                                },

Use the REST SDK

You can also use the SDK to make the request for Text Analytics for health to include the FHIR resource bundle in the output. To accomplish this request with the SDK, you would create an instance of AnalyzeHealthcareEntitiesOptions and populate the FhirVersion property with the FHIR version. This options object is then passed to each StartAnalyzeHealthcareEntitiesAsync method call to configure the request to include an FHIR resource bundle in the output.


Example Use Cases

Use caseDescription
Extract insights and statisticsIdentify medical entities such as symptoms, medications, diagnosis from clinical and research documents in order to extract insights and statistics for different patient cohorts.
Develop predictive models using historic dataPower solutions for planning, decision support, risk analysis and more, based on prediction models created from historic data.
Annotate and curate medical informationSupport solutions for clinical data annotation and curation, such as automating clinical coding and digitizing manually created data.
Review and report medical informationSupport solutions for reporting and flagging possible errors in medical information resulting from review processes such as quality assurance.
Assist with decision supportEnable solutions that provide humans with assistive information relating to patients’ medical information for faster and more reliable decisions.

Input requirements and service limits

Text Analytics for health is designed to receive unstructured text for analysis. For more information, see Service & Data Limits.