Mediloop
WEARABLES & IOT CONNECTORS

Data Types, Mapping & Time-Series

5 of 7

Transform raw device measurements into standardized, interoperable longitudinal health data with FHIR mapping, terminology and unit normalization, provenance, quality controls and scalable time-series handling.

Supported Data TypesMapping to FHIRTerminologies & UnitsTime-Series HandlingData Quality & ProvenanceExamples
Data Normalization Flow
1
Device Measurement
Raw value, unit, source timestamp and device/provider identifier
2
Source & Context
Capture source, patient/device link, original code/unit and connection method
3
MSIS Normalization
Validated terminology/unit mapping, deduplication and quality flags
4
FHIR Resource
Observation / Device / Provenance with normalized and original source context
5
Mediloop Platform
Longitudinal record, analytics, alerts and care workflows
Supported Data Types
CategoryExamplesFHIR resourceTypical units
Vital signsHeart rate, BP, SpO₂, respiratory rate, temperatureObservation/min, mmHg, %, °C
Activity & fitnessSteps, distance, calories, active minutesObservationcount, km, kcal, min
SleepStages, duration, sleep scoreObservationh/min, score
GlucoseCGM readings, trends, alertsObservationmg/dL, mmol/L
ECG / waveformSingle/multi-lead ECG, rhythmObservation + attachment/derived representationmV, Hz
RespiratoryRespiration rate, FEV1, FVC, peak flowObservation/min, L, L/s
Body compositionWeight, BMI, body fat, muscle massObservationkg, kg/m², %
Device / environmentDevice events, air quality, ambient sensorsObservation / DeviceMetricdomain-specific
Mapping to FHIR
Example mapping
FieldSourceFHIR mapping
Measurement72 bpmObservation.valueQuantity
CodeHeart rateObservation.code — e.g. validated LOINC mapping
UnitbpmUCUM code /min
TimestampDevice/provider UTC timestampObservation.effectiveDateTime
DeviceProvider device idObservation.device → Device
SourceHealthKit / provider API / BLEProvenance / connector metadata
QualityProvider/device qualityObservation interpretation/extension or provenance metadata as designed
FHIR Observation example
jsonCopy
{
  "resourceType": "Observation",
  "status": "final",
  "code": {
    "coding": [{
      "system": "http://loinc.org",
      "code": "8867-4",
      "display": "Heart rate"
    }]
  },
  "subject": { "reference": "Patient/pat_123" },
  "device": { "reference": "Device/dev_456" },
  "effectiveDateTime": "2026-08-31T08:00:00Z",
  "valueQuantity": {
    "value": 72,
    "system": "http://unitsofmeasure.org",
    "code": "/min"
  }
}
Terminologies & Units
LOINC for validated observation mappings where an appropriate code exists.
SNOMED CT for clinical concepts/device contexts where applicable.
UCUM for units of measure.
Preserve original manufacturer/provider codes and units alongside normalized mappings.
Version mappings and record provenance; do not silently replace uncertain mappings.
Support multi-mapping or unresolved-code states when no safe canonical mapping exists.
Time-Series Handling
Support high-frequency and periodic measurements with explicit sampling metadata.
Store raw/source time and normalized UTC time; keep time-zone context when relevant.
Detect missing samples, out-of-order arrivals and clock drift.
Support real-time streaming and batch ingestion with idempotent deduplication.
Separate raw data from calculated/aggregated views.
Apply configurable retention/downsampling policies appropriate to use case and governance.
Use scalable time-series storage without changing the external FHIR/API contract.
Data Quality & Provenance
Validate expected ranges, units and data types.
Detect duplicate, anomalous and implausible measurements.
Record device, provider, connection path and ingestion timestamp.
Keep original values alongside normalized values.
Maintain mapping version, transformation lineage and confidence/quality indicators.
Respect patient consent and retention policy.
Do not promote consumer-wellness data to clinical-grade status without appropriate evidence/validation.
Developer Integration Surface
SurfaceOperation / resourceUseStatus
FHIRObservation / Device / DeviceMetric / ProvenanceNormalized longitudinal data exchangeFHIR surface
Bulk / streaming ingestionBatch samples, MQTT/webhook events, local gateway uploadHigh-volume time-series ingestionMediloop contract planned
Query APIPatient/device/date/code filters and paginationApplication access to normalized measurementsMediloop contract planned
Eventsmeasurement.created, device.status.changed, data.gap.detectedReal-time workflows and monitoringPlanned event contract
SDKingest(), observations.list(), devices.get()Type-safe developer convenience surfaceSDK contract evolving
Examples
Illustrative time-series query
httpCopy
GET /v1/observations?patient_id=pat_123&code=8867-4&from=2026-08-01T00:00:00Z&to=2026-08-31T23:59:59Z
Authorization: Bearer <token>
X-Tenant-Id: <tenant-id>

# Planned Mediloop REST façade; FHIR search remains the standards surface.
Illustrative ingestion
typescriptCopy
await client.wearables.ingest({
  patientId: 'pat_123',
  deviceId: 'dev_456',
  measurements: [{
    sourceCode: 'heart_rate',
    value: 72,
    unit: 'bpm',
    observedAt: '2026-08-31T08:00:00Z'
  }],
  preserveSource: true,
});
Next Steps
1
Implement mappings
Target devices/providers, FHIR resources and terminology
2
Configure time series
Sampling, retention, aggregation and query patterns
3
Set quality rules
Ranges, gaps, duplicates, provenance and data classification
4
Test real data
Device clocks, missing data, provider delays and edge cases
5
Connect workflows
Patient dashboards, RPM, alerts and EHR interoperability