Android Open Source - clinicalguide Query Helper






From Project

Back to project page clinicalguide.

License

The source code is released under:

Apache License

If you think the Android project clinicalguide listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.get.oxicam.clinicalguide.xml.query;
/*  ww w.  j a  v a  2s  .co m*/
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Set;

import org.get.oxicam.clinicalguide.ClinicalGuideActivity;
import org.get.oxicam.clinicalguide.xml.DateHelper;
import org.get.oxicam.clinicalguide.xml.stats.StatsComparatorOperator;
import org.get.oxicam.clinicalguide.xml.stats.StatsConstraint;
import org.get.oxicam.clinicalguide.xml.stats.StatsSubject;

public class QueryHelper {

    /**
     * join tables to history table
     * 
     * @param arr
     *            array list of tables to join
     * @param tables
     *            tables joined
     * @return string that can be concatenated to a "FROM" clause of a query
     */
    public static String joinTable(ArrayList<? extends StatsSubject> arr,
      Set<String> tables) {
  String retVal = "";
  if (arr != null) {
      int len = arr.size();
      for (int i = 0; i < len; i++) {
    StatsSubject fc = arr.get(i);
    retVal += joinTable(fc.tablename, tables);
      }
  }
  return retVal;
    }

    /**
     * Joins a table to history_table
     * 
     * @param tablename
     *            The tablename to join. ie. patient_details_table (_table at
     *            the end is necessary).
     * @param join
     *            The Set of already joined tables. (Prevents joining already
     *            joined tables)
     * @return Returns a String that can be concatenated to a "FROM" clause of a
     *         query.
     */
    public static String joinTable(String tablename, Set<String> join) {
  tablename = tablename.trim();
  String retVal = " ";
  String table = tablename.substring(0, tablename.length() - 6); // -6
                       // because
                       // it
                       // should
                       // end
                       // with
                       // "_table"
  if (table.equalsIgnoreCase("patient_details")
    && !join.contains("patient_details")) {
      retVal += " JOIN " + table + " " + tablename + " ON "
        + " history_table.patient = " + tablename + ".id ";
      join.add("patient_details");
  } else if (table.equalsIgnoreCase("user") && !join.contains("user")) {
      retVal += " JOIN " + table + " " + tablename + " ON "
        + " history_table.user_id = " + tablename + ".id ";
      join.add("user");

  } else if (table.equalsIgnoreCase("history_answers")
    && !join.contains("history_answers")) {
      retVal += " JOIN " + table + " " + tablename + " ON "
        + " history_table.id = " + tablename + ".assessment ";

      join.add("history_answers");

  } else if (table.equalsIgnoreCase("history_treatment")
    && !join.contains("history_treatment")) {
      retVal += " JOIN " + table + " " + tablename + " ON "
        + " history_table.id = " + tablename + ".assessment ";
      join.add("history_treatment");

  }
  return retVal;
    }

    public static String addToWhere(ClinicalGuideActivity mActivity, ArrayList<StatsConstraint> arrFc){
  String retVal = "";
  if(arrFc != null){
      int len = arrFc.size();
      for(int i = 0; i < len;){
    retVal += " " + addToWhere(mActivity, arrFc.get(i));
    if(++i < len){
        retVal += " AND ";
    }
      }
  }
  return retVal;
    }
    
