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 [email protected] para claves de licencia o soporte técnico.