Usa la API de Healthcare Natural Language

En esta página, se explica cómo habilitar la API de Healthcare Natural Language, configurar los permisos y llamar al método analyzeEntities para extraer estadísticas médicas a partir de texto médico.

Descripción general

La API de Healthcare Natural Language proporciona soluciones de aprendizaje automático para obtener estadísticas a partir de texto médico. La API de Healthcare Natural Language forma parte de la API de Cloud Healthcare. Para obtener una descripción general de la API de Healthcare Natural Language, consulta la documentación conceptual de la API de Healthcare Natural Language.

La API de Healthcare Natural Language analiza texto médico no estructurado, como registros médicos o reclamos de seguros. Luego, genera una representación de datos estructurados de las entidades de conocimiento médico almacenadas en estas fuentes de datos para el análisis y la automatización posteriores. Por ejemplo, puede hacer lo siguiente:

  • Extrae información sobre conceptos médicos, como enfermedades, medicamentos, dispositivos médicos, procedimientos y sus atributos clínicos relevantes.
  • Asigna conceptos médicos a vocabularios médicos estándares, como RxNorm, ICD-10, MeSH y SNOMED CT (solo usuarios de EE.UU.).
  • Obtén estadísticas médicas a partir de texto y, luego, intégralas a productos de análisis de datos en Google Cloud

Ubicaciones disponibles

La API de Healthcare Natural Language está disponible en las siguientes ubicaciones:

Nombre de la ubicación Descripción de la ubicación
us-central1 Iowa, EE.UU.
europe-west4 Netherlands

Habilita la API de Healthcare Natural Language

Antes de comenzar a usar la API de Healthcare de Natural Language, debes habilitarla para tu proyecto de Google Cloud. Puedes usar la API de Healthcare Natural Language sin habilitar ni usar las funciones de la API de Cloud Healthcare.

Para habilitar la API, completa los siguientes pasos:

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Crea una cuenta de servicio:

    1. En Cloud Console, ve a la página Crear cuenta de servicio.

      Ir a Crear cuenta de servicio
    2. Selecciona un proyecto
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. Cloud Console completa el campo ID de cuenta de servicio según este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Haz clic en el campo Seleccionar una función.

      En Acceso rápido, haz clic en Básico y, luego, en Propietario.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

  5. Para crear una clave de cuenta de servicio, haz lo siguiente:

    1. En Cloud Console, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haga clic en Claves.
    3. Haz clic en Agregar clave, luego haz clic en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
    5. Haga clic en Cerrar.
  6. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene la clave de tu cuenta de servicio. Esta variable solo se aplica a la sesión actual de shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

  7. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  8. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  9. Crea una cuenta de servicio:

    1. En Cloud Console, ve a la página Crear cuenta de servicio.

      Ir a Crear cuenta de servicio
    2. Selecciona un proyecto
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. Cloud Console completa el campo ID de cuenta de servicio según este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Haz clic en el campo Seleccionar una función.

      En Acceso rápido, haz clic en Básico y, luego, en Propietario.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

  10. Para crear una clave de cuenta de servicio, haz lo siguiente:

    1. En Cloud Console, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haga clic en Claves.
    3. Haz clic en Agregar clave, luego haz clic en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
    5. Haga clic en Cerrar.
  11. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene la clave de tu cuenta de servicio. Esta variable solo se aplica a la sesión actual de shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

  12. Habilita las Cloud Healthcare API.

    Habilita la API

  13. Instala e inicializa el SDK de Cloud.

Configura los permisos

Para usar las funciones de esta guía, debes tener el permiso healthcare.nlpservce.analyzeEntities, que se incluye en la función healthcare.nlpServiceViewer.

Para asignar esta función, ejecuta el comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member serviceAccount:SERVICE_ACCOUNT_ID \
    --role roles/healthcare.nlpServiceViewer

Extrae entidades, relaciones y atributos contextuales

La API de Healthcare Natural Language usa modelos contextuales para extraer entidades médicas, relaciones y atributos contextuales. Cada entidad de texto se extrae a una entrada de diccionario médico. Para extraer este nivel de estadísticas médicas a partir de texto médico, usa el método projects.locations.services.nlp.analyzeEntities.

Para extraer estadísticas médicas de texto médico con la API de Natural Language, realiza una solicitud POST y especifica la siguiente información en la solicitud:

  • El nombre del servicio superior, incluido el ID y la ubicación del proyecto
  • El texto de destino. El tamaño máximo es de 10,000 caracteres Unicode.

curl

En el siguiente ejemplo, se muestra una solicitud POST mediante curl:

