Saltar al contenido principal

vitalera SDK v2 — Kotlin Multiplatform para más de 30 dispositivos médicos

El SDK v2 de vitalera es una biblioteca Kotlin Multiplatform (KMP) que proporciona una API unificada para integrar dispositivos médicos en Android e iOS. Reemplaza el SDK v1 monolítico con una arquitectura modular basada en proveedores.

Características principales

  • Sistema modular de proveedores: Incluya solo las integraciones de dispositivos que su aplicación necesita. Cada fabricante de dispositivos (Omron, Polar, Lifevit, Beurer, etc.) es un módulo de proveedor independiente.
  • Kotlin Multiplatform: Código base compartido entre Android e iOS con implementaciones específicas de plataforma para BLE y criptografía.
  • Observaciones tipadas: Más de 30 clases de observaciones tipadas (p. ej., BloodPressureObservation, HeartRateObservation) reemplazan el modelo genérico Observation de v1.
  • Descubrimiento basado en Flow: El escaneo de dispositivos utiliza Kotlin Flow (Android) y AsyncSequence (iOS) con tiempos de espera y filtrado integrados.
  • Autenticación DPoP: Claves de licencia de organización con tokens OAuth2 vinculados con DPoP. Período de gracia offline de 7 días con permisos en caché.
  • Modo conectado: Opcionalmente resuelva pacientes y envíe observaciones directamente al backend de vitalera.
  • Fallback BLE estándar: Los dispositivos que utilizan perfiles de salud estándar de Bluetooth SIG (Presión Arterial, Frecuencia Cardíaca, etc.) funcionan automáticamente sin un proveedor específico del fabricante.

Arquitectura

Soporte de plataformas

PlataformaVersión mínimaDistribución
AndroidAPI 24 (Android 7.0)Maven (GitHub Packages)
iOS14.0Swift Package Manager

Módulos

MóduloArtefacto AndroidProducto SPM iOSDescripción
Corecom.vitalera:sdk-coreVitaleraSdkCoreBuilder, autenticación, registro, tipos de observación
BLEcom.vitalera:sdk-bleVitaleraSdkBleAbstracción BLE, perfiles estándar
Omroncom.vitalera:provider-omronVitaleraSdkProviderOmronTensiómetro, termómetro
Polarcom.vitalera:provider-polarVitaleraSdkProviderPolarFrecuencia cardíaca (H10, Verity Sense)
Lifevitcom.vitalera:provider-lifevitVitaleraSdkProviderLifevitTensiómetro, pulsioxímetro, báscula
Beurercom.vitalera:provider-beurerVitaleraSdkProviderBeurerTensiómetro, pulsioxímetro
Smart Peak Flowcom.vitalera:provider-smart-peak-flowVitaleraSdkProviderSmartPeakFlowFlujo espiratorio máximo basado en audio
HealthKitN/AVitaleraSdkProviderHealthKitApple HealthKit (solo iOS)
Health Connectcom.vitalera:provider-health-connectN/AAndroid Health Connect
Umbrellacom.vitalera:sdk-androidVitaleraSdkTodos los proveedores incluidos

Inicio rápido

// 1. Initialize SDK with DPoP auth
val sdk = VitaleraSdk.builder()
.clientId("your-org-license-key")
.addProvider("omron")
.addProvider("polar")
.connectedMode(true)
.build()

// 2. Discover devices
val filter = DiscoveryFilter(
capabilities = setOf(DeviceCapability.BLOOD_PRESSURE)
)
sdk.devices.discover(filter, timeoutMs = 15_000L).collect { descriptor ->
println("Found: ${descriptor.name} (${descriptor.provider})")
}

// 3. Connect and collect typed observations
val device = sdk.devices.createDevice(descriptor)
device.connect()
device.collect().collect { observation ->
when (observation) {
is BloodPressureObservation ->
println("BP: ${observation.systolic}/${observation.diastolic}")
is HeartRateObservation ->
println("HR: ${observation.heartRate} bpm")
}
}
device.disconnect()

// 4. Cleanup
sdk.close()

Primeros pasos

Soporte

Contacte con sdk@vitalera.com para claves de licencia o soporte técnico.