Search in sources :

Example 61 with Question

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

the class Treatment method getQuestionsForTreatment.

private List<Question> getQuestionsForTreatment(org.eyeseetea.malariacare.data.database.model.Treatment treatment) {
    List<Question> questions = new ArrayList<>();
    List<Drug> drugs = treatment.getDrugsForTreatment();
    Question treatmentQuestion = new Question();
    treatmentQuestion.setOutput(Constants.QUESTION_LABEL);
    treatmentQuestion.setForm_name(treatment.getDiagnosis().toString());
    treatmentQuestion.setHelp_text(treatment.getMessage().toString());
    treatmentQuestion.setCompulsory(Question.QUESTION_NOT_COMPULSORY);
    treatmentQuestion.setHeader(Header.DYNAMIC_TREATMENT_HEADER_ID);
    questions.add(treatmentQuestion);
    for (Drug drug : drugs) {
        Question question = Question.findByUID(drug.getQuestion_code());
        if (question != null) {
            if (TreatmentQueries.isPq(question.getUid())) {
                question.setForm_name(TreatmentQueries.getPqTitleDose(DrugCombination.getDose(treatment, drug)));
            } else if (TreatmentQueries.isCq(question.getUid())) {
                question.setForm_name(TreatmentQueries.getCqTitleDose(DrugCombination.getDose(treatment, drug)));
            }
            doseByQuestion.put(question.getId_question(), DrugCombination.getDose(treatment, drug));
            questions.add(question);
        }
        if (!questions.isEmpty()) {
            Log.d(TAG, "Question: " + questions.get(questions.size() - 1) + "\n");
        }
    }
    return questions;
}
Also used : Drug(org.eyeseetea.malariacare.data.database.model.Drug) ArrayList(java.util.ArrayList) Question(org.eyeseetea.malariacare.data.database.model.Question)

Example 62 with Question

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

the class Treatment method saveTreatmentInTreatmentQuestion.

private void saveTreatmentInTreatmentQuestion(// when exists one more case we should refactor this to more generic code
org.eyeseetea.malariacare.data.database.model.Treatment treatment) {
    Question treatmentQuestionSend = TreatmentQueries.getDynamicTreatmentQuestion();
    Question treatmentQuestionShow = TreatmentQueries.getTreatmentDiagnosisVisibleQuestion();
    Survey malariaSurvey = Session.getMalariaSurvey();
    List<Value> values = // this values should be get from memory because the
    malariaSurvey.getValues();
    // treatment options are in memory
    boolean questionInSurvey = false;
    boolean questionShowInSurvey = false;
    String diagnosisMessage = Utils.getInternationalizedString(String.valueOf(treatment.getDiagnosis()));
    String defaultDiagnosisMessage = Translation.getLocalizedString(treatment.getDiagnosis(), Translation.DEFAULT_LANGUAGE);
    for (Value value : values) {
        if (value.getQuestion() == null) {
            continue;
        }
        if (value.getQuestion().equals(treatmentQuestionSend)) {
            value.setValue(defaultDiagnosisMessage);
            questionInSurvey = true;
            value.save();
        }
        if (value.getQuestion().equals(treatmentQuestionShow)) {
            value.setValue(diagnosisMessage);
            questionShowInSurvey = true;
            value.save();
        }
    }
    if (!questionShowInSurvey) {
        Value value = new Value(diagnosisMessage, treatmentQuestionShow, malariaSurvey);
        value.insert();
    }
    if (!questionInSurvey) {
        Value value = new Value(defaultDiagnosisMessage, treatmentQuestionSend, malariaSurvey);
        value.insert();
    }
}
Also used : Survey(org.eyeseetea.malariacare.data.database.model.Survey) Value(org.eyeseetea.malariacare.data.database.model.Value) Question(org.eyeseetea.malariacare.data.database.model.Question)

Example 63 with Question

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

the class Treatment method getNoTreatmentQuestions.

