Search in sources :

Example 6 with Match

use of org.eyeseetea.malariacare.data.database.model.Match in project pictureapp by EyeSeeTea.

the class PopulateDB method createMissingRelationInLao.

/**
     * Migration used to add a new parent-child relation in lao
     */
public static void createMissingRelationInLao() {
    //new match relation in csv
    //29;29
    //new QuestionOption in csv
    //45;5;13;29
    //new QuestionRelation in csv
    //29;1;6
    Long childId = 6l;
    Long parentId = 5l;
    Long optionId = 13l;
    QuestionRelation questionRelation = new QuestionRelation(Question.findByID(childId), QuestionRelation.PARENT_CHILD);
    questionRelation.save();
    Match match = new Match(questionRelation);
    match.save();
    QuestionOption questionOption = new QuestionOption(Option.findById(optionId), Question.findByID(parentId), match);
    questionOption.save();
}
Also used : QuestionOption(org.eyeseetea.malariacare.data.database.model.QuestionOption) QuestionRelation(org.eyeseetea.malariacare.data.database.model.QuestionRelation) Match(org.eyeseetea.malariacare.data.database.model.Match) TreatmentMatch(org.eyeseetea.malariacare.data.database.model.TreatmentMatch)

Example 7 with Match

use of org.eyeseetea.malariacare.data.database.model.Match in project pictureapp by EyeSeeTea.

the class UpdateDB method updateTreatmentMatches.

/**
     * Method to update treatmentMatches from csvs.
     *
     * @param context Needed to open the csvs.
     * @throws IOException If there is a problem opening the csv.
     */
public static void updateTreatmentMatches(Context context, boolean updateCSV) throws IOException {
    if (updateCSV) {
        FileCsvs fileCsvs = new FileCsvs();
        fileCsvs.saveCsvFromAssetsToFile(PopulateDB.TREATMENT_MATCHES_CSV);
    }
    List<TreatmentMatch> treatmentMatches = TreatmentMatch.getAllTreatmentMatches();
    HashMap<Long, Treatment> treatmentIds = RelationsIdCsvDB.getTreatmentIdRelationCsvDB(context);
    HashMap<Long, Match> matchIds = RelationsIdCsvDB.getMatchIdRelationCsvDB(context);
    CSVReader reader = new CSVReader(new InputStreamReader(context.openFileInput(PopulateDB.TREATMENT_MATCHES_CSV)), PopulateDB.SEPARATOR, PopulateDB.QUOTECHAR);
    String[] line;
    int i = 0;
    while ((line = reader.readNext()) != null) {
        if (i < treatmentMatches.size()) {
            PopulateRow.populateTreatmentMatches(line, treatmentIds, matchIds, treatmentMatches.get(i)).save();
        } else {
            PopulateRow.populateTreatmentMatches(line, treatmentIds, matchIds, null).insert();
        }
        i++;
    }
}
Also used : InputStreamReader(java.io.InputStreamReader) TreatmentMatch(org.eyeseetea.malariacare.data.database.model.TreatmentMatch) CSVReader(com.opencsv.CSVReader) PopulateRow.populateMatch(org.eyeseetea.malariacare.data.database.utils.populatedb.PopulateRow.populateMatch) Match(org.eyeseetea.malariacare.data.database.model.Match) TreatmentMatch(org.eyeseetea.malariacare.data.database.model.TreatmentMatch) Treatment(org.eyeseetea.malariacare.data.database.model.Treatment)

Example 8 with Match

use of org.eyeseetea.malariacare.data.database.model.Match in project pictureapp by EyeSeeTea.

the class UpdateDB method updateQuestionOption.

public static void updateQuestionOption(Context context, boolean updateCSV) throws IOException {
    if (updateCSV) {
        FileCsvs fileCsvs = new FileCsvs();
        fileCsvs.saveCsvFromAssetsToFile(PopulateDB.QUESTION_OPTIONS_CSV);
    }
    List<QuestionOption> questionOptions = QuestionOption.listAll();
    HashMap<Long, Match> matchIds = RelationsIdCsvDB.getMatchIdRelationCsvDB(context);
    HashMap<Long, Question> questionsIds = RelationsIdCsvDB.getQuestionIdRelationCsvDB(context);
    HashMap<Long, Option> optionsIds = RelationsIdCsvDB.getOptionIdRelationCsvDB(context);
    CSVReader reader = new CSVReader(new InputStreamReader(context.openFileInput(PopulateDB.QUESTION_OPTIONS_CSV)), PopulateDB.SEPARATOR, PopulateDB.QUOTECHAR);
    String[] line;
    int i = 0;
    while ((line = reader.readNext()) != null) {
        if (i < questionOptions.size()) {
            PopulateRow.populateQuestionOption(line, questionsIds, optionsIds, matchIds, questionOptions.get(i)).save();
        } else {
            QuestionOption questionOption = PopulateRow.populateQuestionOption(line, questionsIds, optionsIds, matchIds, null);
            questionOption.insert();
        }
        i++;
    }
}
Also used : QuestionOption(org.eyeseetea.malariacare.data.database.model.QuestionOption) InputStreamReader(java.io.InputStreamReader) CSVReader(com.opencsv.CSVReader) PopulateRow.populateMatch(org.eyeseetea.malariacare.data.database.utils.populatedb.PopulateRow.populateMatch) Match(org.eyeseetea.malariacare.data.database.model.Match) TreatmentMatch(org.eyeseetea.malariacare.data.database.model.TreatmentMatch) Question(org.eyeseetea.malariacare.data.database.model.Question) QuestionOption(org.eyeseetea.malariacare.data.database.model.QuestionOption) Option(org.eyeseetea.malariacare.data.database.model.Option)

