Package edu.pitt.dbmi.nlp.noble.terminology

Examples of edu.pitt.dbmi.nlp.noble.terminology.Terminology


    }

    sb.append("searchString: " + c.getSearchString() + "\n");
    c.getProperties();

    Terminology term = c.getTerminology();
    sb.append("terminology name: " + term.getName() + "\n");
    c.getTerms();
    c.getText();
    c.getWordMap();

    c.getRelatedConcepts();
View Full Code Here


    // now that we have the type
    if(terminologies.containsKey(type))
      return terminologies.get(type);
   
    // else init terminology
    Terminology term = null;
    try{
      if("umls".equalsIgnoreCase(type)){
        String [] p = terminologyParams.get(type).split("\\|");
        if(p.length == 4)
          term = new UMLSTerminology(p[0].trim(),p[1].trim(),p[2].trim(),p[3].trim());
View Full Code Here

    servletName = req.getContextPath()+"/"+req.getServletPath();
    String response = "";
    String action = req.getParameter("action");
   
    try{
      Terminology terminology = getTerminology(req.getParameter("term"));
      if ( action == null ) {
        response = "Unrecognized parameter"
      }else if (action.equals("set_sources")){
        String src  = req.getParameter("src");
        Source [] srcs = (src != null)?terminology.getSources(src):null;
        terminology.setFilterSources(srcs);
      }else if (action.equals("get_terminologies")){
        response = processOutput(terminologyParams.keySet());
      }else if ( action.equals("search")){
        String text = req.getParameter("text");
        //check if in fact we want to lookup concept
        Object c = null;
        if(text.matches("CL?\\d+") || text.startsWith("http://")){
          c = terminology.lookupConcept(text.trim());
        }else if("ROOT".equals(text)){
          c = terminology.getRootConcepts();
        }else{
          c = terminology.search(text);
        }
        response = processOutput(c);
      }else if ( action.equals("get_roots")){
        response = processOutput(terminology.getRootConcepts());
      }else if ( action.equals("lookup_concept")){
        String text = req.getParameter("code");
        Concept c = terminology.lookupConcept(text.trim());
        response = processOutput(c);
      }else if ( action.equals("get_sources")){
        Source [] src = terminology.getSources();
        response = processOutput(src);
      }else if ( action.equals("get_related_concepts")){
        String code = req.getParameter("code");
        String rel  = req.getParameter("relation");
        Concept c = terminology.lookupConcept(code.trim());
       
        /*
        try{
          code = URLDecoder.decode(code,"utf-8");
        }catch(Exception ex){}
        */
       
        // find relationship
        if(c != null){
          Relation r = Relation.BROADER; // default
          rel = rel.toLowerCase();
          Relation [] rs = c.getRelations();
          for(int i=0;i<rs.length;i++){
            if(rs[i].getName().toLowerCase().contains(rel) ||
               rs[i].getCode().toLowerCase().contains(rel)){
              r = rs[i];
              break;
            }
          }
          Concept [] cs = terminology.getRelatedConcepts(c, r);
          response = processOutput(cs);
        }else{
          response = processOutput(new Concept [0]);
        }
      }else if ( action.equals("get_related_concept_map")){
        String code = req.getParameter("code");
        Concept c = terminology.lookupConcept(code);
        // find relationship
        Map cs = terminology.getRelatedConcepts(c);
        response = processOutput(cs);
      }
    }catch(TerminologyException ex){
      response = "Terminology Error: "+ex.getMessage();
      ex.printStackTrace();
View Full Code Here

   * @param t
   * @return
   */
  private String getTerminologyCode(Terminology t){
    for(String key: terminologies.keySet()){
      Terminology val = terminologies.get(key);
      if(t.equals(val))
        return key;
    }
    return null;
  }
View Full Code Here

    String action = parcel.getAction();
    Object tosend = null;

    // perform appropriate action
    try{
      Terminology terminology = getTerminology(parcel.getProperties().getProperty("term"));
      if ( action == null ) {
        // do nothing
      }else if ( action.equals("set_sources")){
        Source [] src = (Source []) parcel.getPayload();
        terminology.setFilterSources(src);
      }else if ( action.equals("search")){
        String txt = (String) parcel.getPayload();
        tosend = terminology.search(txt);
      }else if ( action.equals("lookup_concept")){
        tosend = terminology.lookupConcept((String) parcel.getPayload());
      }else if ( action.equals("get_sources")){
        tosend = terminology.getSources();
      }else if ( action.equals("get_related_concepts")){
        Object [] p = (Object []) parcel.getPayload();
        Concept c = (Concept) p[0];
        Relation r = (Relation) p[1];
        tosend = terminology.getRelatedConcepts(c, r);
      }else if ( action.equals("get_related_concept_map")){
        Concept c = (Concept) parcel.getPayload();
        tosend = terminology.getRelatedConcepts(c);
      }else if ( action.equals("get_terminologies")){
        tosend = terminologyParams.keySet();
      }
    }catch(TerminologyException ex){
      ex.printStackTrace();
View Full Code Here

  public Concept [] processAcronyms(String phrase, Concept [] foundConcepts) throws TerminologyException {
    Concept [] r = foundConcepts;
   
    // handle acronyms that are mentioned in a document
    List<Concept> concepts = new ArrayList<Concept>(Arrays.asList(r));
    Terminology terminology = foundConcepts.length > 0?foundConcepts[0].getTerminology():null;
   
    // check for acronyms in expanded form
    Matcher m = Pattern.compile("(([A-Z]?[a-z-0-9]+ )+)\\(([A-Z-0-9]+s?)\\)").matcher(TextTools.stripDiacritics(phrase));
    if(m.find()){
      String expanded = m.group(1);
View Full Code Here

      if(!dir.exists())
        dir.mkdirs();
      for(File f: dir.listFiles()){
        String sf = NobleCoderTerminology.TERM_SUFFIX;
        if(f.getName().endsWith(sf)){
          Terminology t;
          try {
            t = new NobleCoderTerminology(f.getName().substring(0,f.getName().length()-sf.length()));
            terminologies.put(t.getName(),t);
          } catch (UnsupportedOperationException e){
            System.err.println("Corrupted termonology detected at "+f.getAbsolutePath()+". skipping ...");
          //} catch (Error e){
          //  System.err.println("Corrupted termonology detected at "+f.getAbsolutePath()+". skipping ...");
          //  e.printStackTrace();
View Full Code Here

    for(TemplateItem item: getTemplateItems()){
      items.appendChild(item.toElement(doc));
    }
   
    // add terminology
    Terminology term = getTerminology();
    if(term instanceof CompositTerminology){
      for(Terminology t : ((CompositTerminology)term).getTerminologies())
        root.appendChild(t.toElement(doc));
    }else{
      root.appendChild(term.toElement(doc));
    }
    // append template element
    return root;
  }
View Full Code Here

  /**
   * create a template from terminology where each root is a template item
   * @param url
   */
  private void addTerminologyTemplate(String url) throws Exception {
    Terminology terminology = new NobleCoderTerminology(url);
   
    // setup template
    Template template = new Template();
    template.setName(terminology.getName()+" Template");
    template.setDescription(terminology.getDescription());
    template.setTerminology(terminology);
    template.getFilters().add(new DocumentFilter("(?s)^BACKGROUND:$.*^$",true));
   
    for(Concept c: terminology.getRootConcepts()){
      TemplateItem item = new TemplateItem();
      /*     
      {
        //TODO: this is a hack for BRAF, let it stay for now?
        public List<ItemInstance> process(TemplateDocument doc) throws TerminologyException {
View Full Code Here

  /**
   * @param args
   */
  public static void main(String[] args) throws Exception {
    NobleCoderTerminology.setPersistenceDirectory(new File("/home/tseytlin/Data/Terminologies/IndexFinder"));
    Terminology terminology = new NobleCoderTerminology("TIES_Pathology");
    //Terminology terminology = new NobleCoderTerminology("NCI_Thesaurus");
    PathHelper ph = new PathHelper(terminology);
    //ph.createAncestryCache();
    for(String text: Arrays.asList("melanoma","nevus","skin","margin")){
      for(Concept c: terminology.search(text)){
        long t = System.currentTimeMillis();
        // lookup paths
       
        List<ConceptPath> path = ph.getPaths(c);
        t = System.currentTimeMillis()-t;
View Full Code Here

TOP

Related Classes of edu.pitt.dbmi.nlp.noble.terminology.Terminology

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.