{"id":23469,"date":"2026-06-20T10:25:00","date_gmt":"2026-06-20T10:25:00","guid":{"rendered":"https:\/\/engineerbabu.com\/blog\/?p=23469"},"modified":"2026-06-19T10:40:48","modified_gmt":"2026-06-19T10:40:48","slug":"build-a-remote-patient-monitoring-platform","status":"publish","type":"post","link":"https:\/\/engineerbabu.com\/blog\/build-a-remote-patient-monitoring-platform\/","title":{"rendered":"How to Build a Remote Patient Monitoring Platform &#8211; IoT Devices, CMS Billing, Alert Engine, HIPAA Architecture 2026"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Remote patient monitoring is the fastest-growing segment in digital health with a sustainable CMS reimbursement model that does not depend on venture capital. <\/span><a href=\"http:\/\/engineerbabu.com\"><span style=\"font-weight: 400;\">EngineerBabu<\/span><\/a><span style=\"font-weight: 400;\"> built Somnoware, the remote monitoring platform for ResMed&#8217;s sleep therapy device network, subsequently acquired by <a href=\"https:\/\/www.resmed.co.in\/\" target=\"_blank\" rel=\"noopener\">ResMed<\/a>. We understand production-grade medical IoT at scale.<\/span><\/p>\n<p><b>2026 RPM billing codes:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>CPT Code<\/b><\/td>\n<td><b>What It Covers<\/b><\/td>\n<td><b>2026 Rate<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99453<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Device setup + patient education<\/span><\/td>\n<td><span style=\"font-weight: 400;\">~$22<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99454<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Device supply + 16+ days transmission<\/span><\/td>\n<td><span style=\"font-weight: 400;\">~$52\/month<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99445<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Device supply + 2\u201315 days transmission (2026 new)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">~$26\/month<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99457<\/span><\/td>\n<td><span style=\"font-weight: 400;\">First 20 minutes clinical management<\/span><\/td>\n<td><span style=\"font-weight: 400;\">~$52\/month<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99470<\/span><\/td>\n<td><span style=\"font-weight: 400;\">First 10 minutes clinical management (2026 new)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">~$26\/month<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99458<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Additional 20 minutes clinical management<\/span><\/td>\n<td><span style=\"font-weight: 400;\">~$42\/month<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23475\" src=\"https:\/\/engineerbabu.com\/blog\/wp-content\/uploads\/2026\/06\/rpm-provider-dashboard.png\" alt=\"\" width=\"1640\" height=\"920\" title=\"\"><\/p>\n<h2><b>Module 1 &#8211; FDA-Cleared Device Integration<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">RPM devices must be FDA-cleared. Consumer-grade fitness trackers do not qualify.<\/span><\/p>\n<p><b>Device categories and integration methods:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Device<\/b><\/td>\n<td><b>Common Brands<\/b><\/td>\n<td><b>Integration<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Blood pressure monitors<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Omron, Withings, A&amp;D Medical<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Bluetooth LE + manufacturer SDK<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Continuous glucose monitors<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Dexcom G7, FreeStyle Libre 3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Bluetooth LE + Dexcom\/Abbott API<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Weight scales<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Withings, iHealth<\/span><\/td>\n<td><span style=\"font-weight: 400;\">WiFi + manufacturer cloud API<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Pulse oximeters<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Nonin, Masimo<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Bluetooth LE + SDK<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">ECG patches<\/span><\/td>\n<td><span style=\"font-weight: 400;\">iRhythm Zio, AliveCor<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Cellular + cloud API<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Spirometers<\/span><\/td>\n<td><span style=\"font-weight: 400;\">NuvoAir, Smart Respiratory<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Bluetooth LE + SDK<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>The device abstraction layer:<\/b><\/p>\n<p><span style=\"font-weight: 400;\">A standardised internal interface normalises data from every device regardless of manufacturer format. Adding a new device requires implementing one new adapter not modifying the core platform.<\/span><\/p>\n<p><b>Data model per reading:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Field<\/b><\/td>\n<td><b>Notes<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">patient_id<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Platform patient identifier<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">device_id<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Specific physical device (serial number)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">measurement_type<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Blood pressure \/ glucose \/ weight \/ SpO2<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">value(s)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Systolic + diastolic for BP, mg\/dL for glucose<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">device_timestamp<\/span><\/td>\n<td><span style=\"font-weight: 400;\">UTC \u2014 device-reported<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">transmission_timestamp<\/span><\/td>\n<td><span style=\"font-weight: 400;\">When reading reached the platform server<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">quality_flag<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Manufacturer-reported quality indicator<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-weight: 400;\">The timestamp distinction matters for billing, CMS counts days where data was transmitted, not measured. Both timestamps must be recorded.<\/span><\/p>\n<h2><b>Module 2 &#8211; Real-Time Vital Signs Streaming and Alert Engine<\/b><\/h2>\n<p><b>The data pipeline:<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Device \u2192 Bluetooth \u2192 patient smartphone \u2192 device manufacturer cloud \u2192 <\/span><a href=\"https:\/\/engineerbabu.com\/services\/api-development\"><span style=\"font-weight: 400;\">platform API<\/span><\/a><span style=\"font-weight: 400;\"> \u2192 time-series database \u2192 alert evaluation<\/span><\/p>\n<p><b>Time-series database choice:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Option<\/b><\/td>\n<td><b>When to Use<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">PostgreSQL (TimescaleDB)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">&lt; 50,000 patients, simplicity preferred<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">InfluxDB<\/span><\/td>\n<td><span style=\"font-weight: 400;\">50,000+ patients, high-frequency readings<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Amazon Timestream<\/span><\/td>\n<td><span style=\"font-weight: 400;\">AWS-native, managed, scales automatically<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Alert evaluation, every incoming reading is evaluated:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Alert Type<\/b><\/td>\n<td><b>Example<\/b><\/td>\n<td><b>Severity<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Absolute threshold<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Systolic BP &gt; 180 mmHg<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\ud83d\udd34 Critical<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Trend alert<\/span><\/td>\n<td><span style=\"font-weight: 400;\">BP rising &gt; 15 mmHg over 3 consecutive readings<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\ud83d\udfe1 Warning<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Missed reading<\/span><\/td>\n<td><span style=\"font-weight: 400;\">No reading in 24 hours<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\ud83d\udfe1 Warning<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Device disconnection<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Device not synced in 48 hours<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u2139\ufe0f Info<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Alert fatigue prevention: four mechanisms:<\/b><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Patient-specific thresholds:<\/b><span style=\"font-weight: 400;\"> A systolic of 160 is a crisis for a 35-year-old, normal for an 82-year-old. Each patient gets provider-set thresholds.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Alert suppression windows:<\/b><span style=\"font-weight: 400;\"> Expected post-meal glucose spikes do not generate alerts.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>ML anomaly scoring:<\/b><span style=\"font-weight: 400;\"> Deviation from the patient&#8217;s personal baseline, not population averages.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Alert deduplication:<\/b><span style=\"font-weight: 400;\"> One alert for a sustained abnormal period, not one per reading.<\/span><\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23474\" src=\"https:\/\/engineerbabu.com\/blog\/wp-content\/uploads\/2026\/06\/rpm-patient-app-wireframe.png\" alt=\"\" width=\"1440\" height=\"1216\" title=\"\"><\/p>\n<h2><b>Module 3 &#8211; CMS Billing Compliance Automation<\/b><\/h2>\n<p><b>The compliance tracking engine:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>CPT Code<\/b><\/td>\n<td><b>Requirement<\/b><\/td>\n<td><b>Platform Tracking<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99445<\/span><\/td>\n<td><span style=\"font-weight: 400;\">2\u201315 transmission days<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Count distinct calendar days with transmission<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99454<\/span><\/td>\n<td><span style=\"font-weight: 400;\">16+ transmission days<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Same count, determines 99445 vs 99454<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99457<\/span><\/td>\n<td><span style=\"font-weight: 400;\">20 minutes clinical management + patient contact<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Time-stamped log of interactions<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">99470<\/span><\/td>\n<td><span style=\"font-weight: 400;\">10 minutes clinical management<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Same, determines 99470 vs 99457<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>Mid-month compliance alerts (critical feature):<\/b><\/p>\n<p><span style=\"font-weight: 400;\">During the month not at month-end, the platform surfaces compliance gaps:<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Alert<\/b><\/td>\n<td><b>Timing<\/b><\/td>\n<td><b>Action<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Patient approaching 16-day threshold<\/span><\/td>\n<td><span style=\"font-weight: 400;\">When at 12 days<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Provider prompts patient to take readings<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Clinical time short of 20-minute threshold<\/span><\/td>\n<td><span style=\"font-weight: 400;\">With 5 days left in month<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Provider reviews and adds documented interaction<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Patient not responsive<\/span><\/td>\n<td><span style=\"font-weight: 400;\">72 hours without reading<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Outreach call from care coordinator<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>The billing automation workflow:<\/b><\/p>\n<p><span style=\"font-weight: 400;\">At month end, the platform automatically:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Calculates each patient&#8217;s transmission day count<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Determines correct device supply code (99445 vs 99454)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sums clinical management time per provider per patient<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Determines correct clinical time code<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Generates 837P claim files<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Submits to clearinghouse<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tracks ERA responses and posts payments<\/span><\/li>\n<\/ol>\n<h2><b>Module 4 &#8211; Patient App and Engagement<\/b><\/h2>\n<p><b>The patient <\/b><a href=\"https:\/\/engineerbabu.com\/services\/mobile-app-development\"><b>mobile app<\/b><\/a><b> (iOS + Android, Flutter):<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Feature<\/b><\/td>\n<td><b>Details<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Reading reminders<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Daily notification at patient-selected time<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Trend visualisation<\/span><\/td>\n<td><span style=\"font-weight: 400;\">&#8220;Your blood pressure over the last 30 days&#8221;<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Goal tracking<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Provider-set targets with patient progress<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Secure messaging<\/span><\/td>\n<td><span style=\"font-weight: 400;\">HIPAA-compliant messaging to care coordinator<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Education content<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Condition-specific educational materials<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>The engagement cadence:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Day<\/b><\/td>\n<td><b>Action<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Enrolment<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Welcome + device setup guide<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Day 3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Check-in: &#8220;How is the device working?&#8221;<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Day 7<\/span><\/td>\n<td><span style=\"font-weight: 400;\">First week summary<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Day 30<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Monthly summary with trend comparison<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">No reading 24h<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Automated reminder<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-23473\" src=\"https:\/\/engineerbabu.com\/blog\/wp-content\/uploads\/2026\/06\/rpm-patient-app-design.png\" alt=\"\" width=\"752\" height=\"1214\" title=\"\"><\/p>\n<h2><b>Module 5 &#8211; Provider Dashboard and Care Coordinator Workflow<\/b><\/h2>\n<p><b>The provider dashboard:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>View<\/b><\/td>\n<td><b>Contents<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Patient panel<\/span><\/td>\n<td><span style=\"font-weight: 400;\">All RPM patients, current readings, alert status, compliance<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Alert queue<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Prioritised alerts requiring clinical review<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Compliance tracker<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Per-patient transmission days and clinical time<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Month-end billing preview<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Projected claims before month closes<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><b>The care coordinator workflow:<\/b><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Trigger<\/b><\/td>\n<td><b>Action<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Critical alert<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Immediate phone call to patient<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Warning alert<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Secure message within 4 hours<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Low compliance<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Motivational outreach and troubleshooting<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Patient missed appointment<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Reschedule and document<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Cost to Build a Remote Patient Monitoring Platform<\/h2>\n<table>\n<tbody>\n<tr>\n<td><b>Module<\/b><\/td>\n<td><b>Cost Range (USD)<\/b><\/td>\n<td><b>Notes<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Device integration layer (10 device types)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$10K \u2013 $20K<\/span><\/td>\n<td><span style=\"font-weight: 400;\">~$1K\u2013$2K per device adapter<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Time-series database + data pipeline<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$6K \u2013 $12K<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Real-time alert evaluation engine<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$8K \u2013 $15K<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Alert fatigue prevention (ML baseline)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$8K \u2013 $15K<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">CMS billing compliance engine<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$10K \u2013 $18K<\/span><\/td>\n<td><span style=\"font-weight: 400;\">All 2026 CPT codes<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Claims generation + clearinghouse<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$6K \u2013 $12K<\/span><\/td>\n<td><span style=\"font-weight: 400;\">837P EDI<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Patient app (iOS + Android)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$10K \u2013 $18K<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Flutter<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Provider dashboard + care coordinator<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$8K \u2013 $15K<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/engineerbabu.com\/blog\/fhir-r4-integration-for-healthcare-startups\/\"><span style=\"font-weight: 400;\">EHR integration (FHIR R4)<\/span><\/a><\/td>\n<td><span style=\"font-weight: 400;\">$6K \u2013 $12K<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">AWS HIPAA + IoT security + VAPT<\/span><\/td>\n<td><span style=\"font-weight: 400;\">$8K \u2013 $15K<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><b>Total<\/b><\/td>\n<td><b>$80K \u2013 $152K<\/b><\/td>\n<td><span style=\"font-weight: 400;\">Full RPM platform<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><i><span style=\"font-weight: 400;\">EngineerBabu built Somnoware, the <\/span><\/i><a href=\"https:\/\/engineerbabu.com\/blog\/remote-patient-monitoring-software-development\/\"><i><span style=\"font-weight: 400;\">RPM platform<\/span><\/i><\/a><i><span style=\"font-weight: 400;\"> for ResMed&#8217;s sleep therapy device network, acquired by ResMed. Contact: <\/span><\/i><a href=\"mailto:mayank@engineerbabu.com\"><i><span style=\"font-weight: 400;\">mayank@engineerbabu.com<\/span><\/i><\/a><\/p>\n<h2><b>Frequently Asked Questions<\/b><\/h2>\n<ul>\n<li aria-level=\"1\">\n<h3><b>What is the 16-day rule in RPM billing and how does the platform track it?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">CPT 99454 requires a minimum of 16 distinct calendar days of data transmission in a 30-day billing period. The 2026 update added CPT 99445 for 2 to 15 transmission days. The platform tracks transmission days automatically, counting any calendar day where at least one reading was received. At month-end, the platform selects the correct code based on the actual count. Mid-month alerts notify the care team when a patient is on track for 99445 instead of 99454, enabling proactive outreach to increase transmission frequency before the billing window closes.<\/span><\/p>\n<ul>\n<li aria-level=\"1\">\n<h3><b>How did EngineerBabu&#8217;s Somnoware build inform this RPM architecture?<\/b><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Somnoware was built for ResMed&#8217;s connected sleep therapy devices, CPAP and BiPAP machines that transmit usage data nightly. The core challenges were identical to a general RPM platform: device protocol normalisation across multiple device generations, alert engine design that surfaces clinically meaningful signals without alert fatigue, compliance tracking for billing purposes, and a patient app that drives engagement with patients who have chronic conditions. The acquisition by ResMed validated the platform&#8217;s clinical and technical quality. EngineerBabu applies these lessons, specifically the device abstraction layer architecture, the alert fatigue prevention model, and the compliance billing engine to new RPM builds.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Remote patient monitoring is the fastest-growing segment in digital health with a sustainable CMS reimbursement model that does not depend on venture capital. EngineerBabu built Somnoware, the remote monitoring platform for ResMed&#8217;s sleep therapy device network, subsequently acquired by ResMed. We understand production-grade medical IoT at scale. 2026 RPM billing codes: CPT Code What It [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":23470,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1246],"tags":[],"class_list":["post-23469","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-healthtech"],"_links":{"self":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts\/23469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/comments?post=23469"}],"version-history":[{"count":1,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts\/23469\/revisions"}],"predecessor-version":[{"id":23476,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/posts\/23469\/revisions\/23476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/media\/23470"}],"wp:attachment":[{"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/media?parent=23469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/categories?post=23469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineerbabu.com\/blog\/wp-json\/wp\/v2\/tags?post=23469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}