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: useIntegratedDevices.BGMfrom 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