AndroidAPS/app/src/main/java/info/nightscout/androidaps/data/MealData.java

50 lines
2 KiB
Java
Raw Normal View History

2017-01-04 22:47:21 +01:00
package info.nightscout.androidaps.data;
2017-01-04 23:03:13 +01:00
import java.util.Date;
2017-01-06 22:42:37 +01:00
import java.util.List;
2017-01-04 23:03:13 +01:00
import info.nightscout.androidaps.MainApp;
2017-01-06 22:42:37 +01:00
import info.nightscout.androidaps.db.BgReading;
2017-01-04 23:03:13 +01:00
import info.nightscout.androidaps.db.Treatment;
2017-01-30 15:19:50 +01:00
import info.nightscout.androidaps.interfaces.PluginBase;
2017-01-06 22:42:37 +01:00
import info.nightscout.androidaps.plugins.OpenAPSAMA.Autosens;
import info.nightscout.androidaps.plugins.OpenAPSAMA.AutosensResult;
2017-01-30 15:19:50 +01:00
import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin;
2017-01-04 23:03:13 +01:00
import info.nightscout.client.data.NSProfile;
2017-01-04 22:47:21 +01:00
/**
* Created by mike on 04.01.2017.
*/
public class MealData {
public double boluses = 0d;
public double carbs = 0d;
public double mealCOB = 0.0d; // TODO: add calculation for AMA
2017-01-04 23:03:13 +01:00
2017-01-06 22:42:37 +01:00
2017-01-04 23:03:13 +01:00
public void addTreatment(Treatment treatment) {
NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
if (profile == null) return;
2017-01-06 22:42:37 +01:00
// TODO: not sure how much data do i need for AMA
2017-01-09 10:57:15 +01:00
List<BgReading> bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime((long) (new Date().getTime() - 60 * 60 * 1000L * profile.getDia() * 2), false);
2017-01-06 22:42:37 +01:00
2017-01-04 23:03:13 +01:00
long now = new Date().getTime();
long dia_ago = now - (new Double(profile.getDia() * 60 * 60 * 1000l)).longValue();
long t = treatment.created_at.getTime();
if (t > dia_ago && t <= now) {
if (treatment.carbs >= 1) {
carbs += treatment.carbs;
2017-01-30 15:19:50 +01:00
if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) {
AutosensResult result = Autosens.detectSensitivityandCarbAbsorption(bgReadings, t);
double myCarbsAbsorbed = result.carbsAbsorbed;
double myMealCOB = Math.max(0, carbs - myCarbsAbsorbed);
mealCOB = Math.max(mealCOB, myMealCOB);
}
2017-01-04 23:03:13 +01:00
}
if (treatment.insulin > 0 && treatment.mealBolus) {
boluses += treatment.insulin;
}
}
}
2017-01-04 22:47:21 +01:00
}