Engineering · 11 min read
Building a Telehealth App with Epic Integration and Remote Patient Monitoring
The tech stack and compliance workflow for a telehealth app that connects to Epic through FHIR and collects remote patient monitoring data from devices.

Short answer
A telehealth app that integrates with Epic and supports remote patient monitoring has four parts: patient and clinician apps, a HIPAA-ready backend, a FHIR integration that uses SMART on FHIR to read Epic data and, where the health system allows, write back, and a device pipeline that turns readings into FHIR Observations with alerts. Expect $35k to $60k for the telehealth MVP plus $15k to $40k for the Epic integration, and start Epic's developer registration on day one.
What this kind of product does
Many virtual care products now combine three things: video or messaging visits, readings from devices at home such as blood pressure cuffs, scales and glucose meters, and a connection to the health system's electronic health record so clinicians do not work in two places. Epic is the most common EHR in US hospitals, so it is usually the first integration a buyer asks about. This guide sets out the architecture and the compliance workflow we follow, in the order the work happens.
What tech stack does a telehealth app with Epic integration use?
A telehealth app with Epic integration and remote monitoring uses Flutter or React Native for the patient app, a React web portal that clinicians launch from inside Epic through SMART on FHIR, a Node.js or Python backend on a HIPAA-eligible cloud, a separate FHIR integration service, and a queue-based pipeline that turns device readings into FHIR Observations.
| Layer | What it does | Typical choices |
|---|---|---|
| Patient app | Sign-up, consent, visits, device pairing, readings, messages | Flutter or React Native; Apple HealthKit and Android Health Connect for phone and wearable data |
| Clinician portal | Patient lists, alerts, readings, visit notes, launch from Epic | React or Next.js web app, launched inside Epic with SMART on FHIR |
| Backend | Accounts, scheduling, rules, alerts, audit log | Node.js or Python on a HIPAA-eligible cloud under a Business Associate Agreement |
| Integration layer | Maps your data model to FHIR and back, retries, monitoring | A dedicated service per EHR connection, with contract tests |
| Device pipeline | Receives readings from phones, hubs or cellular devices | A queue, validation, unit conversion, threshold rules, FHIR Observation output |
| Video and messaging | Visits and secure chat | A video provider that signs a Business Associate Agreement |
Connecting to Epic
Epic exposes patient data through HL7 FHIR APIs and authorises apps with SMART on FHIR, an OAuth 2 profile for healthcare. Developers start with open.epic, Epic's free standards-based programme, and the Epic on FHIR documentation and sandbox. Epic's paid Vendor Services programme adds deeper API access and testing support, and the Showroom marketplace (whose Connection Hub replaced App Orchard) lists apps already connected to an Epic customer. For clinician-facing and write-enabled apps, each health system must then approve and switch on the app for its own instance. Plan for that step: it involves the health system's security review and often takes longer than the code.
| Launch type | Who uses it | What it enables |
|---|---|---|
| EHR launch | Clinicians | Your portal opens inside Epic with the current patient already selected, with single sign-on |
| Standalone patient launch | Patients | The patient signs in with their health system account and grants your app access to their record |
| Backend services | Your server | System-to-system access without a user present, for scheduled syncs; needs separate approval |
The FHIR resources most telehealth and monitoring products touch are Patient, Practitioner, Appointment, Encounter, Observation for vitals, Condition, MedicationRequest, DocumentReference for visit notes, and Device. Read access is broadly available. Write-back, such as filing readings as Observations or a visit note as a document, depends on what the health system enables, so confirm it with the first customer before you design around it. Our EHR and FHIR integration page covers the integration process in more detail.
Remote patient monitoring: getting readings in
| Device route | How data arrives | Trade-offs |
|---|---|---|
| Bluetooth devices paired with the patient's phone | The app reads the device over Bluetooth Low Energy and uploads readings | Cheap devices; pairing problems are the main support issue, especially for older patients |
| Cellular devices | The device sends readings over its own mobile connection to the vendor's cloud, which calls your API | No phone or pairing needed; higher device cost and a vendor contract |
| Phone and wearable health data | HealthKit on iOS and Health Connect on Android, with the patient's permission | No extra hardware; data quality and sampling vary by device |
| Manual entry | The patient types a reading | A useful fallback; not suitable where readings drive billing or clinical decisions |
Whatever the route, the pipeline should do the same things: check the reading came from an enrolled device and patient, convert units, store the raw value and a normalised FHIR Observation, run the clinician's threshold rules, and raise an alert to the care team when a reading is out of range. Every alert needs an owner and an acknowledgement, or the product creates risk instead of reducing it.
Can telehealth work over SMS with a basic payment gateway?
Yes. Not every patient will install an app, so many products run on SMS reminders, links that open a visit in the browser and hosted payment links from a standard gateway such as Stripe. This works well, and stays on the right side of HIPAA, if the messages carry as little health information as possible.
- Send a link to a signed-in page rather than putting results, diagnoses or medication names in a text message.
- Record the patient's consent to SMS and their preferred channel, and honour opt-outs.
- Use a messaging provider that signs a Business Associate Agreement if messages contain any protected health information.
- Card payments for care are generally treated as payment processing rather than a business associate activity, so processors do not usually sign a BAA. Keep treatment details out of payment descriptions and receipts anyway.
- Offer a browser fallback for video visits, with an audio-only option for poor connections.
Two of our projects show the pattern. Zeuss is a US telehealth platform that sends order and shipping updates by SMS through Twilio and takes card payments through a PCI-compliant tokeniser. Chat Your History, outside healthcare, runs whole interview sessions over Twilio SMS and recorded voice calls, with Stripe and PayPal checkout.
Licensing across state lines
US clinicians generally need a licence in the state where the patient is located at the time of the visit. Telehealth products that work across states therefore store each clinician's licences with state, type and expiry, match patients only to clinicians licensed for their state, and re-verify licences on a schedule. The Interstate Medical Licensure Compact speeds up multi-state licensing for physicians, and Nursys provides licence verification for nurses. Verification against state board sources can be automated through these services or a credentialing vendor, but it should be part of the scheduling rules, not a manual spreadsheet.
Can licence verification run in real time?
Close to it. Instead of checking every licence by hand, subscribe to change alerts such as Nursys e-Notify for nurses, the National Practitioner Data Bank's Continuous Query, or a credentialing vendor's monitoring feed, and store the result. The app then checks the stored status and expiry at booking time and blocks the slot if it has lapsed. AI helps only with reading uploaded licence documents, not with the verification itself.
What is the HIPAA compliance workflow for a telehealth app?
- Decide whether HIPAA applies and who the covered entity is. If you sell to providers, you are almost certainly their business associate.
- Sign Business Associate Agreements with the cloud provider and every vendor that touches protected health information: video, messaging, email, device cloud and support tools.
- Run a risk analysis before launch and record the safeguards that answer each risk.
- Build the technical safeguards: unique user IDs, role-based access, automatic logoff, encryption in transit and at rest, and an audit log of every access to patient data.
- Keep patient data out of logs, analytics and error reports, and use synthetic data in every environment except production.
- Complete Epic's registration and each health system's security questionnaire.
- Test backups by restoring them, and write the incident response and breach notification plan.
- Repeat the risk analysis when the product changes materially.
Our guide to making an app HIPAA compliant explains each safeguard, and our HIPAA DevOps and testing page covers the pipeline and test practice behind it.
Cost and timeline
| Scope | Range | Timeline |
|---|---|---|
| Discovery: data scope, Epic path, device choice, risk analysis | $3k to $8k | 1 to 2 weeks |
| Telehealth MVP: patient app, clinician portal, visits, messaging | $35k to $60k | 10 to 16 weeks |
| Epic integration (per EHR) | $15k to $40k | 4 to 10 weeks, plus Epic and health system review |
| Full platform with RPM programme, billing evidence and analytics | $80k to $200k+ | 6 to 12 months |
Device costs, device-vendor platform fees, video minutes and any Epic programme fees are paid to those companies directly. Our Teladoc-style cost breakdown prices the telehealth features one by one.
What we have built
On the Zeuss telehealth platform we built a patient storefront with medical intake, a doctor and agent CRM, and more than 12 integrations including pharmacy fulfilment, identity verification and payment tokenisation, on an event-driven Azure backend with AES-256 encryption, Key Vault secrets, role-based access and a complete audit trail. The same patterns, queued processing, retries, contract tests and audit logging, are what a device pipeline and an Epic integration need.
Sources
- Epic on FHIR developer documentation: https://fhir.epic.com/
- open.epic: https://open.epic.com/
- Epic Vendor Services: https://vendorservices.epic.com/
- HL7 SMART App Launch: https://hl7.org/fhir/smart-app-launch/
- HL7 FHIR Observation resource: https://hl7.org/fhir/observation.html
- CMS Physician Fee Schedule: https://www.cms.gov/medicare/payment/fee-schedules/physician
- HHS HIPAA Security Rule: https://www.hhs.gov/hipaa/for-professionals/security/index.html
- Interstate Medical Licensure Compact: https://www.imlcc.com/
- Nursys licence verification: https://www.nursys.com/
Need a number for your project?
Send a short brief and get a written estimate.
A senior engineer replies within one business day. No sales call required.

Zain Khalid Malik
CTO & Co-founder, Innovation Insight
Zain owns architecture, engineering standards and the platform team at Innovation Insight. He sets the bar for code quality, security and the tooling every squad ships with.
LinkedInRelated questions.
Can a telehealth app integrate with Epic?
Yes. Epic offers FHIR APIs with SMART on FHIR authorisation. You register as a developer, build against Epic's sandbox, and each health system then approves and enables the app for its own Epic instance.
How do remote patient monitoring devices send data to an app?
Bluetooth devices send readings to the patient's phone app, cellular devices send them through the device vendor's cloud to your API, and phones and wearables share data through HealthKit or Health Connect with permission.
Can RPM readings be written back to Epic?
Often, as FHIR Observations, but write access depends on what each health system enables. Confirm it with your first customer before designing workflows around it.
Is it HIPAA compliant to send appointment reminders by SMS?
Reminders can be sent with the patient's consent if they carry minimal information. Put results and clinical details behind a signed-in link, and use a provider that signs a BAA if messages include protected health information.
How long does an Epic integration take?
Engineering takes 4 to 10 weeks. Epic registration and each health system's review and activation add time, so start them at the beginning of the project.