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;
}
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();
}
}
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;
}
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();
}
}
}
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;
}
Aggregations