curl -X POST \
   -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
   -H "Content-Type:application/json" \
   --data "{
    'nlpService':'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent':'Insulin regimen human 5 units IV administered.'
   }" \
   "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

PowerShell

En el siguiente ejemplo, se muestra una solicitud mediante Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'nlpService':'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent':'Insulin regimen human 5 units IV administered.'
   }" `
   -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"  | Select-Object -Expand Content

Si la solicitud es exitosa, la respuesta incluirá la siguiente información:

  • Entidades de conocimiento médico reconocidas
  • Características funcionales
  • Relaciones entre las entidades reconocidas
  • Atributos contextuales
  • Asignaciones de las entidades de conocimiento médico a terminologías estándares

Para obtener una lista de entidades, atributos y tipos de relaciones compatibles, consulta la documentación conceptual de la API de Natural Language.

La siguiente respuesta de los ejemplos anteriores identificó la insulina terapéutica, la entidad con el código C581 en el sistema de terminología de NCI, como el medicamento. La respuesta también incluye la puntuación de confianza asignada a la respuesta. Para obtener más información sobre los campos de respuesta, consulta la documentación de analyzeEntities.

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen human"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/3537244"
        },
        {
          "entityId": "UMLS/3714501"
        },
        {
          "entityId": "UMLS/21641"
        },
        {
          "entityId": "UMLS/795635"
        },
        {
          "entityId": "UMLS/1533581"
        },
        {
          "entityId": "UMLS/4721402"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.87631082534790039
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.9999774694442749
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.99999970197677612
      },
      "confidence": 0.41636556386947632
    },
    {
      "mentionId": "2",
      "type": "MED_DOSE",
      "text": {
        "content": "5 units",
        "beginOffset": 22
      },
      "confidence": 0.56910794973373413
    },
    {
      "mentionId": "3",
      "type": "MED_ROUTE",
      "text": {
        "content": "IV",
        "beginOffset": 30
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/348016"
        }
      ],
      "confidence": 0.9180646538734436
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/21641",
      "preferredTerm": "Insulin",
      "vocabularyCodes": [
        "FMA/83365",
        "LNC/LA15805-7",
        "LNC/LP14676-8",
        "LNC/LP16325-0",
        "LNC/LP32542-0",
        "LNC/LP70329-5",
        "LNC/MTHU002108",
        "LNC/MTHU019392",
        "MSH/D007328",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346"
      ]
    },
    {
      "entityId": "UMLS/3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    },
    {
      "entityId": "UMLS/4721402",
      "preferredTerm": "INS protein, human",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C2271"
      ]
    },
    {
      "entityId": "UMLS/795635",
      "preferredTerm": "insulin, regular, human",
      "vocabularyCodes": [
        "LNC/LP17001-6",
        "MSH/D061386",
        "MTH/NOCODE",
        "NCI/C29125",
        "RXNORM/253182",
        "VANDF/4017559",
        "VANDF/4017569",
        "VANDF/4019786"
      ]
    }
  ],
  "relationships": [
    {
      "subjectId": "1",
      "objectId": "2",
      "confidence": 0.53775161504745483
    },
    {
      "subjectId": "1",
      "objectId": "3",
      "confidence": 0.95007365942001343
    }
  ]
}

Incluye vocabulario con licencia

Puedes incluir los siguientes vocabularios con licencia en tus solicitudes a la API de Healthcare Natural Language:

En los siguientes ejemplos, se muestra cómo realizar una solicitud POST a la API de Healthcare Natural Language y, también, incluir los vocabularios de licencia disponibles en el objeto licensedVocabularies. Puedes especificar uno o más vocabularios con licencia disponibles.

curl

En el siguiente ejemplo, se muestra una solicitud POST mediante curl:

curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type:application/json" \
    --data "{
      'nlpService':'projects/PROJECT_ID/locations/us-central1/services/nlp',
       'documentContent':'Diabetes. Insulin regimen human 5 units IV administered.',
       'licensedVocabularies':['SNOMEDCT_US','ICD10CM']
    }" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/services/nlp:analyzeEntities"

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Esta es la salida. El resultado de especificar los vocabularios con licencia está en negrita:

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "PROBLEM",
      "text": {
        "content": "Diabetes"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C0011847"
        },
        {
          "entityId": "UMLS/C0011849"
        },
        {
          "entityId": "UMLS/C0241863"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.98781299591064453
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.872421145439148
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.99975031614303589
      },
      "confidence": 0.99663406610488892
    },
    {
      "mentionId": "2",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen",
        "beginOffset": 10
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C0795635"
        },
        {
          "entityId": "UMLS/C0021641"
        },
        {
          "entityId": "UMLS/C3537244"
        },
        {
          "entityId": "UMLS/C1533581"
        },
        {
          "entityId": "UMLS/C3714501"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.91042423248291016
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.99766635894775391
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.999998152256012
      },
      "confidence": 0.716249406337738
    },
    {
      "mentionId": "3",
      "type": "MEDICINE",
      "text": {
        "content": "human",
        "beginOffset": 26
      },
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.64570724964141846
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.90325617790222168
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.97613298892974854
      },
      "confidence": 0.57638454437255859
    },
    {
      "mentionId": "4",
      "type": "MED_DOSE",
      "text": {
        "content": "5 units",
        "beginOffset": 32
      },
      "confidence": 0.92076742649078369
    },
    {
      "mentionId": "5",
      "type": "MED_ROUTE",
      "text": {
        "content": "IV",
        "beginOffset": 40
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C0348016"
        }
      ],
      "confidence": 0.967033863067627
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/C0011847",
      "preferredTerm": "Diabetes",
      "vocabularyCodes": [
        "ICD10CM/E11",
        "LNC/LA10529-8",
        "LNC/LP128793-9",
        "LNC/MTHU040702",
        "MTH/NOCODE",
        "OMIM/MTHU050182"
      ]
    },
    {
      "entityId": "UMLS/C0011849",
      "preferredTerm": "Diabetes Mellitus",
      "vocabularyCodes": [
        "HPO/HP:0000819",
        "ICD10CM/E08-E13",
        "ICD9CM/250",
        "LNC/LA14291-1",
        "LNC/LA27539-8",
        "LNC/MTHU020781",
        "MEDLINEPLUS/4",
        "MEDLINEPLUS/45",
        "MSH/D003920",
        "MTH/NOCODE",
        "MTH/U000263",
        "NCI/C2985",
        "NCI/OMFAQ",
        "NCI/TCGA",
        "OMIM/MTHU036798",
        "SNOMEDCT_US/73211009"
      ]
    },
    {
      "entityId": "UMLS/C0021641",
      "preferredTerm": "Insulin",
      "vocabularyCodes": [
        "FMA/83365",
        "LNC/LA15805-7",
        "LNC/LP14676-8",
        "LNC/LP16325-0",
        "LNC/LP32542-0",
        "LNC/LP70329-5",
        "LNC/MTHU002108",
        "LNC/MTHU019392",
        "MEDLINEPLUS/4935",
        "MSH/D007328",
        "MTH/NOCODE",
        "SNOMEDCT_US/39487003",
        "SNOMEDCT_US/412222002",
        "SNOMEDCT_US/67866001"
      ]
    },
    {
      "entityId": "UMLS/C0241863",
      "preferredTerm": "Diabetic",
      "vocabularyCodes": [
        "LNC/LA26134-9"
      ]
    },
    {
      "entityId": "UMLS/C0348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346",
        "SNOMEDCT_US/255560000"
      ]
    },
    {
      "entityId": "UMLS/C0795635",
      "preferredTerm": "insulin, regular, human",
      "vocabularyCodes": [
        "LNC/LP17001-6",
        "MSH/D061386",
        "MTH/NOCODE",
        "NCI/C29125",
        "RXNORM/253182",
        "SNOMEDCT_US/126210001",
        "SNOMEDCT_US/417423002",
        "SNOMEDCT_US/420609005",
        "SNOMEDCT_US/96367001",
        "VANDF/4017559",
        "VANDF/4017569",
        "VANDF/4019786"
      ]
    },
    {
      "entityId": "UMLS/C1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/C3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/C3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    }
  ],
  "relationships": [
    {
      "subjectId": "2",
      "objectId": "4",
      "confidence": 0.99827027320861816
    },
    {
      "subjectId": "2",
      "objectId": "5",
      "confidence": 0.99729859828948975
    },
    {
      "subjectId": "3",
      "objectId": "4",
      "confidence": 0.80851161479949951
    },
    {
      "subjectId": "3",
      "objectId": "5",
      "confidence": 0.67507040500640869
    }
  ]
}

PowerShell

En el siguiente ejemplo, se muestra una solicitud POST mediante Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'nlpService':'projects/PROJECT_ID/locations/us-central1/services/nlp',
    'documentContent': 'Diabetes. Insulin regimen human 5 units IV administered.',
    'licensedVocabularies': ['SNOMEDCT_US','ICD10CM']
   }" `
   -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/services/nlp:analyzeEntities"  | Select-Object -Expand Content

Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud.

