<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Ubaid's Substack]]></title><description><![CDATA[My personal Substack]]></description><link>https://ubaidpisuwala.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ZYDG!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc998beba-311b-4bb4-b19f-93f67914ab5c_228x228.jpeg</url><title>Ubaid&apos;s Substack</title><link>https://ubaidpisuwala.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 16 Jul 2026 09:33:18 GMT</lastBuildDate><atom:link href="https://ubaidpisuwala.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ubaid Pisuwala]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[ubaidpisuwala@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[ubaidpisuwala@substack.com]]></itunes:email><itunes:name><![CDATA[Ubaid Pisuwala]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ubaid Pisuwala]]></itunes:author><googleplay:owner><![CDATA[ubaidpisuwala@substack.com]]></googleplay:owner><googleplay:email><![CDATA[ubaidpisuwala@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ubaid Pisuwala]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Kafka-Based Streaming for RPM Platforms]]></title><description><![CDATA[Picture a remote patient monitoring platform tracking a thousand patients, each device pushing heart rate, oxygen saturation, and blood glucose readings every few seconds.]]></description><link>https://ubaidpisuwala.substack.com/p/kafka-based-streaming-for-rpm-platforms</link><guid isPermaLink="false">https://ubaidpisuwala.substack.com/p/kafka-based-streaming-for-rpm-platforms</guid><dc:creator><![CDATA[Ubaid Pisuwala]]></dc:creator><pubDate>Fri, 10 Jul 2026 09:27:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZYDG!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc998beba-311b-4bb4-b19f-93f67914ab5c_228x228.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Picture a remote patient monitoring platform tracking a thousand patients, each device pushing heart rate, oxygen saturation, and blood glucose readings every few seconds. Now multiply that by ten thousand patients. A traditional request-response API buckles fast under that kind of continuous, high-frequency load, and that&#8217;s exactly the gap Kafka was built to fill.</p><p>If you&#8217;ve ever watched an RPM platform choke during a spike in device traffic, you already know the problem isn&#8217;t the volume of data on its own. It&#8217;s the mismatch between how medical devices generate data (constant, small, relentless) and how most backend systems expect to receive it (occasional, batched, predictable). Kafka reframes that relationship entirely by treating the data as a continuous stream rather than a series of discrete requests.</p><h3>Why RPM Platforms Outgrow Traditional Architectures</h3><p>Most RPM systems start simple. A device sends a reading, an API endpoint receives it, a database stores it. That works fine for a pilot program with a few dozen patients. It falls apart once you&#8217;re dealing with thousands of connected devices, each one is a small, independent data source firing constantly, and any hiccup in your ingestion layer means lost vitals data, which in healthcare is not a minor inconvenience.</p><p>What you actually need is a system that can absorb bursts of incoming data without breaking a sweat, hold onto that data reliably even if downstream services are temporarily unavailable, and let multiple consumers (alerting engines, analytics dashboards, EHR sync jobs) read from the same stream independently. That&#8217;s the exact shape of problem Kafka was designed to solve, and it&#8217;s why so many teams building a <a href="https://www.peerbits.com/remote-patient-monitoring-solutions.html">remote patient monitoring platform</a> eventually land on an event-streaming architecture rather than trying to scale a request-driven one further.</p><h3>How Kafka Fits Into an RPM Pipeline</h3><p>In a typical setup, each device or gateway publishes readings to a Kafka topic, often partitioned by patient ID or device type to keep related events grouped and ordered. From there, separate consumer groups can process the same stream for entirely different purposes. One service checks incoming vitals against clinical thresholds and triggers alerts. Another writes raw readings to long-term storage. A third feeds a live dashboard that clinicians actually watch during their shift.</p><p>This separation matters more than it might seem at first glance. If your alerting logic and your storage logic are tightly coupled in a single service, a slowdown in one drags down the other, and in RPM that could mean a delayed alert for an actual clinical emergency. With Kafka, each consumer moves at its own pace against the same durable stream, so a slow analytics job never puts a critical alert at risk.</p><h3>Designing for Reliability, Not Just Throughput</h3><p>Throughput gets most of the attention in these conversations, but reliability is where RPM platforms live or die. Kafka&#8217;s replication model means a broker going down doesn&#8217;t mean losing data, since replicas hold copies across multiple nodes. Combine that with proper retention settings, and you get a stream that can be replayed if a downstream consumer needs to reprocess a window of readings after a bug fix or an outage.</p><p>Idempotent producers matter here too. Medical devices on spotty cellular or Bluetooth connections often retry sends, and without deduplication logic, that retry can quietly duplicate a vitals reading in your system, throwing off averages or triggering a false alert. Building this correctly from day one saves a lot of debugging later, and it&#8217;s the kind of detail that separates a platform that survives a device firmware update from one that doesn&#8217;t.</p><h3>Where This Gets Complicated: Compliance and Latency Together</h3><p>Healthcare adds a layer most Kafka tutorials never mention: every message in that stream is likely PHI, which means encryption in transit and at rest, strict access control on topics, and audit trails for who consumed what. None of that is optional, and retrofitting it after the pipeline is live is far harder than designing it in from the start.</p><p>At the same time, you&#8217;re balancing this against latency requirements that general-purpose IoT platforms don&#8217;t usually face. A dropped temperature reading from a smart thermostat is an inconvenience. A delayed alert on a cardiac patient&#8217;s irregular rhythm is a different category of problem entirely. This is part of why broader <a href="https://www.peerbits.com/healthcare-iot-solutions.html">healthcare IoT solutions</a> tend to bake compliance and low-latency alerting into the same architectural layer rather than treating them as separate concerns bolted on afterward.</p><h3>Getting the Architecture Right the First Time</h3><p>Kafka isn&#8217;t a magic fix you drop into an existing RPM system and walk away from. It changes how your team thinks about data: as an ongoing stream to be processed continuously, not a static record to be queried on demand. That shift touches your alerting logic, your storage strategy, and how your clinical teams actually consume the data day to day.</p><p>Get the partitioning strategy wrong, skip the idempotency work, or treat compliance as an afterthought, and you&#8217;ll end up with a system that&#8217;s technically streaming but practically fragile. Get it right, and you have a platform that can scale from a hundred patients to a hundred thousand without a redesign, which in this space, is usually the whole point.</p>]]></content:encoded></item><item><title><![CDATA[Streaming Architecture for Remote Patient Monitoring]]></title><description><![CDATA[A patient with congestive heart failure goes home wearing a connected weight scale, a blood pressure cuff, and a pulse oximeter.]]></description><link>https://ubaidpisuwala.substack.com/p/streaming-architecture-for-remote</link><guid isPermaLink="false">https://ubaidpisuwala.substack.com/p/streaming-architecture-for-remote</guid><dc:creator><![CDATA[Ubaid Pisuwala]]></dc:creator><pubDate>Thu, 02 Jul 2026 05:36:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AkCZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A patient with congestive heart failure goes home wearing a connected weight scale, a blood pressure cuff, and a pulse oximeter. Each device is technically &#8220;connected.&#8221; Each one syncs data on its own schedule, usually once every few hours, whenever the app happens to sync in the background. Three days into a fluid overload event, the pattern is sitting in the data. Nobody sees it until the scheduled sync catches up, by which point the patient is in the emergency department.</p><p>This is the gap between having remote patient monitoring devices and having a monitoring system. The devices were never the hard part. The hard part is the architecture that moves a reading from the patient&#8217;s body to a clinician&#8217;s attention fast enough for it to matter, and does that reliably for thousands of patients at once. Teams building <a href="https://www.peerbits.com/remote-patient-monitoring-solutions.html">remote patient monitoring software</a> are increasingly finding that the difference between a program that reduces readmissions and one that quietly gets abandoned by clinicians comes down to whether the underlying data layer streams or merely syncs.</p><p>This article walks through what a real streaming architecture for RPM looks like: the layers involved, the protocols that fit each layer, the tradeoffs between them, and the operational failure modes that only show up once you are running the system at scale.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pzWJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pzWJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 424w, https://substackcdn.com/image/fetch/$s_!pzWJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 848w, https://substackcdn.com/image/fetch/$s_!pzWJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 1272w, https://substackcdn.com/image/fetch/$s_!pzWJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pzWJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png" width="808" height="290" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:290,&quot;width&quot;:808,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58271,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/204577044?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pzWJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 424w, https://substackcdn.com/image/fetch/$s_!pzWJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 848w, https://substackcdn.com/image/fetch/$s_!pzWJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 1272w, https://substackcdn.com/image/fetch/$s_!pzWJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a9d804d-39ec-4c8f-8652-eed9b5a0265a_808x290.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Why batch and polling break down for monitoring</strong></h2><p>Most digital health products that &#8220;monitor&#8221; patients were originally built around the same pattern as any other web application: the device stores readings locally, an app periodically fetches them, and a backend job processes whatever arrived. This works fine for a fitness app. It fails for clinical monitoring because the entire value of RPM depends on the gap between an event happening and someone finding out about it.</p><p>A polling architecture treats every reading as equally urgent, or rather, equally non-urgent, because nothing gets prioritized until the next scheduled pull. A streaming architecture treats data as a continuous flow of events, each of which can be evaluated the instant it arrives. That distinction is the entire reason streaming exists as a discipline separate from ordinary application backend work.</p><blockquote><p><em><span>RISK: </span><strong>The silent failure mode:</strong> Polling architectures do not fail loudly. They fail by being technically functional while clinically useless, quietly missing the window where an intervention would have prevented a hospitalization. Because the system still &#8220;works,&#8221; this failure often goes undiagnosed for months.</em></p></blockquote><h2><strong>Anatomy of a vitals stream, sensor to alert</strong></h2><p>A production RPM streaming pipeline is made up of five distinct layers. Each has its own failure modes, and treating any one of them as an afterthought is usually where these programs break down at scale.</p><h3><strong>Device and edge capture</strong></h3><p>Wearables, cuffs, glucometers, and bedside sensors generate raw readings, typically over Bluetooth Low Energy to a hub device or directly over WiFi or cellular. Edge logic here handles basic signal validation, noise filtering, and local buffering so a dropped connection does not mean lost data.</p><h3><strong>Gateway and protocol normalization</strong></h3><p>A gateway service receives readings over lightweight publish-subscribe protocols, most commonly MQTT, and normalizes them from dozens of device-specific formats into a consistent internal event schema before anything downstream has to deal with vendor variation.</p><h3><strong>Ingestion and event broker</strong></h3><p>Normalized events land on a distributed event broker, typically Apache Kafka or a managed equivalent such as AWS Kinesis or Azure Event Hubs. Partitioning by patient ID here matters enormously, it is what keeps a single patient&#8217;s readings in order while still letting the system scale horizontally across hundreds of thousands of concurrent patients.</p><h3><strong>Stream processing and rules evaluation</strong></h3><p>A stream processing engine, such as Apache Flink or Kafka Streams, evaluates each event against clinical thresholds and trend logic in near real time: is this reading out of range, is it trending in a dangerous direction, does it correlate with another recent reading from the same patient. This is where raw data becomes a clinical signal.</p><h3><strong>Storage, delivery, and alerting</strong></h3><p>Flagged events are converted into HL7 FHIR Observation resources and pushed into the EHR, while parallel paths deliver dashboard updates over WebSocket connections and route urgent alerts to a clinician&#8217;s device. Everything, flagged or not, also lands in long-term storage for trend analysis and audit.</p><h2><strong>Picking the right transport for each layer</strong></h2><p>No single protocol handles the entire journey well, and teams that try to force one, usually REST polling, across every layer are the ones who end up rebuilding the pipeline eighteen months in. The right approach mixes protocols deliberately by layer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AkCZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AkCZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 424w, https://substackcdn.com/image/fetch/$s_!AkCZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 848w, https://substackcdn.com/image/fetch/$s_!AkCZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 1272w, https://substackcdn.com/image/fetch/$s_!AkCZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AkCZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png" width="807" height="401" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:401,&quot;width&quot;:807,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64684,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/204577044?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AkCZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 424w, https://substackcdn.com/image/fetch/$s_!AkCZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 848w, https://substackcdn.com/image/fetch/$s_!AkCZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 1272w, https://substackcdn.com/image/fetch/$s_!AkCZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4747e3e8-760f-4618-8e5a-7eaa8e1c05f0_807x401.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>Research into </span><a href="https://www.peerbits.com/blog/role-of-remote-patient-monitoring-to-improve-patient-outcomes.html">patient outcomes with RPM</a><span> consistently points to timeliness as the variable that determines whether a program actually reduces hospitalizations or simply generates data nobody acts on. The protocol stack is not a backend implementation detail, it is the mechanism that determines whether "real time" is a marketing phrase or an operational reality.</span></p><h2><strong>The data volume problem nobody budgets for</strong></h2><p>Individually, a single vitals reading is a tiny payload. The problem is never one patient, it is the multiplication. A cardiac patient on continuous ECG monitoring can generate a meaningful data point every few seconds. Multiply that across a health system running RPM programs for thousands of chronic disease patients simultaneously, and the ingestion layer is now handling a sustained, continuous event volume that most legacy healthcare IT infrastructure was never designed to absorb.</p><p>The RPM device market itself illustrates the pace of this growth: global market value is projected to climb from roughly $67 billion in 2026 toward well over $100 billion by the early 2030s, with real time monitoring types leading that expansion. Every percentage point of that growth translates directly into event throughput that an ingestion architecture has to be built to absorb, not retrofit for after the fact.</p><blockquote><p><em><span>RISK: </span><strong>Alert fatigue is a data problem:</strong> As device density per patient increases, naive threshold-based alerting produces a flood of low-value notifications. Stream processing has to include correlation and deduplication logic, not just per-reading threshold checks, or clinicians start ignoring the alert channel entirely, which defeats the entire purpose of the system.</em></p></blockquote><h2><strong>Where IoT devices fit in the architecture</strong></h2><p>The device layer deserves more architectural attention than it usually gets. Every connected blood pressure cuff, glucometer, and wearable is effectively a distributed sensor node, and the growing footprint of <a href="https://www.peerbits.com/blog/iot-in-healthcare-telemedicine-and-remote-patient-monitoring.html">IoT in remote patient monitoring</a> means the edge is no longer a thin client, it is doing real work: buffering readings during connectivity gaps, performing basic anomaly filtering before transmission, and managing power consumption so a device stays usable for weeks rather than days.</p><p>Edge intelligence also matters for reliability. A home network drops, a patient travels out of coverage, or a device battery dies mid-sync. A well designed edge layer buffers locally and reconciles once connectivity resumes, rather than silently dropping readings, which is what happens by default in architectures where the device assumes the network is always available.</p><h2><strong>Reliability, security, and compliance in transit</strong></h2><p>Streaming health data at scale introduces operational demands that a batch system never has to face: guaranteed delivery, ordering guarantees per patient, encryption at every hop, and audit trails that satisfy HIPAA requirements for data that is moving, not just data at rest.</p><ul><li><p>Every hop between device, gateway, broker, and EHR is encrypted in transit, not just the endpoints</p></li><li><p>Dead-letter queues and retry logic catch failed message delivery instead of silently discarding events</p></li><li><p>Event partitioning preserves per-patient ordering even under high concurrent load across the platform</p></li><li><p>Consumer lag and broker throughput are monitored continuously, with alerting on the monitoring system itself</p></li><li><p>Alert correlation and deduplication logic sits ahead of clinician-facing notifications to prevent fatigue</p></li><li><p>Retention policies on raw event data are defined explicitly against regulatory and clinical requirements</p></li></ul><h2><strong>What a production stack typically looks like</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dNFF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dNFF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 424w, https://substackcdn.com/image/fetch/$s_!dNFF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 848w, https://substackcdn.com/image/fetch/$s_!dNFF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 1272w, https://substackcdn.com/image/fetch/$s_!dNFF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dNFF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png" width="807" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:807,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79270,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/204577044?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dNFF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 424w, https://substackcdn.com/image/fetch/$s_!dNFF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 848w, https://substackcdn.com/image/fetch/$s_!dNFF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 1272w, https://substackcdn.com/image/fetch/$s_!dNFF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F288fe9a7-39ef-4b20-ae05-f6511a48bc8b_807x508.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The technology choices matter less than the discipline of building each layer for its actual job rather than stretching one tool to cover all of them. A health system&#8217;s engineering team building this from scratch benefits from starting with the ingestion and processing layers, since those are the two that are hardest to retrofit once a program is already running with live patients on it.</p><h2><strong>What to assess before you build</strong></h2><p>Most organizations do not need to build all six layers from zero. The useful starting point is an honest audit of what already exists and where the real bottleneck sits.</p><ul><li><p>Map your current data path end to end, and note every point where a reading waits for a scheduled job rather than being pushed</p></li><li><p>Measure your actual alert latency today, from device reading to clinician notification, not the number in the vendor brochure</p></li><li><p>Check whether your EHR supports FHIR subscriptions or only polling based integration</p></li><li><p>Evaluate device-level buffering behavior during connectivity loss, most teams discover gaps here first</p></li><li><p>Estimate event throughput at your target patient volume, not your current pilot cohort size</p></li></ul><p>Our engineering team builds <a href="https://www.peerbits.com/healthcare-software-development.html">custom healthcare software</a> around exactly this kind of streaming infrastructure, from edge device integration through Kafka-based ingestion to FHIR-compliant EHR delivery, tailored to the specific device mix and clinical program a health system is running.</p>]]></content:encoded></item><item><title><![CDATA[Scaling RPM platforms for millions of health readings]]></title><description><![CDATA[Most remote patient monitoring programs are born small.]]></description><link>https://ubaidpisuwala.substack.com/p/scaling-rpm-platforms-for-millions</link><guid isPermaLink="false">https://ubaidpisuwala.substack.com/p/scaling-rpm-platforms-for-millions</guid><dc:creator><![CDATA[Ubaid Pisuwala]]></dc:creator><pubDate>Thu, 25 Jun 2026 09:01:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NPAI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most remote patient monitoring programs are born small. A pilot covers a few hundred patients with a single chronic condition, a handful of device types, and a database that comfortably holds every reading the program produces. The architecture works. The dashboards load fast. The alerts fire correctly. Everyone agrees it is ready to expand.</p><p>Then it expands, and the stack that worked for five hundred patients starts to strain at five thousand, and by fifty thousand the cron job that used to poll for new readings every minute is taking four minutes to run, the alert engine is generating more noise than signal, and the database that used to answer a dashboard query in milliseconds is now scanning months of raw rows to plot a single trend line. None of this is a failure of the original build. It is what happens when a system designed around a population is asked to operate at the scale of a platform.</p><p>This piece walks through what actually changes as an RPM platform grows from a pilot to a population scale deployment, where the architecture genuinely needs to be different rather than just bigger, and what a stack built for millions of readings looks like in practice. Where it helps, we point to <a href="https://www.peerbits.com/healthcare-iot-solutions.html">connected device and IoT engineering work</a> and API gateway architecture that underpins it.</p><h2><strong>What changes between a pilot and a population</strong></h2><p>Scale in RPM is not one threshold, it is several, and each one breaks a different layer of the stack first. A platform that survives the jump from five hundred to five thousand patients can still fall over between fifty thousand and half a million, because the bottleneck moves from the database to the alert engine to the network layer as volume grows.</p><p><strong>~5<span>00 </span></strong>A single relational database and a polling job handle everything. <strong>This is the pilot stage</strong>, and almost any reasonable architecture survives it.</p><p><strong>~5<span>,000 </span></strong>Polling intervals start slipping, dashboard queries against raw time series rows slow down, and the first alert fatigue complaints reach the clinical team. <strong>The cracks are visible but tolerable.</strong></p><p><strong>~5<span>0,000 </span></strong>The relational database can no longer keep up with sustained write volume from continuous devices. <strong>This is where most first generation stacks require a rebuild</strong>, not a tune up.</p><p><strong>5<span>00,000+ </span></strong>Multi region device connectivity, edge based pre processing, and horizontally partitioned ingestion become necessary rather than optional. <strong>This is platform territory</strong>, built for many programs and device types at once.</p><p>The point of mapping it this way is not to scare a small program into over building. A five hundred patient pilot does not need a platform built for five million readings a day. The point is to know which threshold is coming next, so the rebuild happens on purpose rather than during an outage.</p><h2><strong>The pipeline that gets data off the device and into the system</strong></h2><p>Every RPM platform starts the same way functionally: a device produces a reading, and that reading needs to travel from the device, across an unreliable network, into a system that can store it, evaluate it, and surface it to a clinician. At pilot scale this can be a simple HTTP endpoint that a device or its companion app calls directly. At population scale, that same direct call becomes a single point of failure the moment device count crosses into the tens of thousands.</p><p>The pattern that holds at scale separates device communication from downstream processing entirely. Devices publish over a lightweight protocol built for constrained, intermittent connections, typically <strong>MQTT</strong>, to a broker designed to handle a very large number of simultaneous low bandwidth connections. A bridge layer translates those messages into a durable, high throughput stream, most commonly <strong>Apache Kafka</strong> or a Kafka compatible alternative, where they can be processed, fanned out, and replayed if a downstream consumer falls behind.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6uHy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6uHy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 424w, https://substackcdn.com/image/fetch/$s_!6uHy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 848w, https://substackcdn.com/image/fetch/$s_!6uHy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 1272w, https://substackcdn.com/image/fetch/$s_!6uHy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6uHy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png" width="811" height="191" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:191,&quot;width&quot;:811,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11120,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/203524473?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6uHy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 424w, https://substackcdn.com/image/fetch/$s_!6uHy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 848w, https://substackcdn.com/image/fetch/$s_!6uHy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 1272w, https://substackcdn.com/image/fetch/$s_!6uHy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a75201e-f27e-4717-a51e-7e70b20783bb_811x191.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This decoupling matters for a reason beyond throughput. When ingestion and processing are separate systems, a spike in device traffic, a slow downstream consumer, or a maintenance window on the alert engine does not cause readings to be dropped. The stream holds them until the consumer catches up. A direct device to database call has no equivalent buffer, and under sustained load it simply starts failing requests, which in RPM means missed readings from a real patient.</p><p><em>PATTERN- Decouple before you optimize. Most early performance problems in RPM platforms are framed as database tuning problems. Often the actual issue is architectural: the system has no buffer between device traffic and processing, so any slowdown anywhere in the pipeline propagates immediately back to the device connection. Adding a stream layer between ingestion and processing solves more scaling problems than almost any single database optimization.</em></p><h2><strong>Why a general purpose database stops working</strong></h2><p>Health readings are, structurally, time series data. A heart rate reading, a glucose value, a blood pressure pair, a pulse oximetry sample: each one is a timestamp, a patient identifier, a value, and a small amount of metadata. A standard relational table can store this shape of data without complaint at low volume. The trouble starts with the access pattern, not the schema. RPM systems write constantly and read in time ranges, and that combination is exactly what general purpose databases are not optimized for.</p><p>Purpose built time series databases such as <strong>TimescaleDB</strong> or <strong>InfluxDB</strong> handle this differently from the start. They automatically partition data by time, index along the time axis natively, and compress older data aggressively, which means a query for a patient&#8217;s last seven days of readings stays fast even when the underlying table holds years of history across millions of patients. A relational database asked to do the same thing degrades steadily as the table grows, because it was never designed around the assumption that almost every query filters by a time window.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NPAI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NPAI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 424w, https://substackcdn.com/image/fetch/$s_!NPAI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 848w, https://substackcdn.com/image/fetch/$s_!NPAI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 1272w, https://substackcdn.com/image/fetch/$s_!NPAI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NPAI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png" width="871" height="390" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/631df055-2c78-408a-bd45-a149ca212fe0_871x390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:390,&quot;width&quot;:871,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:63194,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/203524473?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NPAI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 424w, https://substackcdn.com/image/fetch/$s_!NPAI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 848w, https://substackcdn.com/image/fetch/$s_!NPAI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 1272w, https://substackcdn.com/image/fetch/$s_!NPAI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631df055-2c78-408a-bd45-a149ca212fe0_871x390.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>In practice, platforms operating at real scale run a tiered storage model rather than one database doing everything: a time series store for active, frequently queried data, a relational store for patient records, care plans, and device inventory, and a cold storage tier for older readings that need to be retained for compliance but are rarely accessed. This is also where </span><a href="https://www.peerbits.com/blog/healthcare-api-gateway-architecture-guide.html">interoperable data architecture</a><span> earns its keep, since readings eventually need to leave this stack entirely and land in an electronic health record as structured, codeable clinical data.</span></p><h2><strong>The problem nobody budgets for: too much data, not too little</strong></h2><p>The instinct when building an RPM program is to worry about missing a critical reading. The lived experience of most mature programs is the opposite problem: too many alerts, most of them not clinically meaningful, arriving faster than a care team can act on them. A continuous glucose monitor alone can generate hundreds of data points a week per patient. Multiply that across a panel of several thousand patients on several device types, and a naive threshold based alert rule, fire whenever a value crosses a fixed line, will bury a care team in noise within days.</p><p><strong><span>NOISE</span></strong></p><h4><strong>Static thresholds do not account for individual baselines</strong></h4><p>A heart rate of 110 is unremarkable for a patient mid walk and concerning for a patient at rest. A single fixed threshold applied across a population either misses real events or triggers constantly on patients whose normal range sits near the line. This is the single largest driver of alert fatigue in deployed RPM programs.</p><p><strong><span>LATENCY</span></strong></p><h4><strong>Batch alerting introduces a dangerous lag</strong></h4><p>Some early RPM builds evaluate alert rules in a nightly or hourly batch job because that was simple to build at pilot scale. At population scale this means a genuinely urgent reading can sit unreviewed for hours, which defeats the purpose of continuous monitoring entirely.</p><p><strong><span>ROUTING</span></strong></p><h4><strong>Every alert reaching every care team member does not scale</strong></h4><p>A program with a hundred patients can route every alert to one nurse. A program with tens of thousands of patients across multiple conditions and care teams needs alert routing logic that matches severity and patient assignment, or the most overloaded inbox in the organization becomes the actual bottleneck in patient safety.</p><p><strong><span>DRIFT</span></strong></p><h4><strong>Device calibration drift produces false signal at scale</strong></h4><p>A small percentage of devices drifting out of calibration is invisible at pilot scale and becomes a measurable source of false alerts once a fleet reaches tens of thousands of units. Fleet level device health monitoring, not just patient level reading monitoring, becomes its own operational requirement.</p><p>The fix that actually holds up is layered rather than a single smarter threshold: individualized baselines instead of fixed cutoffs, real time stream based evaluation rather than batch jobs, severity aware routing rather than broadcast alerts, and ongoing device fleet health monitoring as a parallel data stream to patient readings.</p><blockquote><p><em>The largest challenge is not a lack of data, it is too much of it. Without intelligent filtering, monitoring increases workload instead of reducing it.</em></p><p><strong>on remote monitoring at scale, industry analysis, 2026</strong></p></blockquote><h2><strong>Edge processing and the offline reality of remote care</strong></h2><p>Cloud native architecture assumes a device can reach the cloud. A meaningful share of RPM patients live in areas with inconsistent connectivity, and even in well connected areas, home networks drop. A platform that assumes every reading reaches the server the moment it is generated will quietly lose data during exactly the connectivity gaps that matter most.</p><p>The answer at scale is edge processing: lightweight computation that happens on or near the device itself, buffering readings locally during an outage, performing basic validation before transmission, and batching uploads once connectivity returns rather than discarding what was collected offline. This also reduces unnecessary network chatter, since not every raw reading needs to travel individually the moment it is captured.</p><div class="callout-block" data-callout="true"><p><strong><span>DESIGN NOTE: </span>Offline tolerance is a clinical safety requirement, not a convenience feature.</strong> A patient with a connectivity gap during a genuine health event is the worst possible moment for a monitoring system to silently lose data. Local buffering with guaranteed eventual delivery should be treated as a baseline requirement for any RPM device integration, not an enhancement added after launch.</p></div><h2><strong>Scale has a financial side, not just a technical one</strong></h2><p>Current CMS remote patient monitoring billing codes require documented device readings across at least sixteen days within a thirty day period, along with tracked clinical review time, to support reimbursement. This is not a minor detail buried in a compliance appendix. It means time logging, audit trails, and reading count tracking have to be built into the platform from day one, because a program that cannot produce this documentation at scale leaves real reimbursement on the table no matter how clinically effective the monitoring itself is.</p><ul><li><p>Confirm the platform tracks per patient reading counts against the documented day threshold automatically, not through manual chart review</p></li><li><p>Build clinical time tracking into the care team workflow itself, not as a separate system reconciled after the fact</p></li><li><p>Design audit trails that satisfy both compliance review and payer documentation requests without custom reporting work each time</p></li><li><p>Treat outcomes and adherence dashboards as a product requirement, since value based contracts increasingly tie payment to demonstrated results, not just monitoring activity</p></li></ul><h2><strong>What to verify before scaling past the pilot</strong></h2><p>Most RPM scaling failures are predictable in advance, because the same handful of assumptions break in the same order every time volume grows past what the original build was designed for.</p><ul><li><p>Confirm ingestion is decoupled from processing through a durable stream layer, not a direct device to database call</p></li><li><p>Move time series reads off a general purpose relational database before query latency becomes a clinical workflow problem</p></li><li><p>Replace fixed threshold alerting with individualized baselines before alert fatigue causes real alerts to be ignored</p></li><li><p>Build edge buffering for offline tolerance before, not after, a connectivity gap causes a documented data loss event</p></li><li><p>Build billing relevant tracking, reading counts, clinical time, audit trails, into the platform itself rather than a downstream spreadsheet</p></li><li><p>Plan the database and alerting rebuild at the fifty thousand patient threshold deliberately, rather than discovering it during an incident</p></li></ul><p>Engineering teams building remote monitoring infrastructure can find related architecture detail in the IoT and connected device services overview, and in the broader API gateway architecture guide, which covers the integration layer that eventually connects monitoring data back into the electronic health record. Programs further along this path may also find the clinical documentation cost analysis relevant, since incomplete documentation of monitoring derived findings creates many of the same downstream billing problems described above.</p>]]></content:encoded></item><item><title><![CDATA[FHIR APIs Explained for Non-Technical Healthcare Founders]]></title><description><![CDATA[You are building a healthcare product.]]></description><link>https://ubaidpisuwala.substack.com/p/fhir-apis-explained-for-non-technical</link><guid isPermaLink="false">https://ubaidpisuwala.substack.com/p/fhir-apis-explained-for-non-technical</guid><dc:creator><![CDATA[Ubaid Pisuwala]]></dc:creator><pubDate>Wed, 10 Jun 2026 08:58:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jJvK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You are building a healthcare product. At some point in the last six months, someone &#8212; your CTO, an investor, a hospital procurement lead &#8212; used the word &#8220;FHIR&#8221; (pronounced &#8220;fire&#8221;) and watched your face carefully to see if you knew what it meant.</p><p>If you nodded along and Googled it later, you are not alone. FHIR is simultaneously the most important technical standard in digital health and one of the least well-explained concepts in healthcare founding conversations. This guide is for founders who need to understand FHIR well enough to make product decisions, evaluate vendor claims, and have credible conversations with health system buyers &#8212; not to write API documentation.</p><h2><strong>What FHIR actually is &#8212; the plain-English version</strong></h2><blockquote><p><strong>The analogy that makes it click</strong></p><p><em>Imagine that every hospital, clinic, pharmacy, lab, and insurance company stores patient data in a different language &#8212; literally. One speaks French, one speaks Mandarin, one speaks Swahili. Getting them to share information requires a translator for every pair of systems. </em><strong>FHIR is the universal language that every system agrees to speak.</strong><em> It is a standardized format for packaging and exchanging health data so that any FHIR-speaking system can read what any other FHIR-speaking system sends &#8212; without a custom translator for every connection.</em></p></blockquote><p>More precisely: <strong>FHIR (Fast Healthcare Interoperability Resources)</strong> is a standard published by HL7 International that defines exactly how health data should be structured, labeled, and transmitted between digital systems. The &#8220;API&#8221; part means that FHIR data is designed to be accessed over the internet using the same web technology that powers every app you use &#8212; which is why integrating health data via FHIR is dramatically simpler than the legacy alternatives.</p><p>Before FHIR, health data exchange required custom integration work for every connection between systems &#8212; a hospital&#8217;s Epic EHR and a pharmacy&#8217;s software each needed a bespoke bridge built between them. FHIR replaces those custom bridges with a shared standard, the way email replaced having a custom connection between every pair of inboxes.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eqK0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eqK0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 424w, https://substackcdn.com/image/fetch/$s_!eqK0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 848w, https://substackcdn.com/image/fetch/$s_!eqK0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 1272w, https://substackcdn.com/image/fetch/$s_!eqK0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eqK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png" width="657" height="146" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:146,&quot;width&quot;:657,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22704,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/201424841?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eqK0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 424w, https://substackcdn.com/image/fetch/$s_!eqK0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 848w, https://substackcdn.com/image/fetch/$s_!eqK0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 1272w, https://substackcdn.com/image/fetch/$s_!eqK0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98b1a1e3-fa6a-450d-8c90-44aa5c8f01c4_657x146.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h2><strong>Three concepts you need to understand</strong></h2><p>FHIR conversations in healthcare typically involve three ideas that get conflated. Keeping them separate will help you evaluate what vendors and engineers are actually telling you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jJvK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jJvK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 424w, https://substackcdn.com/image/fetch/$s_!jJvK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 848w, https://substackcdn.com/image/fetch/$s_!jJvK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 1272w, https://substackcdn.com/image/fetch/$s_!jJvK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jJvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png" width="659" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b82a127-b4a5-4226-b182-197c545f427b_659x485.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:659,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81532,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/201424841?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jJvK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 424w, https://substackcdn.com/image/fetch/$s_!jJvK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 848w, https://substackcdn.com/image/fetch/$s_!jJvK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 1272w, https://substackcdn.com/image/fetch/$s_!jJvK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b82a127-b4a5-4226-b182-197c545f427b_659x485.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>What data actually travels over FHIR</strong></h2><p>When your product connects to a hospital&#8217;s EHR via FHIR, the data you can access is organized into specific resource types. Understanding which resources your product needs &#8212; and whether a given EHR actually exposes them &#8212; is one of the most important questions in any enterprise healthcare integration conversation.</p><p><strong>R01 Patient</strong></p><p>Demographics, identifiers, contact info. Every clinical encounter is linked to a Patient resource &#8212; it is the anchor for everything else in the health record.</p><p><strong>R02 Observation</strong></p><p>Lab results, vital signs, social history entries. A blood pressure reading, an HbA1c result, a BMI &#8212; all Observations. The most frequently accessed resource in clinical AI applications.</p><p><strong>R03 MedicationRequest</strong></p><p>Active prescriptions and medication orders. Your product needs this resource for medication management, drug interaction checking, or adherence monitoring.</p><p><strong>R04 Condition</strong></p><p>Diagnosed conditions and problem list entries. This is how your application knows a patient has type 2 diabetes or heart failure &#8212; the conditions are coded to standard terminologies (ICD-10, SNOMED CT).</p><p><strong>R05 Encounter</strong></p><p>Clinical visits and admissions. Each time a patient sees a provider, an Encounter resource is generated. Essential for care coordination, transitions-of-care, and billing workflows.</p><p><strong>R06 DiagnosticReport</strong></p><p>Structured diagnostic results &#8212; radiology reports, pathology reports, cardiology findings. If your product involves imaging AI or specialty diagnostics, this resource is critical.</p><p><strong>R07 DocumentReference</strong></p><p>Clinical notes, discharge summaries, prior authorization letters. Unstructured documents are referenced here &#8212; important for ambient scribe output, care summaries, and CDI workflows.</p><blockquote><p>&#128204; <strong>Founder takeaway:</strong> Before your next hospital demo, ask your engineering team: &#8220;Which FHIR resource types does our product read from and write back to the EHR?&#8221; If they can&#8217;t answer this in under two minutes, you have a scoping problem that will surface at the worst time &#8212; during a procurement conversation. Peerbits&#8217; <a href="https://www.peerbits.com/blog/healthcare-api-gateway-architecture-guide.html">healthcare API gateway architecture guide</a> covers how to structure this for production at scale.</p></blockquote><h2><strong>Why your product probably needs FHIR &#8212; even if your CTO hasn&#8217;t said so</strong></h2><p>Healthcare founders sometimes assume FHIR is a &#8220;nice to have&#8221; &#8212; something to implement when they get to enterprise sales. This assumption fails in three predictable ways.</p><p><strong>First, hospital buyers now require it in RFPs.</strong> As of 2026, most US health system IT procurement processes include a FHIR API compliance requirement as a standard evaluation criterion. A product that cannot demonstrate FHIR-based EHR integration does not make it past the first RFP filter at the majority of large health systems &#8212; the conversation never gets to a demo.</p><p><strong>Second, CMS mandates have made it a regulatory requirement for many workflows.</strong> In December 2024, CMS finalized CMS-0057, requiring healthcare providers and payers to implement five FHIR-based APIs covering patient access, provider directory, drug formulary, prior authorization, and administrative data. If your product touches any of these workflows for a covered entity, FHIR is not optional &#8212; it is a compliance requirement that affects your customer&#8217;s regulatory standing.</p><p><strong>Third, not having FHIR creates compounding technical debt.</strong> Products that build proprietary data integrations early end up with a maintenance nightmare: a different custom connection for every EHR they support, each one breaking when EHR versions update, each one requiring bespoke engineering for every new customer. FHIR integration upfront is a one-time investment that pays compounding returns with every additional customer.</p><div class="pullquote"><p><em>In 2026, the real question is not whether to implement FHIR APIs &#8212; it is how to implement them. If you adapt too late, the gap between your organization and those that already have becomes very hard to close.</em></p><p>&#8212; A&amp;I Solutions FHIR API Implementation Guide, May 2026</p></div><h2><strong>The regulatory timeline every health-tech founder should know</strong></h2><p>FHIR adoption is being actively accelerated by regulatory mandates. As a founder, you need to know which of these affects your customers &#8212; because their compliance obligations become your product requirements.</p><p><strong>2020&#8211;2021</strong></p><h3><strong>ONC 21st Century Cures Act Final Rule</strong></h3><p>Required certified health IT developers to implement FHIR R4 Patient Access APIs. Established the information-blocking prohibitions. Most major EHRs (Epic, Cerner, Athenahealth) now expose FHIR R4 endpoints &#8212; this is why your team can connect to them.</p><p><strong>2023&#8211;2024</strong></p><h3><strong>TEFCA (Trusted Exchange Framework) Phase 1</strong></h3><p>Established the national network for health information exchange using FHIR and underlying standards. Participating Qualified Health Information Networks (QHINs) enable broader data exchange than individual EHR connections. If your product needs population-level data access, TEFCA is the pathway.</p><p><strong>Dec 2024</strong></p><h3><strong>CMS-0057 Final Rule &#8212; Five FHIR API Mandate</strong></h3><p>CMS finalized requirements for payers and providers to implement five FHIR APIs: Patient Access, Provider Directory, Drug Formulary, Prior Authorization, and Administrative. If your product supports prior authorization workflows or payer connectivity for a covered entity, this mandate directly affects your integration requirements.</p><p><strong>Late 2026</strong></p><h3><strong>FHIR R6 Expected</strong></h3><p>The next major version of the FHIR standard, with most clinical and administrative resources achieving &#8220;normative&#8221; status &#8212; meaning long-term stability and reduced future migration complexity. If you are building a new platform today, understanding the R4-to-R6 migration path is relevant for your 18-month roadmap.</p><h2><strong>What &#8220;FHIR-compliant&#8221; actually means &#8212; and what vendors get wrong</strong></h2><p>Every digital health vendor in 2026 claims to be &#8220;FHIR-compliant.&#8221; This claim ranges from genuinely robust to almost meaningless, and knowing how to evaluate it is one of the most practically valuable things a non-technical founder can learn.</p><p><strong>What does &#8220;FHIR-compliant&#8221; actually mean?</strong></p><p>At minimum, it means the vendor can send and receive data in FHIR format. But &#8220;can exchange FHIR data&#8221; and &#8220;exchanges clinically useful FHIR data&#8221; are very different things. A system can be technically FHIR-schema-valid while sending data with missing terminology bindings, incorrect coding, or incomplete resource populations that make the data useless in downstream clinical workflows. Ask for specific resource types supported and conformance to the US Core Implementation Guide &#8212; not just &#8220;we support FHIR.&#8221;</p><p><strong>What is the difference between FHIR R4 and FHIR R5?</strong></p><p>FHIR R4 (released 2019) is the current production standard and what the majority of US health systems expose via their EHR APIs. FHIR R5 (released 2023) introduced new features but has limited adoption due to its &#8220;trial use&#8221; status. For most health-tech products in 2026, FHIR R4 with US Core Implementation Guide conformance is the target. Don&#8217;t let a vendor confuse you by claiming R5 features when your customers are running R4.</p><p><strong>What is an &#8220;Implementation Guide&#8221; and why does it matter?</strong></p><p>The base FHIR standard is intentionally flexible &#8212; it defines possible data fields but doesn&#8217;t always require specific ones. An Implementation Guide (IG) adds those requirements for a specific use case or country. The US Core IG is the most important one for US health-tech: it specifies which FHIR resources must be supported, which data fields are required, and which terminology codes must be used. A product conforming to US Core IG is genuinely interoperable; a product claiming &#8220;FHIR support&#8221; without IG conformance may not be. See our <a href="https://www.peerbits.com/blog/healthcare-api-gateway-architecture-guide.html">Healthcare API Gateway guide</a> for more on implementation guide enforcement.</p><p><strong>Can FHIR read data AND write data back to the EHR?</strong></p><p>Reading (GET) is far more broadly supported than writing (POST/PUT). Most EHRs today expose robust read APIs under the 21st Century Cures Act mandate &#8212; but write-back access (your product writing data back into the patient record) requires separate EHR vendor agreements, additional authorization scopes, and in some cases separate app certification. If your product&#8217;s value proposition depends on writing data into Epic or Cerner (e.g., an ambient scribe writing notes, a CDI tool writing coding suggestions), confirm write-back access specifically &#8212; not just &#8220;FHIR support.&#8221;</p><h2><strong>The five FHIR questions to ask before every hospital demo</strong></h2><p>You do not need to understand FHIR deeply to ask good questions about it. The following five questions &#8212; asked of your engineering team before a hospital demo &#8212; will surface the integration risks and readiness gaps that could derail an enterprise deal at the worst moment.</p><ul><li><p><strong>&#8220;Which EHR systems have we tested our FHIR integration against, and which is the customer running?&#8221;</strong>Epic, Cerner, Oracle Health, Athenahealth, Meditech, and Allscripts all expose FHIR APIs &#8212; but each has its own data model quirks, authentication flows, and resource availability. &#8220;We support FHIR&#8221; is not the same as &#8220;we have a tested connection to your Epic environment.&#8221; This question surfaces whether your team has done real integration work or theoretical compliance work.</p></li><li><p><strong>&#8220;Do we conform to the US Core Implementation Guide &#8212; and have we run a validator against our resources?&#8221;</strong>US Core conformance is the clinical interoperability bar, not just schema validity. If your team can&#8217;t run the HL7 FHIR validator against your resources and show a clean conformance report, you are not ready for a health system integration conversation. Peerbits validates against US Core in every <a href="https://www.peerbits.com/healthcare-software-development.html">healthcare software development services</a>.</p></li><li><p><strong>&#8220;Do we read only, or do we write data back to the EHR &#8212; and have we confirmed write-back access with the customer&#8217;s EHR vendor?&#8221;</strong>This is the question that most founders don&#8217;t know to ask. If your product&#8217;s value depends on writing into the EHR, and your customer&#8217;s Epic environment hasn&#8217;t approved your application for write-back access, your go-live is blocked until it does. That approval process can take weeks to months.</p></li><li><p><strong>&#8220;How do we handle FHIR data from patients who have records at multiple health systems?&#8221;</strong>Patients with records at multiple institutions will have different Patient resource IDs at each. Matching a patient across systems &#8212; patient matching &#8212; is one of the hardest problems in FHIR implementation. If your product needs a longitudinal patient view across EHRs, your team needs to explain how they solve this.</p></li><li><p><strong>&#8220;Is our FHIR integration layer a clean abstraction, or are we building point-to-point connections per customer?&#8221;</strong>If your team is building a custom FHIR connection for each new hospital customer, you have a scaling problem that will hit you at 10 customers. The answer you want is a centralized API gateway that handles FHIR authentication, multi-source normalization, and per-tenant isolation as a platform service &#8212; not a per-customer engineering project. Peerbits has built production-scale FHIR gateway infrastructure for health systems and digital health platforms &#8212; see our <a href="https://www.peerbits.com/blog/healthcare-api-gateway-architecture-guide.html">API Gateway Architecture Guide</a> for the full design.</p></li></ul><div class="callout-block" data-callout="true"><h3><strong>Ready to build FHIR integration that survives a hospital procurement review?</strong></h3><p>Peerbits has built production FHIR API gateways and EHR integrations for health systems and digital health platforms across Epic, Cerner, Oracle Health, and Athenahealth &#8212; scalable, US Core&#8211;compliant, and HIPAA-compliant from day one.</p><p><a href="https://www.peerbits.com/request-quote.html">Book a Demo</a></p></div>]]></content:encoded></item><item><title><![CDATA[AI Agents in Healthcare: Real Use Cases Beyond Chatbots]]></title><description><![CDATA[For the better part of three years, &#8220;AI in healthcare&#8221; meant a chatbot on a patient portal.]]></description><link>https://ubaidpisuwala.substack.com/p/ai-agents-in-healthcare-real-use</link><guid isPermaLink="false">https://ubaidpisuwala.substack.com/p/ai-agents-in-healthcare-real-use</guid><dc:creator><![CDATA[Ubaid Pisuwala]]></dc:creator><pubDate>Thu, 04 Jun 2026 09:34:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kJuQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For the better part of three years, &#8220;AI in healthcare&#8221; meant a chatbot on a patient portal. It answered FAQs, triaged intake questions, and occasionally booked appointments. It was useful. It was also table stakes &#8212; and healthcare buyers have grown sophisticated enough to know the difference.</p><p>The 2025&#8211;2026 shift is architectural. Healthcare systems are deploying <strong>AI agents</strong> &#8212; autonomous systems that don&#8217;t just respond to queries but pursue goals across multiple systems, handle the full lifecycle of a workflow, and escalate to humans only when a decision requires judgment or authority that should remain human. The difference isn&#8217;t a matter of degree. It is a fundamentally different product category.</p><p>This article maps six real deployment patterns for healthcare AI agents &#8212; the use cases that are delivering measurable outcomes for health systems and digital health platforms today &#8212; and explains the engineering requirements that make them viable. Peerbits builds these capabilities into <a href="https://www.peerbits.com/healthcare-software-development.html">custom healthcare platforms</a>, with integrations across Epic, Cerner, Oracle Health, and payer APIs.</p><h2><strong>What makes an AI agent different from a chatbot</strong></h2><p>The distinction matters practically, not just semantically. Understanding what separates an AI agent from a chatbot determines whether a given use case is actually within scope for each technology.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kJuQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kJuQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 424w, https://substackcdn.com/image/fetch/$s_!kJuQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 848w, https://substackcdn.com/image/fetch/$s_!kJuQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 1272w, https://substackcdn.com/image/fetch/$s_!kJuQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kJuQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png" width="669" height="414" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:414,&quot;width&quot;:669,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64366,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/200588259?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kJuQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 424w, https://substackcdn.com/image/fetch/$s_!kJuQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 848w, https://substackcdn.com/image/fetch/$s_!kJuQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 1272w, https://substackcdn.com/image/fetch/$s_!kJuQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe79b961d-9bad-4adc-904d-6d6ea90250ca_669x414.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This capability gap is why health system buyers have moved beyond chatbot evaluations. The operational problems they are trying to solve &#8212; prior authorization backlogs, documentation burden, care gap closure, revenue cycle leakage &#8212; require an agent that can execute, not just advise. Peerbits' <a href="https://www.peerbits.com/blog/healthcare-software-development-trends.html">healthcare software trends analysis</a> mapped this shift in enterprise buyer priorities as one of the defining signals of the year.</p><h2><strong>Six production-grade AI agent use cases</strong></h2><p>The following use cases are drawn from live deployments and peer-reviewed analysis of agentic AI systems in healthcare. Each maps to a specific pain point with a defined architecture pattern.</p><blockquote><p><strong>Use Case 01 &#183; Clinical Documentation</strong></p><h3><strong>Ambient documentation agents &#8212; the scribe that closes the loop</strong></h3><p>The VA&#8217;s 2026 deployment of ambient scribe technology to every VA medical center nationwide is the largest government healthcare AI deployment in US history. The pattern it follows is now commercially available: a voice-first agent listens to the patient encounter in real time, structures clinical content into a SOAP note, and pushes a draft to the EHR for physician review and signature &#8212; without the physician touching a keyboard.</p><p>What separates an <em>agent</em> from a transcription tool here is the downstream step: the agent doesn&#8217;t just produce a note. It surfaces ICD-10 coding suggestions based on the documented conditions, flags documentation gaps that could affect billing (missing specificity, absent medical necessity language), and can route queries to the CDI team automatically if the note falls below a documentation quality threshold. The physician reviews, edits, and signs &#8212; the execution cycle runs autonomously. Peerbits integrates these ambient documentation workflows as part of <a href="https://www.peerbits.com/custom-ehr-software-development.html">custom EHR development</a> engagements, with specialty-specific note templates for primary care, hospitalist, and surgical workflows.</p><p>Platforms like Nuance DAX and Abridge are consistently saving clinicians one to two hours of documentation time per day in production deployments</p></blockquote><blockquote><p><strong>Use Case 02 &#183; Revenue Cycle Management</strong></p><h3><strong>Prior authorization agents &#8212; from weeks to hours</strong></h3><p>Prior authorization is among the most administratively burdensome processes in US healthcare &#8212; and among the most well-suited to agentic automation. The workflow is deterministic at its core: read the clinical record, identify the payer&#8217;s coverage policy for the requested service, gather the required supporting documentation, and submit. The problem is that this involves five or six different systems, each with its own data model and access pattern, requiring a human to manually orchestrate the whole sequence.</p><p>A prior authorization agent handles this end-to-end: it pulls the patient&#8217;s clinical history from the EHR via FHIR API, retrieves the payer&#8217;s current coverage criteria (updated via a policy feed), assembles the prior auth package, submits to the payer portal, monitors for response, and &#8212; critically &#8212; reads denial letters and assembles corrected appeals autonomously when a denial comes back. The human reviewer sees a fully assembled package with a recommendation, not a blank form. Peerbits builds these agents as part of <a href="https://www.peerbits.com/revenue-cycle-management.html">revenue cycle management software development</a> with bidirectional payer API integration.</p><p>Prior authorization agents reduce average auth turnaround from 5&#8211;7 business days to under 12 hours in production deployments &#8212; Menlo Ventures 2025 State of AI in Healthcare</p></blockquote><blockquote><p><strong>Use Case 03 &#183; Patient Engagement</strong></p><h3><strong>Care gap closure agents &#8212; proactive outreach that acts on responses</strong></h3><p>Traditional patient engagement platforms send reminders. AI agents close gaps. The distinction is operational: a reminder tells a patient they&#8217;re due for a mammogram; a care gap closure agent identifies the population cohort from the EHR&#8217;s quality reporting data, segments by risk and outreach history, generates personalized messages, sends them via the patient&#8217;s preferred channel, interprets responses in natural language, books the appointment when the patient says yes, and updates the care gap registry &#8212; all without staff intervention.</p><p>Patient engagement AI is growing at 20&#215; year-over-year, driven precisely by this shift from notification to execution. The agent handles the full cycle of outreach-to-scheduling, escalating to a human coordinator only when a patient expresses hesitation that requires clinical counseling. Peerbits builds these closed-loop <a href="https://www.peerbits.com/patient-engagement-software-development.html">patient engagement platforms</a> with EHR-native care gap data, multi-channel outreach (SMS, app push, portal message), and scheduling integration.</p><p>Health systems using proactive AI care gap agents report 30&#8211;45% appointment fill rates on automated waitlists &#8212; NextGen Healthcare 2025</p></blockquote><blockquote><p><strong>Use Case 04 &#183; Diagnostic Support</strong></p><h3><strong>Multi-agent diagnostic orchestration &#8212; radiology triage at scale</strong></h3><p>The FDA has cleared over 1,200 AI/ML-enabled medical devices as of mid-2025, with radiology representing the largest single category. The next architectural step is multi-agent orchestration: rather than a single AI model reviewing an imaging study, a planner agent routes the study to specialized agents (a lung nodule characterization agent, a bone density agent, a comparison agent that pulls prior studies from the PACS), synthesizes their outputs into a structured report, assigns a finding priority score, and queues it for radiologist review in priority order &#8212; not chronological order.</p><p>Oxford University&#8217;s tumor board agents, built in collaboration with Microsoft, demonstrate the same pattern in oncology: agents that summarize patient charts, determine cancer staging, and draft guideline-compliant treatment plans &#8212; all prepared before the tumor board convenes, so the human discussion is focused on judgment rather than preparation. The architecture for these multi-agent systems requires careful design of the orchestration layer &#8212; how agents hand off context, how conflicting outputs are resolved, and how human override is surfaced. This is an area where Peerbits&#8217; <a href="https://www.peerbits.com/blog/healthcare-api-gateway-architecture-guide.html">healthcare API gateway architecture</a> provides the integration backbone.</p><p>Multi-agent radiotherapy planning systems have matched expert performance for cervical cancer and exceeded it for lung cancer in peer-reviewed evaluation &#8212; NPJ Digital Medicine, 2026</p></blockquote><blockquote><p><strong>Use Case 05 &#183; Care Coordination</strong></p><h3><strong>Discharge and transitions-of-care agents &#8212; closing the post-discharge gap</strong></h3><p>The 30-day readmission window is one of the most expensive failure modes in US healthcare &#8212; and one of the most documentation-dependent. Discharge instructions that don&#8217;t reach the patient&#8217;s PCP, medication reconciliation that doesn&#8217;t happen at the transition, follow-up appointments that aren&#8217;t booked before the patient leaves. Each of these is a workflow gap that an agent can close.</p><p>A transitions-of-care agent monitors the discharge planning workflow from the moment an inpatient admission is flagged for discharge: it pulls the patient&#8217;s post-acute care preferences, identifies in-network PCPs with availability, sends a C-CDA summary to the receiving provider via Direct messaging or FHIR API, schedules the 7-day follow-up appointment, enrolls the patient in a medication adherence check-in sequence, and flags any patients who haven&#8217;t confirmed receipt of discharge instructions within 24 hours for a nurse callback. Human staff intervene on exceptions; the agent handles the execution baseline.</p><p>Agentic discharge workflow tools reduce 30-day readmission rates by 12&#8211;18% in high-risk patient cohorts &#8212; consistent across multiple health system pilots</p></blockquote><blockquote><p><strong>Use Case 06 &#183; Research &amp; Life Sciences</strong></p><h3><strong>Drug discovery and clinical trial agents &#8212; science that runs overnight</strong></h3><p>Over 30% of new drugs in 2025 involved generative AI at some stage of development. The agentic pattern in life sciences is among the most advanced: autonomous agents that execute protein property predictions, analyze experimental datasets, generate hypotheses, and design follow-up experiments &#8212; all without human prompting between cycles. Systems like ProtChat demonstrate the pattern: a multi-agent architecture where specialized agents handle protein analysis, evaluation, and visualization tasks, operating continuously across datasets that no human team could process at the same speed.</p><p>For clinical trial operations, agents handle eligibility screening (reading patient records against inclusion/exclusion criteria at scale), site feasibility assessment, adverse event monitoring, and protocol deviation detection &#8212; reducing the administrative burden on clinical research coordinators so they focus on the work that requires human judgment. Peerbits builds these data pipeline and research automation capabilities on top of <a href="https://www.peerbits.com/blog/multi-tenant-healthcare-platform-architecture.html">multi-tenant healthcare platform architectures</a> designed to handle the data volumes research workflows require.</p><p>Agentic protein analysis systems autonomously execute complex multi-step benchmarks across drug interaction datasets without manual intervention &#8212; Nature NPJ Digital Medicine, 2026</p></blockquote><h2><strong>The engineering stack behind production healthcare agents</strong></h2><p>Healthcare AI agents fail in production not because of the AI model but because of the infrastructure around it. The five-layer architecture below is the minimum viable foundation for a production-grade healthcare agent &#8212; built from Peerbits&#8217; deployment experience and aligned with the <a href="https://www.peerbits.com/blog/hipaa-by-design-engineering-blueprint-for-compliant-healthcare-systems.html">HIPAA by Design engineering framework</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M7vQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M7vQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 424w, https://substackcdn.com/image/fetch/$s_!M7vQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 848w, https://substackcdn.com/image/fetch/$s_!M7vQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 1272w, https://substackcdn.com/image/fetch/$s_!M7vQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M7vQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png" width="602" height="378" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1421ccb-9245-4795-b92e-379d093c37e3_602x378.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:378,&quot;width&quot;:602,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58747,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://ubaidpisuwala.substack.com/i/200588259?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M7vQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 424w, https://substackcdn.com/image/fetch/$s_!M7vQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 848w, https://substackcdn.com/image/fetch/$s_!M7vQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 1272w, https://substackcdn.com/image/fetch/$s_!M7vQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1421ccb-9245-4795-b92e-379d093c37e3_602x378.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p><em>The shift is from reactive assistance to accountable execution. Earlier chatbots were largely conversational. Agents take responsibility for getting work done &#8212; they retrieve context, take action across systems, track progress, and follow through until a workflow is complete.</em></p><p>&#8212; Kore.ai Healthcare Agent Report, 2026</p></div><div class="callout-block" data-callout="true"><p>&#128208;<strong>The integration prerequisite:</strong> AI agents are only as capable as the data infrastructure they sit on. An agent can&#8217;t close a care gap if it can&#8217;t reliably read from the EHR&#8217;s FHIR API. It can&#8217;t submit prior auths if the payer portal integration is brittle. This is why Peerbits treats <a href="https://www.peerbits.com/blog/healthcare-api-gateway-architecture-guide.html">clean API gateway architecture</a> as a prerequisite for agent deployments &#8212; not something we layer on afterward.</p></div><h2><strong>How to evaluate and prioritize AI agent use cases</strong></h2><p>The question most healthcare technology leaders face is not &#8220;can we use AI agents?&#8221; &#8212; the answer is clearly yes. The question is &#8220;which use case do we build first, and how do we scope it so it delivers value without creating unacceptable clinical risk?&#8221;</p><p>The evaluation framework Peerbits uses with health system and digital health clients starts with three filters:</p><ul><li><p><strong>Is the workflow deterministic enough to be governed? </strong>The best first agent use cases are workflows where the rules are clear, the failure modes are well-understood, and human override is easy to design. Prior authorization and documentation improvement pass this test. Autonomous diagnosis generation does not &#8212; at least not yet.</p></li><li><p><strong>Is the data surface clean and accessible? </strong>An agent that depends on unstructured, inconsistently populated EHR data will fail unpredictably. Assess the data quality and API availability of every source the agent will need before scoping the feature.</p></li><li><p><strong>Is the escalation design as strong as the automation design? </strong>The best agent deployments are designed from the escalation case backward &#8212; every scenario where the agent should not act autonomously must be explicitly handled. Skipping this step is the most common cause of clinical workflow failures in production AI agents.</p></li><li><p><strong>Does the architecture support HIPAA compliance at every data hop? </strong>Every PHI-bearing API call, every inference event, every output stored &#8212; all require BAA coverage, encryption, and immutable audit logs. This is non-negotiable and must be engineered in from day one, not retrofitted after deployment.</p></li><li><p><strong>Can you measure clinical and operational outcomes, not just technical metrics? </strong>Agent deployments that can only report API latency and uptime won&#8217;t survive their first enterprise renewal. Define outcome metrics (auth turnaround time, documentation burden per physician, readmission rate) before you build.</p></li></ul><div class="callout-block" data-callout="true"><h3><strong>Ready to move beyond chatbots?</strong></h3><p>Peerbits engineers production healthcare AI agents &#8212; from prior auth automation to ambient documentation and care gap closure &#8212; integrated with your EHR and HIPAA-compliant from day one.</p><p><a href="https://www.peerbits.com/request-quote.html">Book a Discovery Sprit</a> </p></div>]]></content:encoded></item></channel></rss>