    public static String addToWhere(ClinicalGuideActivity mActivity,
      StatsConstraint fc) {
  String retVal = "";
  if (fc.data.equalsIgnoreCase("current_user")) {
      retVal = " " + fc.tablename + "." + fc.columnname + " "+ fc.operator.toString() + " '" + mActivity.getUser().id + "' ";
  } else if (fc.tablename.equalsIgnoreCase("patient_details_table")
    && fc.columnname.equalsIgnoreCase("age")) {
      SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
      Calendar c1 = Calendar.getInstance();
      Calendar c2 = Calendar.getInstance();
      c1 = DateHelper.getMidnight(c1);
      c1 = DateHelper.getMidnight(c2);
      c1.add(Calendar.YEAR, Integer.parseInt(fc.data) * -1); // upperbound
      c2.add(Calendar.YEAR, Integer.parseInt(fc.data) * -1 - 1); // lowerbound
      switch (fc.operator.typeInt) {
      case StatsComparatorOperator.NOT_EQUAL:
    retVal = " " + fc.tablename + ".birthdate > '"
      + fmt.format(new Date(c1.getTimeInMillis())) + "' OR "
      + fc.tablename + ".birthdate <= '"
      + fmt.format(new Date(c2.getTimeInMillis())) + "' ";
    break;
      case StatsComparatorOperator.LESS_THAN:
    retVal = " " + fc.tablename + ".birthdate > '"
      + fmt.format(new Date(c1.getTimeInMillis())) + "' ";
    break;
      case StatsComparatorOperator.LESS_THAN_EQUAL:
    retVal = " " + fc.tablename + ".birthdate >= '"
      + fmt.format(new Date(c2.getTimeInMillis())) + "' ";
    break;
      case StatsComparatorOperator.GREATER_THAN_EQUAL:
    retVal = " " + fc.tablename + ".birthdate <= '"
      + fmt.format(new Date(c1.getTimeInMillis())) + "' ";
    break;
      case StatsComparatorOperator.GREATER_THAN:
    retVal = " " + fc.tablename + ".birthdate < '"
      + fmt.format(new Date(c2.getTimeInMillis())) + "' ";
    break;
      default: // default is equal
    retVal = " " + fc.tablename + ".birthdate <= '"
      + fmt.format(new Date(c1.getTimeInMillis())) + "' AND "
      + fc.tablename + ".birthdate > '"
      + fmt.format(new Date(c2.getTimeInMillis())) + "' ";
    break;
      }
      return retVal;

  } else {
      return " " + fc.tablename + "." + fc.columnname + " "
        + fc.operator.toString() + " '" + fc.data + "' ";
  }

  return retVal;
    }

    public static String addToSelect(StatsSubject subject) {
  if (subject.columnname.equalsIgnoreCase("age")
    && subject.tablename.equalsIgnoreCase("patient_details_table")) {
      return " " + subject.tablename + ".birthdate AS patient_age ";
  } else {
      return " " + subject.tablename + "." + subject.columnname + " AS "
        + subject.tablename + "_" + subject.columnname;
  }
    }

}




Java Source Code List

