From 584869094f23bf931ea7c8d87c7dc3b4cf737788 Mon Sep 17 00:00:00 2001 From: Matthew Gray Date: Wed, 28 Oct 2020 14:05:35 +0000 Subject: [PATCH] 2nd few changes so I can build this as a test. --- .../objectives/objectives/Objective2.java | 75 +++++++------ app/src/main/res/values/exam.xml | 103 ++++++++++++------ 2 files changed, 108 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java index f1192ad4f5..b070c7d4d4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective2.java @@ -28,7 +28,9 @@ public class Objective2 extends Objective { ); tasks.add(new ExamTask(R.string.hypott_label, R.string.hypott_whenhypott,"hypott") .option(new Option(R.string.hypott_goinglow, false)) + .option(new Option(R.string.hypott_exercise, false)) .option(new Option(R.string.hypott_preventoversmb, true)) + .option(new Option(R.string.hypott_0basal, false)) .hint(new Hint(R.string.hypott_hint1)) ); tasks.add(new ExamTask(R.string.offlineprofile_label, R.string.offlineprofile_whatprofile,"offlineprofile") @@ -62,14 +64,18 @@ public class Objective2 extends Objective { .option(new Option(R.string.noisycgm_checksmoothing, true)) .hint(new Hint(R.string.noisycgm_hint1)) ); + tasks.add(new ExamTask(R.string.exerciseprofile_label, R.string.exercise_whattodo,"exercise") + .option(new Option(R.string.exerciseprofile_switchprofileabove100, false)) + .option(new Option(R.string.exerciseprofile_switchprofilebelow100, true)) + .option(new Option(R.string.exerciseprofile_suspendloop, false)) + .option(new Option(R.string.exerciseprofile_suspendloop, false)) + .hint(new Hint(R.string.exerciseprofile_hint1)) + ); tasks.add(new ExamTask(R.string.exercise_label, R.string.exercise_whattodo,"exercise") - .option(new Option(R.string.nothing, false)) - .option(new Option(R.string.exercise_setactivitytt, true)) - .option(new Option(R.string.exercise_switchprofilebelow100, true)) - .option(new Option(R.string.exercise_switchprofileabove100, false)) - .option(new Option(R.string.exercise_stoploop, false)) - .option(new Option(R.string.exercise_doitbeforestart, true)) - .option(new Option(R.string.exercise_afterstart, true)) + .option(new Option(R.string.exercise_settt, false)) + .option(new Option(R.string.exercise_setfinished, true)) + .option(new Option(R.string.exercise_setunchanged, false)) + .option(new Option(R.string.exercise_15g, false)) .hint(new Hint(R.string.exercise_hint1)) ); tasks.add(new ExamTask(R.string.suspendloop_label, R.string.suspendloop_doigetinsulin,"suspendloop") @@ -77,9 +83,10 @@ public class Objective2 extends Objective { .option(new Option(R.string.suspendloop_no, false)) ); tasks.add(new ExamTask(R.string.basaltest_label, R.string.basaltest_when,"basaltest") - .option(new Option(R.string.basaltest_beforeloop, true)) - .option(new Option(R.string.basaltest_havingregularhypo, true)) - .option(new Option(R.string.basaltest_havingregularhyper, true)) + .option(new Option(R.string.basaltest_fixed, false)) + .option(new Option(R.string.basaltest_havingregularhighlow, true)) + .option(new Option(R.string.basaltest_weekly, false)) + .option(new Option(R.string.basaltest_beforeloop, true)) .hint(new Hint(R.string.basaltest_hint1)) ); tasks.add(new ExamTask(R.string.basalhelp_label, R.string.basalhelp_where,"basalhelp") @@ -89,21 +96,20 @@ public class Objective2 extends Objective { .hint(new Hint(R.string.basalhelp_hint1)) ); tasks.add(new ExamTask(R.string.prerequisites_label, R.string.prerequisites_what, "prerequisites") - .option(new Option(R.string.prerequisites_determinedcorrectprofile, true)) - .option(new Option(R.string.prerequisites_computer, true)) - .option(new Option(R.string.prerequisites_phone, true)) - .option(new Option(R.string.prerequisites_car, false)) - .option(new Option(R.string.prerequisites_nightscout, true)) - .option(new Option(R.string.prerequisites_tidepoolaccount, false)) - .option(new Option(R.string.prerequisites_googleaccount, false)) - .option(new Option(R.string.prerequisites_githubaccount, false)) - .option(new Option(R.string.prerequisites_beanandroiddeveloper, false)) - .option(new Option(R.string.prerequisites_own670g, false)) - .option(new Option(R.string.prerequisites_smartwatch, false)) - .option(new Option(R.string.prerequisites_supportedcgm, true)) + .option(new Option(R.string.prerequisites_nightscout, true)) + .option(new Option(R.string.prerequisites_computer, true)) + .option(new Option(R.string.prerequisites_pump, true)) + .option(new Option(R.string.prerequisites_beanandroiddeveloper, false)) .hint(new Hint(R.string.prerequisites_hint1)) ); - tasks.add(new ExamTask(R.string.update_label, R.string.whatistrue,"update") + tasks.add(new ExamTask(R.string.prerequisites2_label, R.string.prerequisites2_what, "prerequisites") + .option(new Option(R.string.prerequisites2_profile, true)) + .option(new Option(R.string.prerequisites2_device, true)) + .option(new Option(R.string.prerequisites2_internet, false)) + .option(new Option(R.string.prerequisites2_supportedcgm, true)) + .hint(new Hint(R.string.prerequisites2_hint1)) + ); + tasks.add(new ExamTask(R.string.update_label, R.string.whatistrue,"update") .option(new Option(R.string.update_git, true)) .option(new Option(R.string.update_asap, true)) .option(new Option(R.string.update_keys, true)) @@ -161,20 +167,19 @@ public class Objective2 extends Objective { .hint(new Hint(R.string.nsclient_hint1)) ); tasks.add(new ExamTask(R.string.isf_label_exam, R.string.whatistrue,"isf") - .option(new Option(R.string.isf_increasingvalue, true)) - .option(new Option(R.string.isf_decreasingvalue, false)) - .option(new Option(R.string.isf_noeffect, false)) + .option(new Option(R.string.isf_decreasingvalue, true)) .option(new Option(R.string.isf_preferences, false)) + .option(new Option(R.string.isf_increasingvalue, false)) + .option(new Option(R.string.isf_noeffect, false)) .option(new Option(R.string.isf_profile, false)) .hint(new Hint(R.string.isf_hint1)) .hint(new Hint(R.string.isf_hint2)) ); tasks.add(new ExamTask(R.string.ic_label_exam, R.string.whatistrue,"ic") - .option(new Option(R.string.ic_increasingvalue, true)) - .option(new Option(R.string.ic_decreasingvalue, false)) - .option(new Option(R.string.ic_noeffect, false)) - .option(new Option(R.string.ic_different, false)) - .option(new Option(R.string.ic_meaning, false)) + .option(new Option(R.string.ic_increasingvalue, false)) + .option(new Option(R.string.ic_decreasingvalue, true)) + .option(new Option(R.string.ic_multiple, true)) + .option(new Option(R.string.ic_isf, false)) .hint(new Hint(R.string.ic_hint1)) ); tasks.add(new ExamTask(R.string.profileswitch_label, R.string.profileswitch_pctwillchange,"profileswitch") @@ -192,10 +197,10 @@ public class Objective2 extends Objective { ); tasks.add(new ExamTask(R.string.profileswitch_label, R.string.profileswitchtime_iwant,"profileswitchtime") - .option(new Option(R.string.profileswitchtime_1, false)) - .option(new Option(R.string.profileswitchtime__1, true)) - .option(new Option(R.string.profileswitchtime_60, false)) - .option(new Option(R.string.profileswitchtime__60, false)) + .option(new Option(R.string.profileswitchtime_2, false)) + .option(new Option(R.string.profileswitchtime__2, true)) + .option(new Option(R.string.profileswitchtime_tt, false)) + .option(new Option(R.string.profileswitchtime_100, false)) .hint(new Hint(R.string.profileswitchtime_hint1)) ); diff --git a/app/src/main/res/values/exam.xml b/app/src/main/res/values/exam.xml index 2ab9d987cb..54b90c92ad 100644 --- a/app/src/main/res/values/exam.xml +++ b/app/src/main/res/values/exam.xml @@ -11,6 +11,8 @@ What is primary reason to set a hypo temp target? To prevent BG from going low if there is already zero temp running. To prevent AndroidAPS from overcorrecting for a blood glucose rise caused by the fast acting carbs used to treat a hypo. + To correct for a hypo induced as a result of exercise. + To prevent blood glucose from going low of there is already a 0% temporary basal rate running. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html Which profile can be used and configured offline? Topic: Offline Profile @@ -40,40 +42,72 @@ Turn off the phone. https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data Verify that your CGM app smoothes BG data. - Topic: Exercise - How can you help the system deal with exercise? - Using of temp-target feature. - Do a profile switch below 100%. - Do a profile switch above 100%. - Stop the loop. - Set an activity temp-target before starting exercise. - Setting an activity temp-target after starting exercise leads to worse results than if started before. + + + Topic 8: Exercise and Profiles. + How can you use profiles to best help the system deal with aerobic exercise? + Do a profile switch to more than 100%. + Do a profile switch to less than 100%.  + Leave the profile set to 100%. + Suspend the loop. + https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target + + + Topic 9: Exercise and Temporary Targets. + How can you use temporary targets to best help the system deal with aerobic exercise? + Set an activity blood glucose target starting a suitable time before beginning exercise. + Set an activity blood glucose target after finishing exercise. + Leave your blood glucose target unchanged. + Wait until blood glucose drops below your hypo temp target and then eat 15 g of fast acting carbohydrates. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target + + + + + + + + + + + + + + + Topic: Disabled/Suspended loop Do I receive insulin when the loop is disabled/suspended? Yes, basal insulin continues to be delivered. No, delivery of insulin is stopped. - Topic: Basal, ISF, and IC Testing - When should I validate basals, ISF, and IC values? - Before I start looping. - When experiencing low BG frequently. - When experiencing high BG frequently. + Topic 2: Basal, ISF, and IC Testing + When should these values be validated? + Before starting looping. + When experiencing frequent high or low blood glucose. + At least once per week. + Once set and validated, these values should not change over time. https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings Topic: Prerequisites - What do I need? + What is essential to set up and use AndroidAPS? Validated profile information (Basal, IC, ISF, DIA). - A computer to create an APK. + A computer with Android Studio installed and configured. A supported phone. - A Car. - Nightscout to pass the objectives. + A compatible insulin pump if you are planning to run a closed loop. + Nightscout, to keep a log of all data and review settings. A Tidepool account. A Google account. A Github account. - Android development experience. + Experience in programming or editing code. A MiniMed 670G pump. https://androidaps.readthedocs.io/en/latest/EN/Module/module.html A Smartwatch. A Supported CGM. + Topic: More Prerequisites + What is essential to set up and use AndroidAPS? + Validated information to set up a profile (ISF, I:C ratio, basal rates, DIA etc.). + A compatible Android device (e.g. mobile/cell phone, full Android watch, or tablet). + AndroidAPS requires an internet connection in order to run in closed loop. + A Supported CGM and appropriate app to receive blood glucose values on the phone/device. + https://androidaps.readthedocs.io/en/latest/EN/Module/module.html Topic: Updating AndroidAPS What is true? You need to have Git installed. @@ -122,22 +156,21 @@ Loop app on iPhone. Spike app on iPhone. https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html - Topic: Insulin Sensitivity Factor - Higher ISF values lead to less insulin delivery when AAPS corrects for high BG. - Lower ISF values lead to less insulin delivery when AAPS corrects for high BG. - Changing ISF values has no effect on the amount of insulin delivered when AAPS corrects for high BG. - You have to enter ISF in Preferences. + Topic 4: Insulin Sensitivity Factor (ISF) + Raising ISF values will lead to more insulin delivery to cover a specific amount of carbs. + Reducing ISF values lead to more insulin delivery to correct for an above target blood glucose. + Raising or lowering ISF values will not affect the insulin delivery when AndroidAPS corrects for a below-target blood glucose. + ISF should be entered in your AndroidAPS Preferences. Changing the ISF value in your profile is enough to apply the change. https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html - Topic: The IC Ratio - Higher IC ratios lead to less insulin delivered for a given amount of carbs. - Lower IC ratios lead to less insulin delivered for a given amount of carbs. - If you have 0 COB, changing the IC ratio will lead to a different amount of insulin to correct a given BG value. - IC will be different if you count bread unit as 10g or 12g. - IC meaning is: How many bread units are covered by 1U of insulin. + Topic 5: The Insulin to Carbohydrate (I:C) Ratio + When COB is zero, raising I:C ratio will lead to more insulin being delivered to correct an above target blood glucose value. + Lowering the numerical value of the I:C ratio (so that the value of I:C is smaller) will lead to more insulin being delivered for a specific amount of carbs.  + You can use more than one value for I:C ratio in your profile. + If you change your ISF in your profile you should always change your I:C ratio too. https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u - Topic: Profile Switching + Topic 7: Profile Switching When specifying 90% in profile switch… Basals will be 10% higher. Basals will be 10% lower. @@ -150,12 +183,12 @@ Target will be 10% lower. Only bottom target will be 10% lower. https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch - If you wake up 1h earlier than usual, how should you notify AAPS of the change in your schedule? - Initiate a profile switch with a timeshift of 1 - Initiate a profile switch with a timeshift of -1 + If you get up 2 hours earlier than usual, how should you notify AndroidAPS of the change in your schedule? + Initiate a profile switch with a timeshift of 1 + Initiate a profile switch with a timeshift of -1 https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift - Initiate a profile switch with a timeshift of 60 - Initiate a profile switch with a timeshift of -60 + Set an eating soon temporary target. + Do a profile switch to more than 100%.  https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy Topic: Help with basal rates Where to go for help with basalrate etc.