IoT & ConnectivityDistinguishedlegendary

Remote Patient Monitoring (RPM): BLE Hub to EHR

How RPM BLE hub design, cloud transport, and FHIR normalization connect to deliver safe, HIPAA-compliant remote patient monitoring.

11 min readAhmet Zahid ArıcanUpdated 30 Oct 2026
RPM BLE Hub to EHR: End-to-End Architecture
Contents & prerequisites

RPM System Architecture & Data Flow

A remote patient monitoring (RPM) pipeline moves a single heart-rate sample through three distinct systems — wearable sensor, BLE (Bluetooth Low Energy) hub, and EHR (electronic health record) backend — and transforms it at each hop: raw ADC counts become a calibrated physiological value, that value becomes a timestamped BLE GATT characteristic, and the characteristic becomes a FHIR (Fast Healthcare Interoperability Resources) Observation resource with coded units and provenance metadata. Losing track of any one transformation is how a correct sensor reading turns into a wrong number in a clinician's dashboard.

Three-layer model: wearable sensors, BLE hub aggregation, EHR backend

The wearable is a constrained device: a pulse oximeter, continuous glucose monitor, or ECG patch running on a coin cell or small LiPo, sampling at anywhere from 1 Hz to 250 Hz depending on modality. It cannot hold a cellular or WiFi stack — the radio and protocol overhead would exceed its power and memory budget — so it talks BLE to a hub. The hub is a gateway-class device: a dedicated plug-in unit, a repurposed tablet, or a smartphone app, with mains or large-battery power, enough RAM to buffer hours of data, and a WAN (wide-area network) radio. The EHR backend is the application-layer system: an ingestion API, a FHIR server, and the hospital's EHR instance (Epic, Cerner, or similar) that clinicians actually view. This maps directly onto the generic IoT architecture layers of perception, network, and application, and the wearable-hub-cloud split is a textbook instance of constrained, gateway, and cloud device classification — the classification isn't academic here, because each class has a hard power, compute, and connectivity ceiling that determines what processing can happen where.

Real-time vs. batch synchronization trade-offs

Real-time streaming (sub-second hub-to-cloud latency) is justified only for data that triggers an acute clinical response — arrhythmia detection, SpO2 desaturation alarms, fall detection. Everything else — daily weight, twice-daily blood pressure, periodic glucose trends — is better served by batch upload every 5–15 minutes. Streaming everything continuously burns uplink bandwidth and hub battery for no clinical benefit and increases the attack surface for data in transit. A practical design keeps two queues on the hub: a priority queue flushed immediately on threshold breach, and a bulk queue flushed on a timer or buffer-full condition.

Latency and reliability requirements for clinical data

Alarm-class vitals need hub-to-clinician latency under 60 seconds with delivery confirmation; trend-class vitals tolerate latency up to 30 minutes with eventual delivery. The reliability requirement, not the latency requirement, usually drives protocol choice: an alarm that arrives fast but silently fails to deliver is worse than one that arrives a few seconds late with a guaranteed acknowledgment, which is why alarm paths need application-layer acking, not just transport-layer delivery.

BLE Wearable-to-Hub Communication

BLE advertising, connection management, and power constraints on wearables

BLE wearables spend most of their life advertising at low duty cycle and briefly connect to transfer buffered data, because maintaining an open connection interval burns far more current than periodic advertising. A typical pattern: advertise every 1–2 seconds, connect for a 2–5 second burst every few minutes, then disconnect. Connection interval, slave latency, and supervision timeout are all negotiated parameters — check the radio's datasheet and the BLE stack's connection parameter update API for the achievable ranges on your specific chipset, since these directly set the floor on current draw and the ceiling on data freshness.

Hub selection criteria: range, throughput, number of concurrent connections

Hub BLE radio and antenna choice is a direct multiplier on how many patients one hub can serve and how forgiving the deployment is of home layout. A hub with a -95 dBm receive sensitivity and an external antenna might sustain a reliable link through two interior walls; an integrated chip antenna on a USB-stick hub often needs line-of-sight within the same room. Concurrent connection count matters for multi-sensor patients (weight scale, blood pressure cuff, pulse oximeter all pairing to one hub) and matters even more in clinic or pharmacy deployments where one hub may serve several patients' devices in sequence.

FactorCompact USB hubDedicated plug-in gatewaySmartphone-as-hub
Typical BLE range (open air)5–10 m15–30 m with external antenna5–10 m
Concurrent BLE connections1–34–83–5 (OS-dependent)
Power sourceHost USBMainsBattery (shared with user)
Local buffering during outageMinutes–hours (limited flash)Hours–daysHours (app storage)
Field serviceabilitySwap unitSwap unitUser-dependent OS updates

