Example #1
0
  /**
   * get the vocab attributes from teh user bean using filter attr and filter value to check and
   * return its equivaltnt attrs
   *
   * @param eUser EVS_userbean obtained from the database at login
   * @param sFilterValue string existing value
   * @param filterAttr int existing vocab name
   * @param retAttr int returning vocab name
   * @return value from returning vocab
   */
  public String getVocabAttr(
      EVS_UserBean eUser,
      String sFilterValue,
      int filterAttr,
      int retAttr) // String sFilterAttr, String sRetAttr)
      {
    // go back if origin is emtpy
    if (sFilterValue == null || sFilterValue.equals("")) return "";

    String sRetValue =
        sFilterValue; // sFilterValue is the value but the full name of 2) Select EVS Vocabulary
                      // from the front end (cdecurate) e.g. Logical Observation Identifier Names
                      // and Codes instead of LOINC
    Hashtable eHash = eUser.getVocab_Attr();
    Vector vVocabs = eUser.getVocabNameList();
    if (vVocabs == null) vVocabs = new Vector();
    // handle teh special case to make sure vocab for api query is valid
    if (filterAttr == EVSSearch.VOCAB_NULL) // (sFilterAttr == null || sFilterAttr.equals(""))
    {
      // it is valid vocab name
      if (vVocabs.contains(sFilterValue)) return sFilterValue; // found it
      // first check if filter value is from diplay vocab list
      Vector vDisplay = eUser.getVocabDisplayList();
      if (vDisplay != null && vDisplay.contains(sFilterValue)) {
        int iIndex = vDisplay.indexOf(sFilterValue);
        sRetValue = (String) vVocabs.elementAt(iIndex);
        return sRetValue; // found it
      }
      // filter it as dborigin
      filterAttr = EVSSearch.VOCAB_DBORIGIN; // sFilterAttr = "vocabDBOrigin";
    }
    for (int i = 0; i < vVocabs.size(); i++) {
      String sName = (String) vVocabs.elementAt(i);
      EVS_UserBean usrVocab = (EVS_UserBean) eHash.get(sName);
      String sValue = "";
      // check if the vocab is meta thesaurus
      String sMeta = usrVocab.getIncludeMeta();
      if (sMeta != null && !sMeta.equals("") && sMeta.equals(sFilterValue))
        return EVSSearch.META_VALUE; // "MetaValue";
      // get teh data from teh bean to match search
      if (filterAttr == EVSSearch.VOCAB_DISPLAY) // (sFilterAttr.equalsIgnoreCase("vocabDisplay"))
      sValue = usrVocab.getVocabDisplay();
      else if (filterAttr
          == EVSSearch.VOCAB_DBORIGIN) // (sFilterAttr.equalsIgnoreCase("vocabDBOrigin"))
      sValue = usrVocab.getVocabDBOrigin();
      else if (filterAttr == EVSSearch.VOCAB_NAME) // (sFilterAttr.equalsIgnoreCase("vocabName"))
      sValue = usrVocab.getVocabName();
      // do matching and return the value
      // System.out.println(sFilterValue + " getvocab " + sValue);
      //  if (sFilterValue.equalsIgnoreCase(sValue))  //check it later
      if (sFilterValue.contains(sValue)) {
        // get its value from teh bean for the return attr
        if (retAttr == EVSSearch.VOCAB_DISPLAY) // (sRetAttr.equalsIgnoreCase("vocabDisplay"))
        sRetValue = usrVocab.getVocabDisplay();
        else if (retAttr
            == EVSSearch.VOCAB_DBORIGIN) // (sRetAttr.equalsIgnoreCase("vocabDBOrigin"))
        sRetValue = usrVocab.getVocabDBOrigin();
        else if (retAttr == EVSSearch.VOCAB_NAME) // (sRetAttr.equalsIgnoreCase("vocabName"))
        sRetValue = usrVocab.getVocabName();
        break;
      }
    }
    // return the first vocab if null
    //  if ((sRetValue == null || sRetValue.equals("")) && vVocabs != null)
    //    sRetValue = (String)vVocabs.elementAt(0);
    // System.out.println(sRetValue + sFilterValue + filterAttr + retAttr);
    if (sRetValue == null) sRetValue = "";
    return sRetValue;
  }