Integración de dispositivos — Wearables, dispositivos Bluetooth y health stores
Esta sección explica cómo integrar fuentes de datos de salud con vitalera — desde wearables de consumo como Garmin y Fitbit (API en la nube) hasta dispositivos clínicos Bluetooth como tensiómetros y glucómetros (SDK).
Wearables de consumo (basados en API)
Conecte wearables de consumo populares mediante integraciones API servidor a servidor. No se requiere SDK móvil para estos — los usuarios vinculan sus cuentas una vez vía OAuth, y los datos fluyen automáticamente.
| Wearable | Conexión | Tipos de datos | Más información |
|---|---|---|---|
| Garmin (todos los modelos) | Garmin Health API (OAuth) | Entrenamientos, frecuencia cardíaca, sueño, SpO2, estrés, pasos, HRV | Integración Garmin |
| Fitbit (todos los modelos) | Fitbit Web API (OAuth) | Actividad, frecuencia cardíaca, sueño, SpO2, peso | Contactar ventas |
| Apple Watch | HealthKit (en dispositivo) | Frecuencia cardíaca, SpO2 | Referencia del SDK |
| Polar | SDK (Bluetooth) | Frecuencia cardíaca | Referencia del SDK |
Dispositivos médicos (SDK — Bluetooth)
| Proveedor | Módulo (Android) | Módulo (iOS) | Dispositivos |
|---|---|---|---|
| Omron | provider-omron | VitaleraSdkProviderOmron | Evolv BPM (HEM-7600T), MC-280B Thermometer |
| Polar | provider-polar | VitaleraSdkProviderPolar | H10, Verity Sense (heart rate) |
| Lifevit | provider-lifevit | VitaleraSdkProviderLifevit | BPM 160, BPM 260, Pulse Oximeter (OL750), Scale (BL2000), Thermometer (IT45B) |
| Beurer | provider-beurer | VitaleraSdkProviderBeurer | BM85 BPM, PO60 Pulse Oximeter |
| Smart Peak Flow | provider-smart-peak-flow | VitaleraSdkProviderSmartPeakFlow | Smart Peak Flow Meter |
| HealthKit | N/A | VitaleraSdkProviderHealthKit | Apple Watch (heart rate, SpO2) |
| Health Connect | provider-health-connect | N/A | Google Health Connect (Android) |
| Standard BLE | sdk-ble | VitaleraSdkBle | Any device using standard Bluetooth SIG health profiles |
Consulte la página de Dispositivos compatibles para la lista completa de dispositivos.
Flujo de trabajo general
Para todos los dispositivos BLE, la integración sigue tres pasos:
1. Descubrir
Escanee dispositivos BLE cercanos usando DiscoveryFilter para filtrar por proveedor, capacidad o nombre de dispositivo:
// Android (Kotlin)
val filter = DiscoveryFilter(
capabilities = setOf(DeviceCapability.BLOOD_PRESSURE)
)
sdk.devices.discover(filter, timeoutMs = 15_000L).collect { descriptor ->
println("Found: ${descriptor.name} (${descriptor.provider})")
}
// iOS (Swift)
let filter = DiscoveryFilter(
providers: nil,
capabilities: [DeviceCapability.bloodPressure],
namePrefix: nil
)
for try await descriptor in sdk.devices.discover(filter: filter, timeoutMs: 15_000) {
print("Found: \(descriptor.name) (\(descriptor.provider))")
}
2. Conectar
Cree un dispositivo a partir del descriptor descubierto y conéctese:
// Android
val device = sdk.devices.createDevice(descriptor)
device.connect(timeoutMs = 10_000L)
// iOS
let device = sdk.devices.createDevice(descriptor: descriptor)
try await device.connect(timeoutMs: 10_000)
3. Recopilar
Lea observaciones tipadas del dispositivo conectado:
// Android
device.collect().collect { observation ->
when (observation) {
is BloodPressureObservation ->
println("BP: ${observation.systolic}/${observation.diastolic}")
is HeartRateObservation ->
println("HR: ${observation.heartRate} bpm")
}
}
device.disconnect()
// iOS
for try await observation in device.collect() {
if let bp = observation as? BloodPressureObservation {
print("BP: \(bp.systolic)/\(bp.diastolic) mmHg")
} else if let hr = observation as? HeartRateObservation {
print("HR: \(hr.heartRate) bpm")
}
}
try await device.disconnect()
Notas específicas por dispositivo
Tensiómetros
- Beurer BM85: Asegúrese de que el dispositivo esté cargado y apagado antes de escanear. Encienda el dispositivo después de iniciar el escaneo y espere el descubrimiento Bluetooth.
- Lifevit BPM 160/260: Encienda el dispositivo y después inicie el escaneo. Una vez conectado, llame a read y espere la observación.
- Omron Evolv (HEM-7600T): Encienda el dispositivo e inicie el escaneo. El SDK gestiona el emparejamiento automáticamente.
Pulsioxímetros
- Lifevit OL750 / Beurer PO60: Coloque su dedo en el pulsioxímetro y enciéndalo, después inicie el escaneo. Los datos se transmiten continuamente hasta que desconecte.
Termómetros
- Lifevit IT45B / Omron MC-280B: Encienda el termómetro, inicie el escaneo y tome una medición. La observación se devuelve después de que la lectura se complete.
Básculas
- Lifevit BL2000: Suba a la báscula cuando se le indique. La observación de peso se devuelve una vez que la lectura se estabiliza.
Glucómetros
- Contour Next: El dispositivo debe estar pre-emparejado a través de la configuración Bluetooth del sistema antes de escanear desde el SDK.
Sensores de frecuencia cardíaca
- Polar H10: Colóquese la cinta de pecho, inicie el escaneo y el SDK transmitirá datos de frecuencia cardíaca continuamente.
Lectura adicional
- Descripción del SDK -- Arquitectura, módulos e inicio rápido.
- Uso del SDK Android -- Ejemplos de código completos para Android.
- Uso del SDK iOS -- Ejemplos de código completos para iOS.
- Dispositivos compatibles -- Lista completa de compatibilidad de dispositivos.