Mediloop
WEARABLES & IOT CONNECTORS

Supported Platforms & Provider Integrations

4 of 7

Connect leading wearable and IoT platforms using their native frameworks, provider APIs and standard protocols, then normalize incoming data through Mediloop and MSIS for consistent downstream use.

Provider CatalogAuthenticationSupported DataSynchronizationRate LimitsNormalizationImplementation Examples
Provider Catalog
Apple HealthKit
On-device framework

Native iOS health-data framework

Activity
heart rate
sleep
workouts
Android Health Connect
On-device framework

Android health-data framework

Activity
sleep
vitals
body metrics and cycles
Garmin Connect
Provider cloud

Fitness and outdoor activity data

Activity
HR
sleep
training
Fitbit
Provider cloud

Health, fitness and wellness data

Activity
sleep
HR
SpO₂
Oura
Provider cloud

Sleep, readiness and recovery

Sleep stages
HRV
temperature
readiness and activity
Withings
Provider cloud / platform

Connected home health devices

Weight
BP
sleep
activity and temperature
Dexcom
Provider/device program

Continuous glucose monitoring

Glucose readings
trends and alerts
Abbott FreeStyle Libre
Provider/device program

Glucose monitoring

Glucose readings
trends
time-in-range and alerts
Samsung Health
Platform/provider integration

Activity, sleep and wellness

Activity
sleep
heart rate and body metrics
Other Platforms
API / SDK / gateway

Custom / additional providers

BLE devices
provider APIs
home gateways and enterprise integrations
Integration Details
PlatformIntegration modelAuthorizationHistorical dataEvents / syncProduction notes
Apple HealthKitOn-device frameworkUser-granted app permissionsSubject to device/app data available locallyApp/background synchronizationNo generic OAuth/REST cloud contract; use Apple platform APIs
Android Health ConnectOn-device frameworkAndroid runtime/user permissionsSubject to platform data availabilityApp/background synchronizationUse Health Connect APIs and permission model
Garmin ConnectProvider cloudProvider program + OAuth flowProvider-dependentAPI/webhook/provider syncAccess and limits depend on Garmin program
FitbitProvider cloudOAuth 2.xProvider-dependentAPI/subscriptions where availableRespect scopes, quota and provider terms
OuraProvider cloudOAuth 2.xProvider-dependentAPI/webhook capabilities vary by program/versionVerify current provider contract
WithingsProvider cloudOAuth 2.xProvider-dependentAPI/notifications where availableVerify medical-device and regional context
Authentication & Permissions
Use native app permissions for HealthKit / Health Connect rather than treating them as generic REST services.
Use provider OAuth or partner authentication exactly as required by each manufacturer program.
Request minimum necessary scopes and explain why data is requested.
Store provider tokens securely and implement refresh/revocation lifecycle.
Never reuse patient authorization across providers or tenants.
Keep provider connection state visible and auditable.
Supported Data
Data domainExamplesFHIR target
ActivitySteps, distance, active energy, workoutsObservation
VitalsHeart rate, SpO₂, BP, temperature, respiratory rateObservation
SleepDuration, stages, sleep scoreObservation / component model
MetabolicGlucose, time-in-range and trendsObservation
Body metricsWeight, BMI, body compositionObservation
Device metadataModel, manufacturer, connection/sourceDevice / DeviceMetric / Provenance
Synchronization
Incremental sync

Track provider cursors/timestamps and ingest only new/changed records.

Event-driven sync

Use provider events/webhooks where supported, then retrieve authoritative data if required.

Historical backfill

Import historical windows deliberately with rate-limit and deduplication controls.

Offline/mobile sync

Queue local data and upload safely when connectivity returns.

Data Normalization
Preserve provider-native identifiers, original codes, values and units.
Map measurements to FHIR Observation/Device structures where appropriate.
Use LOINC / SNOMED CT and UCUM through MSIS when mappings are validated.
Attach provider/device provenance and mapping version.
Deduplicate overlapping data coming from device, mobile platform and provider cloud.
Do not automatically treat consumer measurements as clinically equivalent to regulated data.
Developer Integration Surface
SurfaceOperation / resourceUseStatus
HealthKitHKHealthStore queries / samples / permissionsiOS health-data integrationExternal platform API
Health ConnectAndroid records / permissions / changesAndroid health-data integrationExternal platform API
Provider cloud APIsProvider-specific OAuth + REST/webhooksGarmin, Fitbit, Oura, Withings, CGM and similarExternal provider API
FHIRObservation / Device / DeviceMetric / ProvenanceNormalized Mediloop/EHR data exchangeFHIR surface
Mediloop provider adapter SDKOAuth handlers, sync cursors, mapping, webhook handlersReusable provider connectorsSDK contract evolving
Mediloop Wearables APIProvider connections / observations façadeSimplified app integrationPlanned contract
Implementation Example
typescriptCopy
// Illustrative adapter example — provider contract must be verified
const connection = await wearables.providers.authorize({
  provider: 'oura',
  redirectUri: 'https://app.example.com/callback',
  scopes: ['sleep:read', 'activity:read'],
});

const batch = await wearables.providers.sync({
  connectionId: connection.id,
  since: lastCursor,
});

await wearables.ingest.normalize(batch, {
  patientId,
  preserveSource: true,
});
Rate Limits & Provider Constraints
Do not hard-code quotas from screenshots or old provider documentation; read current provider limits during connector implementation.
Use caching, cursors and incremental sync to reduce unnecessary calls.
Back off on 429/temporary errors and honor Retry-After where provided.
Separate provider API quotas from Mediloop tenant/application limits.
Track API version/deprecation dates and provider certification/program requirements.
Troubleshooting
SymptomLikely causeAction
No new dataPermissions revoked, sync cursor stale or provider delayCheck connection status, scopes, cursors and provider health
DuplicatesOverlapping mobile/cloud sources or replayed webhookDeduplicate on provider/source identifiers and provenance
Wrong unitsProvider-native unit not normalizedPreserve source unit and apply validated UCUM mapping
Token failuresExpired/revoked provider authorizationRefresh or re-authorize according to provider flow
Gaps in time seriesDevice offline, app background limits or provider latencyExpose gaps; do not fabricate missing measurements
Next Steps
1
Review data requirements
Choose provider/device based on actual measurements and intended use
2
Implement authorization
Native permissions or provider-specific OAuth/program onboarding
3
Normalize
FHIR/MSIS mapping, units, provenance and deduplication
4
Test
Real device data, historical sync, retries and revocation
5
Operate
Monitor provider changes, quotas and data completeness