code: def read_umls_types(meta_path: str, concept_details: Dict):
      """
      Read the types file MRSTY.RRF from a UMLS release and store it in
      concept_details dictionary. This function adds the `types` field
      to the information of each concept
  
      MRSTY.RRF file format: a pipe-separated values
      Useful columns: CUI, TUI
  
      Args:
          meta_path: path to the META directory of an UMLS release
          concept_details: a dictionary to be filled with concept informations
      """
      types_filename = "MRSTY.RRF"
      headers = read_umls_file_headers(meta_path, types_filename)
      with open(
          f"{meta_path}/{types_filename}", encoding="utf-8"
      ) as fin:
          for line in fin:
              splits = line.strip().split("|")
              assert len(headers) == len(splits)
              concept_type = dict(zip(headers, splits))
  
              concept = concept_details.get(concept_type["CUI"])
              if (
                  concept is not None
              ):  # a small number of types are for concepts that don't exist
                  concept["types"].append(concept_type["TUI"])
  
imports: from typing import Optional, List, Dict
  from scispacy.linking_utils import Entity, UmlsKnowledgeBase
label_desc: Use image node_id 3 for calling a global function with example usage: read_umls_types(meta_path, concept_details) without return types