Range and connection-count choices are themselves an instance of the general range/bandwidth/power/cost trade-off space that applies to any IoT gateway, and under-provisioning either one caps patient cohort size per hub and forces more expensive one-hub-per-device deployments.

Handling device dropout and re-pairing in chronic care scenarios

Chronic care patients disconnect sensors for showers, charging, and travel, so the hub firmware needs a bonded-device whitelist with automatic reconnection on advertisement match, not a manual re-pair flow. On reconnect, the hub must reconcile the sensor's internal clock drift and any locally buffered samples taken while out of range, tagging each with its original device-side timestamp rather than the hub's receipt time — conflating the two silently corrupts trend data for intermittent-wear patients.

Hub-to-Cloud Connectivity & Protocol Choice

WiFi minimizes latency and cost per byte but requires the patient's home network credentials and fails silently during router reboots or ISP outages; cellular IoT options remove that dependency at the cost of a recurring SIM fee.

OptionTypical latencyPower draw (hub radio active)Monthly cost driverBest fit
WiFi<200 msModerateNone (uses patient's internet)Home hub with reliable broadband
LTE-M300 ms–2 sModerate-lowPer-SIM data planMobile/portable hub, no WiFi dependency
NB-IoT1.5–10 sLowPer-SIM, often cheaper than LTE-MInfrequent batch vitals, deep indoor coverage
LoRaWANSeconds–minutesVery lowGateway infrastructure, no per-device SIMLarge campuses, not typical single-home RPM

For alarm-class vitals, WiFi or LTE-M is the realistic choice; NB-IoT's multi-second latency and half-duplex scheduling make it unsuitable for anything time-critical, but it's a reasonable fit for twice-daily batch weight or glucose trends where cost per connected hub matters more than speed.

MQTT/CoAP vs. REST APIs for patient data transmission

MQTT (Message Queuing Telemetry Transport) over TLS with QoS 1 is the default for hub uplink because it keeps a persistent connection, supports last-will messages that flag a hub going offline, and handles intermittent connectivity better than a stateless REST call. CoAP (Constrained Application Protocol) suits NB-IoT/LoRaWAN hubs where even TCP's handshake overhead is costly. Plain REST/HTTPS is adequate for low-frequency batch uploads from a WiFi hub but requires the hub to implement its own retry-and-backoff logic since there's no broker holding undelivered messages.

Security and encryption at hub level before cloud upload

Patient vitals must be encrypted before they leave the hub's RAM, not just in transit, because the hub itself may be physically accessible in a home. TLS 1.2 or higher for the uplink is table stakes; the data payload should also carry application-layer encryption (AES-256-GCM) keyed per-device, so that a compromised TLS terminator at any intermediate proxy doesn't expose raw vitals. Device identity should use mutual TLS or a hardware-backed key (secure element or TrustZone) rather than a static API key baked into firmware.

EHR Integration & Data Normalization

FHIR standards mapping for vital signs, observations, and device data

Every discrete vital sign becomes a FHIR Observation resource, with the sensor itself represented as a Device resource referenced via Observation.device:

{
  "resourceType": "Observation",
  "status": "final",
  "code": {
    "coding": [{
      "system": "http://loinc.org",
      "code": "59408-5",
      "display": "Oxygen saturation in Arterial blood by Pulse oximetry"
    }]
  },
  "subject": { "reference": "Patient/example-123" },
  "device": { "reference": "Device/pulse-ox-hub-07" },
  "effectiveDateTime": "2024-03-14T18:22:05Z",
  "valueQuantity": {
    "value": 96,
    "unit": "%",
    "system": "http://unitsofmeasure.org",
    "code": "%"
  }
}

LOINC (Logical Observation Identifiers Names and Codes) supplies the code, UCUM (Unified Code for Units of Measure) supplies the unit, and effectiveDateTime must carry the device-side capture time, not the cloud ingestion time. This mapping work is exactly where the industry's interoperability standards gap and fragmentation shows up in practice: two pulse oximeter vendors can both claim "FHIR support" while using different LOINC codes or unit conventions for the same measurement, and the integration engine has to reconcile that before the EHR will accept it.

HL7 v2 and v3 compatibility layers in legacy EHR systems

Many hospital EHR instances still ingest HL7 v2 ORU (Observation Result) messages over an interface engine rather than accepting FHIR directly, so the RPM backend commonly runs a FHIR-to-HL7v2 translation layer: the cloud platform generates native FHIR for modern APIs and consuming analytics, then converts to pipe-delimited ORU^R01 segments for the legacy interface engine. HL7 v3's XML-based CDA (Clinical Document Architecture) shows up mainly for discharge-summary-style documents, not discrete streaming vitals, so it rarely needs direct support in the hub-to-cloud path.

Timestamp synchronization and data provenance auditing

Every Observation needs three timestamps preserved end to end: device capture time, hub receipt time, and cloud ingestion time, because clock drift on an unsynchronized wearable can be hours off after months of use. The hub should synchronize its own clock via NTP (Network Time Protocol) on every uplink and stamp each BLE-received sample with both its own corrected time and the sensor's uncorrected internal counter, so downstream auditing can reconstruct what actually happened if a clinical question arises about when a reading was taken versus when it arrived.

Edge Processing & Regulatory Compliance

Local anomaly detection on hub to reduce false alarms

Running a simple threshold-and-debounce filter on the hub — for example, requiring three consecutive SpO2 readings below 90% within 30 seconds before raising an alarm — cuts single-sample artifact alarms (motion, poor sensor contact) without adding cloud round-trip latency to the decision. This local filtering reduces alert fatigue for the clinical team but must be designed conservatively: the hub should err toward forwarding ambiguous events for cloud/clinician review rather than suppressing them outright, since false negatives carry far higher clinical risk than false positives.

HIPAA encryption, access control, and audit logging requirements

HIPAA (Health Insurance Portability and Accountability Act) requires encryption of protected health information at rest and in transit, role-based access control on who can view which patient's data, and an immutable audit log of every access and modification. On the hub, this means local storage encryption (not just cloud-side), a unique device identity per patient rather than a shared provisioning key, and log retention of connection and data-access events even before the cloud link is established, since an auditor may need to reconstruct offline-period activity.

510(k) and CE mark considerations for clinical-grade systems

If the hub or its software performs any diagnostic or alarm-triggering function — not just passive data relay — it likely qualifies as a medical device requiring FDA 510(k) clearance in the US or a CE mark under the EU MDR (Medical Device Regulation), and that classification determines how much the firmware can change after clearance: an anomaly-detection threshold or alarm algorithm bundled into a cleared device typically can't be silently updated over the air without a regulatory change-control process. A hub that only forwards raw vitals for cloud-side analysis has a lighter regulatory path than one making local clinical decisions, which is a real architectural trade-off, not just a compliance checkbox — pushing more intelligence to the edge improves latency and reduces cloud dependency but increases regulatory burden on every firmware update.

Deployment Patterns & Case Study

Hub placement: patient home, clinic, or pharmacy model

Home placement maximizes monitoring frequency and catches daily variability but depends on the patient's WiFi and willingness to keep the hub powered and in range; clinic placement guarantees connectivity and technical support but reduces sampling to visit frequency; a pharmacy kiosk model sits between the two, offering supervised setup and periodic check-ins without requiring in-home infrastructure. A congestive heart failure program, for instance, typically needs home placement because daily weight trend is the clinically meaningful signal, while a post-op wound-check program can tolerate clinic-based BLE scale readings taken weekly.

Handling multi-tenant environments and device roaming

A single hub in a clinic or pharmacy may serve multiple patients' devices across a day, which requires the hub to maintain a time-boxed pairing window per patient session and purge the BLE bond list after each session to prevent cross-patient data bleed — a failure mode unique to shared-hub deployments that home-hub architectures never encounter.

Network resilience: offline buffering and eventual consistency

Hubs must buffer locally during WAN outages and reconcile on reconnect using idempotent writes keyed by device ID and sample timestamp, so a retried upload after a dropped connection doesn't create duplicate Observations in the EHR. Sizing the local buffer — typically enough flash for 24–72 hours of the highest-frequency sensor on the hub — is a capacity-planning exercise worth doing explicitly for each supported sensor type rather than assuming one buffer size fits a pulse oximeter streaming at 1 Hz and a weight scale reporting twice daily.

Learning

Sign in to track your progress.

Evidence

Public projects engineers linked to Remote Patient Monitoring (RPM): BLE Hub to EHR.

Add evidence

No engineer has linked a project to this topic yet. Built something that proves it? Add the project and tag it with iot-connectivity-remote-patient-monitoring-rpm-ble-hub-to-ehr — it then shows here and on your public profile.