github.com/hscells/guru@v0.0.0-20200207042420-2dabeb950d69/semgroups.go (about)

     1  package guru
     2  
     3  import (
     4  	"bufio"
     5  	"bytes"
     6  	"strings"
     7  )
     8  
     9  type SemGroup struct {
    10  	Identifier string
    11  	Name       string
    12  	TUI        string
    13  	STY        string
    14  }
    15  
    16  var groups map[string]SemGroup
    17  
    18  func LoadSemGroups(input string) map[string]SemGroup {
    19  	g := make(map[string]SemGroup)
    20  	s := bufio.NewScanner(bytes.NewBufferString(input))
    21  	for s.Scan() {
    22  		line := strings.Split(s.Text(), "|")
    23  		g[line[2]] = SemGroup{
    24  			Identifier: line[0],
    25  			Name:       line[1],
    26  			TUI:        line[2],
    27  			STY:        line[3],
    28  		}
    29  	}
    30  	return g
    31  }
    32  
    33  func MapSemGroup(tui string) (SemGroup, bool) {
    34  	if groups == nil {
    35  		groups = LoadSemGroups(semGroups)
    36  	}
    37  	v, ok := groups[tui]
    38  	return v, ok
    39  }
    40  
    41  func DefaultSemGroups() map[string]SemGroup {
    42  	return LoadSemGroups(semGroups)
    43  }
    44  
    45  const semGroups = `ACTI|Activities & Behaviors|T052|Activity
    46  ACTI|Activities & Behaviors|T053|Behavior
    47  ACTI|Activities & Behaviors|T056|Daily or Recreational Activity
    48  ACTI|Activities & Behaviors|T051|Event
    49  ACTI|Activities & Behaviors|T064|Governmental or Regulatory Activity
    50  ACTI|Activities & Behaviors|T055|Individual Behavior
    51  ACTI|Activities & Behaviors|T066|Machine Activity
    52  ACTI|Activities & Behaviors|T057|Occupational Activity
    53  ACTI|Activities & Behaviors|T054|Social Behavior
    54  ANAT|Anatomy|T017|Anatomical Structure
    55  ANAT|Anatomy|T029|Body Location or Region
    56  ANAT|Anatomy|T023|Body Part, Organ, or Organ Component
    57  ANAT|Anatomy|T030|Body Space or Junction
    58  ANAT|Anatomy|T031|Body Substance
    59  ANAT|Anatomy|T022|Body System
    60  ANAT|Anatomy|T025|Cell
    61  ANAT|Anatomy|T026|Cell Component
    62  ANAT|Anatomy|T018|Embryonic Structure
    63  ANAT|Anatomy|T021|Fully Formed Anatomical Structure
    64  ANAT|Anatomy|T024|Tissue
    65  CHEM|Chemicals & Drugs|T116|Amino Acid, Peptide, or Protein
    66  CHEM|Chemicals & Drugs|T195|Antibiotic
    67  CHEM|Chemicals & Drugs|T123|Biologically Active Substance
    68  CHEM|Chemicals & Drugs|T122|Biomedical or Dental Material
    69  CHEM|Chemicals & Drugs|T118|Carbohydrate
    70  CHEM|Chemicals & Drugs|T103|Chemical
    71  CHEM|Chemicals & Drugs|T120|Chemical Viewed Functionally
    72  CHEM|Chemicals & Drugs|T104|Chemical Viewed Structurally
    73  CHEM|Chemicals & Drugs|T200|Clinical Drug
    74  CHEM|Chemicals & Drugs|T111|Eicosanoid
    75  CHEM|Chemicals & Drugs|T196|Element, Ion, or Isotope
    76  CHEM|Chemicals & Drugs|T126|Enzyme
    77  CHEM|Chemicals & Drugs|T131|Hazardous or Poisonous Substance
    78  CHEM|Chemicals & Drugs|T125|Hormone
    79  CHEM|Chemicals & Drugs|T129|Immunologic Factor
    80  CHEM|Chemicals & Drugs|T130|Indicator, Reagent, or Diagnostic Aid
    81  CHEM|Chemicals & Drugs|T197|Inorganic Chemical
    82  CHEM|Chemicals & Drugs|T119|Lipid
    83  CHEM|Chemicals & Drugs|T124|Neuroreactive Substance or Biogenic Amine
    84  CHEM|Chemicals & Drugs|T114|Nucleic Acid, Nucleoside, or Nucleotide
    85  CHEM|Chemicals & Drugs|T109|Organic Chemical
    86  CHEM|Chemicals & Drugs|T115|Organophosphorus Compound
    87  CHEM|Chemicals & Drugs|T121|Pharmacologic Substance
    88  CHEM|Chemicals & Drugs|T192|Receptor
    89  CHEM|Chemicals & Drugs|T110|Steroid
    90  CHEM|Chemicals & Drugs|T127|Vitamin
    91  CONC|Concepts & Ideas|T185|Classification
    92  CONC|Concepts & Ideas|T077|Conceptual Entity
    93  CONC|Concepts & Ideas|T169|Functional Concept
    94  CONC|Concepts & Ideas|T102|Group Attribute
    95  CONC|Concepts & Ideas|T078|Idea or Concept
    96  CONC|Concepts & Ideas|T170|Intellectual Product
    97  CONC|Concepts & Ideas|T171|Language
    98  CONC|Concepts & Ideas|T080|Qualitative Concept
    99  CONC|Concepts & Ideas|T081|Quantitative Concept
   100  CONC|Concepts & Ideas|T089|Regulation or Law
   101  CONC|Concepts & Ideas|T082|Spatial Concept
   102  CONC|Concepts & Ideas|T079|Temporal Concept
   103  DEVI|Devices|T203|Drug Delivery Device
   104  DEVI|Devices|T074|Medical Device
   105  DEVI|Devices|T075|Research Device
   106  DISO|Disorders|T020|Acquired Abnormality
   107  DISO|Disorders|T190|Anatomical Abnormality
   108  DISO|Disorders|T049|Cell or Molecular Dysfunction
   109  DISO|Disorders|T019|Congenital Abnormality
   110  DISO|Disorders|T047|Disease or Syndrome
   111  DISO|Disorders|T050|Experimental Model of Disease
   112  DISO|Disorders|T033|Finding
   113  DISO|Disorders|T037|Injury or Poisoning
   114  DISO|Disorders|T048|Mental or Behavioral Dysfunction
   115  DISO|Disorders|T191|Neoplastic Process
   116  DISO|Disorders|T046|Pathologic Function
   117  DISO|Disorders|T184|Sign or Symptom
   118  GENE|Genes & Molecular Sequences|T087|Amino Acid Sequence
   119  GENE|Genes & Molecular Sequences|T088|Carbohydrate Sequence
   120  GENE|Genes & Molecular Sequences|T028|Gene or Genome
   121  GENE|Genes & Molecular Sequences|T085|Molecular Sequence
   122  GENE|Genes & Molecular Sequences|T086|Nucleotide Sequence
   123  GEOG|Geographic Areas|T083|Geographic Area
   124  LIVB|Living Beings|T100|Age Group
   125  LIVB|Living Beings|T003|Alga
   126  LIVB|Living Beings|T011|Amphibian
   127  LIVB|Living Beings|T008|Animal
   128  LIVB|Living Beings|T194|Archaeon
   129  LIVB|Living Beings|T007|Bacterium
   130  LIVB|Living Beings|T012|Bird
   131  LIVB|Living Beings|T099|Family Group
   132  LIVB|Living Beings|T013|Fish
   133  LIVB|Living Beings|T004|Fungus
   134  LIVB|Living Beings|T096|Group
   135  LIVB|Living Beings|T016|Human
   136  LIVB|Living Beings|T009|Invertebrate
   137  LIVB|Living Beings|T015|Mammal
   138  LIVB|Living Beings|T001|Organism
   139  LIVB|Living Beings|T101|Patient or Disabled Group
   140  LIVB|Living Beings|T002|Plant
   141  LIVB|Living Beings|T098|Population Group
   142  LIVB|Living Beings|T097|Professional or Occupational Group
   143  LIVB|Living Beings|T014|Reptile
   144  LIVB|Living Beings|T006|Rickettsia or Chlamydia
   145  LIVB|Living Beings|T010|Vertebrate
   146  LIVB|Living Beings|T005|Virus
   147  OBJC|Objects|T071|Entity
   148  OBJC|Objects|T168|Food
   149  OBJC|Objects|T073|Manufactured Object
   150  OBJC|Objects|T072|Physical Object
   151  OBJC|Objects|T167|Substance
   152  OCCU|Occupations|T091|Biomedical Occupation or Discipline
   153  OCCU|Occupations|T090|Occupation or Discipline
   154  ORGA|Organizations|T093|Health Care Related Organization
   155  ORGA|Organizations|T092|Organization
   156  ORGA|Organizations|T094|Professional Society
   157  ORGA|Organizations|T095|Self-help or Relief Organization
   158  PHEN|Phenomena|T038|Biologic Function
   159  PHEN|Phenomena|T069|Environmental Effect of Humans
   160  PHEN|Phenomena|T068|Human-caused Phenomenon or Process
   161  PHEN|Phenomena|T034|Laboratory or Test Result
   162  PHEN|Phenomena|T070|Natural Phenomenon or Process
   163  PHEN|Phenomena|T067|Phenomenon or Process
   164  PHYS|Physiology|T043|Cell Function
   165  PHYS|Physiology|T201|Clinical Attribute
   166  PHYS|Physiology|T045|Genetic Function
   167  PHYS|Physiology|T041|Mental Process
   168  PHYS|Physiology|T044|Molecular Function
   169  PHYS|Physiology|T042|Organ or Tissue Function
   170  PHYS|Physiology|T032|Organism Attribute
   171  PHYS|Physiology|T040|Organism Function
   172  PHYS|Physiology|T039|Physiologic Function
   173  PROC|Procedures|T060|Diagnostic Procedure
   174  PROC|Procedures|T065|Educational Activity
   175  PROC|Procedures|T058|Health Care Activity
   176  PROC|Procedures|T059|Laboratory Procedure
   177  PROC|Procedures|T063|Molecular Biology Research Technique
   178  PROC|Procedures|T062|Research Activity
   179  PROC|Procedures|T061|Therapeutic or Preventive Procedure`