use of org.eyeseetea.malariacare.data.database.model.CompositeScore in project pictureapp by EyeSeeTea.
the class ConvertFromSDKVisitor method visit.
@Override
public void visit(DataValueExtended sdkDataValueExtended) {
Survey survey = (Survey) appMapObjects.get(sdkDataValueExtended.getEvent());
String questionUID = sdkDataValueExtended.getDataElement();
//Data value is a value from compositeScore -> ignore
if (appMapObjects.get(questionUID) instanceof CompositeScore) {
return;
}
//Phone metadata -> ignore
if (PreferencesState.getInstance().getContext().getString(R.string.control_data_element_phone_metadata).equals(questionUID)) {
return;
}
//Datavalue is a value from a question
Question question = Question.findByUID(questionUID);
if (question == null) {
Log.e(TAG, "Question not found with dataelement uid " + questionUID);
}
Value value = new Value();
value.setQuestion(question);
value.setSurvey(survey);
Option option = sdkDataValueExtended.findOptionByQuestion(question);
value.setOption(option);
//No option -> text question (straight value)
if (option == null) {
value.setValue(sdkDataValueExtended.getValue());
} else {
//Option -> extract value from code
value.setValue(sdkDataValueExtended.getDataValue().getValue());
}
values.add(value);
}
use of org.eyeseetea.malariacare.data.database.model.CompositeScore in project pictureapp by EyeSeeTea.
the class SurveyService method prepareSurveyInfo.
/**
* Prepares required data to show a survey completely (tabs and composite scores).
*/
private void prepareSurveyInfo() {
Log.d(TAG, "prepareSurveyInfo (Thread:" + Thread.currentThread().getId() + ")");
//Get composite scores for current program & register them (scores)
List<CompositeScore> compositeScores = new Select().from(CompositeScore.class).queryList();
ScoreRegister.registerCompositeScores(compositeScores);
//Get tabs for current program & register them (scores)
List<Tab> tabs = new Select().from(Tab.class).queryList();
ScoreRegister.registerTabScores(tabs);
//Since intents does NOT admit NON serializable as values we use Session instead
Session.putServiceValue(PREPARE_SURVEY_ACTION_COMPOSITE_SCORES, compositeScores);
Session.putServiceValue(PREPARE_SURVEY_ACTION_TABS, tabs);
//Returning result to anyone listening
Intent resultIntent = new Intent(PREPARE_SURVEY_ACTION);
LocalBroadcastManager.getInstance(this).sendBroadcast(resultIntent);
}
use of org.eyeseetea.malariacare.data.database.model.CompositeScore in project pictureapp by EyeSeeTea.
the class PushClient method prepareCompositeScores.
private JSONArray prepareCompositeScores(JSONArray values) throws Exception {
//Cleans score
ScoreRegister.clear();
//Prepare scores info
List<CompositeScore> compositeScoreList = ScoreRegister.loadCompositeScores(survey);
//1 CompositeScore -> 1 dataValue
for (CompositeScore compositeScore : compositeScoreList) {
values.put(prepareValue(compositeScore));
}
PhoneMetaData phoneMetaData = Session.getPhoneMetaData();
values.put(prepareDataElementValue((PreferencesState.getInstance().getContext().getString(R.string.control_data_element_phone_metadata)), phoneMetaData.getPhone_metaData()));
if (PreferencesState.getInstance().getContext().getString(R.string.control_data_element_datetime_capture) != null && !PreferencesState.getInstance().getContext().getString(R.string.control_data_element_datetime_capture).equals("")) {
values.put(prepareDataElementValue(PreferencesState.getInstance().getContext().getString(R.string.control_data_element_datetime_capture), EventExtended.format(survey.getCompletionDate(), EventExtended.AMERICAN_DATE_FORMAT)));
}
if (PreferencesState.getInstance().getContext().getString(R.string.control_data_element_datetime_sent) != null && !PreferencesState.getInstance().getContext().getString(R.string.control_data_element_datetime_sent).equals("")) {
values.put(prepareDataElementValue(PreferencesState.getInstance().getContext().getString(R.string.control_data_element_datetime_sent), EventExtended.format(new Date(), EventExtended.AMERICAN_DATE_FORMAT)));
}
return values;
}
use of org.eyeseetea.malariacare.data.database.model.CompositeScore in project pictureapp by EyeSeeTea.
the class ScoreRegister method registerCompositeScores.
/**
* Resets compositescores and initializes a new set of them
*/
public static void registerCompositeScores(List<CompositeScore> compositeScores) {
compositeScoreMap.clear();
for (CompositeScore compositeScore : compositeScores) {
Log.i(TAG, "Register composite score: " + compositeScore.getHierarchical_code());
compositeScoreMap.put(compositeScore, new CompositeNumDenRecord());
}
}
Aggregations