Example 9 with Match

use of org.eyeseetea.malariacare.data.database.model.Match in project pictureapp by EyeSeeTea.

the class RelationsIdCsvDB method getMatchIdRelationCsvDB.

static HashMap<Long, Match> getMatchIdRelationCsvDB(Context context) throws IOException {
    HashMap<Long, Match> matchesFK = new HashMap<>();
    List<Match> matches = Match.listAll();
    List<Long> csvIds = new ArrayList<>();
    CSVReader reader = new CSVReader(new InputStreamReader(context.openFileInput(PopulateDB.MATCHES)), PopulateDB.SEPARATOR, PopulateDB.QUOTECHAR);
    String[] idToAdd;
    while ((idToAdd = reader.readNext()) != null) {
        csvIds.add(Long.parseLong(idToAdd[0]));
    }
    for (int i = 0; i < matches.size() && i < csvIds.size(); i++) {
        matchesFK.put(csvIds.get(i), matches.get(i));
    }
    return matchesFK;
}
Also used : InputStreamReader(java.io.InputStreamReader) HashMap(java.util.HashMap) CSVReader(com.opencsv.CSVReader) ArrayList(java.util.ArrayList) Match(org.eyeseetea.malariacare.data.database.model.Match)

Example 10 with Match

use of org.eyeseetea.malariacare.data.database.model.Match in project pictureapp by EyeSeeTea.

the class RelationsIdCsvDB method getMatchIdRelationDBCsv.

static HashMap<Long, Long> getMatchIdRelationDBCsv(Context context) throws IOException {
    HashMap<Long, Long> matchesFK = new HashMap<>();
    List<Match> matches = Match.listAll();
    List<Long> csvIds = new ArrayList<>();
    CSVReader reader = new CSVReader(new InputStreamReader(context.openFileInput(PopulateDB.MATCHES)), PopulateDB.SEPARATOR, PopulateDB.QUOTECHAR);
    String[] idToAdd;
    while ((idToAdd = reader.readNext()) != null) {
        csvIds.add(Long.parseLong(idToAdd[0]));
    }
    for (int i = 0; i < matches.size() && i < csvIds.size(); i++) {
        matchesFK.put(matches.get(i).getId_match(), csvIds.get(i));
    }
    return matchesFK;
}
Also used : InputStreamReader(java.io.InputStreamReader) HashMap(java.util.HashMap) CSVReader(com.opencsv.CSVReader) ArrayList(java.util.ArrayList) Match(org.eyeseetea.malariacare.data.database.model.Match)

Aggregations

Match (org.eyeseetea.malariacare.data.database.model.Match)11 CSVReader (com.opencsv.CSVReader)8 InputStreamReader (java.io.InputStreamReader)8 TreatmentMatch (org.eyeseetea.malariacare.data.database.model.TreatmentMatch)8 Question (org.eyeseetea.malariacare.data.database.model.Question)5 QuestionOption (org.eyeseetea.malariacare.data.database.model.QuestionOption)5 QuestionRelation (org.eyeseetea.malariacare.data.database.model.QuestionRelation)4 PopulateRow.populateMatch (org.eyeseetea.malariacare.data.database.utils.populatedb.PopulateRow.populateMatch)4 ArrayList (java.util.ArrayList)3 Option (org.eyeseetea.malariacare.data.database.model.Option)3 QuestionThreshold (org.eyeseetea.malariacare.data.database.model.QuestionThreshold)3 HashMap (java.util.HashMap)2 OptionAttribute (org.eyeseetea.malariacare.data.database.model.OptionAttribute)2 Treatment (org.eyeseetea.malariacare.data.database.model.Treatment)2 LinkedHashMap (java.util.LinkedHashMap)1 Answer (org.eyeseetea.malariacare.data.database.model.Answer)1 Drug (org.eyeseetea.malariacare.data.database.model.Drug)1 Header (org.eyeseetea.malariacare.data.database.model.Header)1 Organisation (org.eyeseetea.malariacare.data.database.model.Organisation)1 Program (org.eyeseetea.malariacare.data.database.model.Program)1