public List<Question> getNoTreatmentQuestions() {
    List<Question> questions = new ArrayList<>();
    Question treatmentQuestion = new Question();
    treatmentQuestion.setOutput(Constants.QUESTION_LABEL);
    treatmentQuestion.setForm_name("");
    treatmentQuestion.setHelp_text(TreatmentQueries.getTreatmentError());
    treatmentQuestion.setCompulsory(Question.QUESTION_NOT_COMPULSORY);
    treatmentQuestion.setHeader(Header.DYNAMIC_TREATMENT_HEADER_ID);
    questions.add(treatmentQuestion);
    return questions;
}
Also used : ArrayList(java.util.ArrayList) Question(org.eyeseetea.malariacare.data.database.model.Question)

Example 64 with Question

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

the class CompletionSurveyUseCase method updateRDTStockQuestion.

private void updateRDTStockQuestion(Survey survey) {
    if (survey.getStatus() == Constants.SURVEY_COMPLETED || survey.getStatus() == Constants.SURVEY_SENT) {
        org.eyeseetea.malariacare.data.database.model.Survey surveyDBMalaria = org.eyeseetea.malariacare.data.database.model.Survey.findById(survey.getId());
        List<Value> surveyValues = surveyDBMalaria.getValuesFromDB();
        org.eyeseetea.malariacare.data.database.model.Survey surveyDBStock = org.eyeseetea.malariacare.data.database.model.Survey.getLastSurveyWithType(Constants.SURVEY_ISSUE);
        Value rdtStockValue = TreatmentQueries.getStockRDTQuestion().insertValue("1", surveyDBStock);
        rdtStockValue.setValue(Integer.toString(rdtUsed(surveyValues)));
        rdtStockValue.save();
        for (Question propagateQuestion : TreatmentQueries.getStockRDTQuestion().getPropagationQuestions()) {
            propagateQuestion.insertValue(rdtStockValue.getValue(), Session.getMalariaSurvey()).save();
        }
    }
}
Also used : Value(org.eyeseetea.malariacare.data.database.model.Value) Question(org.eyeseetea.malariacare.data.database.model.Question)

Example 65 with Question

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

the class CompletionSurveyUseCase method rdtUsed.

private int rdtUsed(List<Value> surveyValues) {
    int rdtUsed = 1;
    Map<Question, Value> answersMap = Maps.uniqueIndex(surveyValues, valuesToQuestions);
    Question rdtQuestion = TreatmentQueries.getRDTQuestion();
    Question confirmInvalid = TreatmentQueries.getInvalidCounterQuestion();
    if (answersMap.keySet().contains(confirmInvalid)) {
        int invalids;
        try {
            invalids = Integer.parseInt(answersMap.get(confirmInvalid).getValue());
        } catch (NumberFormatException exception) {
            invalids = 1;
        }
        if (answersMap.get(rdtQuestion).getValue().equals("Invalid")) {
            rdtUsed = invalids;
        } else {
            rdtUsed += invalids;
        }
    }
    return rdtUsed;
}
Also used : Value(org.eyeseetea.malariacare.data.database.model.Value) Question(org.eyeseetea.malariacare.data.database.model.Question)

Aggregations

Question (org.eyeseetea.malariacare.data.database.model.Question)65 Option (org.eyeseetea.malariacare.data.database.model.Option)17 Value (org.eyeseetea.malariacare.data.database.model.Value)16 CSVReader (com.opencsv.CSVReader)12 InputStreamReader (java.io.InputStreamReader)12 ArrayList (java.util.ArrayList)9 QuestionOption (org.eyeseetea.malariacare.data.database.model.QuestionOption)7 View (android.view.View)5 Answer (org.eyeseetea.malariacare.data.database.model.Answer)5 Match (org.eyeseetea.malariacare.data.database.model.Match)5 TreatmentMatch (org.eyeseetea.malariacare.data.database.model.TreatmentMatch)4 DataValueExtended (org.eyeseetea.malariacare.data.sync.importer.models.DataValueExtended)4 ImageRadioButtonSingleQuestionView (org.eyeseetea.malariacare.views.question.singlequestion.ImageRadioButtonSingleQuestionView)4 ImageView (android.widget.ImageView)3 ListView (android.widget.ListView)3 ScrollView (android.widget.ScrollView)3 TableRow (android.widget.TableRow)3 Drug (org.eyeseetea.malariacare.data.database.model.Drug)3 OptionAttribute (org.eyeseetea.malariacare.data.database.model.OptionAttribute)3 QuestionRelation (org.eyeseetea.malariacare.data.database.model.QuestionRelation)3