.PatientDetailsDataSource.java
org.get.oxicam.clinicalguide.ClinicalGuideActivity.java
org.get.oxicam.clinicalguide.FileUtils.java
org.get.oxicam.clinicalguide.LoginActivity.java
org.get.oxicam.clinicalguide.db.DatabaseHelper.java
org.get.oxicam.clinicalguide.db.Database.java
org.get.oxicam.clinicalguide.db.FollowupDataSource.java
org.get.oxicam.clinicalguide.db.FollowupDetails.java
org.get.oxicam.clinicalguide.db.FollowupSQLHelper.java
org.get.oxicam.clinicalguide.db.HistoryDetailsDataSource.java
org.get.oxicam.clinicalguide.db.HistoryDetailsSQLHelper.java
org.get.oxicam.clinicalguide.db.HistoryDetails.java
org.get.oxicam.clinicalguide.db.PatientDetailsSQLHelper.java
org.get.oxicam.clinicalguide.db.PatientDetails.java
org.get.oxicam.clinicalguide.db.RegistrationValidator.java
org.get.oxicam.clinicalguide.db.Validator.java
org.get.oxicam.clinicalguide.encryption.Encryption.java
org.get.oxicam.clinicalguide.ui.AnswersReviewFragment.java
org.get.oxicam.clinicalguide.ui.AssessmentDetailFragment.java
org.get.oxicam.clinicalguide.ui.ClassificationFragment.java
org.get.oxicam.clinicalguide.ui.ClassificationListItem.java
org.get.oxicam.clinicalguide.ui.DatePickerFragment.java
org.get.oxicam.clinicalguide.ui.ExportFragment.java
org.get.oxicam.clinicalguide.ui.ExportscreenListItem.java
org.get.oxicam.clinicalguide.ui.FollowUpFragment.java
org.get.oxicam.clinicalguide.ui.FormScreenFragment.java
org.get.oxicam.clinicalguide.ui.HomescreenFragment.java
org.get.oxicam.clinicalguide.ui.HomescreenListItem.java
org.get.oxicam.clinicalguide.ui.ListItemOnClickListener.java
org.get.oxicam.clinicalguide.ui.MainSymptomFragment.java
org.get.oxicam.clinicalguide.ui.MainSymptomListItem.java
org.get.oxicam.clinicalguide.ui.NumberTickerValueChangeListener.java
org.get.oxicam.clinicalguide.ui.NumberTicker.java
org.get.oxicam.clinicalguide.ui.PatientDetailsFragment.java
org.get.oxicam.clinicalguide.ui.PatientHistoryFragment.java
org.get.oxicam.clinicalguide.ui.PatientsFragment.java
org.get.oxicam.clinicalguide.ui.QuestionListItem.java
org.get.oxicam.clinicalguide.ui.QuestionnaireFragment.java
org.get.oxicam.clinicalguide.ui.StatScreenFragment.java
org.get.oxicam.clinicalguide.ui.SummaryScreenFragment.java
org.get.oxicam.clinicalguide.ui.TextViewCustomFont.java
org.get.oxicam.clinicalguide.ui.TreatmentConfirmationDialog.java
org.get.oxicam.clinicalguide.ui.TreatmentFragment.java
org.get.oxicam.clinicalguide.ui.TreatmentListItem.java
org.get.oxicam.clinicalguide.ui.ViewDetailScreenFragment.java
org.get.oxicam.clinicalguide.xml.CGFormParser.java
org.get.oxicam.clinicalguide.xml.CGParser.java
org.get.oxicam.clinicalguide.xml.CGStatsParser.java
org.get.oxicam.clinicalguide.xml.DateHelper.java
org.get.oxicam.clinicalguide.xml.FormGenerator.java
org.get.oxicam.clinicalguide.xml.ParserHelper.java
org.get.oxicam.clinicalguide.xml.StatsGenerator.java
org.get.oxicam.clinicalguide.xml.XMLHandler.java
org.get.oxicam.clinicalguide.xml.data.AbstractAnswer.java
org.get.oxicam.clinicalguide.xml.data.Annotation.java
org.get.oxicam.clinicalguide.xml.data.AnswerValidator.java
org.get.oxicam.clinicalguide.xml.data.Answer.java
org.get.oxicam.clinicalguide.xml.data.Assessment.java
org.get.oxicam.clinicalguide.xml.data.CombinedAnswer.java
org.get.oxicam.clinicalguide.xml.data.FollowUp.java
org.get.oxicam.clinicalguide.xml.data.FormQuery.java
org.get.oxicam.clinicalguide.xml.data.Info.java
org.get.oxicam.clinicalguide.xml.data.Option.java
org.get.oxicam.clinicalguide.xml.data.PatientAttribute.java
org.get.oxicam.clinicalguide.xml.data.Question.java
org.get.oxicam.clinicalguide.xml.data.Questionnaire.java
org.get.oxicam.clinicalguide.xml.data.SimpleAnswer.java
org.get.oxicam.clinicalguide.xml.data.Symptom.java
org.get.oxicam.clinicalguide.xml.data.TreatmentAction.java
org.get.oxicam.clinicalguide.xml.data.Treatment.java
org.get.oxicam.clinicalguide.xml.data.User.java
org.get.oxicam.clinicalguide.xml.forms.FormCell.java
org.get.oxicam.clinicalguide.xml.forms.FormColumn.java
org.get.oxicam.clinicalguide.xml.forms.FormDuration.java
org.get.oxicam.clinicalguide.xml.forms.Form.java
org.get.oxicam.clinicalguide.xml.query.QueryHelper.java
org.get.oxicam.clinicalguide.xml.query.QueryResultCell.java
org.get.oxicam.clinicalguide.xml.query.QueryResultRow.java
org.get.oxicam.clinicalguide.xml.query.QueryResultTable.java
org.get.oxicam.clinicalguide.xml.stats.AbstractStatsQuestion.java
org.get.oxicam.clinicalguide.xml.stats.StatsAnswerHolder.java
org.get.oxicam.clinicalguide.xml.stats.StatsColumnCompare.java
org.get.oxicam.clinicalguide.xml.stats.StatsComparatorOperator.java
org.get.oxicam.clinicalguide.xml.stats.StatsCompareConstraint.java
org.get.oxicam.clinicalguide.xml.stats.StatsConstraint.java
org.get.oxicam.clinicalguide.xml.stats.StatsQuestionAverage.java
org.get.oxicam.clinicalguide.xml.stats.StatsQuestionCount.java
org.get.oxicam.clinicalguide.xml.stats.StatsQuestionExtrema.java
org.get.oxicam.clinicalguide.xml.stats.StatsQuestionFactory.java
org.get.oxicam.clinicalguide.xml.stats.StatsQuestionList.java
org.get.oxicam.clinicalguide.xml.stats.StatsQuestionPercentage.java
org.get.oxicam.clinicalguide.xml.stats.StatsQuestionRatio.java
org.get.oxicam.clinicalguide.xml.stats.StatsSubject.java
org.get.oxicam.clinicalguide.xml.stats.StatsTimespan.java
org.get.oxicam.clinicalguide.xml.stats.Stats.java