Esta es la salida. El resultado de especificar los vocabularios con licencia está en negrita:

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "PROBLEM",
      "text": {
        "content": "Diabetes"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C0011847"
        },
        {
          "entityId": "UMLS/C0011849"
        },
        {
          "entityId": "UMLS/C0241863"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.98781299591064453
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.872421145439148
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.99975031614303589
      },
      "confidence": 0.99663406610488892
    },
    {
      "mentionId": "2",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen",
        "beginOffset": 10
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C0795635"
        },
        {
          "entityId": "UMLS/C0021641"
        },
        {
          "entityId": "UMLS/C3537244"
        },
        {
          "entityId": "UMLS/C1533581"
        },
        {
          "entityId": "UMLS/C3714501"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.91042423248291016
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.99766635894775391
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.999998152256012
      },
      "confidence": 0.716249406337738
    },
    {
      "mentionId": "3",
      "type": "MEDICINE",
      "text": {
        "content": "human",
        "beginOffset": 26
      },
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.64570724964141846
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.90325617790222168
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.97613298892974854
      },
      "confidence": 0.57638454437255859
    },
    {
      "mentionId": "4",
      "type": "MED_DOSE",
      "text": {
        "content": "5 units",
        "beginOffset": 32
      },
      "confidence": 0.92076742649078369
    },
    {
      "mentionId": "5",
      "type": "MED_ROUTE",
      "text": {
        "content": "IV",
        "beginOffset": 40
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C0348016"
        }
      ],
      "confidence": 0.967033863067627
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/C0011847",
      "preferredTerm": "Diabetes",
      "vocabularyCodes": [
        "ICD10CM/E11",
        "LNC/LA10529-8",
        "LNC/LP128793-9",
        "LNC/MTHU040702",
        "MTH/NOCODE",
        "OMIM/MTHU050182"
      ]
    },
    {
      "entityId": "UMLS/C0011849",
      "preferredTerm": "Diabetes Mellitus",
      "vocabularyCodes": [
        "HPO/HP:0000819",
        "ICD10CM/E08-E13",
        "ICD9CM/250",
        "LNC/LA14291-1",
        "LNC/LA27539-8",
        "LNC/MTHU020781",
        "MEDLINEPLUS/4",
        "MEDLINEPLUS/45",
        "MSH/D003920",
        "MTH/NOCODE",
        "MTH/U000263",
        "NCI/C2985",
        "NCI/OMFAQ",
        "NCI/TCGA",
        "OMIM/MTHU036798",
        "SNOMEDCT_US/73211009"
      ]
    },
    {
      "entityId": "UMLS/C0021641",
      "preferredTerm": "Insulin",
      "vocabularyCodes": [
        "FMA/83365",
        "LNC/LA15805-7",
        "LNC/LP14676-8",
        "LNC/LP16325-0",
        "LNC/LP32542-0",
        "LNC/LP70329-5",
        "LNC/MTHU002108",
        "LNC/MTHU019392",
        "MEDLINEPLUS/4935",
        "MSH/D007328",
        "MTH/NOCODE",
        "SNOMEDCT_US/39487003",
        "SNOMEDCT_US/412222002",
        "SNOMEDCT_US/67866001"
      ]
    },
    {
      "entityId": "UMLS/C0241863",
      "preferredTerm": "Diabetic",
      "vocabularyCodes": [
        "LNC/LA26134-9"
      ]
    },
    {
      "entityId": "UMLS/C0348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346",
        "SNOMEDCT_US/255560000"
      ]
    },
    {
      "entityId": "UMLS/C0795635",
      "preferredTerm": "insulin, regular, human",
      "vocabularyCodes": [
        "LNC/LP17001-6",
        "MSH/D061386",
        "MTH/NOCODE",
        "NCI/C29125",
        "RXNORM/253182",
        "SNOMEDCT_US/126210001",
        "SNOMEDCT_US/417423002",
        "SNOMEDCT_US/420609005",
        "SNOMEDCT_US/96367001",
        "VANDF/4017559",
        "VANDF/4017569",
        "VANDF/4019786"
      ]
    },
    {
      "entityId": "UMLS/C1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/C3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/C3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    }
  ],
  "relationships": [
    {
      "subjectId": "2",
      "objectId": "4",
      "confidence": 0.99827027320861816
    },
    {
      "subjectId": "2",
      "objectId": "5",
      "confidence": 0.99729859828948975
    },
    {
      "subjectId": "3",
      "objectId": "4",
      "confidence": 0.80851161479949951
    },
    {
      "subjectId": "3",
      "objectId": "5",
      "confidence": 0.67507040500640869
    }
  ]
}