OmniCore RADD - winemug/OmniCore GitHub Wiki

Reactive Adaptive Drug Delivery

WARNING: Reactive Adaptive Drug Delivery is the therapy automation system provided by OmniCore and is currently in BETA status. Information on this page may change over the course of the development and testing phase.

Please see the project website for up to date information:

https://balya.net/omnicore/radd.html

Frequently Asked Questions

What does OmniCore RADD do differently than ___ ?

OmniCore RADD requires:

NO carb entries
NO basal schedules
NO sensitivity ratios

It works with facts and does not put the weight on your shoulders.

How does it work?

OmniCore RADD analyzes blood glucose values and insulin injections/infusions in the recent past. It utilizes multiple machine learning algorithms that simulate the biological processes for the regulation and metabolism of glucose.

From this analysis it derives unique evaluation and decision functions to perform a closed loop treatment system that is tailored for the individual.

Who can use it?

Patients with Type I Diabetes, including children and the elderly.

What can I expect from it?

During fasting periods OmniCore RADD will keep blood glucose concentration in the target range. In case of sudden surges in the body's own glucose production (due to stress, illness, growth spurts and alike) you might briefly see blood glucose value rise above target levels and then drop down.

During and after meals, blood glucose values will initially rise, then drop to a level above target and remain mostly constant whilst glucose is being metabolized. Blood glucose will return to target levels once glucose absorption slows down.

The results as to how long and by how much blood glucose levels will be above target depends on many individual factors, however the progression will be similar for everyone. Please note that this applies to insulin-only therapy. When used with glucagon, the progression will differ significantly; especially during mealtimes.

How does basal insulin scheduling work?

The primary purpose of the scheduled basal insulin in the pod is to have a backup solution in case OmniCore is unable to communicate with the pod. As OmniCore RADD regulates basal insulin automatically, it will suspend and resume the pre-programmed schedule and perform additional boluses if necessary. The schedule has therefore no effect on the final amount of insulin delivered by OmniCore.

How does mealtime insulin work?

As with basal insulin, OmniCore RADD will detect glucose fluctuations and administer specially crafted boluses to eventually reach the target blood glucose value.

Can I set temporary targets?

Yes, but you really shouldn't. In OmniCore RADD the target is not just a number, there are strategical elements of decision making that are constructed based on the target and the actual context. Changing an active target will force RADD to abandon the current decision making strategy and that will cause delays in reaching said target, especially when at high blood glucose values.

If you are concerned with sudden increases or decreases of insulin activity (due to exercise or lack of it, absorption etc.), you can change the aggressiveness setting that will gradually adjust the speed the algorithm moves towards the target. Aggressiveness can be scheduled, similar to temporary targets.

How does targeting work?

You need to set three target blood glucose values: The target value, a low target value and a high target value. The low target value is the minimum acceptable value to which the system would allow blood glucose levels to fall, if the actual situation requires a smoother or a faster recovery than what can be foreseen. The high target value is the maximum acceptable value to which the system would intentionally allow blood glucose to rise to, in order to recover from a fast or risky fall.

OmniCore RADD does not blindly try to reach a target, instead it tries to establish a stable approach that will hold the target in range over a course of up to 12 hours in the future.

What are special boluses?

During a normal bolus the pod delivers 0.05mL of liquid every 2 seconds. With special boluses the interval between 0.05mL deliveries will vary and go farther than 2 seconds. Using this bolus scheme prevents insulin leaking from infusion sites and allows for better absorption in the long run.

How do I start?

To start off, you need to provide some basic profile information: Height, weight, gender and age.

The initial analysis requires minimum 6 days of CGM and insulin infusion data prior. In case of missing data or data that is flagged as noisy, inaccurate or inconsistent by the analysis, that number will go up.

Once all data is there and the initial analysis is complete, OmniCore RADD will start running.

How do I use glucagon?

Glucagon allows the decision making strategy to behave much more aggressively. It will allow mealtime blood glucose to quickly fall to and remain at normal levels even with continued glucose absorption.

After inserting a pod with glucagon, a calibration will take place that is initiated regularly by the system at convenient times. The decision making algorithm will incorporate the findings of the calibration and adjust insulin infusion towards an increasingly aggressive setting. At the same time it will regulate the glucagon infusion and monitor reservoir status in order to timely fall back to normal aggressivity.

Glucagon infusion is completely optional and should at the moment be considered experimental.

What insulin types are supported?

All rapid acting insulin analogues are supported (e.g. Novorapid / Novolog, Fiasp, Humalog, Apidra). OmniCore RADD doesn't ask you to specify the type of insulin you are using, since their effects vary significantly per individual. However it expects you to be using the same insulin type or mixture consistently. That means if you want to experiment with a different type of insulin, you will have to reset and have OmniCore RADD perform the initial analysis from the start of the experiment.

What does it learn about me?

OmniCore RADD uses combinations of various machine learning algorithms to figure out how to react to blood glucose changes with respect to available data at hand. It is also self-correcting and self-improving constantly. Hence a reactive and adaptive algorithm.

In terms of artificial intelligence and pattern recognition, it does look for various biological patterns to separate the sources of glucose fluctuations. It also looks for patterns in pod site deterioration in terms of time and infusion volume.

It does not look for time of day / day of week related patterns as to how basal requirements change or what times are likely to be mealtimes or exercises. Experience has shown that algorithms that rely on daily patterns or user entered input (carbs, basal schedules, insulin ratios, action times etc.) perform poorly if these values fail to hold. OmniCore RADD eliminates this problem entirely by relying only on measurable data and therefore does not make assumptions about life style, biological cycles or other environmental attributes.

Does it work on my phone?

Not directly. The OmniCore mobile app works on Android (and soon iPhone) and allows remote control of the pods.

The analysis, simulation, evaluation and decision algorithms run on a distributed platform of high performance computers in the cloud.

Can it run directly off the phone?

No, not at the moment. The current beta version requires a lot of CPU power and runs on a several multi-core servers. Development will continue towards optimizing for GPU and FPGA based architectures, still the mobile phones of today won't be able to handle the processing power required for RADD, especially given the battery constraints and the other artificial restrictions on mobile apps imposed by operating system vendors, phone manufacturers and network providers.

How often does the 'loop' run?

The decision process is technically not a loop, instead it's an intermediate action, that is run whenever necessary. It is triggered by CGM updates, external insulin infusions and new findings of the optimizer service, as well as at regular intervals to cover when CGM data is missing.

The actual 'loop' is the optimizer service, which is also responsible for the initial analysis. It runs continuously even when no new data is present, re-evaluates past findings, creates and adapts strategies trying to find a better decision function. This happens in a never ending loop.

Where do I get more information?

Detailed examples of how OmniCore RADD performs in daily life (and some pretty pictures) will be posted. For the moment, you can add the main repository page to your watch-list on github to get notified of announcements.

Where do I sign up?

Infrastructure work is still in progress and the beta program will open with a limited number of seats at the end of December 2021.

⚠️ **GitHub.com Fallback** ⚠️