Skip to main content

Step 4: Choose the glucose device

What we are building​

A single-device BLE allowlist for this tutorial: TeleBGM Gen1 BLE. The runtime declaration is IntegratedDevices.BGM; the catalog display name is not the Bluetooth identifier.

What you should already have​

  • The Expo native development build from step 1.
  • Access to the current Supported Device Catalog.
  • A compatible meter and test strips for controlled sandbox testing.

The implementation​

The current catalog lists TeleBGM Gen1 BLE for blood-glucose measurements. The current native runtime maps it to IntegratedDevices.BGM and a blood-glucose measurement type. The device contributes a normalized numeric bloodGlucose value. Its SDK measurement may include recordedAt; do not assume the field is present.

Create src/features/bluetooth/accepted-devices.ts:

import { IntegratedDevices } from "@ovok/native/bt-management";

export const acceptedDevices = [IntegratedDevices.BGM] as const;

Pass this stable array to the single BTProvider in step 6. The tutorial does not use a catalog label as an identifier, scan for every device, or claim TeleBGM provides meal context, fasting status, a diagnostic interpretation, or battery level.

Important Ovok decisions​

  • The Bluetooth runtime declaration is the SDK enum, IntegratedDevices.BGM. Keep the human-readable “TeleBGM Gen1 BLE” label in UI copy only.
  • The meter reports a glucose measurement. It does not establish whether the patient was fasting or had eaten.
  • If your product needs measurement context, collect it as a separate, explicit application workflow and only store it through a reviewed FHIR representation.
  • The typed API expects blood glucose in mg/dL. It does not convert from mmol/L. See Blood glucose measurements.
  • Other supported glucose devices are listed in the full catalog. Substitution requires checking their actual declarations, normalization, and test behavior.

Expected result​

The project has one allowlisted tutorial device and the native SDK’s current catalog and runtime agree that it produces blood-glucose data.

Common errors and troubleshooting​

  • Using the catalog name in acceptedDevices: use IntegratedDevices.BGM from the native SDK.
  • The device is not discovered: use a physical phone, confirm Bluetooth permission, and ensure the meter is awake and advertising.
  • The reading is presented as mmol/L: this tutorial’s stored API value is mg/dL. Do not relabel a value or convert it without a product-wide unit policy.
  • A screen shows “fasting” based on the time: remove that inference. Neither time-of-day nor this BLE result supplies meal context.

Previous / Next​

Previous: configure localisation · Next: add the FINDRISC Questionnaire